summaryrefslogtreecommitdiffstats
path: root/thunderbird-l10n/pt-PT
diff options
context:
space:
mode:
Diffstat (limited to 'thunderbird-l10n/pt-PT')
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/branding/brand.dtd13
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/branding/brand.properties7
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pdfviewer/chrome.properties20
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pdfviewer/viewer.properties302
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/alerts/alert.properties23
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/autoconfig/autoconfig.properties12
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-alarms.properties39
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-event-dialog-attendees.properties15
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-event-dialog.dtd428
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-event-dialog.properties541
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-extract.properties294
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-invitations-dialog.dtd19
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-invitations-dialog.properties10
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-occurrence-prompt.dtd7
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-occurrence-prompt.properties63
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar.dtd411
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar.properties696
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendarCreation.dtd51
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendarCreation.properties6
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/categories.properties7
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/dateFormat.properties146
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/dialogs/calendar-event-dialog-reminder.dtd19
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/global.dtd54
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/menuOverlay.dtd50
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/migration.dtd9
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/migration.properties13
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/provider-uninstall.dtd12
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/timezones.properties497
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/accounts.dtd33
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/accounts.properties9
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/commands.properties27
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/contacts.properties8
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/conversations.properties85
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/facebook.properties6
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/imtooltip.properties12
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/irc.properties209
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/logger.properties7
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/matrix.properties255
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/status.properties23
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/twitter.properties122
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/xmpp.properties280
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/yahoo.properties5
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/communicator/utilityOverlay.dtd43
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/accessibility.properties314
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/animationinspector.properties183
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/boxmodel.properties48
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/changes.properties64
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/components.properties53
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/debugger.properties1100
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/device.properties21
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/dom.properties27
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/filterwidget.properties59
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/font-inspector.properties69
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/har.properties30
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/inspector.properties602
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/jsonview.properties47
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/layout.properties129
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/memory.properties434
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/menus.properties29
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/netmonitor.properties1679
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/network-throttling.properties27
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/responsive.properties173
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/shared.properties26
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/sourceeditor.properties117
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/startup.properties248
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/styleeditor.properties74
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/toolbox.properties267
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/webconsole.properties579
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/accessibility.properties142
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/debugger.properties67
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/eyedropper.properties14
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/screenshot.properties148
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/shared.properties6
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/styleinspector.properties249
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/mac/accessible.properties71
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/mac/intl.properties7
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/mac/platformKeys.properties33
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/unix/accessible.properties21
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/unix/intl.properties7
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/unix/platformKeys.properties33
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/win/accessible.properties21
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/win/intl.properties7
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/win/platformKeys.properties33
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/aboutStudies.properties33
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/appstrings.properties37
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/autocomplete.properties9
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/browser.properties7
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/commonDialogs.properties46
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/contentAreaCommands.properties28
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/css.properties52
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/dialog.properties12
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/dom/dom.properties469
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/extensions.properties27
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/fallbackMenubar.properties8
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/filepicker.properties20
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/global-strres.properties5
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/intl.css11
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/intl.properties43
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/keys.properties78
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout/HtmlForm.properties35
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout/MediaDocument.properties22
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout/htmlparser.properties145
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout/xmlparser.properties48
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout_errors.properties53
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/mathml/mathml.properties15
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/narrate.properties25
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/nsWebBrowserPersist.properties17
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/printdialog.properties52
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/printing.properties56
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/resetProfile.properties14
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/security/caps.properties9
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/security/csp.properties125
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/security/security.properties167
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/svg/svg.properties5
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/viewSource.properties16
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/wizard.properties8
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/xslt/xslt.properties39
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/xul.properties5
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/lightning/lightning-toolbar.dtd51
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/lightning/lightning.dtd112
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/lightning/lightning.properties201
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-mapi/mapi.properties35
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-newsblog/am-newsblog.dtd14
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-newsblog/feed-subscriptions.dtd55
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-newsblog/newsblog.properties93
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-region/region.properties29
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/certFetchingStatus.dtd9
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgCompSMIMEOverlay.dtd16
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgCompSecurityInfo.dtd19
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgCompSecurityInfo.properties13
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgReadSMIMEOverlay.properties11
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgReadSecurityInfo.dtd17
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgSecurityInfo.properties36
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/AccountManager.dtd25
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/AccountWizard.dtd50
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/CustomHeaders.dtd11
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/FilterEditor.dtd67
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/FilterListDialog.dtd40
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/SearchDialog.dtd41
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/aboutDownloads.dtd23
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/aboutRights.properties6
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/aboutSupportMail.properties15
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/accountCreationModel.properties21
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/accountCreationUtil.properties34
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/activity.dtd19
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/activity.properties99
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addbuddy.dtd7
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abAddressBookNameDialog.dtd7
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abContactsPanel.dtd49
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abMailListDialog.dtd22
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abMainWindow.dtd14
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abResultsPane.dtd38
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/addressBook.properties179
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/ldapAutoCompErrs.properties109
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/pref-directory-add.dtd45
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/pref-directory.dtd17
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/replicationProgress.properties20
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-addressing.dtd51
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-advanced.dtd31
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-archiveoptions.dtd26
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-copies.dtd53
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-e2e.properties5
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-identities-list.dtd15
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-identity-edit.dtd17
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-im.dtd16
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-junk.dtd31
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-main.dtd49
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-mdn.dtd33
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-mdn.properties6
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-offline.dtd57
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-server-advanced.dtd31
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-server-top.dtd89
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-serverwithnoidentities.dtd6
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-smime.dtd47
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-smime.properties39
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/appUpdate.properties40
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/appleMailImportMsgs.properties21
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/baseMenuOverlay.dtd34
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/beckyImportMsgs.properties19
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/charsetTitles.properties84
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/chat.dtd44
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/chat.properties110
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/configEditorOverlay.dtd5
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/converterDialog.dtd11
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/converterDialog.properties41
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/custom.properties5
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/customizeToolbar.dtd18
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/customizeToolbar.properties11
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/downloadheaders.dtd27
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/editContactOverlay.dtd20
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/editContactOverlay.properties14
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/fieldMapImport.dtd17
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/filter.properties109
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/folderProps.dtd70
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/folderWidgets.properties12
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/folderpane.dtd7
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/gloda.properties175
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/glodaComplete.properties19
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/glodaFacetView.dtd29
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/glodaFacetView.properties171
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/imAccountWizard.dtd32
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/imAccounts.properties63
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/imapMsgs.properties268
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/importDialog.dtd48
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/importMsgs.properties304
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/joinChat.dtd10
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/junkLog.dtd10
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/localMsgs.properties140
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mailEditorOverlay.dtd6
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mailOverlay.dtd11
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mailViewList.dtd9
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mailViewSetup.dtd12
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mailviews.properties13
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/markByDate.dtd9
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messenger.dtd945
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messenger.properties769
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdAdvancedEdit.dtd18
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdColorPicker.dtd22
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdConvertToTable.dtd15
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdDialogOverlay.dtd18
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdNamedAnchorProperties.dtd9
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorColorProperties.dtd29
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorHLineProperties.dtd27
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorImageProperties.dtd79
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorInsertChars.dtd19
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorInsertMath.dtd21
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorInsertSource.dtd15
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorInsertTOC.dtd16
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorInsertTable.dtd18
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorLinkProperties.dtd6
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorListProperties.dtd20
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorPersonalDictionary.dtd18
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorReplace.dtd29
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorSpellCheck.dtd38
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorTableProperties.dtd75
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/composeMsgs.properties464
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/editor.properties208
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/editorOverlay.dtd303
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/mailComposeEditorOverlay.dtd9
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/messengercompose.dtd306
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/sendProgress.dtd8
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/sendProgress.properties21
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/migration/migration.dtd30
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/migration/migration.properties32
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mime.properties154
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mimeheader.properties35
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/morkImportMsgs.properties18
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgAccountCentral.dtd26
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgHdrViewOverlay.dtd114
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgSynchronize.dtd25
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgViewPickerOverlay.dtd23
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgmdn.properties18
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/multimessageview.dtd8
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/multimessageview.properties66
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/newFolderDialog.dtd16
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/news.properties56
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/newsError.dtd31
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/offline.properties28
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/offlineStartup.properties8
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/outlookImportMsgs.properties82
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/pgpmime.properties10
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/preferences/applicationManager.properties13
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/preferences/applications.properties13
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/preferences/messagestyle.properties13
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/preferences/preferences.properties100
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/prefs.properties90
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/profileDowngrade.dtd20
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/removeAccount.dtd22
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/removeAccount.properties5
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/renameFolderDialog.dtd9
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/sanitize.dtd36
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/seamonkeyImportMsgs.properties18
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/search-attributes.properties45
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/search-operators.properties31
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/search.properties27
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/searchTermOverlay.dtd19
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/shutdownWindow.properties10
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/smime.properties13
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/smtpEditOverlay.dtd24
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/subscribe.dtd22
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/subscribe.properties13
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/tabmail.dtd9
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/taskbar.properties8
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/telemetry.properties13
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/templateUtils.properties7
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/textImportMsgs.properties53
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/vCardImportMsgs.properties26
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/viewLog.dtd12
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/viewSource.dtd86
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/viewSource.properties17
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/viewZoomOverlay.dtd32
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/virtualFolderListDialog.dtd8
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/virtualFolderProperties.dtd22
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/wmImportMsgs.properties76
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozapps/downloads/downloads.properties6
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozapps/downloads/unknownContentType.properties23
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozapps/profile/profileSelection.properties55
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozapps/update/updates.properties45
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozldap/ldap.properties272
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/necko/necko.properties100
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/passwordmgr/passwordmgr.properties79
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/pipnss/nsserrors.properties331
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/pipnss/pipnss.properties136
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/pippki/pippki.properties76
-rw-r--r--thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/places/places.properties33
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/branding/brand.ftl22
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/browser/appExtensionFields.ftl16
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/browser/branding/brandings.ftl18
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/browser/components/mozFiveStar.ftl9
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/browser/components/mozSupportLink.ftl5
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-context-menus.ftl10
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-delete-prompt.ftl35
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-editable-item.ftl30
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-event-dialog-reminder.ftl10
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-event-listing.ftl71
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-ics-file-dialog.ftl46
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-invitation-panel.ftl115
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-invitations-dialog.ftl10
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-itip-identity-dialog.ftl8
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-print.ftl17
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-recurrence-dialog.ftl8
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-summary-dialog.ftl17
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-uri-redirect-dialog.ftl12
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-widgets.ftl111
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/calendar/category-dialog.ftl7
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/calendar/preferences.ftl188
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/chat/matrix.ftl24
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/crashreporter/aboutcrashes.ftl31
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/aboutdebugging.ftl400
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/accessibility.ftl99
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/application.ftl147
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/compatibility.ftl54
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/perftools.ftl159
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/storage.ftl132
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/styleeditor.ftl56
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/toolbox-options.ftl133
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/toolbox.ftl55
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/tooltips.ftl94
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/devtools/shared/debugger-paused-reasons.ftl87
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/devtools/shared/highlighters.ftl67
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/devtools/shared/webconsole-commands.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/devtools/startup/key-shortcuts.ftl38
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/dom/XMLPrettyPrint.ftl5
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/dom/media.ftl6
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/locales-preview/aboutTranslations.ftl28
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/about3Pane.ftl415
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutAddonsExtra.ftl12
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutDialog.ftl48
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutImport.ftl179
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutProfilesExtra.ftl5
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutRights.ftl36
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutSupportCalendar.ftl33
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutSupportChat.ftl11
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutSupportMail.ftl30
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountCentral.ftl65
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountManager.ftl14
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountProvisioner.ftl57
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountcreation/accountHub.ftl79
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountcreation/accountSetup.ftl292
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addonNotifications.ftl122
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/abCardDAVDialog.ftl24
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/abCardDAVProperties.ftl33
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/aboutAddressBook.ftl269
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/fieldMapImport.ftl12
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/vcard.ftl138
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/appmenu.ftl200
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/chat-verifySession.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/chat.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/compactFoldersDialog.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/exportDialog.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/extensionPermissions.ftl23
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/extensions/popup.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/extensionsUI.ftl6
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/firefoxAccounts.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/flatpak.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/folderprops.ftl10
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/importDialog.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/mailWidgets.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/menubar.ftl52
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/messageheader/headerFields.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/messenger.ftl178
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/messengercompose/messengercompose.ftl136
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/migration.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/multimessageview.ftl14
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/backupKeyPassword.ftl17
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/changeExpiryDlg.ftl22
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/composeKeyStatus.ftl16
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/keyAssistant.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/keyWizard.ftl192
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/msgReadStatus.ftl48
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/oneRecipientStatus.ftl31
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/openpgp-frontend.ftl63
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/openpgp.ftl676
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/add-finger.ftl14
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/am-im-otr.ftl18
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/auth.ftl37
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/chat.ftl19
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/finger-sync.ftl12
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/finger.ftl16
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/otr.ftl20
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/otrUI.ftl69
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/policies/aboutPolicies.ftl17
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/policies/policies-descriptions.ftl94
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/am-copies.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/am-im.ftl6
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/application-manager.ftl7
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/attachment-reminder.ftl21
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/colors.ftl36
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/connection.ftl88
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/cookies.ftl43
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/dock-options.ftl16
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/fonts.ftl134
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/languages.ftl33
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/new-tag.ftl13
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/notifications.ftl29
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/offline.ftl43
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/passwordManager.ftl83
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/permissions.ftl43
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/preferences.ftl653
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/receipts.ftl15
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/sync-dialog.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/system-integration.ftl39
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/shortcuts.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/treeView.ftl9
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/troubleshootMode.ftl33
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/unifiedToolbar.ftl38
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/unifiedToolbarItems.ftl117
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/messenger/viewSource.ftl19
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/security/certificates/certManager.ftl228
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/security/certificates/deviceManager.ftl133
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/security/pippki/pippki.ftl106
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/services/accounts.ftl8
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutAbout.ftl9
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutAddons.ftl498
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutCompat.ftl22
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutGlean.ftl97
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutHttpsOnlyError.ftl30
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutLogging.ftl67
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutMozilla.ftl9
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutNetworking.ftl68
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutPerformance.ftl67
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutPlugins.ftl43
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutProcesses.ftl200
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutProfiles.ftl74
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutReader.ftl52
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutRights.ftl42
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutServiceWorkers.ftl40
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutSupport.ftl414
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutTelemetry.ftl136
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutThirdParty.ftl85
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutWebauthn.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutWebrtc.ftl316
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutWindowsMessages.ftl20
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/abuseReports.ftl116
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/certviewer.ftl122
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/config.ftl55
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/url-classifier.ftl58
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/branding/accounts.ftl7
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/branding/brandings.ftl45
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/contentanalysis/contentanalysis.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/downloads/downloadUI.ftl51
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/downloads/downloadUtils.ftl106
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/featuregates/features.ftl48
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/formautofill/formAutofill.ftl16
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/alert.ftl12
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/appPicker.ftl10
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/browser-utils.ftl11
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/commonDialog.ftl20
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/contextual-identity.ftl29
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/cookieBannerHandling.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/createProfileWizard.ftl53
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/cspErrors.ftl32
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/datepicker.ftl50
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/datetimebox.ftl42
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/extensionPermissions.ftl33
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/extensions.ftl112
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/handlerDialog.ftl108
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/htmlForm.ftl14
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/mozCard.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/mozFiveStar.ftl9
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/mozMessageBar.ftl15
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/mozSupportLink.ftl5
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/notification.ftl16
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/popupnotification.ftl10
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/processTypes.ftl61
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/profileDowngrade.ftl18
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/profileSelection.ftl30
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/resetProfile.ftl15
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/resistFingerPrinting.ftl6
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/run-from-dmg.ftl28
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/tabprompts.ftl13
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/textActions.ftl64
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/timepicker.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/tree.ftl6
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/unknownContentType.ftl42
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/videocontrols.ftl69
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/wizard.ftl37
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/intl/languageNames.ftl215
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/intl/regionNames.ftl280
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/main-window/autocomplete.ftl23
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/main-window/findbar.ftl76
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/neterror/certError.ftl141
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/neterror/netError.ftl147
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/neterror/nsserrors.ftl344
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/passwordmgr/passwordmgr.ftl33
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/payments/payments.ftl51
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/pdfviewer/viewer.ftl349
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/pictureinpicture/pictureinpicture.ftl86
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/preferences/preferences.ftl39
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/printing/printDialogs.ftl112
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/printing/printPreview.ftl73
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/printing/printUI.ftl148
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/reportBrokenSite/reportBrokenSite.ftl3
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/updates/backgroundupdate.ftl5
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/updates/elevation.ftl22
-rw-r--r--thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/updates/history.ftl29
-rw-r--r--thunderbird-l10n/pt-PT/manifest.json56
517 files changed, 39004 insertions, 0 deletions
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/branding/brand.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/branding/brand.dtd
new file mode 100644
index 0000000000..53d94a454b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/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 "O Mozilla Thunderbird e os logótipos do Thunderbird
+ são marcas registadas da Fundação Mozilla.">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/branding/brand.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/branding/brand.properties
new file mode 100644
index 0000000000..9dd5011219
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/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/pt-PT/chrome/pt-PT/locale/pdfviewer/chrome.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pdfviewer/chrome.properties
new file mode 100644
index 0000000000..f85ed353c0
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pdfviewer/chrome.properties
@@ -0,0 +1,20 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=Este documento PDF poderá não ser mostrado corretamente.
+unsupported_feature_forms=Este documento PDF contém formulários. O preenchimento dos campos não é suportado.
+unsupported_feature_signatures=Este documento PDF contém assinaturas digitais. A validação de assinaturas não é suportada.
+open_with_different_viewer=Abrir com outro visualizador
+open_with_different_viewer.accessKey=o
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pdfviewer/viewer.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pdfviewer/viewer.properties
new file mode 100644
index 0000000000..cc44f9fdbd
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pdfviewer/viewer.properties
@@ -0,0 +1,302 @@
+# 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=Página anterior
+previous_label=Anterior
+next.title=Página seguinte
+next_label=Seguinte
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Página
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=de {{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}} de {{pagesCount}})
+
+zoom_out.title=Reduzir
+zoom_out_label=Reduzir
+zoom_in.title=Ampliar
+zoom_in_label=Ampliar
+zoom.title=Zoom
+presentation_mode.title=Trocar para o modo de apresentação
+presentation_mode_label=Modo de apresentação
+open_file.title=Abrir ficheiro
+open_file_label=Abrir
+print.title=Imprimir
+print_label=Imprimir
+save.title=Guardar
+save_label=Guardar
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Transferir
+# LOCALIZATION NOTE (download_button_label): used in Firefox for Android as a label for the download button (“download” is a verb).
+# Length of the translation matters since we are in a mobile context, with limited screen estate.
+download_button_label=Transferir
+bookmark1.title=Página atual (ver URL da página atual)
+bookmark1_label=Pagina atual
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Abrir na aplicação
+# 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=Abrir na aplicação
+
+# Secondary toolbar and context menu
+tools.title=Ferramentas
+tools_label=Ferramentas
+first_page.title=Ir para a primeira página
+first_page_label=Ir para a primeira página
+last_page.title=Ir para a última página
+last_page_label=Ir para a última página
+page_rotate_cw.title=Rodar à direita
+page_rotate_cw_label=Rodar à direita
+page_rotate_ccw.title=Rodar à esquerda
+page_rotate_ccw_label=Rodar à esquerda
+
+cursor_text_select_tool.title=Ativar ferramenta de seleção de texto
+cursor_text_select_tool_label=Ferramenta de seleção de texto
+cursor_hand_tool.title=Ativar ferramenta de mão
+cursor_hand_tool_label=Ferramenta de mão
+
+scroll_page.title=Utilizar deslocamento da página
+scroll_page_label=Deslocamento da página
+scroll_vertical.title=Utilizar deslocação vertical
+scroll_vertical_label=Deslocação vertical
+scroll_horizontal.title=Utilizar deslocação horizontal
+scroll_horizontal_label=Deslocação horizontal
+scroll_wrapped.title=Utilizar deslocação encapsulada
+scroll_wrapped_label=Deslocação encapsulada
+
+spread_none.title=Não juntar páginas dispersas
+spread_none_label=Sem spreads
+spread_odd.title=Juntar páginas dispersas a partir de páginas com números ímpares
+spread_odd_label=Spreads ímpares
+spread_even.title=Juntar páginas dispersas a partir de páginas com números pares
+spread_even_label=Spreads pares
+
+# Document properties dialog box
+document_properties.title=Propriedades do documento…
+document_properties_label=Propriedades do documento…
+document_properties_file_name=Nome do ficheiro:
+document_properties_file_size=Tamanho do ficheiro:
+# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
+# will be replaced by the PDF file size in kilobytes, respectively in bytes.
+document_properties_kb={{size_kb}} KB ({{size_b}} bytes)
+# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
+# will be replaced by the PDF file size in megabytes, respectively in bytes.
+document_properties_mb={{size_mb}} MB ({{size_b}} bytes)
+document_properties_title=Título:
+document_properties_author=Autor:
+document_properties_subject=Assunto:
+document_properties_keywords=Palavras-chave:
+document_properties_creation_date=Data de criação:
+document_properties_modification_date=Data de modificação:
+# 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=Criador:
+document_properties_producer=Produtor de PDF:
+document_properties_version=Versão do PDF:
+document_properties_page_count=N.º de páginas:
+document_properties_page_size=Tamanho da página:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=retrato
+document_properties_page_size_orientation_landscape=paisagem
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Carta
+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=Vista rápida web:
+document_properties_linearized_yes=Sim
+document_properties_linearized_no=Não
+document_properties_close=Fechar
+
+print_progress_message=A preparar o documento para impressão…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Cancelar
+
+# 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=Alternar barra lateral
+toggle_sidebar_notification2.title=Alternar barra lateral (o documento contém contornos/anexos/camadas)
+toggle_sidebar_label=Alternar barra lateral
+document_outline.title=Mostrar esquema do documento (duplo clique para expandir/colapsar todos os itens)
+document_outline_label=Esquema do documento
+attachments.title=Mostrar anexos
+attachments_label=Anexos
+layers.title=Mostrar camadas (clique duas vezes para repor todas as camadas para o estado predefinido)
+layers_label=Camadas
+thumbs.title=Mostrar miniaturas
+thumbs_label=Miniaturas
+current_outline_item.title=Encontrar o item atualmente destacado
+current_outline_item_label=Item atualmente destacado
+findbar.title=Localizar em documento
+findbar_label=Localizar
+
+additional_layers=Camadas adicionais
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Página {{page}}
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Página {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniatura da página {{page}}
+
+# Find panel button title and messages
+find_input.title=Localizar
+find_input.placeholder=Localizar em documento…
+find_previous.title=Localizar ocorrência anterior da frase
+find_previous_label=Anterior
+find_next.title=Localizar ocorrência seguinte da frase
+find_next_label=Seguinte
+find_highlight=Destacar tudo
+find_match_case_label=Correspondência
+find_match_diacritics_label=Corresponder diacríticos
+find_entire_word_label=Palavras completas
+find_reached_top=Topo do documento atingido, a continuar a partir do fundo
+find_reached_bottom=Fim do documento atingido, a continuar a partir do topo
+# 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}} de {{total}} correspondência
+find_match_count[two]={{current}} de {{total}} correspondências
+find_match_count[few]={{current}} de {{total}} correspondências
+find_match_count[many]={{current}} de {{total}} correspondências
+find_match_count[other]={{current}} de {{total}} correspondências
+# 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]=Mais de {{limit}} correspondências
+find_match_count_limit[one]=Mais de {{limit}} correspondência
+find_match_count_limit[two]=Mais de {{limit}} correspondências
+find_match_count_limit[few]=Mais de {{limit}} correspondências
+find_match_count_limit[many]=Mais de {{limit}} correspondências
+find_match_count_limit[other]=Mais de {{limit}} correspondências
+find_not_found=Frase não encontrada
+
+# Predefined zoom values
+page_scale_width=Ajustar à largura
+page_scale_fit=Ajustar à página
+page_scale_auto=Zoom automático
+page_scale_actual=Tamanho real
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=Ocorreu um erro ao carregar o PDF.
+invalid_file_error=Ficheiro PDF inválido ou danificado.
+missing_file_error=Ficheiro PDF inexistente.
+unexpected_response_error=Resposta inesperada do servidor.
+rendering_error=Ocorreu um erro ao processar a página.
+
+# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
+# replaced by the modification date, and time, of the annotation.
+annotation_date_string={{date}}, {{time}}
+
+# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[Anotação {{type}}]
+password_label=Introduza a palavra-passe para abrir este ficheiro PDF.
+password_invalid=Palavra-passe inválida. Por favor, tente novamente.
+password_ok=OK
+password_cancel=Cancelar
+
+printing_not_supported=Aviso: a impressão não é totalmente suportada por este navegador.
+printing_not_ready=Aviso: o PDF ainda não está totalmente carregado.
+web_fonts_disabled=Os tipos de letra web estão desativados: não é possível utilizar os tipos de letra PDF embutidos.
+
+# Editor
+editor_free_text2.title=Texto
+editor_free_text2_label=Texto
+editor_ink2.title=Desenhar
+editor_ink2_label=Desenhar
+
+editor_stamp1.title=Adicionar ou editar imagens
+editor_stamp1_label=Adicionar ou editar imagens
+
+free_text2_default_content=Começar a digitar…
+
+# Editor Parameters
+editor_free_text_color=Cor
+editor_free_text_size=Tamanho
+editor_ink_color=Cor
+editor_ink_thickness=Espessura
+editor_ink_opacity=Opacidade
+
+editor_stamp_add_image_label=Adicionar imagem
+editor_stamp_add_image.title=Adicionar imagem
+
+# Editor aria
+editor_free_text2_aria_label=Editor de texto
+editor_ink2_aria_label=Editor de desenho
+editor_ink_canvas_aria_label=Imagem criada pelo utilizador
+
+# Alt-text dialog
+# LOCALIZATION NOTE (editor_alt_text_button_label): Alternative text (alt text) helps
+# when people can't see the image.
+editor_alt_text_button_label=Texto alternativo
+editor_alt_text_edit_button_label=Editar texto alternativo
+editor_alt_text_dialog_label=Escolher uma opção
+editor_alt_text_dialog_description=O texto alternativo (texto alternativo) ajuda quando as pessoas não conseguem ver a imagem ou quando a mesma não é carregada.
+editor_alt_text_add_description_label=Adicionar uma descrição
+editor_alt_text_add_description_description=Aponte para 1-2 frases que descrevam o assunto, definição ou ações.
+editor_alt_text_mark_decorative_label=Marcar como decorativa
+editor_alt_text_mark_decorative_description=Isto é utilizado para imagens decorativas, tais como limites ou marcas d'água.
+editor_alt_text_cancel_button=Cancelar
+editor_alt_text_save_button=Guardar
+editor_alt_text_decorative_tooltip=Marcada como decorativa
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=Por exemplo, “Um jovem senta-se à mesa para comer uma refeição”
+
+# Editor resizers
+# LOCALIZATION NOTE (editor_resizer_label_topLeft): This is used in an aria label to help to understand the role of the resizer.
+editor_resizer_label_topLeft=Canto superior esquerdo — redimensionar
+# LOCALIZATION NOTE (editor_resizer_label_topMiddle): This is used in an aria label to help to understand the role of the resizer.
+editor_resizer_label_topMiddle=Superior ao centro — redimensionar
+# LOCALIZATION NOTE (editor_resizer_label_topRight): This is used in an aria label to help to understand the role of the resizer.
+editor_resizer_label_topRight=Canto superior direito — redimensionar
+# LOCALIZATION NOTE (editor_resizer_label_middleRight): This is used in an aria label to help to understand the role of the resizer.
+editor_resizer_label_middleRight=Centro à direita — redimensionar
+# LOCALIZATION NOTE (editor_resizer_label_bottomRight): This is used in an aria label to help to understand the role of the resizer.
+editor_resizer_label_bottomRight=Canto inferior direito — redimensionar
+# LOCALIZATION NOTE (editor_resizer_label_bottomMiddle): This is used in an aria label to help to understand the role of the resizer.
+editor_resizer_label_bottomMiddle=Inferior ao centro — redimensionar
+# LOCALIZATION NOTE (editor_resizer_label_bottomLeft): This is used in an aria label to help to understand the role of the resizer.
+editor_resizer_label_bottomLeft=Canto inferior esquerdo — redimensionar
+# LOCALIZATION NOTE (editor_resizer_label_middleLeft): This is used in an aria label to help to understand the role of the resizer.
+editor_resizer_label_middleLeft=Centro à esquerda — redimensionar
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/alerts/alert.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/alerts/alert.properties
new file mode 100644
index 0000000000..6d71247aae
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/alerts/alert.properties
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE(closeButton.title): Used as the close button text for web notifications on OS X.
+# This should ideally match the string that OS X uses for the close button on alert-type
+# notifications. OS X will truncate the value if it's too long.
+closeButton.title = Fechar
+# 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 = Desativar notificações de %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 = Definições de notificações
+
+# LOCALIZATION NOTE(pauseNotifications.label): %S is replaced with the
+# brandShortName of the application.
+pauseNotifications.label = Pausar notificações até o %S reiniciar
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/autoconfig/autoconfig.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/autoconfig/autoconfig.properties
new file mode 100644
index 0000000000..f1054ae8d2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 = Erro de configuração
+readConfigMsg = Falha ao ler o ficheiro de configurações. Por favor, contacte o seu administrador de sistema.
+
+autoConfigTitle = Alerta de configuração
+autoConfigMsg = O Netscape.cfg/AutoConfig falhou. Por favor, contacte o seu administrador de sistema. \n Erro: o %S falhou:
+
+emailPromptTitle = Endereço de email
+emailPromptMsg = Introduza o seu endereço de email
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-alarms.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-alarms.properties
new file mode 100644
index 0000000000..00d2b0bb0b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=O momento em que o evento inicia
+reminderTitleAtStartTask=O momento em que a tarefa inicia
+reminderTitleAtEndEvent=O momento em que o evento termina
+reminderTitleAtEndTask=O momento em que a tarefa termina
+
+# 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=Lembrança de toque para %1$S
+
+reminderCustomOriginBeginBeforeEvent=antes do evento iniciar
+reminderCustomOriginBeginAfterEvent=depois do evento iniciar
+reminderCustomOriginEndBeforeEvent=antes do evento terminar
+reminderCustomOriginEndAfterEvent=depois do evento terminar
+reminderCustomOriginBeginBeforeTask=antes da tarefa iniciar
+reminderCustomOriginBeginAfterTask=depois da tarefa iniciar
+reminderCustomOriginEndBeforeTask=antes da tarefa terminar
+reminderCustomOriginEndAfterTask=depois da tarefa terminar
+
+reminderErrorMaxCountReachedEvent=O calendário selecionado tem um limite de #1 lembrete por evento.;O calendário selecionado tem o limite de #1 lembretes por evento.
+reminderErrorMaxCountReachedTask=O calendário selecionado tem um limite de #1 lembrete por tarefa.;O calendário selecionado tem o limite de #1 lembretes por tarefa.
+
+# 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=Os lembretes para calendários de leitura atualmente não podem ser suspensos, apenas dispensados - o botão '%1$S' irá apenas suspender lembretes para calendários editáveis.
+# LOCALIZATION NOTE (reminderDisabledSnoozeButtonTooltip)
+# This tooltip is only displayed, if the button is disabled
+reminderDisabledSnoozeButtonTooltip=A suspensão de um lembrete não é suportada para calendários de leitura
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-event-dialog-attendees.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-event-dialog-attendees.properties
new file mode 100644
index 0000000000..bb9abcb90d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 = Participante obrigatório
+event.attendee.role.optional = Participante opcional
+event.attendee.role.nonparticipant = Não participante
+event.attendee.role.chair = Cadeira
+event.attendee.role.unknown = Participante desconhecido (%1$S)
+
+event.attendee.usertype.individual = Individual
+event.attendee.usertype.group = Grupo
+event.attendee.usertype.resource = Recurso
+event.attendee.usertype.room = Quarto
+event.attendee.usertype.unknown = Tipo desconhecido (%1$S)
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-event-dialog.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-event-dialog.dtd
new file mode 100644
index 0000000000..a7eacbb9d3
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-event-dialog.dtd
@@ -0,0 +1,428 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY event.title.label "Editar item" >
+
+<!ENTITY event.dialog.keepDurationButton.tooltip "Manter duração ao alterar a data de fim">
+<!ENTITY event.dialog.keepDurationButton.accesskey "M">
+
+<!ENTITY newevent.from.label "De" >
+<!ENTITY newevent.to.label "Para" >
+
+<!ENTITY newevent.status.label "Estado" >
+<!ENTITY newevent.status.accesskey "s" >
+<!ENTITY newevent.eventStatus.none.label "Não especificado" >
+<!ENTITY newevent.eventStatus.none.accesskey "o" >
+<!ENTITY newevent.todoStatus.none.label "Não especificado" >
+<!ENTITY newevent.eventStatus.cancelled.label "Cancelado" >
+<!ENTITY newevent.eventStatus.cancelled.accesskey "n" >
+<!ENTITY newevent.todoStatus.cancelled.label "Cancelado" >
+<!ENTITY newevent.status.tentative.label "Tentativa" >
+<!ENTITY newevent.status.tentative.accesskey "T" >
+<!ENTITY newevent.status.confirmed.label "Confirmado" >
+<!ENTITY newevent.status.confirmed.accesskey "C" >
+<!ENTITY newevent.status.needsaction.label "Requer ação" >
+<!ENTITY newevent.status.inprogress.label "Em curso" >
+<!ENTITY newevent.status.completed.label "Concluído a" >
+
+<!-- The following entity is for New Task dialog only -->
+<!ENTITY newtodo.percentcomplete.label "&#037; concluído">
+
+<!-- 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 "Notificar participantes">
+<!ENTITY event.attendees.notify.accesskey "f">
+<!ENTITY event.attendees.notifyundisclosed.label "Separar convite por participante">
+<!ENTITY event.attendees.notifyundisclosed.accesskey "x">
+<!ENTITY event.attendees.notifyundisclosed.tooltip "Esta opção envia um convite de email por pessoa. Cada convite apenas contém um destinatário pelo que outros convidados não serão identificados.">
+<!ENTITY event.attendees.disallowcounter.label "Desativar contraproposta">
+<!ENTITY event.attendees.disallowcounter.accesskey "a">
+<!ENTITY event.attendees.disallowcounter.tooltip "Indica que não irá aceitar contrapropostas">
+
+<!-- Keyboard Shortcuts -->
+<!ENTITY event.dialog.new.event.key2 "I">
+<!ENTITY event.dialog.new.task.key2 "D">
+<!ENTITY event.dialog.new.message.key2 "N">
+<!ENTITY event.dialog.close.key "W">
+<!ENTITY event.dialog.save.key "S">
+<!ENTITY event.dialog.saveandclose.key "L">
+<!ENTITY event.dialog.print.key "P">
+<!ENTITY event.dialog.undo.key "Z">
+<!ENTITY event.dialog.redo.key "Y">
+<!ENTITY event.dialog.cut.key "X">
+<!ENTITY event.dialog.copy.key "C">
+<!ENTITY event.dialog.paste.key "V">
+<!ENTITY event.dialog.select.all.key "A">
+
+<!-- Menubar -->
+<!ENTITY event.menu.item.new.label "Novo">
+<!ENTITY event.menu.item.new.accesskey "N">
+<!ENTITY event.menu.item.new.event.label "Evento">
+<!ENTITY event.menu.item.new.event.accesskey "E">
+<!ENTITY event.menu.item.new.task.label "Tarefa">
+<!ENTITY event.menu.item.new.task.accesskey "T">
+<!ENTITY event.menu.item.new.message.label "Mensagem">
+<!ENTITY event.menu.item.new.message.accesskey "M">
+<!ENTITY event.menu.item.new.contact.label "Contacto do livro de endereços">
+<!ENTITY event.menu.item.new.contact.accesskey "C">
+<!ENTITY event.menu.item.close.label "Fechar">
+<!ENTITY event.menu.item.close.accesskey "F">
+
+<!-- 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 "Guardar">
+<!ENTITY event.menu.item.save.accesskey "G">
+<!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 "Guardar e fechar">
+<!ENTITY event.menu.item.saveandclose.accesskey "f">
+<!ENTITY event.menu.item.saveandclose.tab.accesskey "z">
+
+<!ENTITY event.menu.item.delete.label "Apagar…">
+<!ENTITY event.menu.item.delete.accesskey "A">
+<!ENTITY event.menu.item.page.setup.label "Configurar página">
+<!ENTITY event.menu.item.page.setup.accesskey "u">
+<!ENTITY event.menu.item.print.label "Imprimir">
+<!ENTITY event.menu.item.print.accesskey "I">
+
+<!ENTITY event.menu.edit.label "Editar">
+<!ENTITY event.menu.edit.accesskey "E">
+<!ENTITY event.menu.edit.undo.label "Desfazer">
+<!ENTITY event.menu.edit.undo.accesskey "u">
+<!ENTITY event.menu.edit.redo.label "Refazer">
+<!ENTITY event.menu.edit.redo.accesskey "R">
+<!ENTITY event.menu.edit.cut.label "Cortar">
+<!ENTITY event.menu.edit.cut.accesskey "t">
+<!ENTITY event.menu.edit.copy.label "Copiar">
+<!ENTITY event.menu.edit.copy.accesskey "C">
+<!ENTITY event.menu.edit.paste.label "Colar">
+<!ENTITY event.menu.edit.paste.accesskey "o">
+<!ENTITY event.menu.edit.select.all.label "Selecionar tudo">
+<!ENTITY event.menu.edit.select.all.accesskey "t">
+
+<!ENTITY event.menu.view.label "Ver">
+<!ENTITY event.menu.view.accesskey "V">
+<!ENTITY event.menu.view.toolbars.label "Barras de ferramentas">
+<!ENTITY event.menu.view.toolbars.accesskey "t">
+<!ENTITY event.menu.view.toolbars.event.label "Barra de eventos">
+<!ENTITY event.menu.view.toolbars.event.accesskey "e">
+<!ENTITY event.menu.view.toolbars.customize.label "Personalizar…">
+<!ENTITY event.menu.view.toolbars.customize.accesskey "P">
+<!ENTITY event.menu.view.showlink.label "Mostrar ligações relacionadas">
+<!ENTITY event.menu.view.showlink.accesskey "r">
+
+<!ENTITY event.menu.options.label "Opções">
+<!ENTITY event.menu.options.accesskey "O">
+<!ENTITY event.menu.options.attendees.label "Convidar participantes…">
+<!ENTITY event.menu.options.attendees.accesskey "i">
+<!ENTITY event.menu.options.timezone2.label "Mostrar fusos horários">
+<!ENTITY event.menu.options.timezone2.accesskey "s">
+<!ENTITY event.menu.options.priority2.label "Prioridade">
+<!ENTITY event.menu.options.priority2.accesskey "d">
+<!ENTITY event.menu.options.priority.notspecified.label "Não especificada">
+<!ENTITY event.menu.options.priority.notspecified.accesskey "o">
+<!ENTITY event.menu.options.priority.low.label "Baixa">
+<!ENTITY event.menu.options.priority.low.accesskey "B">
+<!ENTITY event.menu.options.priority.normal.label "Normal">
+<!ENTITY event.menu.options.priority.normal.accesskey "N">
+<!ENTITY event.menu.options.priority.high.label "Alta">
+<!ENTITY event.menu.options.priority.high.accesskey "A">
+<!ENTITY event.menu.options.privacy.label "Privacidade">
+<!ENTITY event.menu.options.privacy.accesskey "P">
+<!ENTITY event.menu.options.privacy.public.label "Evento público">
+<!ENTITY event.menu.options.privacy.public.accesskey "v">
+<!ENTITY event.menu.options.privacy.confidential.label "Mostrar apenas data e hora">
+<!ENTITY event.menu.options.privacy.confidential.accesskey "s">
+<!ENTITY event.menu.options.privacy.private.label "Evento privado">
+<!ENTITY event.menu.options.privacy.private.accesskey "r">
+<!ENTITY event.menu.options.show.time.label "Mostrar hora como">
+<!ENTITY event.menu.options.show.time.accesskey "h">
+<!ENTITY event.menu.options.show.time.busy.label "Ocupado">
+<!ENTITY event.menu.options.show.time.busy.accesskey "O">
+<!ENTITY event.menu.options.show.time.free.label "Livre">
+<!ENTITY event.menu.options.show.time.free.accesskey "i">
+
+<!ENTITY event.invite.attendees.label "Convidar participantes…">
+<!ENTITY event.invite.attendees.accesskey "i">
+<!ENTITY event.email.attendees.label "Criar e-mail para todos participantes…">
+<!ENTITY event.email.attendees.accesskey "a">
+<!ENTITY event.email.tentative.attendees.label "Criar e-mail para os participantes indecisos…">
+<!ENTITY event.email.tentative.attendees.accesskey "m">
+<!ENTITY event.remove.attendees.label2 "Remover todos os participantes">
+<!ENTITY event.remove.attendees.accesskey "r">
+<!ENTITY event.remove.attendee.label "Remover participante">
+<!ENTITY event.remove.attendee.accesskey "e">
+
+<!-- Toolbar -->
+<!ENTITY event.toolbar.save.label2 "Guardar">
+<!ENTITY event.toolbar.saveandclose.label "Guardar e fechar">
+<!ENTITY event.toolbar.delete.label "Apagar">
+<!ENTITY event.toolbar.attendees.label "Convidar participantes">
+<!ENTITY event.toolbar.privacy.label "Privacidade">
+
+<!ENTITY event.toolbar.save.tooltip2 "Guardar">
+<!ENTITY event.toolbar.saveandclose.tooltip "Guardar e fechar">
+<!ENTITY event.toolbar.delete.tooltip "Apagar">
+<!ENTITY event.toolbar.attendees.tooltip "Convidar participantes">
+<!ENTITY event.toolbar.attachments.tooltip "Adicionar anexos">
+<!ENTITY event.toolbar.privacy.tooltip "Alterar privacidade">
+<!ENTITY event.toolbar.priority.tooltip "Alterar prioridade">
+<!ENTITY event.toolbar.status.tooltip "Alterar estado">
+<!ENTITY event.toolbar.freebusy.tooltip "Alterar hora de ocupado/livre">
+
+<!-- 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 "Aplicar proposta">
+<!ENTITY counter.button.proposal.accesskey "p">
+<!ENTITY counter.button.proposal.tooltip2 "Os campos do evento serão preenchidos com os valores da contra-proposta. A penas a gravação com ou sem alterações adicionais notificarão os participante envolvidos">
+<!ENTITY counter.button.original.label "Aplicar dados originais">
+<!ENTITY counter.button.original.accesskey "r">
+<!ENTITY counter.button.original.tooltip2 "Os campos serão preenchidos com os valores do evento original, antes da contra-proposta ter sido efetuada">
+
+<!-- Main page -->
+<!ENTITY event.title.textbox.label "Título:" >
+<!ENTITY event.title.textbox.accesskey "T">
+<!ENTITY event.location.label "Localização:" >
+<!ENTITY event.location.accesskey "L">
+<!ENTITY event.categories.label "Categoria:">
+<!ENTITY event.categories.accesskey "i">
+<!ENTITY event.categories.textbox.label "Adicionar uma categoria" >
+<!ENTITY event.calendar.label "Calendário:" >
+<!ENTITY event.calendar.accesskey "C">
+<!ENTITY event.attendees.label "Participantes:" >
+<!ENTITY event.attendees.accesskey "n">
+<!ENTITY event.alldayevent.label "Evento de dia completo" >
+<!ENTITY event.alldayevent.accesskey "d">
+<!ENTITY event.from.label "Início:" >
+<!ENTITY event.from.accesskey "c">
+<!ENTITY task.from.label "Início:" >
+<!ENTITY task.from.accesskey "c">
+<!ENTITY event.to.label "Fim:" >
+<!ENTITY event.to.accesskey "u">
+<!ENTITY task.to.label "Fim previsto:" >
+<!ENTITY task.to.accesskey "v">
+<!ENTITY task.status.label "Estado:" >
+<!ENTITY task.status.accesskey "a">
+<!ENTITY event.repeat.label "Repetir:" >
+<!ENTITY event.repeat.accesskey "R">
+<!ENTITY event.until.label "Até:">
+<!ENTITY event.until.accesskey "B">
+<!ENTITY event.reminder.label "Lembrete:" >
+<!ENTITY event.reminder.accesskey "m">
+<!ENTITY event.description.label "Descrição:" >
+<!ENTITY event.description.accesskey "c">
+<!ENTITY event.attachments.label "Anexos:" >
+<!ENTITY event.attachments.accesskey "x" >
+<!ENTITY event.attachments.menubutton.label "Anexar">
+<!ENTITY event.attachments.menubutton.accesskey "A">
+<!ENTITY event.attachments.url.label "Página web…">
+<!ENTITY event.attachments.url.accesskey "w">
+<!ENTITY event.attachments.popup.remove.label "Remover" >
+<!ENTITY event.attachments.popup.remove.accesskey "R" >
+<!ENTITY event.attachments.popup.open.label "Abrir" >
+<!ENTITY event.attachments.popup.open.accesskey "A" >
+<!ENTITY event.attachments.popup.removeAll.label "Remover tudo" >
+<!ENTITY event.attachments.popup.removeAll.accesskey "t" >
+<!ENTITY event.attachments.popup.attachPage.label "Anexar página Web…" >
+<!ENTITY event.attachments.popup.attachPage.accesskey "g" >
+<!ENTITY event.url.label "Ligação relacionada:" >
+<!ENTITY event.priority2.label "Prioridade:">
+
+<!ENTITY event.reminder.none.label "Sem lembrete " >
+<!ENTITY event.reminder.0minutes.before.label "0 minutos antes" >
+<!ENTITY event.reminder.5minutes.before.label "5 minutos antes" >
+<!ENTITY event.reminder.15minutes.before.label "15 minutos antes" >
+<!ENTITY event.reminder.30minutes.before.label "30 minutos antes" >
+<!ENTITY event.reminder.1hour.before.label "1 hora antes" >
+<!ENTITY event.reminder.2hours.before.label "2 horas antes" >
+<!ENTITY event.reminder.12hours.before.label "12 horas antes" >
+<!ENTITY event.reminder.1day.before.label "1 dia antes" >
+<!ENTITY event.reminder.2days.before.label "2 dias antes" >
+<!ENTITY event.reminder.1week.before.label "1 semana antes" >
+<!ENTITY event.reminder.custom.label "Personalizar…" >
+
+<!ENTITY event.reminder.multiple.label "Múltiplos lembretes…" >
+
+<!ENTITY event.statusbarpanel.freebusy.label "Hora como:">
+<!ENTITY event.statusbarpanel.privacy.label "Privacidade:">
+
+<!-- Recurrence dialog -->
+<!ENTITY recurrence.title.label "Editar recorrência">
+
+<!ENTITY event.repeat.does.not.repeat.label "Sem repetição">
+<!ENTITY event.repeat.daily.label "Diariamente">
+<!ENTITY event.repeat.weekly.label "Semanalmente">
+<!ENTITY event.repeat.every.weekday.label "Todos os dias úteis">
+<!ENTITY event.repeat.bi.weekly.label "Bissemanalmente">
+<!ENTITY event.repeat.monthly.label "Mensalmente">
+<!ENTITY event.repeat.yearly.label "Anualmente">
+<!ENTITY event.repeat.custom.label "Personalizar…">
+
+<!ENTITY event.recurrence.pattern.label "Padrão de recorrência">
+<!ENTITY event.recurrence.occurs.label "Repetir" >
+<!ENTITY event.recurrence.day.label "diariamente" >
+<!ENTITY event.recurrence.week.label "semanalmente" >
+<!ENTITY event.recurrence.month.label "mensalmente" >
+<!ENTITY event.recurrence.year.label "anualmente" >
+
+<!ENTITY event.recurrence.pattern.every.label "A cada" >
+<!ENTITY repeat.units.days.both "Dia(s)" >
+<!ENTITY event.recurrence.pattern.every.weekday.label "Todos os dias da semana" >
+
+<!ENTITY event.recurrence.pattern.weekly.every.label "A cada" >
+<!ENTITY repeat.units.weeks.both "Semana(s)" >
+<!ENTITY event.recurrence.on.label "Em:" >
+
+<!ENTITY event.recurrence.pattern.monthly.every.label "A cada" >
+<!ENTITY repeat.units.months.both "Mês(es)" >
+<!ENTITY event.recurrence.monthly.every.label "A cada" >
+<!ENTITY event.recurrence.monthly.first.label "Primeiro">
+<!ENTITY event.recurrence.monthly.second.label "Segundo">
+<!ENTITY event.recurrence.monthly.third.label "Terceiro">
+<!ENTITY event.recurrence.monthly.fourth.label "Quarto">
+<!ENTITY event.recurrence.monthly.fifth.label "Quinto">
+<!ENTITY event.recurrence.monthly.last.label "Último">
+<!ENTITY event.recurrence.pattern.monthly.week.1.label "domingo" >
+<!ENTITY event.recurrence.pattern.monthly.week.2.label "segunda" >
+<!ENTITY event.recurrence.pattern.monthly.week.3.label "terça" >
+<!ENTITY event.recurrence.pattern.monthly.week.4.label "quarta" >
+<!ENTITY event.recurrence.pattern.monthly.week.5.label "quinta" >
+<!ENTITY event.recurrence.pattern.monthly.week.6.label "sexta" >
+<!ENTITY event.recurrence.pattern.monthly.week.7.label "sábado" >
+<!ENTITY event.recurrence.repeat.dayofmonth.label "Dia do mês">
+<!ENTITY event.recurrence.repeat.recur.label "Ocorre no(s) dia(s)">
+
+<!ENTITY event.recurrence.every.label "A cada:" >
+<!ENTITY repeat.units.years.both "Ano(s)" >
+<!ENTITY event.recurrence.pattern.yearly.every.month.label "A cada" >
+
+<!-- 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 " de " >
+
+<!ENTITY event.recurrence.pattern.yearly.month.1.label "janeiro" >
+<!ENTITY event.recurrence.pattern.yearly.month.2.label "fevereiro" >
+<!ENTITY event.recurrence.pattern.yearly.month.3.label "março" >
+<!ENTITY event.recurrence.pattern.yearly.month.4.label "abril" >
+<!ENTITY event.recurrence.pattern.yearly.month.5.label "maio" >
+<!ENTITY event.recurrence.pattern.yearly.month.6.label "junho" >
+<!ENTITY event.recurrence.pattern.yearly.month.7.label "julho" >
+<!ENTITY event.recurrence.pattern.yearly.month.8.label "agosto" >
+<!ENTITY event.recurrence.pattern.yearly.month.9.label "setembro" >
+<!ENTITY event.recurrence.pattern.yearly.month.10.label "outubro" >
+<!ENTITY event.recurrence.pattern.yearly.month.11.label "novembro" >
+<!ENTITY event.recurrence.pattern.yearly.month.12.label "dezembro" >
+<!ENTITY event.recurrence.yearly.every.label "A cada">
+<!ENTITY event.recurrence.yearly.first.label "Primeiro">
+<!ENTITY event.recurrence.yearly.second.label "Segundo">
+<!ENTITY event.recurrence.yearly.third.label "Terceiro">
+<!ENTITY event.recurrence.yearly.fourth.label "Quarto">
+<!ENTITY event.recurrence.yearly.fifth.label "Quinto">
+<!ENTITY event.recurrence.yearly.last.label "Último">
+<!ENTITY event.recurrence.pattern.yearly.week.1.label "domingo" >
+<!ENTITY event.recurrence.pattern.yearly.week.2.label "segunda" >
+<!ENTITY event.recurrence.pattern.yearly.week.3.label "terça" >
+<!ENTITY event.recurrence.pattern.yearly.week.4.label "quarta" >
+<!ENTITY event.recurrence.pattern.yearly.week.5.label "quinta" >
+<!ENTITY event.recurrence.pattern.yearly.week.6.label "sexta" >
+<!ENTITY event.recurrence.pattern.yearly.week.7.label "sábado" >
+<!ENTITY event.recurrence.pattern.yearly.day.label "dia" >
+<!ENTITY event.recurrence.of.label "de" >
+<!ENTITY event.recurrence.pattern.yearly.month2.1.label "janeiro" >
+<!ENTITY event.recurrence.pattern.yearly.month2.2.label "fevereiro" >
+<!ENTITY event.recurrence.pattern.yearly.month2.3.label "março" >
+<!ENTITY event.recurrence.pattern.yearly.month2.4.label "abril" >
+<!ENTITY event.recurrence.pattern.yearly.month2.5.label "maio" >
+<!ENTITY event.recurrence.pattern.yearly.month2.6.label "junho" >
+<!ENTITY event.recurrence.pattern.yearly.month2.7.label "julho" >
+<!ENTITY event.recurrence.pattern.yearly.month2.8.label "agosto" >
+<!ENTITY event.recurrence.pattern.yearly.month2.9.label "setembro" >
+<!ENTITY event.recurrence.pattern.yearly.month2.10.label "outubro" >
+<!ENTITY event.recurrence.pattern.yearly.month2.11.label "novembro" >
+<!ENTITY event.recurrence.pattern.yearly.month2.12.label "dezembro" >
+
+<!ENTITY event.recurrence.range.label "Período de recorrência">
+<!ENTITY event.recurrence.forever.label "Sem data de fim" >
+<!ENTITY event.recurrence.repeat.for.label "Criar" >
+<!ENTITY event.recurrence.appointments.label "Compromissos(s)" >
+<!ENTITY event.repeat.until.label "Repetir até" >
+<!ENTITY event.recurrence.preview.label "Pré-visualizar">
+
+<!-- Attendees dialog -->
+<!ENTITY invite.title.label "Convidar participantes">
+<!ENTITY event.organizer.label "Agenda">
+<!ENTITY event.freebusy.suggest.slot "Sugerir hora livre:">
+<!ENTITY event.freebusy.button.next.slot "Seguinte">
+<!ENTITY event.freebusy.button.previous.slot "Anterior">
+<!ENTITY event.freebusy.zoom "Zoom:">
+<!ENTITY event.freebusy.legend.free "Livre" >
+<!ENTITY event.freebusy.legend.busy "Ocupado" >
+<!ENTITY event.freebusy.legend.busy_tentative "Tentativa" >
+<!ENTITY event.freebusy.legend.busy_unavailable "Fora do escritório" >
+<!ENTITY event.freebusy.legend.unknown "Sem informação" >
+<!ENTITY event.attendee.role.required "Requer participante">
+<!ENTITY event.attendee.role.optional "Participante facultativo">
+<!ENTITY event.attendee.role.chair "Presidente">
+<!ENTITY event.attendee.role.nonparticipant "Não participante">
+<!ENTITY event.attendee.usertype.individual "Individual">
+<!ENTITY event.attendee.usertype.group "Grupo">
+<!ENTITY event.attendee.usertype.resource "Recurso">
+<!ENTITY event.attendee.usertype.room "Quarto">
+<!ENTITY event.attendee.usertype.unknown "Desconhecido">
+
+<!-- Timezone dialog -->
+<!ENTITY timezone.title.label "Por favor especifique o fuso horário">
+<!ENTITY event.timezone.custom.label "Mais fusos horários…">
+
+<!-- Read-Only dialog -->
+<!ENTITY read.only.general.label "Geral">
+<!ENTITY read.only.title.label "Título:">
+<!ENTITY read.only.calendar.label "Calendário:">
+<!ENTITY read.only.event.start.label "Data de início:">
+<!ENTITY read.only.task.start.label "Data de início:">
+<!ENTITY read.only.event.end.label "Data de fim:">
+<!ENTITY read.only.task.due.label "Data de fim:">
+<!ENTITY read.only.repeat.label "Repetir:">
+<!ENTITY read.only.location.label "Localização:">
+<!ENTITY read.only.category.label "Categoria:">
+<!ENTITY read.only.organizer.label "Agenda:">
+<!ENTITY read.only.reminder.label "Lembrete:">
+<!ENTITY read.only.attachments.label "Anexos:">
+<!ENTITY read.only.attendees.label "Participantes">
+<!ENTITY read.only.description.label "Descrição">
+<!ENTITY read.only.link.label "Ligação relacionada">
+
+<!-- Summary dialog -->
+<!ENTITY summary.dialog.saveclose.label "Guardar e fechar">
+<!ENTITY summary.dialog.saveclose.tooltiptext "Guardar alterações e fechar a janela sem alterar o estado de participação e enviar uma resposta">
+<!ENTITY summary.dialog.accept.label "Aceitar">
+<!ENTITY summary.dialog.accept.tooltiptext "Aceitar o convite">
+<!ENTITY summary.dialog.tentative.label "Tentativa">
+<!ENTITY summary.dialog.tentative.tooltiptext "Aceitar o convite provisoriamente">
+<!ENTITY summary.dialog.decline.label "Recusar">
+<!ENTITY summary.dialog.decline.tooltiptext "Recusar o convite">
+<!ENTITY summary.dialog.dontsend.label "Não enviar uma resposta">
+<!ENTITY summary.dialog.dontsend.tooltiptext "Alterar a sua participação sem enviar uma resposta para o organizador e fechar a janela">
+<!ENTITY summary.dialog.send.label "Enviar uma resposta agora">
+<!ENTITY summary.dialog.send.tooltiptext "Enviar uma resposta para o organizador e fechar a janela">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-event-dialog.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-event-dialog.properties
new file mode 100644
index 0000000000..f511941551
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=todos os dias;a cada #1 dias
+repeatDetailsRuleDaily4=todos os dias da semana
+
+# 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=a cada %1$S;a cada #2 semanas à %1$S
+weeklyNthOnNounclass2=a cada %1$S;a cada #2 semanas à %1$S
+
+# LOCALIZATION NOTE (weeklyEveryNth):
+# Edit recurrence window -> Recurrence pattern -> Weekly repeat rules
+# #1 - interval
+# e.g. "every 5 weeks"
+weeklyEveryNth=a cada semana;a cada #1 semanas
+
+# 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=domingo
+repeatDetailsDay1Nounclass=nounclass1
+repeatDetailsDay2=Segunda
+repeatDetailsDay2Nounclass=nounclass1
+repeatDetailsDay3=Terça
+repeatDetailsDay3Nounclass=nounclass1
+repeatDetailsDay4=Quarta
+repeatDetailsDay4Nounclass=nounclass1
+repeatDetailsDay5=Quinta
+repeatDetailsDay5Nounclass=nounclass1
+repeatDetailsDay6=Sexta
+repeatDetailsDay6Nounclass=nounclass1
+repeatDetailsDay7=sábado
+repeatDetailsDay7Nounclass=nounclass1
+
+# LOCALIZATION NOTE (repeatDetailsAnd)
+# Used to show a number of weekdays in a list
+# i.e. "Sunday, Monday, Tuesday " + and + " Wednesday"
+repeatDetailsAnd=e
+
+# 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 de cada mês;%1$S a cada #2 meses
+monthlyRuleNthOfEveryNounclass2=%1$S de cada mês;%1$S de cada #2 meses
+
+# 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=a cada %1$S de cada mês;a cada %1$S de cada #2 meses
+monthlyEveryOfEveryNounclass2=a cada %1$S de cada mês;a cada %1$S de cada #2 meses
+
+# 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=dia %1$S;dias %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 de cada mês;%1$S de cada #2 meses
+
+# 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=o último dia do mês; o último dia a cada #1 meses
+
+# 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=todos os dias de cada mês;todos os dias do mês a cada #2 meses
+
+# 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=o primeiro
+repeatOrdinal2Nounclass1=o segundo
+repeatOrdinal3Nounclass1=o terceiro
+repeatOrdinal4Nounclass1=o quarto
+repeatOrdinal5Nounclass1=o quinto
+repeatOrdinal-1Nounclass1=o último
+repeatOrdinal1Nounclass2=o primeiro
+repeatOrdinal2Nounclass2=o segundo
+repeatOrdinal3Nounclass2=o terceiro
+repeatOrdinal4Nounclass2=o quarto
+repeatOrdinal5Nounclass2=o quinto
+repeatOrdinal-1Nounclass2=o último
+
+# 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=a cada %1$S %2$S;a cada #3 anos a %2$S %1$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 de cada %3$S;a cada #4 anos na %1$S %2$S de %3$S
+yearlyNthOnNthOfNounclass2=%1$S %2$S de cada %3$S;a cada #4 anos na %1$S %2$S de %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=a cada %1$S de %2$S;a cada #3 anos de cada %1$S de %2$S
+yearlyOnEveryNthOfNthNounclass2=a cada %1$S de %2$S;a cada #3 anos de cada %1$S de %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=todos os dias de %1$S;a cada #2 anos todos os dias de %1$S
+
+repeatDetailsMonth1=janeiro
+repeatDetailsMonth2=fevereiro
+repeatDetailsMonth3=março
+repeatDetailsMonth4=abril
+repeatDetailsMonth5=maio
+repeatDetailsMonth6=junho
+repeatDetailsMonth7=julho
+repeatDetailsMonth8=agosto
+repeatDetailsMonth9=setembro
+repeatDetailsMonth10=outubro
+repeatDetailsMonth11=novembro
+repeatDetailsMonth12=dezembro
+
+# 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=Ocorre a cada %1$S\ncom inicio em %2$S e apenas #5 vez\ndas %3$S às %4$S.;Ocorre a cada %1$S\ncom inicio em %2$S durante #5 vezes\ndas %3$S às %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=Ocorre a cada %1$S\ncom inicio em %2$S e apenas #3 vez.;Ocorre a cada %1$S\ncom inicio em %2$S e durante #3 vezes.
+
+# 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=Ocorre %1$S\ncom inicio em %2$S e fim a %3$S\ndas %4$S às %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=Ocorre no dia %1$S\ncom inicio a %2$S até %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=Ocorre no dia %1$S\ncom inicio em %2$S\ndas %3$S às %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=Ocorre no dia %1$S\ncom inicio a %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=o último dia
+
+# 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=Clique aqui para detalhes
+
+# 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=Repetir detalhes desconhecidos
+
+# differences between the dialog for an Event or a Task
+newEvent=Novo evento
+newTask=Nova tarefa
+itemMenuLabelEvent=Evento
+itemMenuAccesskeyEvent2=n
+itemMenuLabelTask=Tarefa
+itemMenuAccesskeyTask2=T
+
+emailSubjectReply=Re: %1$S
+
+# Link Location Dialog
+specifyLinkLocation=Por favor, especifique a localização da ligação
+enterLinkLocation=Introduza uma página web ou o local do documento.
+
+summaryDueTaskLabel=Até:
+
+# Attach File Dialog
+attachViaFilelink=Ficheiro utilizando %1$S
+selectAFile=Selecione o(s) ficheiro(s) a anexar
+removeCalendarsTitle=Remover anexos
+
+# LOCALIZATION NOTE (removeAttachmentsText): Semi-colon list of plural forms for
+# prompting attachment removal.
+# See http://developer.mozilla.org/en/Localization_and_Plurals
+removeAttachmentsText=Deseja mesmo remover #1 anexo?;Deseja mesmo remover #1 anexos?
+
+# 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=falso
+
+# 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=domingo
+repeatDetailsDay2Plural=segunda
+repeatDetailsDay3Plural=terça
+repeatDetailsDay4Plural=quarta
+repeatDetailsDay5Plural=quinta
+repeatDetailsDay6Plural=sexta
+repeatDetailsDay7Plural=sábado
+
+# 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=Eternamente
+
+# 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=Último dia
+
+# 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 aceitou o convite, mas fez uma contra-proposta:
+
+# 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 recusou o convite, mas fez uma contra-proposta:
+
+# 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 delegou o convite, mas fez uma contra-proposta:
+
+# 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 não decidiu se participaria no evento e fez uma contra-proposta:
+
+# 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 aceitou o convite à experiência e fez uma contra-proposta:
+
+# LOCALIZATION NOTE (counterOnPreviousVersionNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+counterOnPreviousVersionNotification=Esta é uma contra-proposta a uma versão anterior deste evento.
+
+# LOCALIZATION NOTE (counterOnCounterDisallowedNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+counterOnCounterDisallowedNotification=Você desativou as contra-propostas ao enviar o convite.
+
+# LOCALIZATION NOTE (eventAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation
+eventAccepted=Você aceitou este convite
+
+# LOCALIZATION NOTE (eventTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation tentatively
+eventTentative=Você aceitou este convite provisoriamente
+
+# LOCALIZATION NOTE (eventDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the event invitation
+eventDeclined=Você recusou este convite
+
+# 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=Você delegou este convite
+
+# LOCALIZATION NOTE (eventNeedsAction) - this will be displayed as notification
+# in the summary dialog if the user hasn't yet responded to an invitation
+eventNeedsAction=Você ainda não respondeu a este convite
+
+# LOCALIZATION NOTE (taskAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the assigned task
+taskAccepted=Você aceitou trabalhar nesta tarefa
+
+# LOCALIZATION NOTE (taskTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted tentatively the assigned task
+taskTentative=Você aceitou provisoriamente trabalhar nesta tarefa
+
+# LOCALIZATION NOTE (taskDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the assigned task
+taskDeclined=Você recusou trabalhar nesta tarefa
+
+# 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=Você delegou o trabalho nesta tarefa
+
+# 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=Você ainda não respondeu a esta atribuição de tarefa
+
+# LOCALIZATION NOTE (taskInProgress) - this will be displayed as notification
+# in the summary dialog if the user is working on an assigned task
+taskInProgress=Você começou a trabalhar nesta tarefa atribuída
+
+# 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=Você concluiu o seu trabalho nesta tarefa atribuída
+
+# 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=Enviar e fechar
+
+# 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=Notificar os participantes e fechar
+
+# 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=Guardar e enviar
+
+# 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=Guardar e notificar os participantes
+
+# 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=Guardar e enviar
+
+# 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=Guardar e fechar
+
+# 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=Participantes (%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=Anexos (%1$S):
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-extract.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-extract.properties
new file mode 100644
index 0000000000..0e5ce1712e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 = por | até | para | - | até | até | e
+
+# LOCALIZATION NOTE (end.prefix):
+# datetimes with these in front are extracted as end times
+end.prefix = por | até | para | - | até | até | e | termina: | termina | termina | o prazo é | prazo:
+
+# 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 = semana passada | enviado | email | e-mail | em vez de | > | infelizmente | em | não
+
+# LOCALIZATION NOTE (no.datetime.suffix):
+# datetimes followed by these won't be used
+no.datetime.suffix = floor | flr | : | email | e-mail | > | % | usd | dolars | $ | eur | euros | €
+
+# LOCALIZATION NOTE (from.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (from.today):
+# must not be empty!
+from.today = hoje
+
+from.tomorrow = amanhã
+# 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 = #1.º | #1.º | #1.º | #1.º
+
+# LOCALIZATION NOTE (until.ordinal.date):
+# #1 = matches numbers 1-31 and number.x
+until.ordinal.date =
+
+from.noon = meio dia
+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 = às #1 | por volta das #1 | #1 - | #1 até
+
+# 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 | até #1 | até #1 | por #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 = meia hora antes das #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 = #1 e meia
+
+# 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 | às #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 #1.º | #2 #1.º | #2 #1.º | #2 #1.º | #1.º de #2 | #1.º de #2 | #1.º de #2 | #1.º de #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 = #1/#2
+
+# 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 = #1-#2-#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 | #1.º #2 #3 | #1.º #2 #3 | #1.º #2 #3 | #1.º #2 #3 | #3, #2 #1 | #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 minutos | #1 min | #1 mins
+
+# LOCALIZATION NOTE (duration.hours):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.hours = #1 hora| #1 horas
+
+# LOCALIZATION NOTE (duration.days):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.days = #1 dias
+
+# LOCALIZATION NOTE (month.*):
+# can be a list of values, separate variants by |
+month.1 = janeiro | jan | jan.
+month.2 = fevereiro | fev | fev.
+month.3 = março | mar | mar.
+month.4 = abril | abr | abr.
+month.5 = maio | mai | mai.
+month.6 = junho | jun | jun.
+month.7 = julho | jul | jul.
+month.8 = agosto | ago | ago.
+month.9 = setembro | set | set.
+month.10 = outubro | out | out.
+month.11 = novembro | nov | nov.
+month.12 = dezembro | dez | dez.
+
+# 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 = domingo | domingos
+from.weekday.1 = segunda | segundas
+from.weekday.2 = terça | terças
+from.weekday.3 = quarta | quartas
+from.weekday.4 = quinta | quintas
+from.weekday.5 = sexta | sextas
+from.weekday.6 = sábado | sábados
+
+# 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 = um | primeiro
+number.2 = dois | segundo
+number.3 = três | terceiro
+number.4 = quatro | quarto
+number.5 = cinco | quinto
+number.6 = seis | sexto
+number.7 = sete | sétimo
+number.8 = oito | oitavo
+number.9 = nove | nono
+number.10 = dez | décimo
+number.11 = onze | décimo primeiro
+number.12 = doze | décimo segundo
+number.13 = treze | décimo terceiro
+number.14 = quatorze | décimo quarto
+number.15 = quinze| décimo quinto
+number.16 = dezasseis| décimo sexto
+number.17 = dezasete | décimo sétimo
+number.18 = dezoito| décimo oitavo
+number.19 = dezanove | décimo nono
+number.20 = vinte | vigésimo
+number.21 = vinte e um | vigésimo primeiro
+number.22 = vinte e dois | vigésimo segundo
+number.23 = vinte e três | vigésimo terceiro
+number.24 = vinte e quatro| vigésimo quarto
+number.25 = vinte e cinco | vigésimo quinto
+number.26 = vinte e seis | vigésimo sexto
+number.27 = vinte e sete | vigésimo sétimo
+number.28 = vinte e oito | vigésimo oitavo
+number.29 = vinte e nove| vigésimo nono
+number.30 = trinta | trigésimo
+number.31 = trinta e um | trigésimo primeiro
+
+# 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/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-invitations-dialog.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-invitations-dialog.dtd
new file mode 100644
index 0000000000..ac996a0ddc
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-invitations-dialog.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/.
+-->
+<!-- Calendar Invitations Dialog -->
+
+<!ENTITY calendar.invitations.dialog.invitations.text "Convites">
+<!ENTITY calendar.invitations.dialog.statusmessage.updating.text "A atualizar lista de convites.">
+<!ENTITY calendar.invitations.dialog.statusmessage.noinvitations.text "Não foram encontrados convites não confirmados.">
+<!-- Calendar Invitations List -->
+
+<!ENTITY calendar.invitations.list.accept.button.label "Aceitar">
+<!ENTITY calendar.invitations.list.decline.button.label "Recusar">
+<!ENTITY calendar.invitations.list.recurrentevent.text "Evento recorrente">
+<!ENTITY calendar.invitations.list.alldayevent.text "Evento para todo o dia">
+<!ENTITY calendar.invitations.list.location.text "Localização: ">
+<!ENTITY calendar.invitations.list.organizer.text "Organizador: ">
+<!ENTITY calendar.invitations.list.attendee.text "Participante: ">
+<!ENTITY calendar.invitations.list.none.text "Nenhum">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-invitations-dialog.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-invitations-dialog.properties
new file mode 100644
index 0000000000..52247886b4
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Evento para todo o dia
+recurrent-event=Evento recorrente
+location=Localização: %S
+organizer=Organizador: %S
+attendee=Participante: %S
+none=Nenhum
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-occurrence-prompt.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-occurrence-prompt.dtd
new file mode 100644
index 0000000000..5864a9335f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-occurrence-prompt.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-occurrence-prompt.properties
new file mode 100644
index 0000000000..c32d76ae30
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar-occurrence-prompt.properties
@@ -0,0 +1,63 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+header.isrepeating.event.label=é um evento recorrente
+header.isrepeating.task.label=é uma tarefa recorrente\u0020
+
+header.containsrepeating.event.label=contém eventos repetidos
+header.containsrepeating.task.label=contém tarefas repetidas
+header.containsrepeating.mixed.label=contém itens repetidos de diferentes tipos
+
+windowtitle.event.copy=Copiar evento repetido
+windowtitle.task.copy=Copiar tarefa repetida
+windowtitle.mixed.copy=Copiar itens repetidos
+windowtitle.event.cut=Cortar evento repetido
+windowtitle.task.cut=Cortar tarefa repetida
+windowtitle.mixed.cut=Cortar itens repetidos
+windowtitle.event.delete=Apagar evento recorrente
+windowtitle.task.delete=Apagar tarefa recorrente
+windowtitle.mixed.delete=Eliminar itens repetidos
+windowtitle.event.edit=Editar evento recorrente
+windowtitle.task.edit=Editar tarefa recorrente
+
+buttons.occurrence.delete.label=Apagar apenas esta ocorrência
+buttons.occurrence.edit.label=Editar apenas esta ocorrência
+
+buttons.allfollowing.delete.label=Apagar esta e todas as ocorrências futuras
+buttons.allfollowing.edit.label=Editar esta e todas as ocorrências futuras
+
+buttons.parent.delete.label=Apagar todas as ocorrências
+buttons.parent.edit.label=Editar todas as ocorrências
+windowtitle.mixed.edit=Editar itens repetidos
+windowtitle.multipleitems=Itens selecionados
+
+buttons.single.occurrence.copy.label=Copiar apenas esta ocorrência
+buttons.single.occurrence.cut.label=Cortar apenas esta ocorrência
+buttons.single.occurrence.delete.label=Eliminar apenas esta ocorrência
+buttons.single.occurrence.edit.label=Editar apenas esta ocorrência
+
+buttons.multiple.occurrence.copy.label=Copiar apenas as ocorrências selecionadas
+buttons.multiple.occurrence.cut.label=Cortar apenas as ocorrências selecionadas
+buttons.multiple.occurrence.delete.label=Eliminar apenas as ocorrências selecionadas
+buttons.multiple.occurrence.edit.label=Editar apenas as ocorrências selecionadas
+
+buttons.single.allfollowing.copy.label=Copiar esta e todas as ocorrências futuras
+buttons.single.allfollowing.cut.label=Cortar esta e todas as ocorrências futuras
+buttons.single.allfollowing.delete.label=Eliminar esta e todas as ocorrências futuras
+buttons.single.allfollowing.edit.label=Editar esta e todas as ocorrências futuras
+
+buttons.multiple.allfollowing.copy.label=Copiar todas as ocorrências selecionadas e futuras
+buttons.multiple.allfollowing.cut.label=Cortar todas as ocorrências selecionadas e futuras
+buttons.multiple.allfollowing.delete.label=Eliminar todas as ocorrências selecionadas e futuras
+buttons.multiple.allfollowing.edit.label=Editar todas as ocorrências selecionadas e futuras
+
+buttons.single.parent.copy.label=Copiar todas as ocorrências
+buttons.single.parent.cut.label=Cortar todas as ocorrências
+buttons.single.parent.delete.label=Eliminar todas as ocorrências
+buttons.single.parent.edit.label=Editar todas as ocorrências
+
+buttons.multiple.parent.copy.label=Copiar todas as ocorrências dos itens selecionados
+buttons.multiple.parent.cut.label=Cortar todas as ocorrências dos itens selecionados
+buttons.multiple.parent.delete.label=Eliminar todas as ocorrências dos itens selecionados
+buttons.multiple.parent.edit.label=Editar todas as ocorrências dos itens selecionados
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar.dtd
new file mode 100644
index 0000000000..4b30bdfd58
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar.dtd
@@ -0,0 +1,411 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- General -->
+<!ENTITY calendar.calendar.label "Calendário">
+<!ENTITY calendar.calendar.accesskey "C">
+
+<!ENTITY calendar.newevent.button.tooltip "Criar um novo evento" >
+<!ENTITY calendar.newtask.button.tooltip "Criar uma nova tarefa" >
+
+<!ENTITY calendar.unifinder.todoitems.label "Tarefas" >
+
+<!ENTITY calendar.unifinder.showcompletedtodos.label "Mostrar tarefas concluídas">
+
+<!ENTITY calendar.today.button.label "Hoje">
+<!ENTITY calendar.tomorrow.button.label "Amanhã">
+<!ENTITY calendar.upcoming.button.label "Brevemente">
+
+<!ENTITY calendar.events.filter.all.label "Todos os eventos">
+<!ENTITY calendar.events.filter.today.label "Eventos de hoje">
+<!ENTITY calendar.events.filter.future.label "Todos os eventos futuros">
+<!ENTITY calendar.events.filter.current.label "Dia selecionado">
+<!ENTITY calendar.events.filter.currentview.label "Eventos na vista atual">
+<!ENTITY calendar.events.filter.next7Days.label "Eventos nos próximos 7 dias">
+<!ENTITY calendar.events.filter.next14Days.label "Eventos nos próximos 14 dias">
+<!ENTITY calendar.events.filter.next31Days.label "Eventos nos próximos 31 dias">
+<!ENTITY calendar.events.filter.thisCalendarMonth.label "Eventos neste mês">
+
+<!-- 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 "Feito">
+<!ENTITY calendar.unifinder.tree.done.tooltip2 "Ordenar por terminado">
+<!ENTITY calendar.unifinder.tree.priority.label "Prioridade">
+<!ENTITY calendar.unifinder.tree.priority.tooltip2 "Ordenar por prioridade">
+<!ENTITY calendar.unifinder.tree.title.label "Título">
+<!ENTITY calendar.unifinder.tree.title.tooltip2 "Ordenar por título">
+<!ENTITY calendar.unifinder.tree.percentcomplete.label "&#037; concluído">
+<!ENTITY calendar.unifinder.tree.percentcomplete.tooltip2 "Ordenar por &#037; de conclusão">
+<!ENTITY calendar.unifinder.tree.startdate.label "Início">
+<!ENTITY calendar.unifinder.tree.startdate.tooltip2 "Ordenar por data de início">
+<!ENTITY calendar.unifinder.tree.enddate.label "Fim">
+<!ENTITY calendar.unifinder.tree.enddate.tooltip2 "Ordenar por data de fim">
+<!ENTITY calendar.unifinder.tree.duedate.label "Limite">
+<!ENTITY calendar.unifinder.tree.duedate.tooltip2 "Ordenar por data limite">
+<!ENTITY calendar.unifinder.tree.completeddate.label "Concluído">
+<!ENTITY calendar.unifinder.tree.completeddate.tooltip2 "Ordenar por data de conclusão">
+<!ENTITY calendar.unifinder.tree.categories.label "Categoria">
+<!ENTITY calendar.unifinder.tree.categories.tooltip2 "Ordenar por categoria">
+<!ENTITY calendar.unifinder.tree.location.label "Localização">
+<!ENTITY calendar.unifinder.tree.location.tooltip2 "Ordenar por localização">
+<!ENTITY calendar.unifinder.tree.status.label "Estado">
+<!ENTITY calendar.unifinder.tree.status.tooltip2 "Ordenar por estado">
+<!ENTITY calendar.unifinder.tree.calendarname.label "Nome do calendário">
+<!ENTITY calendar.unifinder.tree.calendarname.tooltip2 "Ordenar por nome do calendário">
+<!ENTITY calendar.unifinder.tree.duration.label "Termina em">
+<!ENTITY calendar.unifinder.tree.duration.tooltip2 "Ordenar por data de vencimento">
+<!ENTITY calendar.unifinder.close.tooltip "Fechar pesquisa e lista de eventos">
+
+<!ENTITY calendar.today.button.tooltip "Ir para hoje" >
+<!ENTITY calendar.todaypane.button.tooltip "Mostrar hoje" >
+
+<!ENTITY calendar.day.button.tooltip "Mudar para vista diária" >
+<!ENTITY calendar.week.button.tooltip "Mudar para vista semanal" >
+<!ENTITY calendar.month.button.tooltip "Mudar para vista mensal" >
+<!ENTITY calendar.multiweek.button.tooltip "Mudar para vista multissemanal" >
+
+<!ENTITY calendar.nextday.label "Dia seguinte" >
+<!ENTITY calendar.prevday.label "Dia anterior" >
+<!ENTITY calendar.nextday.accesskey "s" >
+<!ENTITY calendar.prevday.accesskey "a" >
+<!ENTITY calendar.nextweek.label "Semana seguinte" >
+<!ENTITY calendar.prevweek.label "Semana anterior" >
+<!ENTITY calendar.nextweek.accesskey "s" >
+<!ENTITY calendar.prevweek.accesskey "a" >
+<!ENTITY calendar.nextmonth.label "Mês seguinte" >
+<!ENTITY calendar.prevmonth.label "Mês anterior" >
+<!ENTITY calendar.nextmonth.accesskey "s" >
+<!ENTITY calendar.prevmonth.accesskey "a" >
+
+<!ENTITY calendar.navigation.nextday.tooltip "Avançar um dia" >
+<!ENTITY calendar.navigation.prevday.tooltip "Recuar um dia" >
+<!ENTITY calendar.navigation.nextweek.tooltip "Avançar uma semana" >
+<!ENTITY calendar.navigation.prevweek.tooltip "Recuar uma semana" >
+<!ENTITY calendar.navigation.nextmonth.tooltip "Avançar um mês" >
+<!ENTITY calendar.navigation.prevmonth.tooltip "Recuar um mês" >
+
+<!ENTITY calendar.newevent.button.label "Novo evento" >
+<!ENTITY calendar.newtask.button.label "Nova tarefa" >
+<!ENTITY calendar.print.button.label "Imprimir" >
+<!ENTITY calendar.print.button.accesskey "p">
+
+<!ENTITY calendar.day.button.label "Dia" >
+<!ENTITY calendar.week.button.label "Semana" >
+<!ENTITY calendar.month.button.label "Mês" >
+<!ENTITY calendar.multiweek.button.label "Multissemana" >
+<!ENTITY calendar.onlyworkday.checkbox.label "Dias úteis" >
+<!ENTITY calendar.onlyworkday.checkbox.accesskey "s" >
+<!ENTITY calendar.displaytodos.checkbox.label "Tarefas na vista" >
+<!ENTITY calendar.displaytodos.checkbox.accesskey "T" >
+<!ENTITY calendar.completedtasks.checkbox.label "Mostrar tarefas concluídas" >
+<!ENTITY calendar.completedtasks.checkbox.accesskey "c" >
+
+<!ENTITY calendar.orientation.label "Rodar vista" >
+<!ENTITY calendar.orientation.accesskey "o" >
+
+<!ENTITY calendar.search.options.searchfor " contém">
+
+<!ENTITY calendar.list.header.label "Calendário">
+
+<!ENTITY calendar.task.filter.title.label "Mostrar">
+<!ENTITY calendar.task.filter.all.label "Todas">
+<!ENTITY calendar.task.filter.all.accesskey "T">
+<!ENTITY calendar.task.filter.today.label "Hoje">
+<!ENTITY calendar.task.filter.today.accesskey "H">
+<!ENTITY calendar.task.filter.next7days.label "Próximos sete dias">
+<!ENTITY calendar.task.filter.next7days.accesskey "x">
+<!ENTITY calendar.task.filter.notstarted.label "Tarefas por iniciar">
+<!ENTITY calendar.task.filter.notstarted.accesskey "a">
+<!ENTITY calendar.task.filter.overdue.label "Tarefas atrasadas">
+<!ENTITY calendar.task.filter.overdue.accesskey "r">
+<!ENTITY calendar.task.filter.completed.label "Tarefas concluídas">
+<!ENTITY calendar.task.filter.completed.accesskey "c">
+<!ENTITY calendar.task.filter.open.label "Tarefas incompletas">
+<!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 "Tarefas atuais">
+<!ENTITY calendar.task.filter.current.accesskey "u">
+
+<!ENTITY calendar.task-details.title.label "título">
+<!ENTITY calendar.task-details.organizer.label "de">
+<!ENTITY calendar.task-details.priority.label "prioridade">
+<!ENTITY calendar.task-details.priority.low.label "Baixa">
+<!ENTITY calendar.task-details.priority.normal.label "Normal">
+<!ENTITY calendar.task-details.priority.high.label "Alta">
+<!ENTITY calendar.task-details.status.label "estado">
+<!ENTITY calendar.task-details.category.label "categoria">
+<!ENTITY calendar.task-details.repeat.label "recorrentes">
+<!ENTITY calendar.task-details.attachments.label "anexos">
+<!ENTITY calendar.task-details.start.label "data inicial">
+<!ENTITY calendar.task-details.due.label "data final">
+
+<!ENTITY calendar.task.category.button.tooltip "Categorizar tarefas">
+<!ENTITY calendar.task.complete.button.tooltip "Marcar tarefas selecionadas como concluídas">
+<!ENTITY calendar.task.priority.button.tooltip "Mudar prioridade">
+
+<!ENTITY calendar.task.text-filter.textbox.emptytext.base1 "Filtrar tarefas #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 "Abrir">
+<!ENTITY calendar.context.modifyorviewitem.accesskey "A">
+<!ENTITY calendar.context.modifyorviewtask.label "Abrir tarefa…">
+<!ENTITY calendar.context.modifyorviewtask.accesskey "A">
+<!ENTITY calendar.context.newevent.label "Novo evento…">
+<!ENTITY calendar.context.newevent.accesskey "N">
+<!ENTITY calendar.context.newtodo.label "Nova tarefa…">
+<!ENTITY calendar.context.newtodo.accesskey "v">
+<!ENTITY calendar.context.deletetask.label "Apagar tarefa">
+<!ENTITY calendar.context.deletetask.accesskey "A">
+<!ENTITY calendar.context.deleteevent.label "Apagar evento">
+<!ENTITY calendar.context.deleteevent.accesskey "A">
+<!ENTITY calendar.context.cutevent.label "Cortar">
+<!ENTITY calendar.context.cutevent.accesskey "t">
+<!ENTITY calendar.context.copyevent.label "Copiar">
+<!ENTITY calendar.context.copyevent.accesskey "C">
+<!ENTITY calendar.context.pasteevent.label "Colar">
+<!ENTITY calendar.context.pasteevent.accesskey "o">
+<!ENTITY calendar.context.button.label "Painel hoje">
+<!ENTITY calendar.context.button.accesskey "j">
+
+<!ENTITY calendar.context.attendance.menu.label "Assistência">
+<!ENTITY calendar.context.attendance.menu.accesskey "s">
+<!ENTITY calendar.context.attendance.occurrence.label "Esta ocorrência">
+<!ENTITY calendar.context.attendance.all2.label "Série Completa">
+<!ENTITY calendar.context.attendance.send.label "Enviar uma notificação agora">
+<!ENTITY calendar.context.attendance.send.accesskey "E">
+<!ENTITY calendar.context.attendance.dontsend.label "Não enviar uma notificação">
+<!ENTITY calendar.context.attendance.dontsend.accesskey "N">
+
+<!ENTITY calendar.context.attendance.occ.accepted.accesskey "A">
+<!ENTITY calendar.context.attendance.occ.accepted.label "Aceite">
+<!ENTITY calendar.context.attendance.occ.tentative.accesskey "e">
+<!ENTITY calendar.context.attendance.occ.tentative.label "Aceite provisoriamente">
+<!ENTITY calendar.context.attendance.occ.declined.accesskey "c">
+<!ENTITY calendar.context.attendance.occ.declined.label "Recusado">
+<!ENTITY calendar.context.attendance.occ.delegated.accesskey "g">
+<!ENTITY calendar.context.attendance.occ.delegated.label "Delegado">
+<!ENTITY calendar.context.attendance.occ.needsaction.accesskey "A">
+<!ENTITY calendar.context.attendance.occ.needsaction.label "Ainda necessita de ação">
+<!ENTITY calendar.context.attendance.occ.inprogress.accesskey "E">
+<!ENTITY calendar.context.attendance.occ.inprogress.label "Em progresso">
+<!ENTITY calendar.context.attendance.occ.completed.accesskey "C">
+<!ENTITY calendar.context.attendance.occ.completed.label "Completado">
+
+<!ENTITY calendar.context.attendance.all.accepted.accesskey "e">
+<!ENTITY calendar.context.attendance.all.accepted.label "Aceite">
+<!ENTITY calendar.context.attendance.all.tentative.accesskey "v">
+<!ENTITY calendar.context.attendance.all.tentative.label "Aceite provisoriamente">
+<!ENTITY calendar.context.attendance.all.declined.accesskey "d">
+<!ENTITY calendar.context.attendance.all.declined.label "Recusado">
+<!ENTITY calendar.context.attendance.all.delegated.accesskey "l">
+<!ENTITY calendar.context.attendance.all.delegated.label "Delegado">
+<!ENTITY calendar.context.attendance.all.needsaction.accesskey "n">
+<!ENTITY calendar.context.attendance.all.needsaction.label "Ainda necessita de ação">
+<!ENTITY calendar.context.attendance.all.inprogress.accesskey "p">
+<!ENTITY calendar.context.attendance.all.inprogress.label "Em progresso">
+<!ENTITY calendar.context.attendance.all.completed.accesskey "m">
+<!ENTITY calendar.context.attendance.all.completed.label "Completado">
+
+<!-- Task Context Menu -->
+<!ENTITY calendar.context.progress.label "Progresso">
+<!ENTITY calendar.context.progress.accesskey "P">
+<!ENTITY calendar.context.priority.label "Prioridade">
+<!ENTITY calendar.context.priority.accesskey "r">
+<!ENTITY calendar.context.postpone.label "Adiar tarefa">
+<!ENTITY calendar.context.postpone.accesskey "f">
+
+<!ENTITY percnt "&#38;#37;" ><!--=percent sign-->
+
+<!ENTITY calendar.context.markcompleted.label "Marcar como terminado">
+<!ENTITY calendar.context.markcompleted.accesskey "o">
+
+<!ENTITY progress.level.0 "0&percnt; concluído">
+<!ENTITY progress.level.0.accesskey "0">
+<!ENTITY progress.level.25 "25&percnt; concluído">
+<!ENTITY progress.level.25.accesskey "2">
+<!ENTITY progress.level.50 "50&percnt; concluído">
+<!ENTITY progress.level.50.accesskey "5">
+<!ENTITY progress.level.75 "75&percnt; concluído">
+<!ENTITY progress.level.75.accesskey "7">
+<!ENTITY progress.level.100 "100&percnt; concluído">
+<!ENTITY progress.level.100.accesskey "1">
+
+<!ENTITY priority.level.none "Não especificada">
+<!ENTITY priority.level.none.accesskey "N">
+<!ENTITY priority.level.low "Baixa">
+<!ENTITY priority.level.low.accesskey "x">
+<!ENTITY priority.level.normal "Normal">
+<!ENTITY priority.level.normal.accesskey "N">
+<!ENTITY priority.level.high "Alta">
+<!ENTITY priority.level.high.accesskey "A">
+
+<!ENTITY calendar.context.postpone.1hour.label "1 hora">
+<!ENTITY calendar.context.postpone.1hour.accesskey "h">
+<!ENTITY calendar.context.postpone.1day.label "1 dia">
+<!ENTITY calendar.context.postpone.1day.accesskey "d">
+<!ENTITY calendar.context.postpone.1week.label "1 semana">
+<!ENTITY calendar.context.postpone.1week.accesskey "s">
+
+<!ENTITY calendar.copylink.label "Copiar ligação da localização">
+<!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 "Apagar">
+
+<!-- Server Context Menu -->
+<!ENTITY calendar.context.newserver.label "Novo calendário…">
+<!ENTITY calendar.context.newserver.accesskey "N">
+<!ENTITY calendar.context.findcalendar.label "Localizar calendário…" >
+<!ENTITY calendar.context.findcalendar.accesskey "o" >
+<!ENTITY calendar.context.deleteserver2.label "Apagar calendário…">
+<!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 "Remover calendário…">
+<!ENTITY calendar.context.removeserver.accesskey "R">
+<!ENTITY calendar.context.unsubscribeserver.label "Cancelar subscrição do calendário…">
+<!ENTITY calendar.context.unsubscribeserver.accesskey "u">
+<!ENTITY calendar.context.synccalendars.label "Sincronizar calendários">
+<!ENTITY calendar.context.synccalendars.accesskey "S">
+<!ENTITY calendar.context.publish.label "Publicar calendário…">
+<!ENTITY calendar.context.publish.accesskey "b">
+<!ENTITY calendar.context.export.label "Exportar calendário…">
+<!ENTITY calendar.context.export.accesskey "E">
+<!ENTITY calendar.context.properties.label "Propriedades">
+<!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 "Mostrar todos os calendários">
+<!ENTITY calendar.context.showall.accesskey "a">
+
+<!ENTITY calendar.context.convertmenu.label "Converter para">
+<!ENTITY calendar.context.convertmenu.accesskey.mail "n">
+<!ENTITY calendar.context.convertmenu.accesskey.calendar "v">
+<!ENTITY calendar.context.convertmenu.event.label "Evento…">
+<!ENTITY calendar.context.convertmenu.event.accesskey "E">
+<!ENTITY calendar.context.convertmenu.message.label "Mensagem…">
+<!ENTITY calendar.context.convertmenu.message.accesskey "M">
+<!ENTITY calendar.context.convertmenu.task.label "Tarefa…">
+<!ENTITY calendar.context.convertmenu.task.accesskey "T">
+
+<!ENTITY calendar.tasks.view.minimonth.label "Mini-mês">
+<!ENTITY calendar.tasks.view.minimonth.accesskey "M">
+
+<!ENTITY calendar.tasks.view.calendarlist.label "Lista de calendários">
+<!ENTITY calendar.tasks.view.calendarlist.accesskey "L">
+
+<!ENTITY calendar.tasks.view.filtertasks.label "Filtrar tarefas">
+<!ENTITY calendar.tasks.view.filtertasks.accesskey "F">
+
+<!-- Calendar Alarm Dialog -->
+
+<!ENTITY calendar.alarm.location.label "Localização:" >
+<!ENTITY calendar.alarm.details.label "Detalhes…" >
+
+<!ENTITY calendar.alarm.snoozefor.label "Silenciar durante" >
+<!ENTITY calendar.alarm.snoozeallfor.label "Silenciar tudo durante" >
+<!ENTITY calendar.alarm.title.label "Lembretes do calendário" >
+<!ENTITY calendar.alarm.dismiss.label "Dispensar" >
+<!ENTITY calendar.alarm.dismissall.label "Dispensar tudo" >
+
+<!ENTITY calendar.alarm.snooze.5minutes.label "5 minutos" >
+<!ENTITY calendar.alarm.snooze.10minutes.label "10 minutos" >
+<!ENTITY calendar.alarm.snooze.15minutes.label "15 minutos" >
+<!ENTITY calendar.alarm.snooze.30minutes.label "30 minutos" >
+<!ENTITY calendar.alarm.snooze.45minutes.label "45 minutos" >
+<!ENTITY calendar.alarm.snooze.1hour.label "1 hora" >
+<!ENTITY calendar.alarm.snooze.2hours.label "2 horas" >
+<!ENTITY calendar.alarm.snooze.1day.label "1 dia" >
+
+<!-- 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 "Cancelar silenciamento">
+
+<!-- Calendar Server Dialog -->
+<!ENTITY calendar.server.dialog.title.edit "Editar calendário">
+<!ENTITY calendar.server.dialog.name.label "Nome do calendário:">
+
+<!-- Calendar Properties -->
+<!ENTITY calendarproperties.color.label "Cor:">
+<!ENTITY calendarproperties.webdav.label "iCalendar (ICS)">
+<!ENTITY calendarproperties.caldav.label "CalDAV">
+<!ENTITY calendarproperties.wcap.label "Servidor de calendário Sun Java (WCAP)">
+<!ENTITY calendarproperties.format.label "Formato:">
+<!ENTITY calendarproperties.location.label "Localização:">
+<!ENTITY calendarproperties.refreshInterval.label "Atualização de calendário:">
+<!ENTITY calendarproperties.refreshInterval.manual.label "Manual">
+<!ENTITY calendarproperties.name.label "Nome:">
+<!ENTITY calendarproperties.readonly.label "Só leitura">
+<!ENTITY calendarproperties.firealarms.label "Mostrar lembretes">
+<!ENTITY calendarproperties.cache3.label "Suporte offline">
+<!ENTITY calendarproperties.enabled.label "Ativar este calendário">
+<!ENTITY calendarproperties.enabled2.label "Ativar este calendário">
+<!ENTITY calendarproperties.forceDisabled.label "O fornecedor deste calendário não foi encontrado. Isto pode acontecer caso tenha desativado ou desinstalado alguns extras.">
+<!ENTITY calendarproperties.unsubscribe.label "Cancelar subscrição">
+<!ENTITY calendarproperties.unsubscribe.accesskey "u">
+
+<!-- Calendar Publish Dialog -->
+<!ENTITY calendar.publish.dialog.title "Publicar calendário">
+<!ENTITY calendar.publish.url.label "Publicar URL">
+<!ENTITY calendar.publish.publish.button "Publicar">
+<!ENTITY calendar.publish.close.button "Fechar">
+
+<!ENTITY calendar.publish.example.url.description "Algo como http://www.meuservidor.com/webdav/teste.ics">
+
+<!-- Select Calendar Dialog -->
+<!ENTITY calendar.select.dialog.title "Selecione o calendário">
+
+<!-- Calendar Printing -->
+<!ENTITY calendar.print.window.title "Imprimir calendário">
+<!ENTITY calendar.print.title.label "Título:">
+<!ENTITY calendar.print.layout.label "Esquema:">
+<!ENTITY calendar.print.range.label "O que imprimir">
+<!ENTITY calendar.print.currentView2.label "Visualização atual">
+<!ENTITY calendar.print.selectedEventsAndTasks.label "Eventos/tarefas selecionadas">
+<!ENTITY calendar.print.tasks.label "Tarefas">
+<!ENTITY calendar.print.events.label "Eventos">
+<!ENTITY calendar.print.custom.label "Intervalo personalizado:">
+<!ENTITY calendar.print.from.label "De:">
+<!ENTITY calendar.print.to.label "Para:">
+<!ENTITY calendar.print.settingsGroup.label "Definições de impressão">
+<!ENTITY calendar.print.optionsGroup.label "Opções">
+<!ENTITY calendar.print.taskswithnoduedate.label "Tarefas sem data de vencimento">
+<!ENTITY calendar.print.completedtasks.label "Tarefas concluídas">
+
+<!-- Error reporting -->
+<!ENTITY calendar.error.detail "Detalhes…">
+<!ENTITY calendar.error.code "Código de erro:">
+<!ENTITY calendar.error.description "Descrição:">
+<!ENTITY calendar.error.title "Ocorreu um erro">
+
+<!-- Extract buttons in message header -->
+<!ENTITY calendar.extract.event.button "Adicionar como evento">
+<!ENTITY calendar.extract.task.button "Adicionar como tarefa">
+<!ENTITY calendar.extract.event.button.tooltip "Extrair informações da mensagem e adicionar ao calendário como evento">
+<!ENTITY calendar.extract.task.button.tooltip "Extrair informações da mensagem e adicionar ao calendário como evento">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendar.properties
new file mode 100644
index 0000000000..42b9a27121
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Novo Evento
+
+# Titles for the event/task dialog
+newEventDialog=Novo Evento
+editEventDialog=Editar Evento
+newTaskDialog=Nova Tarefa
+editTaskDialog=Editar Tarefa
+
+# Do you want to save changes?
+askSaveTitleEvent=Guardar Evento
+askSaveTitleTask=Guardar Tarefa
+askSaveMessageEvent=O evento não foi guardado. Deseja guardar o evento?
+askSaveMessageTask=A tarefa não foi guardada. Deseja guardar a tarefa?
+
+# Event Dialog Warnings
+warningEndBeforeStart=A data de fim é anterior à data de início
+warningUntilDateBeforeStart=A data "Até" ocorre antes da data de início
+
+# The name of the calendar provided with the application by default
+homeCalendarName=Início
+
+# The name given to a calendar if an opened calendar has an empty filename
+untitledCalendarName=Calendário sem título
+
+# Event status: Tentative, Confirmed, Cancelled
+# ToDo task status: NeedsAction, InProcess, Completed, Cancelled
+statusTentative =Tentativa
+statusConfirmed =Confirmado
+eventStatusCancelled=Cancelado
+todoStatusCancelled =Cancelada
+statusNeedsAction =Requer ação
+statusInProcess =Em curso
+statusCompleted =Concluída
+
+# Task priority, these should match the priority.level.* labels in calendar.dtd
+highPriority=Alta
+normalPriority=Normal
+lowPriority=Baixa
+
+importPrompt=Para que calendário deseja importar estes itens?
+exportPrompt=De que calendário deseja exportar?
+pastePrompt=Qual dos seus calendários atualmente editáveis deseja colar para?
+publishPrompt=Qual o calendário que deseja publicar?
+
+# LOCALIZATION NOTE (pasteEventAlso): The users pasting operation includes among
+# others also a meeting invitation - this is used as a affix in
+# pasteNotifyAbout
+pasteEventAlso=A sua colagem inclui uma reunião
+# LOCALIZATION NOTE (pasteEventsAlso): The users pasting operation includes among
+# others also several meeting invitations - this is used as a affix in
+# pasteNotifyAbout
+pasteEventsAlso=A sua colagem inclui reuniões
+# LOCALIZATION NOTE (pasteTaskAlso): The users pasting operation includes among
+# others also an assigned task - this is used as a affix in pasteNotifyAbout
+pasteTaskAlso=A sua colagem inclui uma tarefa atribuída
+# LOCALIZATION NOTE (pasteTasksAlso): The users pasting operation include among
+# others also several assigned tasks - this is used as a affix in
+# pasteNotifyAbout
+pasteTasksAlso=A sua colagem inclui tarefas atribuídas
+# 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=A sua colagem inclui reuniões e tarefas atribuídas
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting a meeting -
+# this is used as a affix in pasteNotifyAbout
+pasteEventOnly=Você está a colar uma reunião
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several meetings -
+# this is used as a affix in pasteNotifyAbout
+pasteEventsOnly=Você está a colar reuniões
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting an assigned task -
+# this is used as a affix in pasteNotifyAbout
+pasteTaskOnly=Você está a colar uma tarefa atribuída
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several assigned
+# tasks - this is used as a affix in pasteNotifyAbout
+pasteTasksOnly=Você está a colar tarefas atribuídas
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting assigned task(s) and
+# meeting(s) - this is used as a affix in pasteNotifyAbout
+pasteItemsOnly=Você está a colar reuniões e tarefas atribuídas
+
+# LOCALIZATION NOTE (pasteNotifyAbout): Text displayed if pasting an invitation
+# or assigned task
+# %1$S - pasteEvent* or pasteTask*
+pasteNotifyAbout=%1$S - deseja enviar uma atualização para todos os envolvidos?
+
+# LOCALIZATION NOTE (pasteAndNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteAndNotifyLabel=Colar e enviar agora
+# LOCALIZATION NOTE (pasteDontNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteDontNotifyLabel=Colar sem enviar
+
+# 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=Erro ao importar %1$S itens. O último erro foi: %2$S
+# LOCALIZATION NOTE (noItemsInCalendarFile2):
+# %1$S will be replaced with file path
+noItemsInCalendarFile2=Não é possível importar de %1$S. Não existem itens para importar neste ficheiro.
+
+#spaces needed at the end of the following lines
+eventDescription=Descrição:
+
+unableToRead=Não foi possível ler o ficheiro:
+unableToWrite=Não foi possível escrever no ficheiro:
+defaultFileName=MozillaCalEvents
+HTMLTitle=Calendário Mozilla
+
+# 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=Encontrado um fuso horário desconhecido e indefinido ao ler %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 itens foram ignorados uma vez que já existem no calendário de destino e em %2$S.
+
+unableToCreateProvider=Ocorreu um erro ao preparar o calendário localizado em %1$S. Não estará disponível.
+
+# Sample: Unknown timezone "USPacific" in "Dentist Appt". Using the 'floating' local timezone instead: 2008/02/28 14:00:00
+unknownTimezoneInItem=Fuso horário "%1$S" desconhecido em "%2$S". Tratado como fuso horário local 'variável': %3$S
+TimezoneErrorsAlertTitle=Erros de fuso horário
+TimezoneErrorsSeeConsole=Consulte a consola de erro: Os fusos horários desconhecidos são tratados como fusos 'variáveis' horários locais.
+
+# The following strings are for the prompt to delete/unsubscribe from the calendar
+removeCalendarTitle=Remover calendário
+removeCalendarButtonDelete=Apagar calendário
+removeCalendarButtonUnsubscribe=Cancelar subscrição
+
+# LOCALIZATION NOTE (removeCalendarMessageDeleteOrUnsubscribe): Shown for
+# calendar where both deleting and unsubscribing is possible.
+# %1$S: The name of a calendar
+removeCalendarMessageDeleteOrUnsubscribe=Pretende remover o calendário "%1$S"? Se cancelar a subscrição, remove-o da lista mas a eliminação purga permanentemente os seus dados.
+
+# LOCALIZATION NOTE (removeCalendarMessageDelete): Shown for calendar where
+# deleting is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageDelete=Deseja apagar permanentemente o calendário "%1$S"?
+
+# LOCALIZATION NOTE (removeCalendarMessageUnsubscribe): Shown for calendar
+# where unsubscribing is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageUnsubscribe=Pretende cancelar a subscrição do calendário "%1$S"?
+
+WeekTitle=Semana %1$S
+None=Nenhuma
+
+# 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=Os dados do seu calendário não são compatíveis com esta versão do %1$S. Os dados do calendário no seu perfil foram atualizados por uma nova versão do %1$S. Foi criada uma cópia de segurança do ficheiro de dados com o nome "%2$S". Continuar com um novo ficheiro de dados.
+
+# List of events or todos (unifinder)
+eventUntitled=Sem título
+
+# Tooltips of events or todos
+tooltipTitle=Título:
+tooltipLocation=Localização:
+# 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=Data:
+# event calendar name
+tooltipCalName=Nome do calendário:
+# event status: tentative, confirmed, cancelled
+tooltipStatus=Estado:
+# event organizer
+tooltipOrganizer=Agenda:
+# task/todo fields
+# start date time, due date time, task priority number, completed date time
+tooltipStart=Início:
+tooltipDue=Fim:
+tooltipPriority=Prioridade:
+tooltipPercent=% terminada:
+tooltipCompleted=Concluída:
+
+#File commands and dialogs
+New=Novo
+Open=Abrir
+filepickerTitleImport=Importar
+filepickerTitleExport=Exportar
+
+# 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=Página Web (%1$S)
+
+# Remote calendar errors
+genericErrorTitle=Ocorreu um erro
+httpPutError=Ocorreu um erro ao publicar o ficheiro do calendário.\nCódigo de estado: %1$S: %2$S
+otherPutError=Ocorreu um erro ao publicar o ficheiro do calendário.\nCódigo de estado: 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=Ocorreu um erro ao ler os dados do calendário: %1$S. Foi colocado no modo só de leitura, uma vez que as alterações a este calendário poderão resultar na perda de dados. Pode alterar esta definição escolhendo 'Editar calendário'.
+
+# 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=Ocorreu um erro ao ler os dados do calendário: %1$S. Este foi desativado até que seja seguro utilizá-lo.
+
+# 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=Ocorreu um erro ao ler os dados do calendário: %1$S. Contudo, o erro foi considerado menor e o programa vai tentar continuar.
+
+# 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=Ocorreu um erro ao ler os dados do calendário: %1$S.
+utf8DecodeError=Ocorreu um erro ao descodificar um ficheiro iCalendar (ics) como UTF-8. Verifique se o ficheiro, incluindo símbolos e acentos, está codificado no formato UTF-8.
+icsMalformedError=Ocorreu um erro ao descodificar um ficheiro iCalendar (ics). Verifique se o ficheiro está conforme a sintaxe iCalendar (ics).
+itemModifiedOnServerTitle=Item alterado no servidor
+itemModifiedOnServer=Este item foi alterado no servidor.\n
+modifyWillLoseData=Se submeter as suas alterações irá sobrescrever as alterações feitas no servidor.
+deleteWillLoseData=Se apagar este item, irá perder as alterações efetuadas no servidor.
+updateFromServer=Anular as minhas alterações e recarregar
+proceedModify=Submeter as minhas alterações
+proceedDelete=Apagar
+dav_notDav=O recurso em %1$S não está disponível ou não é uma coleção DAV
+dav_davNotCaldav=O recurso em %1$S é uma coleção DAV mas não é um calendário CalDAV
+itemPutError=Ocorreu um erro ao guardar o item no servidor.
+itemDeleteError=Ocorreu um erro ao apagar o item do servidor.
+caldavRequestError=Ocorreu um erro ao enviar o convite.
+caldavResponseError=Ocorreu um erro ao enviar a resposta.
+caldavRequestStatusCode=Código de estado: %1$S
+caldavRequestStatusCodeStringGeneric=O pedido não pode ser processado.
+caldavRequestStatusCodeString400=O pedido contém uma sintaxe inválida e não pode ser processado.
+caldavRequestStatusCodeString403=O utilizador não tem as permissões necessárias para realizar o pedido.
+caldavRequestStatusCodeString404=Recurso não encontrado.
+caldavRequestStatusCodeString409=Conflito de recursos.
+caldavRequestStatusCodeString412=Falha de pré-condição.
+caldavRequestStatusCodeString500=Erro interno do servidor.
+caldavRequestStatusCodeString502=Gateway inválido (configuração do proxy?).
+caldavRequestStatusCodeString503=Erro interno do servidor (servidor temporário desatualizado?).
+caldavRedirectTitle=Atualizar localização do calendário %1$S?
+caldavRedirectText=Os pedidos para %1$S estão a ser encaminhados para uma nova localização. Gostaria de mudar a localização para o seguinte valor?
+caldavRedirectDisableCalendar=Desativar calendário
+
+
+# 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=América/Nova_Iorque, América/Chicago, América/Denver, América/Phoenix, América/Los_Angeles, América/Anchorage, América/Adak, Pacífico/Honolulu, América/Porto_Rico, América/Halifax, América/Cidade_do_México, América/Argentina/Buenos_Aires, América/São_Paulo, Europa/Londres, Europa/Paris, Ásia/Cingapura, Ásia/Tóquio, África/Lagos, África/Joanesburgo, África/Nairobi, Austrália/Brisbane, Austrália/Sydney, Pacífico/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=Aviso: o fuso horário do sistema operativo "%1$S"\njá não corresponde ao fuso horário interno ZoneInfo "%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=A ignorar fuso horário '%1$S' do sistema operativo.
+
+# "Skipping locale timezone 'America/New_Yawk'."
+# Testing note: Skipping occurs if a likelyTimezone id is unknown or misspelled.
+SkippingLocaleTimezone=A ignorar fuso horário regional '%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=Aviso: a utilizar fuso horário "flutuante".\nNenhuns dados do fuso horário ZoneInfo correspondem com os dados do fuso horário do sistema operativo.
+
+# "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=Aviso: a utilizar fuso horário aproximado\n %1$S (UTC%2$S).\n%3$S\n%4$S
+
+# Testing note: "Almost match" timezones include Cairo on W2k.
+TZAlmostMatchesOSDifferAtMostAWeek=Este fuso horário ZoneInfo é aproximado ao do sistema operativo.\nPara esta regra, as transições entre a hora de verão e a hora padrão\ndiferem, no máximo, uma semana das transições do sistema operativo.\nPoderão existir discrepâncias nos dados, tais como diferenças na data inicial,\nou regra, ou aproximação a uma regra de calendário não gregoriano.
+
+TZSeemsToMatchOS=Este fuso horário ZoneInfo é coincidente com o do sistema operativo para este ano.
+
+# LOCALIZATION NOTE (TZFromOS):
+# used for a display of a chosen timezone
+# %1$S will be replaced with the name of a timezone
+TZFromOS=Este fuso horário ZoneInfo foi escolhido tendo como base o \nidentificador do fuso horário do sistema operativo "%1$S".
+
+# Localization note (TZFromLocale): Substitute name of your locale language.
+TZFromLocale=Este fuso horário ZoneInfo foi escolhido com base no fuso horário do sistema operativo\nbaseado nos fusos horários para utilizadores de Internet que utilizam Inglês Americano.
+
+TZFromKnownTimezones=Este fuso horário ZoneInfo foi escolhido tendo como base o fuso horário do sistema\ne fusos horários conhecidos ordenados por ordem alfabética do respetivo identificador.
+
+# Print Layout
+tasksWithNoDueDate = Tarefas sem data de fim
+
+# Providers
+caldavName=CalDAV
+compositeName=Composto
+icsName=iCalendar (ICS)
+memoryName=Temporário (memória)
+storageName=Local (SQLite)
+
+# Used in created html code for export
+htmlPrefixTitle=Título
+htmlPrefixWhen=Quando
+htmlPrefixLocation=Localização
+htmlPrefixDescription=Descrição
+htmlTaskCompleted=%1$S (concluída)
+
+# Categories
+addCategory=Adicionar categoria
+multipleCategories=Várias categorias
+
+today=Hoje
+tomorrow=Amanhã
+yesterday=Ontem
+
+#Today pane
+eventsonly=Eventos
+eventsandtasks=Eventos e tarefas
+tasksonly=Tarefas
+shortcalendarweek=CS
+
+go=Ir
+
+# 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=seguinte
+next2=seguinte
+last1=última(o)
+last2=última(o)
+
+# Alarm Dialog
+# LOCALIZATION NOTE (alarmWindowTitle.label): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+alarmWindowTitle.label=#1 lembrete;#1 lembretes
+
+# 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=Início: %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=Hoje, %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=Amanhã, %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=Ontem, %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=Descrição predefinida Mozilla
+alarmDefaultSummary=Sumário predefinido Mozilla
+
+# LOCALIZATION NOTE (alarmSnoozeLimitExceeded): Semi-colon list of plural
+# forms.
+alarmSnoozeLimitExceeded=Não pode silenciar um alarme por mais do que #1 mês.;Não pode silenciar um alarme por mais do que #1 meses.
+
+taskDetailsStatusNeedsAction=Requer ação
+
+# 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%% terminada
+taskDetailsStatusCompleted=Concluída
+
+# 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=Concluída em %1$S
+taskDetailsStatusCancelled=Cancelada
+
+gettingCalendarInfoCommon=A verificar calendários…
+
+# 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=A verificar calendário %1$S de %2$S
+
+# LOCALIZATION NOTE (errorCode):
+# %1$S will be replaced with the number of an error code
+errorCode=Código de erro: %1$S
+
+# LOCALIZATION NOTE (errorDescription):
+# %1$S will be replaced with the description of an error
+errorDescription=Descrição: %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=Ocorreu um erro ao escrever para o calendário %1$S! Por favor veja abaixo para mais informação.
+
+# LOCALIZATION NOTE (errorWritingDetails):
+# This will be displayed in the detail section of the error dialog
+errorWritingDetails=Se está a ver esta mensagem depois de suspender ou dispensar um lembrete e é para um calendário que não deseja adicionar ou editar eventos para, pode marcar este calendário como de leitura para evitar esta experiência no futuro. Para o fazer, vá às propriedades do calendário ao clicar com o lado direito neste calendário na lista de calendários ou vista de tarefas.
+
+# 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=O calendário %1$S não está disponível
+
+# 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=O calendário %1$S é apenas de leitura
+
+taskEditInstructions=Clique aqui para adicionar uma nova tarefa
+taskEditInstructionsReadonly=Por favor selecione um calendário editável
+taskEditInstructionsCapability=Por favor selecione um calendário com suporte a tarefas
+
+eventDetailsStartDate=Início:
+eventDetailsEndDate=Fim:
+
+# 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=Semana de calendário: %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=Semanas de calendário %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=CS: %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=SC: %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=S %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 dia;#1 dias
+dueInHours=#1 hora;#1 horas
+dueInLessThanOneHour=< 1 hora
+
+# 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 de %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 de %3$S de %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=%2$S - %3$S %1$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=%2$S de %1$S - %4$S de %3$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=%2$S de %1$S, %3$S - %5$S de %4$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, à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=%2$S - %3$S de %1$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, às %2$S – %3$S, às %4$S
+
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDate):
+# used for task without start and due date
+# (showed only in exported calendar in Html format)
+datetimeIntervalTaskWithoutDate= sem data de início ou fim
+# 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=data de início %2$S em %1$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=data de fim %2$S em %1$S
+
+# LOCALIZATION NOTE (dragLabelTasksWithOnlyEntryDate
+# dragLabelTasksWithOnlyDueDate)
+# Labels that appear while dragging a task with only
+# entry date OR due date
+dragLabelTasksWithOnlyEntryDate=Hora de início
+dragLabelTasksWithOnlyDueDate=Data limite
+
+deleteTaskLabel=Apagar tarefa
+deleteTaskAccesskey=l
+deleteItemLabel=Apagar
+deleteItemAccesskey=l
+deleteEventLabel=Apagar evento
+deleteEventAccesskey=l
+
+calendarPropertiesEveryMinute=Todos os minutos;A cada #1 minutos
+
+# LOCALIZATION NOTE (extractUsing)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+extractUsing=A utilizar %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=A utilizar %1$S (%2$S)
+
+# LOCALIZATION NOTE (unit)
+# Used to determine the correct plural form of a unit
+unitMinutes=#1 minuto;#1 minutos
+unitHours=#1 hora;#1 horas
+unitDays=#1 dia;#1 dias
+unitWeeks=#1 semana;#1 semanas
+
+# 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=Mostrar %1$S
+hideCalendar=Ocultar %1$S
+# uses the access key calendar.context.showonly.accesskey
+showOnlyCalendar=Mostrar apenas %1$S
+
+# LOCALIZATION NOTE (modifyConflict)
+# Used by the event dialog to resolve item modification conflicts.
+modifyConflictPromptTitle=Conflito na modificação do item
+modifyConflictPromptMessage=O item em edição no diálogo foi modificado desde que foi aberto.
+modifyConflictPromptButton1=Sobrescrever as outras alterações
+modifyConflictPromptButton2=Ignorar estas alterações
+
+# Accessible description of a grid calendar with no selected date
+minimonthNoSelectedDate=Nenhuma data selecionada
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendarCreation.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendarCreation.dtd
new file mode 100644
index 0000000000..be51ddac42
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Criar novo calendário" >
+<!ENTITY wizard.label "Criar um novo calendário" >
+<!ENTITY wizard.description "Localize o seu calendário" >
+
+<!ENTITY initialpage.description "O seu calendário pode ser guardado no seu computador ou num servidor para acesso remoto ou partilha." >
+<!ENTITY initialpage.computer.label "No meu computador">
+<!ENTITY initialpage.network.label "Na rede">
+
+<!ENTITY locationpage.description "Disponibiliza as informações sobre o que é necessário para aceder ao calendário remoto" >
+<!ENTITY locationpage.login.description "Opcional: introduza um nome de utilizador e uma palavra-passe" >
+<!ENTITY locationpage.username.label "Nome de utilizador:" >
+<!ENTITY locationpage.password.label "Palavra-passe:" >
+
+<!ENTITY custompage.shortdescription "Personalize o seu calendário" >
+<!ENTITY custompage.longdescription "Pode dar um nome e colorir os eventos deste calendário." >
+
+<!ENTITY finishpage.shortdescription "Calendário criado" >
+<!ENTITY finishpage.longdescription "O seu calendário foi criado." >
+
+<!-- Below are new strings for the revised new calendar dialog. The above strings should be
+ removed/renamed later on -->
+
+<!ENTITY sourcetabs.other.label "Outro">
+
+<!ENTITY buttons.create.label "Criar calendário">
+<!ENTITY buttons.create.accesskey "r">
+
+<!ENTITY buttons.find.label "Localizar calendários">
+<!ENTITY buttons.find.accesskey "F">
+
+<!ENTITY buttons.back.label "Retroceder">
+<!ENTITY buttons.back.accesskey "B">
+
+<!ENTITY buttons.subscribe.label "Subscrever">
+<!ENTITY buttons.subscribe.accesskey "S">
+
+<!ENTITY calendartype.label "Tipo de calendário:">
+<!ENTITY location.label "Localização:">
+<!ENTITY location.placeholder "URL ou nome do servidor para o servidor do calendário">
+
+<!ENTITY network.nocredentials.label "Esta localização não requer credenciais">
+<!ENTITY network.loading.description "Por favor, aguarde enquanto se está à procura dos seus calendários.">
+<!ENTITY network.notfound.description "Não foi possível encontrar os calendários nesta localização. Por favor, verifique as suas definições.">
+<!ENTITY network.authfail.description "As credenciais que introduziu não foram aceites. Por favor verifique as suas definições.">
+
+<!ENTITY network.subscribe.single.description "Por favor, selecione os calendários que gostaria de subscrever.">
+<!ENTITY network.subscribe.multiple.description "Estão disponíveis múltiplos tipos de calendários nesta localização. Por favor, selecione o tipo de calendário, depois marque os calendários que gostaria de subscrever.">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendarCreation.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/calendarCreation.properties
new file mode 100644
index 0000000000..0c014d784e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Escolha uma localização válida.
+error.alreadyExists=Já tem uma subscrição do calendário neste local.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/categories.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/categories.properties
new file mode 100644
index 0000000000..528c5f0a26
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Aniversário,Nascimento,Negócios,Chamadas,Clientes,Concorrentes,Clientes,Favoritos,Acompanhar,Ofertas,Feriados,Ideias,Problemas,Encontros,Diversos,Pessoal,Projetos,Feriado públicos,Estado,Fornecedores,Viagem,Férias
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/dateFormat.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/dateFormat.properties
new file mode 100644
index 0000000000..41da04982e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=janeiro
+month.2.name=fevereiro
+month.3.name=março
+month.4.name=abril
+month.5.name=maio
+month.6.name=junho
+month.7.name=julho
+month.8.name=agosto
+month.9.name=setembro
+month.10.name=outubro
+month.11.name=novembro
+month.12.name=dezembro
+
+# 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=janeiro
+month.2.genitive=fevereiro
+month.3.genitive=março
+month.4.genitive=abril
+month.5.genitive=maio
+month.6.genitive=junho
+month.7.genitive=julho
+month.8.genitive=agosto
+month.9.genitive=setembro
+month.10.genitive=outubro
+month.11.genitive=novembro
+month.12.genitive=dezembro
+
+month.1.Mmm=jan
+month.2.Mmm=fev
+month.3.Mmm=mar
+month.4.Mmm=abr
+month.5.Mmm=mai
+month.6.Mmm=jun
+month.7.Mmm=jul
+month.8.Mmm=ago
+month.9.Mmm=set
+month.10.Mmm=out
+month.11.Mmm=nov
+month.12.Mmm=dez
+
+day.1.name=domingo
+day.2.name=segunda
+day.3.name=terça
+day.4.name=quarta
+day.5.name=quinta
+day.6.name=sexta
+day.7.name=sábado
+
+day.1.Mmm=dom
+day.2.Mmm=seg
+day.3.Mmm=ter
+day.4.Mmm=qua
+day.5.Mmm=qui
+day.6.Mmm=sex
+day.7.Mmm=sáb
+
+# Can someone tell me why we're not counting from zero?
+day.1.short=do
+day.2.short=se
+day.3.short=te
+day.4.short=qu
+day.5.short=q
+day.6.short=se
+day.7.short=sá
+
+# 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=Meio dia
+midnight=Meia noite
+
+AllDay=Dia completo
+Repeating=(Recorrente)
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/dialogs/calendar-event-dialog-reminder.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/dialogs/calendar-event-dialog-reminder.dtd
new file mode 100644
index 0000000000..552da53100
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Configurar lembretes">
+<!ENTITY reminder.add.label "Adicionar">
+<!ENTITY reminder.add.accesskey "A">
+<!ENTITY reminder.remove.label "Remover">
+<!ENTITY reminder.remove.accesskey "R">
+
+<!ENTITY reminder.reminderDetails.label "Detalhes do lembrete">
+<!ENTITY reminder.action.label "Escolha uma ação para o lembrete">
+
+<!ENTITY reminder.action.alert.label "Mostrar um alerta">
+<!ENTITY reminder.action.email.label "Enviar uma mensagem">
+
+<!ENTITY alarm.units.minutes "minutos" >
+<!ENTITY alarm.units.hours "horas" >
+<!ENTITY alarm.units.days "dias" >
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/global.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/global.dtd
new file mode 100644
index 0000000000..d124756d87
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/global.dtd
@@ -0,0 +1,54 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY time.midnight "Meia noite" >
+<!ENTITY time.noon "Meio dia" >
+
+<!-- Day Names -->
+<!-- LOCALIZATION NOTE : Accesskeys for day.1.Ddd to day.7.Ddd are currently
+ only used in Preferences > Views > Workweek groupbox -->
+<!ENTITY day.1.Ddd "dom" >
+<!ENTITY day.1.Ddd.accesskey "d">
+<!ENTITY day.2.Ddd "seg" >
+<!ENTITY day.2.Ddd.accesskey "s">
+<!ENTITY day.3.Ddd "ter" >
+<!ENTITY day.3.Ddd.accesskey "t">
+<!ENTITY day.4.Ddd "qua" >
+<!ENTITY day.4.Ddd.accesskey "q">
+<!ENTITY day.5.Ddd "qui" >
+<!ENTITY day.5.Ddd.accesskey "u">
+<!ENTITY day.6.Ddd "sex" >
+<!ENTITY day.6.Ddd.accesskey "x">
+<!ENTITY day.7.Ddd "sáb" >
+<!ENTITY day.7.Ddd.accesskey "b">
+
+<!ENTITY day.1.name "domingo" >
+<!ENTITY day.2.name "segunda" >
+<!ENTITY day.3.name "terça" >
+<!ENTITY day.4.name "quarta" >
+<!ENTITY day.5.name "quinta" >
+<!ENTITY day.6.name "sexta" >
+<!ENTITY day.7.name "sábado" >
+
+<!ENTITY month.1.name "janeiro" >
+<!ENTITY month.2.name "fevereiro" >
+<!ENTITY month.3.name "março" >
+<!ENTITY month.4.name "abril" >
+<!ENTITY month.5.name "maio" >
+<!ENTITY month.6.name "junho" >
+<!ENTITY month.7.name "julho" >
+<!ENTITY month.8.name "agosto" >
+<!ENTITY month.9.name "setembro" >
+<!ENTITY month.10.name "outubro" >
+<!ENTITY month.11.name "novembro" >
+<!ENTITY month.12.name "dezembro" >
+
+<!ENTITY onemonthbackward.tooltip "Recuar um mês" >
+<!ENTITY onemonthforward.tooltip "Avançar um mês" >
+<!ENTITY oneyearbackward.tooltip "Recuar um ano" >
+<!ENTITY oneyearforward.tooltip "Avançar um ano" >
+<!ENTITY showToday.tooltip "Ir para hoje">
+<!ENTITY onedayforward.tooltip "Avançar um dia">
+<!ENTITY onedaybackward.tooltip "Recuar um dia">
+<!ENTITY showselectedday.tooltip "Mostrar eventos do dia selecionado">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/menuOverlay.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/menuOverlay.dtd
new file mode 100644
index 0000000000..a38e209d98
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/menuOverlay.dtd
@@ -0,0 +1,50 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!-- Event Menu -->
+
+<!ENTITY event.new.event "Novo evento…">
+<!ENTITY event.new.event.accesskey "N">
+
+<!ENTITY event.new.task "Nova tarefa…">
+<!ENTITY event.new.task.accesskey "t">
+
+<!ENTITY calendar.import.label "Importar…">
+<!ENTITY calendar.import.accesskey "I">
+
+<!ENTITY calendar.export.label "Exportar…">
+<!ENTITY calendar.export.accesskey "E">
+
+<!ENTITY calendar.publish.label "Publicar…">
+<!ENTITY calendar.publish.accesskey "b">
+
+<!ENTITY calendar.deletecalendar.label "Apagar calendário selecionado…">
+<!ENTITY calendar.deletecalendar.accesskey "d">
+<!ENTITY calendar.unsubscribecalendar.label "Cancelar subscrição do calendário selecionado…">
+<!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 "Remover calendário selecionado…">
+<!ENTITY calendar.removecalendar.accesskey "R">
+
+
+<!ENTITY calendar.menu.customize.label "Personalizar…">
+<!ENTITY calendar.menu.customize.accesskey "z">
+
+<!ENTITY showUnifinderCmd.label "Localizar eventos">
+<!ENTITY showUnifinderCmd.accesskey "c">
+<!ENTITY showUnifinderCmd.tooltip "Alternar o painel de localizar eventos">
+
+<!ENTITY calendar.displaytodos.checkbox.label "Mostrar tarefas no calendário">
+<!ENTITY calendar.displaytodos.checkbox.accesskey "t">
+
+<!ENTITY goTodayCmd.label "Hoje">
+<!ENTITY goTodayCmd.accesskey "H">
+
+<!ENTITY showCurrentView.label "Visão atual">
+<!ENTITY showCurrentView.accesskey "V">
+
+<!ENTITY calendar.properties.label "Propriedades do calendário…">
+<!ENTITY calendar.properties.accesskey "a">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/migration.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/migration.dtd
new file mode 100644
index 0000000000..b15af0bf85
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Importação de dados do &brandFullName;:">
+<!ENTITY migration.welcome "Bem-vindo(a)">
+<!ENTITY migration.importing "Importar">
+<!ENTITY migration.list.description "O &brandShortName; pode importar os calendários de diversas aplicações. Foram encontrados dados dados das seguintes aplicações. Por favor escolha as aplicações para a importação de dados.">
+<!ENTITY migration.progress.description "A importar dados selecionados">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/migration.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/migration.properties
new file mode 100644
index 0000000000..70489c13e6
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/migration.properties
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+migratingApp = A migrar %1$S…
+
+# The next two lines are duplicated from migration.dtd until there is branding
+# for lightning
+migrationTitle = Importação de dados do %1$S
+migrationDescription=O %1$S pode importar os calendários de diversas aplicações. Foram encontrados dados dados das seguintes aplicações. Por favor escolha as aplicações para a importação de dados.
+finished = Terminado
+disableExtTitle = Encontrada uma extensão incompatível
+disableExtText = Você tem uma extensão que não é compatível com o Lightning. A extensão será desativada e o %1$S será reiniciado.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/provider-uninstall.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/provider-uninstall.dtd
new file mode 100644
index 0000000000..84ef825a68
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Remover um fornecedor">
+<!ENTITY providerUninstall.accept.label "Remover subscrição selecionada">
+<!ENTITY providerUninstall.accept.accesskey "u">
+<!ENTITY providerUninstall.cancel.label "Manter extra">
+<!ENTITY providerUninstall.cancel.accesskey "M">
+<!ENTITY providerUninstall.preName.label "Pediu para desinstalar ou desativar:">
+<!ENTITY providerUninstall.postName.label "Isto fará com que os calendários abaixo sejam desativados.">
+<!ENTITY providerUninstall.reinstallNote.label "A menos que planeie reinstalar este fornecedor, poderá cancelar a subscrição deste fornecedor.">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/timezones.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/timezones.properties
new file mode 100644
index 0000000000..f0e87a3313
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/calendar/timezones.properties
@@ -0,0 +1,497 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=Hora local
+pref.timezone.UTC=UTC/GMT
+
+# I've derived this list out of timezones.dtd
+# - replaced '_' with ' ' on value side
+# - corrected 'St xyz' to 'St. xyz'
+
+# 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=África/Abidjan
+pref.timezone.Africa.Accra=África/Accra
+pref.timezone.Africa.Addis_Ababa=África/Addis_Ababa
+pref.timezone.Africa.Algiers=África/Algiers
+pref.timezone.Africa.Asmara=África/Asmara
+pref.timezone.Africa.Bamako=África/Bamako
+pref.timezone.Africa.Bangui=África/Bangui
+pref.timezone.Africa.Banjul=África/Banjul
+pref.timezone.Africa.Bissau=África/Bissau
+pref.timezone.Africa.Blantyre=África/Blantyre
+pref.timezone.Africa.Brazzaville=África/Brazzaville
+pref.timezone.Africa.Bujumbura=África/Bujumbura
+pref.timezone.Africa.Cairo=África/Cairo
+pref.timezone.Africa.Casablanca=África/Casablanca
+pref.timezone.Africa.Ceuta=África/Ceuta
+pref.timezone.Africa.Conakry=África/Conakry
+pref.timezone.Africa.Dakar=África/Dakar
+pref.timezone.Africa.Dar_es_Salaam=África/Dar_es_Salaam
+pref.timezone.Africa.Djibouti=África/Djibouti
+pref.timezone.Africa.Douala=África/Douala
+pref.timezone.Africa.El_Aaiun=África/El_Aaiun
+pref.timezone.Africa.Freetown=África/Freetown
+pref.timezone.Africa.Gaborone=África/Gaborone
+pref.timezone.Africa.Harare=África/Harare
+pref.timezone.Africa.Johannesburg=África/Johannesburg
+pref.timezone.Africa.Kampala=África/Kampala
+pref.timezone.Africa.Khartoum=África/Khartoum
+pref.timezone.Africa.Kigali=África/Kigali
+pref.timezone.Africa.Kinshasa=África/Kinshasa
+pref.timezone.Africa.Lagos=África/Lagos
+pref.timezone.Africa.Libreville=África/Libreville
+pref.timezone.Africa.Lome=África/Lome
+pref.timezone.Africa.Luanda=África/Luanda
+pref.timezone.Africa.Lubumbashi=África/Lubumbashi
+pref.timezone.Africa.Lusaka=África/Lusaka
+pref.timezone.Africa.Malabo=África/Malabo
+pref.timezone.Africa.Maputo=África/Maputo
+pref.timezone.Africa.Maseru=África/Maseru
+pref.timezone.Africa.Mbabane=África/Mbabane
+pref.timezone.Africa.Mogadishu=África/Mogadishu
+pref.timezone.Africa.Monrovia=África/Monrovia
+pref.timezone.Africa.Nairobi=África/Nairobi
+pref.timezone.Africa.Ndjamena=África/Ndjamena
+pref.timezone.Africa.Niamey=África/Niamey
+pref.timezone.Africa.Nouakchott=África/Nouakchott
+pref.timezone.Africa.Ouagadougou=África/Ouagadougou
+pref.timezone.Africa.Porto-Novo=África/Porto-Novo
+pref.timezone.Africa.Sao_Tome=África/Sao_Tome
+pref.timezone.Africa.Tripoli=África/Tripoli
+pref.timezone.Africa.Tunis=África/Tunis
+pref.timezone.Africa.Windhoek=África/Windhoek
+pref.timezone.America.Adak=América/Adak
+pref.timezone.America.Anchorage=América/Anchorage
+pref.timezone.America.Anguilla=América/Anguilla
+pref.timezone.America.Antigua=América/Antigua
+pref.timezone.America.Araguaina=América/Araguaina
+pref.timezone.America.Argentina.Buenos_Aires=América/Argentina/Buenos_Aires
+pref.timezone.America.Argentina.Catamarca=América/Argentina/Catamarca
+pref.timezone.America.Argentina.Cordoba=América/Argentina/Cordoba
+pref.timezone.America.Argentina.Jujuy=América/Argentina/Jujuy
+pref.timezone.America.Argentina.La_Rioja=América/Argentina/La_Rioja
+pref.timezone.America.Argentina.Mendoza=América/Argentina/Mendoza
+pref.timezone.America.Argentina.Rio_Gallegos=América/Argentina/Rio_Gallegos
+pref.timezone.America.Argentina.San_Juan=América/Argentina/San_Juan
+pref.timezone.America.Argentina.Tucuman=América/Argentina/Tucuman
+pref.timezone.America.Argentina.Ushuaia=América/Argentina/Ushuaia
+pref.timezone.America.Aruba=América/Aruba
+pref.timezone.America.Asuncion=América/Asuncion
+pref.timezone.America.Atikokan=América/Atikokan
+pref.timezone.America.Bahia=América/Bahia
+pref.timezone.America.Barbados=América/Barbados
+pref.timezone.America.Belem=América/Belem
+pref.timezone.America.Belize=América/Belize
+pref.timezone.America.Blanc-Sablon=América/Blanc-Sablon
+pref.timezone.America.Boa_Vista=América/Boa Vista
+pref.timezone.America.Bogota=América/Bogota
+pref.timezone.America.Boise=América/Boise
+pref.timezone.America.Cambridge_Bay=América/Cambridge_Bay
+pref.timezone.America.Campo_Grande=América/Campo_Grande
+pref.timezone.America.Cancun=América/Cancun
+pref.timezone.America.Caracas=América/Caracas
+pref.timezone.America.Cayenne=América/Cayenne
+pref.timezone.America.Cayman=América/Cayman
+pref.timezone.America.Chicago=América/Chicago
+pref.timezone.America.Chihuahua=América/Chihuahua
+pref.timezone.America.Costa_Rica=América/Costa_Rica
+pref.timezone.America.Cuiaba=América/Cuiaba
+pref.timezone.America.Curacao=América/Curacao
+pref.timezone.America.Danmarkshavn=América/Danmarkshavn
+pref.timezone.America.Dawson=América/Dawson
+pref.timezone.America.Dawson_Creek=América/Dawson_Creek
+pref.timezone.America.Denver=América/Denver
+pref.timezone.America.Detroit=América/Detroit
+pref.timezone.America.Dominica=América/Dominica
+pref.timezone.America.Edmonton=América/Edmonton
+pref.timezone.America.Eirunepe=América/Eirunepe
+pref.timezone.America.El_Salvador=América/El_Salvador
+pref.timezone.America.Fortaleza=América/Fortaleza
+pref.timezone.America.Glace_Bay=América/Glace_Bay
+pref.timezone.America.Godthab=América/Godthab
+pref.timezone.America.Goose_Bay=América/Goose_Bay
+pref.timezone.America.Grand_Turk=América/Grand_Turk
+pref.timezone.America.Grenada=América/Grenada
+pref.timezone.America.Guadeloupe=América/Guadeloupe
+pref.timezone.America.Guatemala=América/Guatemala
+pref.timezone.America.Guayaquil=América/Guayaquil
+pref.timezone.America.Guyana=América/Guyana
+pref.timezone.America.Halifax=América/Halifax
+pref.timezone.America.Havana=América/Havana
+pref.timezone.America.Hermosillo=América/Hermosillo
+pref.timezone.America.Indiana.Indianapolis=América/Indiana/Indianapolis
+pref.timezone.America.Indiana.Knox=América/Indiana/Knox
+pref.timezone.America.Indiana.Marengo=América/Indiana/Marengo
+pref.timezone.America.Indiana.Petersburg=América/Indiana/Petersburg
+pref.timezone.America.Indiana.Vevay=América/Indiana/Vevay
+pref.timezone.America.Indiana.Vincennes=América/Indiana/Vincennes
+pref.timezone.America.Inuvik=América/Inuvik
+pref.timezone.America.Iqaluit=América/Iqaluit
+pref.timezone.America.Jamaica=América/Jamaica
+pref.timezone.America.Juneau=América/Juneau
+pref.timezone.America.Kentucky.Louisville=América/Kentucky/Louisville
+pref.timezone.America.Kentucky.Monticello=América/Kentucky/Monticello
+pref.timezone.America.La_Paz=América/La_Paz
+pref.timezone.America.Lima=América/Lima
+pref.timezone.America.Los_Angeles=América/Los_Angeles
+pref.timezone.America.Maceio=América/Maceio
+pref.timezone.America.Managua=América/Managua
+pref.timezone.America.Manaus=América/Manaus
+pref.timezone.America.Martinique=América/Martinique
+pref.timezone.America.Mazatlan=América/Mazatlan
+pref.timezone.America.Menominee=América/Menominee
+pref.timezone.America.Merida=América/Merida
+pref.timezone.America.Mexico_City=América/Mexico_City
+pref.timezone.America.Miquelon=América/Miquelon
+pref.timezone.America.Moncton=América/Moncton
+pref.timezone.America.Monterrey=América/Monterrey
+pref.timezone.America.Montevideo=América/Montevideo
+pref.timezone.America.Montreal=América/Montreal
+pref.timezone.America.Montserrat=América/Montserrat
+pref.timezone.America.Nassau=América/Nassau
+pref.timezone.America.New_York=América/New_York
+pref.timezone.America.Nipigon=América/Nipigon
+pref.timezone.America.Nome=América/Nome
+pref.timezone.America.Noronha=América/Noronha
+pref.timezone.America.North_Dakota.Center=América/North_Dakota/Center
+pref.timezone.America.North_Dakota.New_Salem=América/North_Dakota/New_Salem
+pref.timezone.America.Panama=América/Panama
+pref.timezone.America.Pangnirtung=América/Pangnirtung
+pref.timezone.America.Paramaribo=América/Paramaribo
+pref.timezone.America.Phoenix=América/Phoenix
+pref.timezone.America.Port-au-Prince=América/Port-au-Prince
+pref.timezone.America.Port_of_Spain=América/Port_of_Spain
+pref.timezone.America.Porto_Velho=América/Porto_Velho
+pref.timezone.America.Puerto_Rico=América/Puerto_Rico
+pref.timezone.America.Rainy_River=América/Rainy_River
+pref.timezone.America.Rankin_Inlet=América/Rankin_Inlet
+pref.timezone.America.Recife=América/Recife
+pref.timezone.America.Regina=América/Regina
+pref.timezone.America.Rio_Branco=América/Rio_Branco
+pref.timezone.America.Santiago=América/Santiago
+pref.timezone.America.Santo_Domingo=América/Santo Domingo
+pref.timezone.America.Sao_Paulo=América/Sao_Paulo
+pref.timezone.America.Scoresbysund=América/Scoresbysund
+pref.timezone.America.Shiprock=América/Shiprock
+pref.timezone.America.St_Johns=América/St_Johns
+pref.timezone.America.St_Kitts=América/St_Kitts
+pref.timezone.America.St_Lucia=América/St_Lucia
+pref.timezone.America.St_Thomas=América/St_Thomas
+pref.timezone.America.St_Vincent=América/St_Vincent
+pref.timezone.America.Swift_Current=América/Swift_Current
+pref.timezone.America.Tegucigalpa=América/Tegucigalpa
+pref.timezone.America.Thule=América/Thule
+pref.timezone.America.Thunder_Bay=América/Thunder_Bay
+pref.timezone.America.Tijuana=América/Tijuana
+pref.timezone.America.Toronto=América/Toronto
+pref.timezone.America.Tortola=América/Tortola
+pref.timezone.America.Vancouver=América/Vancouver
+pref.timezone.America.Whitehorse=América/Whitehorse
+pref.timezone.America.Winnipeg=América/Winnipeg
+pref.timezone.America.Yakutat=América/Yakutat
+pref.timezone.America.Yellowknife=América/Yellowknife
+pref.timezone.Antarctica.Casey=Antártida/Casey
+pref.timezone.Antarctica.Davis=Antártida/Davis
+pref.timezone.Antarctica.DumontDUrville=Antártida/DumontDUrville
+pref.timezone.Antarctica.Mawson=Antártida/Mawson
+pref.timezone.Antarctica.McMurdo=Antártida/McMurdo
+pref.timezone.Antarctica.Palmer=Antártida/Palmer
+pref.timezone.Antarctica.Rothera=Antártida/Rothera
+pref.timezone.Antarctica.South_Pole=Antártida/South_Pole
+pref.timezone.Antarctica.Syowa=Antártida/Syowa
+pref.timezone.Antarctica.Vostok=Antártida/Vostok
+pref.timezone.Arctic.Longyearbyen=Ártico/Longyearbyen
+pref.timezone.Asia.Aden=Ásia/Aden
+pref.timezone.Asia.Almaty=Ásia/Almaty
+pref.timezone.Asia.Amman=Ásia/Amman
+pref.timezone.Asia.Anadyr=Ásia/Anadyr
+pref.timezone.Asia.Aqtau=Ásia/Aqtau
+pref.timezone.Asia.Aqtobe=Ásia/Aqtobe
+pref.timezone.Asia.Ashgabat=Ásia/Ashgabat
+pref.timezone.Asia.Baghdad=Ásia/Baghdad
+pref.timezone.Asia.Bahrain=Ásia/Bahrain
+pref.timezone.Asia.Baku=Ásia/Baku
+pref.timezone.Asia.Bangkok=Ásia/Bangkok
+pref.timezone.Asia.Beirut=Ásia/Beirut
+pref.timezone.Asia.Bishkek=Ásia/Bishkek
+pref.timezone.Asia.Brunei=Ásia/Brunei
+pref.timezone.Asia.Choibalsan=Ásia/Choibalsan
+pref.timezone.Asia.Chongqing=Ásia/Chongqing
+pref.timezone.Asia.Colombo=Ásia/Colombo
+pref.timezone.Asia.Damascus=Ásia/Damascus
+pref.timezone.Asia.Dhaka=Ásia/Dhaka
+pref.timezone.Asia.Dili=Ásia/Dili
+pref.timezone.Asia.Dubai=Ásia/Dubai
+pref.timezone.Asia.Dushanbe=Ásia/Dushanbe
+pref.timezone.Asia.Gaza=Ásia/Gaza
+pref.timezone.Asia.Harbin=Ásia/Harbin
+pref.timezone.Asia.Hong_Kong=Ásia/Hong_Kong
+pref.timezone.Asia.Hovd=Ásia/Hovd
+pref.timezone.Asia.Irkutsk=Ásia/Irkutsk
+pref.timezone.Asia.Istanbul=Ásia/Istanbul
+pref.timezone.Asia.Jakarta=Ásia/Jakarta
+pref.timezone.Asia.Jayapura=Ásia/Jayapura
+pref.timezone.Asia.Jerusalem=Ásia/Jerusalem
+pref.timezone.Asia.Kabul=Ásia/Kabul
+pref.timezone.Asia.Kamchatka=Ásia/Kamchatka
+pref.timezone.Asia.Karachi=Ásia/Karachi
+pref.timezone.Asia.Kashgar=Ásia/Kashgar
+pref.timezone.Asia.Kathmandu=Ásia/Kathmandu
+pref.timezone.Asia.Krasnoyarsk=Ásia/Krasnoyarsk
+pref.timezone.Asia.Kuala_Lumpur=Ásia/Kuala_Lumpur
+pref.timezone.Asia.Kuching=Ásia/Kuching
+pref.timezone.Asia.Kuwait=Ásia/Kuwait
+pref.timezone.Asia.Macau=Ásia/Macau
+pref.timezone.Asia.Magadan=Ásia/Magadan
+pref.timezone.Asia.Makassar=Ásia/Makassar
+pref.timezone.Asia.Manila=Ásia/Manila
+pref.timezone.Asia.Muscat=Ásia/Muscat
+pref.timezone.Asia.Nicosia=Ásia/Nicosia
+pref.timezone.Asia.Novosibirsk=Ásia/Novosibirsk
+pref.timezone.Asia.Omsk=Ásia/Omsk
+pref.timezone.Asia.Oral=Ásia/Oral
+pref.timezone.Asia.Phnom_Penh=Ásia/Phnom_Penh
+pref.timezone.Asia.Pontianak=Ásia/Pontianak
+pref.timezone.Asia.Pyongyang=Ásia/Pyongyang
+pref.timezone.Asia.Qatar=Ásia/Qatar
+pref.timezone.Asia.Qyzylorda=Ásia/Qyzylorda
+pref.timezone.Asia.Rangoon=Ásia/Rangoon
+pref.timezone.Asia.Riyadh=Ásia/Riyadh
+pref.timezone.Asia.Sakhalin=Ásia/Sakhalin
+pref.timezone.Asia.Samarkand=Ásia/Samarkand
+pref.timezone.Asia.Seoul=Ásia/Seoul
+pref.timezone.Asia.Shanghai=Ásia/Shanghai
+pref.timezone.Asia.Singapore=Ásia/Singapore
+pref.timezone.Asia.Taipei=Ásia/Taipei
+pref.timezone.Asia.Tashkent=Ásia/Tashkent
+pref.timezone.Asia.Tbilisi=Ásia/Tbilisi
+pref.timezone.Asia.Tehran=Ásia/Tehran
+pref.timezone.Asia.Thimphu=Ásia/Thimphu
+pref.timezone.Asia.Tokyo=Ásia/Tokyo
+pref.timezone.Asia.Ulaanbaatar=Ásia/Ulaanbaatar
+pref.timezone.Asia.Urumqi=Ásia/Urumqi
+pref.timezone.Asia.Vientiane=Ásia/Vientiane
+pref.timezone.Asia.Vladivostok=Ásia/Vladivostok
+pref.timezone.Asia.Yakutsk=Ásia/Yakutsk
+pref.timezone.Asia.Yekaterinburg=Ásia/Yekaterinburg
+pref.timezone.Asia.Yerevan=Ásia/Yerevan
+pref.timezone.Atlantic.Azores=Atlântico/Açores
+pref.timezone.Atlantic.Bermuda=Atlântico/Bermuda
+pref.timezone.Atlantic.Canary=Atlântico/Canárias
+pref.timezone.Atlantic.Cape_Verde=Atlântico/Cabo Verde
+pref.timezone.Atlantic.Faroe=Atlântico/Faroe
+pref.timezone.Atlantic.Madeira=Atlântico/Madeira
+pref.timezone.Atlantic.Reykjavik=Atlântico/Reykjavik
+pref.timezone.Atlantic.South_Georgia=Atlântico/South_Georgia
+pref.timezone.Atlantic.St_Helena=Atlântico/St_Helena
+pref.timezone.Atlantic.Stanley=Atlântico/Stanley
+pref.timezone.Australia.Adelaide=Austrália/Adelaide
+pref.timezone.Australia.Brisbane=Austrália/Brisbane
+pref.timezone.Australia.Broken_Hill=Austrália/Broken_Hill
+pref.timezone.Australia.Currie=Austrália/Currie
+pref.timezone.Australia.Darwin=Austrália/Darwin
+pref.timezone.Australia.Eucla=Austrália/Eucla
+pref.timezone.Australia.Hobart=Austrália/Hobart
+pref.timezone.Australia.Lindeman=Austrália/Lindeman
+pref.timezone.Australia.Lord_Howe=Austrália/Lord_Howe
+pref.timezone.Australia.Melbourne=Austrália/Melbourne
+pref.timezone.Australia.Perth=Austrália/Perth
+pref.timezone.Australia.Sydney=Austrália/Sydney
+pref.timezone.Europe.Amsterdam=Europa/Amsterdam
+pref.timezone.Europe.Andorra=Europa/Andorra
+pref.timezone.Europe.Athens=Europa/Atenas
+pref.timezone.Europe.Belgrade=Europa/Belgrado
+pref.timezone.Europe.Berlin=Europa/Berlim
+pref.timezone.Europe.Bratislava=Europa/Bratislava
+pref.timezone.Europe.Brussels=Europa/Brussels
+pref.timezone.Europe.Bucharest=Europa/Bucharest
+pref.timezone.Europe.Budapest=Europa/Budapest
+pref.timezone.Europe.Chisinau=Europa/Chisinau
+pref.timezone.Europe.Copenhagen=Europa/Copenhagen
+pref.timezone.Europe.Dublin=Europa/Dublin
+pref.timezone.Europe.Gibraltar=Europa/Gibraltar
+pref.timezone.Europe.Guernsey=Europa/Guernsey
+pref.timezone.Europe.Helsinki=Europa/Helsinki
+pref.timezone.Europe.Isle_of_Man=Europa/Isle_of_Man
+pref.timezone.Europe.Istanbul=Europa/Istanbul
+pref.timezone.Europe.Jersey=Europa/Jersey
+pref.timezone.Europe.Kaliningrad=Europa/Kaliningrad
+pref.timezone.Europe.Kiev=Europa/Kiev
+pref.timezone.Europe.Lisbon=Europa/Lisboa
+pref.timezone.Europe.Ljubljana=Europa/Ljubljana
+pref.timezone.Europe.London=Europa/London
+pref.timezone.Europe.Luxembourg=Europa/Luxemburgo
+pref.timezone.Europe.Madrid=Europa/Madrid
+pref.timezone.Europe.Malta=Europa/Malta
+pref.timezone.Europe.Mariehamn=Europa/Mariehamn
+pref.timezone.Europe.Minsk=Europa/Minsk
+pref.timezone.Europe.Monaco=Europa/Mónaco
+pref.timezone.Europe.Moscow=Europa/Moscovo
+pref.timezone.Europe.Nicosia=Europa/Nicosia
+pref.timezone.Europe.Oslo=Europa/Oslo
+pref.timezone.Europe.Paris=Europa/Paris
+pref.timezone.Europe.Podgorica=Europa/Podgorica
+pref.timezone.Europe.Prague=Europa/Pragua
+pref.timezone.Europe.Riga=Europa/Riga
+pref.timezone.Europe.Rome=Europa/Roma
+pref.timezone.Europe.Samara=Europa/Samara
+pref.timezone.Europe.San_Marino=Europa/San_Marino
+pref.timezone.Europe.Sarajevo=Europa/Sarajevo
+pref.timezone.Europe.Simferopol=Europa/Simferopol
+pref.timezone.Europe.Skopje=Europa/Skopje
+pref.timezone.Europe.Sofia=Europa/Sofia
+pref.timezone.Europe.Stockholm=Europa/Stockholm
+pref.timezone.Europe.Tallinn=Europa/Tallinn
+pref.timezone.Europe.Tirane=Europa/Tirane
+pref.timezone.Europe.Uzhgorod=Europa/Uzhgorod
+pref.timezone.Europe.Vaduz=Europa/Vaduz
+pref.timezone.Europe.Vatican=Europa/Vaticano
+pref.timezone.Europe.Vienna=Europa/Viena
+pref.timezone.Europe.Vilnius=Europa/Vilnius
+pref.timezone.Europe.Volgograd=Europa/Volgograd
+pref.timezone.Europe.Warsaw=Europa/Varsóvia
+pref.timezone.Europe.Zagreb=Europa/Zagreb
+pref.timezone.Europe.Zaporozhye=Europa/Zaporozhye
+pref.timezone.Europe.Zurich=Europa/Zurique
+pref.timezone.Indian.Antananarivo=Índia/Antananarivo
+pref.timezone.Indian.Chagos=Índia/Chagos
+pref.timezone.Indian.Christmas=Índia/Christmas
+pref.timezone.Indian.Cocos=Índia/Cocos
+pref.timezone.Indian.Comoro=Índia/Comoro
+pref.timezone.Indian.Kerguelen=Índia/Kerguelen
+pref.timezone.Indian.Mahe=Índia/Mahe
+pref.timezone.Indian.Maldives=Índia/Maldives
+pref.timezone.Indian.Mauritius=Índia/Mauritius
+pref.timezone.Indian.Mayotte=Índia/Mayotte
+pref.timezone.Indian.Reunion=Índia/Reunion
+pref.timezone.Pacific.Apia=Pacífico/Apia
+pref.timezone.Pacific.Auckland=Pacífico/Auckland
+pref.timezone.Pacific.Chatham=Pacífico/Chatham
+pref.timezone.Pacific.Easter=Pacífico/Easter
+pref.timezone.Pacific.Efate=Pacífico/Efate
+pref.timezone.Pacific.Enderbury=Pacífico/Enderbury
+pref.timezone.Pacific.Fakaofo=Pacífico/Fakaofo
+pref.timezone.Pacific.Fiji=Pacífico/Fiji
+pref.timezone.Pacific.Funafuti=Pacífico/Funafuti
+pref.timezone.Pacific.Galapagos=Pacífico/Galapagos
+pref.timezone.Pacific.Gambier=Pacífico/Gambier
+pref.timezone.Pacific.Guadalcanal=Pacífico/Guadalcanal
+pref.timezone.Pacific.Guam=Pacífico/Guam
+pref.timezone.Pacific.Honolulu=Pacífico/Honolulu
+pref.timezone.Pacific.Johnston=Pacífico/Johnston
+pref.timezone.Pacific.Kiritimati=Pacífico/Kiritimati
+pref.timezone.Pacific.Kosrae=Pacífico/Kosrae
+pref.timezone.Pacific.Kwajalein=Pacífico/Kwajalein
+pref.timezone.Pacific.Majuro=Pacífico/Majuro
+pref.timezone.Pacific.Marquesas=Pacífico/Marquesas
+pref.timezone.Pacific.Midway=Pacífico/Midway
+pref.timezone.Pacific.Nauru=Pacífico/Nauru
+pref.timezone.Pacific.Niue=Pacífico/Niue
+pref.timezone.Pacific.Norfolk=Pacífico/Norfolk
+pref.timezone.Pacific.Noumea=Pacífico/Noumea
+pref.timezone.Pacific.Pago_Pago=Pacífico/Pago_Pago
+pref.timezone.Pacific.Palau=Pacífico/Palau
+pref.timezone.Pacific.Pitcairn=Pacífico/Pitcairn
+pref.timezone.Pacific.Ponape=Pacífico/Ponape
+pref.timezone.Pacific.Port_Moresby=Pacífico/Port_Moresby
+pref.timezone.Pacific.Rarotonga=Pacífico/Rarotonga
+pref.timezone.Pacific.Saipan=Pacífico/Saipan
+pref.timezone.Pacific.Tahiti=Pacífico/Tahiti
+pref.timezone.Pacific.Tarawa=Pacífico/Tarawa
+pref.timezone.Pacific.Tongatapu=Pacífico/Tongatapu
+pref.timezone.Pacific.Truk=Pacífico/Truk
+pref.timezone.Pacific.Wake=Pacífico/Wake
+pref.timezone.Pacific.Wallis=Pacífico/Wallis
+
+# the following have been missing
+pref.timezone.America.Indiana.Tell_City=América/Indiana/Tell City
+pref.timezone.America.Indiana.Winamac=América/Indiana/Winamac
+pref.timezone.America.Marigot=América/Marigot
+pref.timezone.America.Resolute=América/Resolute
+pref.timezone.America.St_Barthelemy=América/St. Barthelemy
+
+# added with 2008d:
+pref.timezone.America.Argentina.San_Luis=América/Argentina/San Luis
+pref.timezone.America.Santarem=América/Santarem
+pref.timezone.Asia.Ho_Chi_Minh=Ásia/Ho Chi Minh
+pref.timezone.Asia.Kolkata=Ásia/Kolkata
+
+# added with 2008i:
+pref.timezone.America.Argentina.Salta=América/Argentina/Salta
+
+# added with 2010i
+pref.timezone.America.Matamoros=América/Matamoros
+pref.timezone.America.Ojinaga=América/Ojinaga
+pref.timezone.America.Santa_Isabel=América/Santa Isabel
+pref.timezone.Antarctica.Macquarie=Antártida/Macquarie
+pref.timezone.Asia.Novokuznetsk=Ásia/Novokuznetsk
+
+#added with 2011b
+pref.timezone.America.Bahia_Banderas=América/Bahia Banderas
+pref.timezone.America.North_Dakota.Beulah=América/Dakota do Norte/Beulah
+pref.timezone.Pacific.Chuuk=Pacifíco/Chuuk
+pref.timezone.Pacific.Pohnpei=Pacifíco/Pohnpei
+
+#added with 2011n
+pref.timezone.Africa.Juba=África/Juba
+pref.timezone.America.Kralendijk=América/Kralendijk
+pref.timezone.America.Lower_Princes=América/Lower Princes
+pref.timezone.America.Metlakatla=América/Metlakatla
+pref.timezone.America.Sitka=América/Sitka
+pref.timezone.Asia.Hebron=Ásia/Hebron
+
+#added with 2013a
+pref.timezone.America.Creston=América/Creston
+pref.timezone.Asia.Khandyga=Ásia/Khandyga
+pref.timezone.Asia.Ust-Nera=Ásia/Ust-Nera
+pref.timezone.Europe.Busingen=Europa/Busingen
+
+#added with 2014b
+pref.timezone.Antarctica.Troll=Antártida/Troll
+
+#added with 2014j
+pref.timezone.Asia.Chita=Asia/Chita
+pref.timezone.Asia.Srednekolymsk=Ásia/Srednekolymsk
+pref.timezone.Pacific.Bougainville=Pacífico/Bougainville
+
+#added with 2.2015g
+pref.timezone.America.Fort_Nelson=América/Forte Nélson
+
+#added with 2.2016b
+pref.timezone.Europe.Ulyanovsk=Europa/Ulianovsk
+pref.timezone.Europe.Astrakhan=Europa/Astracã
+pref.timezone.Asia.Barnaul=Ásia/Barnaul
+
+#added with 2.2016i
+pref.timezone.Asia.Yangon=Ásia/Yangon
+pref.timezone.Asia.Tomsk=Ásia/Tomsk
+pref.timezone.Asia.Famagusta=Ásia/Famagusta
+pref.timezone.Europe.Kirov=Europa/Kirov
+
+#added with 2.2016j
+pref.timezone.Europe.Saratov=Europa/Saratov
+pref.timezone.Asia.Atyrau=Ásia/Atyrau
+
+#added with 2.2017b
+pref.timezone.America.Punta_Arenas=América/Punta Arenas
+
+#added with 2.2018i
+pref.timezone.Asia.Qostanay=Ásia/Qostanay
+
+#added with 2.2020a
+pref.timezone.America.Nuuk=América/Nuuk
+
+#added with 2.2021c
+pref.timezone.Pacific.Kanton=Pacífico/Kanton
+
+#added with 2.2022b
+pref.timezone.Europe.Kyiv=Europe/Kiev
+
+#added with 2.2023c
+pref.timezone.America.Ciudad_Juarez=América/Ciudad Juarez
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/accounts.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/accounts.dtd
new file mode 100644
index 0000000000..d3def59aae
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Contas - &brandShortName;">
+<!-- Instant messaging account status window for Thunderbird -->
+<!ENTITY accountsWindow.title "Estado das mensagens instantâneas">
+
+<!ENTITY accountManager.newAccount.label "Nova conta">
+<!ENTITY accountManager.newAccount.accesskey "N">
+<!ENTITY accountManager.close.label "Fechar">
+<!ENTITY accountManager.close.accesskey "c">
+<!-- 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 "Nenhuma conta configurada ainda">
+<!ENTITY accountManager.noAccount.description "Clique no botão &accountManager.newAccount.label; para deixar o &brandShortName; guiar-lhe através do processo de configuração.">
+<!ENTITY account.autoSignOn.label "Iniciar sessão ao iniciar">
+<!ENTITY account.autoSignOn.accesskey "s">
+<!ENTITY account.connect.label "Ligar">
+<!ENTITY account.connect.accesskey "L">
+<!ENTITY account.disconnect.label "Desligar">
+<!ENTITY account.disconnect.accesskey "i">
+<!ENTITY account.edit.label "Propriedades">
+<!ENTITY account.edit.accesskey "P">
+<!ENTITY account.cancelReconnection.label "Cancelar ligação">
+<!ENTITY account.cancelReconnection.accesskey "a">
+<!ENTITY account.copyDebugLog.label "Copiar registo de depuração">
+<!ENTITY account.copyDebugLog.accesskey "C">
+<!ENTITY account.connecting "A ligar…">
+<!ENTITY account.disconnecting "A desassociar…">
+<!ENTITY account.disconnected "Não ligado">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/accounts.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/accounts.properties
new file mode 100644
index 0000000000..901767f02b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Palavra-passe para %S
+passwordPromptText=Por favor, digite a palavra-passe para %S, para poder estabelecer a ligação.
+passwordPromptSaveCheckbox=Utilizar o gestor de palavras-passe para memorizar esta palavra-passe.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/commands.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/commands.properties
new file mode 100644
index 0000000000..55b2ab9890
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Comandos: %S.\nUtilize /help &lt;comando&gt; para mais informação.
+# LOCALIZATION NOTE (noCommand, noHelp):
+# %S is the command name the user typed.
+noCommand=Nenhum comando '%S'.
+noHelp=Desculpe, nenhuma mensagem de ajuda para o comando '%S'!
+
+sayHelpString=diga &lt;mensagem&gt;: enviar uma mensagem sem comandos de processamento.
+rawHelpString=raw &lt;mensagem&gt;: enviar uma mensagem sem entidades HTML.
+helpHelpString=ajuda &lt;nome&gt;: mostrar a mensagem de ajuda para o comando &lt;nome&gt; ou a lista de comandos possíveis quando utilizado sem parâmetro.
+
+# 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;mensgame de estado&gt;: define o estado para %2$S com uma mensagem de estado facultativa.
+back=disponível
+away=ausente
+busy=indisponível
+dnd=indisponível
+offline=offline
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/contacts.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/contacts.properties
new file mode 100644
index 0000000000..e13ed0d14c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Contactos
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/conversations.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/conversations.properties
new file mode 100644
index 0000000000..601a390185
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/conversations.properties
@@ -0,0 +1,85 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (targetChanged):
+# %1$S is the new conversation title (display name of the new target),
+# %2$S is the protocol name used for the new target.
+targetChanged=A conversa irá continuar com %1$S, usando %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 está agora %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 está agora %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 está %2$S.
+statusChangedFromUnknownWithStatusText=%1$S está %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=Estabelecida uma nova ligação para a sua conta (%1$S está %2$S).
+statusKnownWithStatusText=Estabelecida uma nova ligação para a sua conta (%1$S está %2$S: %3$S).
+# LOCALIZATION NOTE (statusUnknown):
+# %S is the display name of the contact.
+statusUnknown=A sua conta está desligada (o estado de %S já não é conhecido).
+
+accountDisconnected=A sua conta está desligada.
+accountReconnected=Estabelecida uma nova ligação para a sua conta.
+
+# LOCALIZATION NOTE (autoReply):
+# %S is replaced by the text of a message that was sent as an automatic reply.
+autoReply=Resposta automática - %S
+
+# LOCALIZATION NOTE (noTopic):
+# Displayed instead of the topic when no topic is set.
+noTopic=Não existe tópico para esta sala.
+
+# LOCALIZATION NOTE (topicSet):
+# %1$S is the conversation name, %2$S is the topic.
+topicSet=O tópico para %1$S é: %2$S.
+# LOCALIZATION NOTE (topicNotSet):
+# %S is the conversation name.
+topicNotSet=Não existe tópico para %S.
+# LOCALIZATION NOTE (topicChanged):
+# %1$S is the user who changed the topic, %2$S is the new topic.
+topicChanged=%1$S alterou o tópico para: %2$S.
+# LOCALIZATION NOTE (topicCleared):
+# %1$S is the user who cleared the topic.
+topicCleared=%1$S removeu o tópico.
+
+# 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 é agora conhecido como %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=Você é agora conhecido como %S.
+
+# LOCALIZATION NOTE (messenger.conversations.selections.ellipsis):
+# ellipsis is used when copying a part of a message to show that the message was cut
+messenger.conversations.selections.ellipsis=[…]
+
+# LOCALIZATION NOTE (messenger.conversations.selections.{system,content,action}MessagesTemplate):
+# These 3 templates are used to format selected messages before copying them.
+# Do not translate the texts between % characters, but feel free to adjust
+# whitespace and separators to make them fit your locale.
+messenger.conversations.selections.systemMessagesTemplate=%time% - %message%
+messenger.conversations.selections.contentMessagesTemplate=%time% - %sender%: %message%
+messenger.conversations.selections.actionMessagesTemplate=%time% * %sender% %message%
+
+# LOCALIZATION NOTE (message.status):
+# This is used as title attribute for the visible lock icon in case a message
+# was sent encrypted through the OTR protocol.
+message.status=Mensagem encriptada
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/facebook.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/facebook.properties
new file mode 100644
index 0000000000..463115f795
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Conversa do Facebook
+facebook.disabled=O chat do Facebook já não é suportado porque o Facebook desativou o acesso XMPP.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/imtooltip.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/imtooltip.properties
new file mode 100644
index 0000000000..c9c0c0ca98
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/imtooltip.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+buddy.username=Nome de utilizador
+buddy.account=Conta
+contact.tags=Etiquetas
+
+otr.tag=Estado do OTR
+
+encryption.tag=Estado da encriptação
+message.status=Mensagem encriptada
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/irc.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/irc.properties
new file mode 100644
index 0000000000..c3ceedf661
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/irc.properties
@@ -0,0 +1,209 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (irc.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring an IRC account.
+irc.usernameHint=nick
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if the account is
+# disconnected because of an error.
+connection.error.lost=Ligação com o servidor perdida
+connection.error.timeOut=A ligação expirou
+connection.error.invalidUsername=%S não é um nome de utilizador permitido
+connection.error.invalidPassword=Palavra-passe inválida
+connection.error.passwordRequired=Requer palavra-passe
+
+# LOCALIZATION NOTE (joinChat.*):
+# These show up on the join chat menu. An underscore is for the access key.
+joinChat.channel=_Canal
+joinChat.password=_Palavra-passe
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.server=Servidor
+options.port=Porta
+options.ssl=Utilizar SSL
+options.encoding=Codificação
+options.quitMessage=Sair da mensagem
+options.partMessage=Mensagem de saída
+options.showServerTab=Mostrar mensagens do servidor
+options.alternateNicks=Nicks alternativos
+
+# 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 está a utilizar "%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=A hora de %1$S é %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;ação a realizar&gt;: Realiza uma ação.
+command.ban=%S &lt;nick!user@host&gt; Banir os utilizadores correspondentes ao padrão dado.
+command.ctcp=%S &lt;nick&gt; &lt;mensagem&gt;: envia uma mensagem CTCP para o nick.
+command.chanserv=%S &lt;comando&gt;: Envia um comando para o ChanServ.
+command.deop=%S &lt;nick&gt;[,&lt;alcunha2&gt;]*: remove o estado de operador de alguém. Você tem que ser um operador do canal para o poder fazer.
+command.devoice=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: remove o estado de voz de alguém, impedindo-o de falar se o canal for moderado(+m). Você tem que ser um operador do canal para o poder fazer.
+command.invite2=%S &lt;nick&gt;[ &lt;nick&gt;]* [&lt;canal&gt;]: convida um ou mais utilizadores a entrar no canal atual ou em outro canal especificado.
+command.join=%S &lt;sala1&gt;[ &lt;chave1&gt;][,&lt;sala2&gt;[ &lt;key2&gt;]]*: Introduza um ou mais canais disponibilizando, opcionalmente, uma chave se for necessário.
+command.kick=%S &lt;nick&gt; [&lt;mensagem&gt;]: remove alguém de um canal. Você tem que ser um operador do canal para o poder fazer.
+command.list=%S: mostra a lista das salas de chat na rede. Alguns servidores podem ser desligados se efetuar esta operação.
+command.memoserv=%S &lt;comando&gt;: Envia um comando para MemoServ.
+command.modeUser2=%S &lt;nick&gt; [(+|-)&lt;modo&gt;]: Obter, definir ou não definir um modo do utilizador.
+command.modeChannel2=%S &lt;canal&gt;[ (+|-)&lt;novo modo&gt; [&lt;parâmetro&gt;][,&lt;parâmetro&gt;]*]: Obter, definir ou não definir um modo de canal.
+command.msg=%S &lt;nick&gt; &lt;mensagem&gt;: envia uma mensagem privada a um utilizador (em oposição ao canal).
+command.nick=%S &lt;novo nick&gt;: muda o seu nick.
+command.nickserv=%S &lt;comando&gt;: envia um comando para NickServ.
+command.notice=%S &lt;destino&gt; &lt;mensagem&gt;: Envia um aviso para um utilizador ou canal.
+command.op=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: concede o estado de operador de canal a alguém. Você tem que ser um operador do canal para o poder fazer.
+command.operserv=%S &lt;comando&gt;: Envia um comando para OperServ.
+command.part=%S [mensagem]: Sai da sala atual com uma mensagem facultativa.
+command.ping=%S [&lt;nick&gt;]: pergunta quanto lag tem um utilizador (ou servidor se nenhum utilizador for especificado).
+command.quit=%S &lt;mensagem&gt;: Desliga do servidor com uma mensagem opcional.
+command.quote=%S &lt;comando&gt;: Envia um comando para o servidor.
+command.time=%S: mostra a hora local do servidor IRC.
+command.topic=%S [&lt;novo tópico&gt;]: Define o tópico do canal.
+command.umode=%S (+|-)&lt;novo modo&gt;: Define o modo do utilizador.
+command.version=%S &lt;nick&gt;: solicita a versão do cliente do utilizador.
+command.voice=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: concede o estado de voz de canal a alguém. Você tem que ser um operador do canal para o poder fazer.
+command.whois2=%S &lt;nick&gt;: obtém as informações de um utilizador.
+
+# 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] entrou na sala.
+message.rejoined=Você entrou novamente na sala.
+# %1$S is the nick of who kicked you.
+# %2$S is message.kicked.reason, if a kick message was given.
+message.kicked.you=Você foi expulso por %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 foi expulso por %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=%3$S definiu o modo %1$S para %2$S.
+# %1$S is the new channel mode and %2$S is who set the mode.
+message.channelmode=%2$S definiu o modo de canal %1$S.
+# %S is the user's mode.
+message.yourmode=O seu modo é %S.
+# Could not change the nickname. %S is the user's nick.
+message.nick.fail=Não pode utilizar este nickname. O seu nick permanece %S.
+# The parameter is the message.parted.reason, if a part message is given.
+message.parted.you=Você saiu da sala (Mensagem: %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 saiu da sala (Mensagem: %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 deixou a sala (Mensagem: %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 convidou-lhe para %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 foi convidado com sucesso para %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 já está em %2$S.
+# %S is the nickname of the user who was summoned.
+message.summoned=%S foi convicado.
+# %S is the nickname of the user whose WHOIS information follows this message.
+message.whois=Informação WHOIS para %S:
+# %1$S is the nickname of the (offline) user whose WHOWAS information follows this message.
+message.whowas=%1$S está offline. Informação WHOWAS para %1$S:
+# %1$S is the entry description (from tooltip.*), %2$S is its value.
+message.whoisEntry=\u00A0   %1$S: %2$S
+# %S is the nickname that is not known to the server.
+message.unknownNick=%S é um nickname desconhecido.
+# %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 mudou a palavra-passe do canal para %2$S.
+message.channelKeyRemoved=%S removeu a palavra-passe do canal.
+# This will be followed by a list of ban masks.
+message.banMasks=Os utilizadores ligados das seguintes localizações foram banidos de %S:
+message.noBanMasks=Não existem localizações banidas para %S.
+message.banMaskAdded=Os utilizadores ligados a partir das localizações coincidentes com %1$S foram banidos por %2$S.
+message.banMaskRemoved=Os utilizadores ligados a partir das localizações coincidentes com %1$S deixaram de estar banidos por %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=Resposta de %1$S em #2 milissegundo.;Resposta de %1$S em #2 milissegundos.
+
+
+# LOCALIZATION NOTE (error.*):
+# These are shown as error messages in the conversation or server tab.
+# %S is the channel name.
+error.noChannel=Canal inexistente: %S.
+error.tooManyChannels=Não foi possível ligar a %S. Já está ligado a muitos canais.
+# %1$S is your new nick, %2$S is the kill message from the server.
+error.nickCollision=Nickname já utilizado, a mudar nick para %1$S [%2$S].
+error.erroneousNickname=%S não é um nickname permitido.
+error.banned=Você foi banido deste servidor.
+error.bannedSoon=Brevemente você será banido deste servidor.
+error.mode.wrongUser=Não pode mudar o modo dos outros utilizadores.
+# %S is the nickname or channel name that isn't available.
+error.noSuchNick=%S não está online.
+error.wasNoSuchNick=Nickname inexistente: %S
+error.noSuchChannel=Canal inexistente: %S.
+error.unavailable=%S não está disponível.
+# %S is the channel name.
+error.channelBanned=Você foi banido de %S.
+error.cannotSendToChannel=Não pode enviar mensagens para %S.
+error.channelFull=O canal %S está cheio.
+error.inviteOnly=Para entrar em %S, você tem que ser convidado.
+error.nonUniqueTarget=%S não é um user@host único/nome curto ou tentou entrar em muitos canais de uma vez.
+error.notChannelOp=Você não é um operador de canal em %S.
+error.notChannelOwner=Você não é um proprietário do canal %S.
+error.wrongKey=Não foi possível entrar em %S porque a palavra-passe é inválida.
+error.sendMessageFailed=Ocorreu um erro ao tentar enviar a última mensagem. Tente novamente assim que a ligação for restabelecida.
+# %1$S is the channel the user tried to join, %2$S is the channel
+# he was forwarded to.
+error.channelForward=Pode não se juntar a %1$S e ser redirecionado automaticamente para %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' não é um modo válido de utilizador neste servidor.
+
+# 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=Nome
+tooltip.server=Ligado a
+# 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=Ligado a partir de
+tooltip.registered=Registado
+tooltip.registeredAs=Registado como
+tooltip.secure=A utilizar uma ligação segura
+# The away message of the user
+tooltip.away=Ausente
+tooltip.ircOp=Operador IRC
+tooltip.bot=Bot
+tooltip.lastActivity=Última atividade
+# %S is the timespan elapsed since the last activity.
+tooltip.timespan=%S atrás
+tooltip.channels=Atualmente em
+
+# %1$S is the server name, %2$S is some generic server information (usually a
+# location or the date the user was last seen).
+tooltip.serverValue=%1$S (%2$S)
+
+# LOCALIZATION NOTE (yes, no):
+# These are used to turn true/false values into a yes/no response.
+yes=Sim
+no=Não
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/logger.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/logger.properties
new file mode 100644
index 0000000000..63cbf8da33
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Ficheiro de registo danificado ou vazio: %S
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/matrix.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/matrix.properties
new file mode 100644
index 0000000000..9195442688
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=ID do Matrix
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.saveToken=Guardar código de acesso
+options.deviceDisplayName=Nome de apresentação do dispositivo
+options.homeserver=Servidor
+options.backupPassphrase=Senha da cópia de segurança da chave
+
+# 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=Funções criptográficas: %S
+options.encryption.secretStorage=Armazenamento Secreto: %S
+options.encryption.keyBackup=Cópia de segurança da chave de encriptação: %S
+options.encryption.crossSigning=Início de Sessão Cruzado: %S
+options.encryption.statusOk=ok
+options.encryption.statusNotOk=não está pronto
+options.encryption.needBackupPassphrase=Por favor insira a senha da chave da cópia de segurança nas opções do protocolo.
+options.encryption.setUpSecretStorage=Para configurar o armazenamento secreto, utilize outro cliente e depois insira a senha da chave de cópia de segurança gerada no separador "Geral".
+options.encryption.setUpBackupAndCrossSigning=Para ativar as cópias de segurança da chave de encriptação e assinatura cruzada, insira a sua senha da chave de cópia de segurança no separador "Geral" ou verifique a identidade de uma das sessões abaixo.
+# %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=A aguardar pela sua autorização
+connection.requestAccess=A finalizar a autenticação
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.noSupportedFlow=O servidor não oferece fluxo compatível de autenticação.
+connection.error.authCancelled=Cancelou o processo de autorização.
+connection.error.sessionEnded=A sessão foi terminada.
+connection.error.serverNotFound=Não foi possível identificar o servidor Matrix para a conta Matrix fornecida.
+
+# 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=_Sala
+
+# 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=Nome de apresentação
+# %S is the timespan elapsed since the last activity.
+tooltip.timespan=%S atrás
+tooltip.lastActive=Última atividade
+
+# 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=Predefinido
+powerLevel.moderator=Moderador
+powerLevel.admin=Administrador
+powerLevel.restricted=Restrito
+powerLevel.custom=Personalizado
+# %1$S is the power level name
+# %2$S is the power level number
+powerLevel.detailed=%1$S (%2$S)
+powerLevel.defaultRole=Papel predefinido: %S
+powerLevel.inviteUser=Convidar utilizadores: %S
+powerLevel.kickUsers=Expulsar utilizadores: %S
+powerLevel.ban=Banir utilizadores: %S
+powerLevel.roomAvatar=Alterar avatar da sala: %S
+powerLevel.mainAddress=Alterar o endereço principal da sala: %S
+powerLevel.history=Alterar visibilidade do histórico: %S
+powerLevel.roomName=Alterar nome da sala: %S
+powerLevel.changePermissions=Alterar permissões: %S
+powerLevel.server_acl=Enviar eventos m.room.server_acl: %S
+powerLevel.upgradeRoom=Melhorar a sala: %S
+powerLevel.remove=Remover mensagens: %S
+powerLevel.events_default=Eventos predefinidos: %S
+powerLevel.state_default=Alterar definição: %S
+powerLevel.encryption=Ativar encriptação da sala: %S
+powerLevel.topic=Definir tópico da sala: %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=Nome: %S
+# Example placeholder: "My first room"
+detail.topic=Tópico: %S
+# Example placeholder: "5"
+detail.version=Versão da sala: %S
+# Example placeholder: "#thunderbird:mozilla.org"
+detail.roomId=RoomID: %S
+# %S are all admin users. Example: "@foo:example.com, @bar:example.com"
+detail.admin=Administrador: %S
+# %S are all moderators. Example: "@lorem:mozilla.org, @ipsum:mozilla.org"
+detail.moderator=Moderador: %S
+# Example placeholder: "#thunderbird:matrix.org"
+detail.alias=Nome alternativo: %S
+# Example placeholder: "can_join"
+detail.guest=Acesso de convidado: %S
+# This is a heading, followed by the powerLevel.* strings
+detail.power=Níveis de poder:
+
+# 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;idDoUtilizador&gt; [&lt;motivo&gt;]: Banir o utilizador com o idDoUtilizador da sala com a mensagem opcional com o motivo. Requer permissão para banir utilizadores.
+command.invite=%S &lt;idDoUtilizador&gt;: Convidar o utilizador para a sala.
+command.kick=%S &lt;idDoUtilizador&gt; [&lt;motivo&gt;]: Explulsar o utilizador com o idDoUtilizador da sala com a mensagem opcional com o motivo. Requer permissão para expulsar utilizadores.
+command.nick=%S &lt;nome_de_apresentacao&gt;: Altere o nome de apresentação.
+command.op=%S &lt;idDoUtilizador&gt; [&lt;nível de poder&gt;]: Define o nível de poder do utilizador. Introduza um valor inteiro, Utilizador: 0, Moderador: 50 e Administrador: 100. A predefinição será 50, se não for especificado nenhum argumento. Requer permissão para alterar o nível de poder dos membros. Não funciona com outros administradores para além de si.
+command.deop=%S &lt;idDoUtilizador&gt;: Repõe o poder do utilizador para 0 (Utilizador). Requer permissão para alterar o nível de poder dos membros. Não funciona com outros administradores para além de si.
+command.leave=%S: Sair da sala atual.
+command.topic=%S &lt;tópico&gt;: Defina o tópico da sala. Requer permissões para alterar o tópico da sala.
+command.unban=%S &lt;idDoUtilizador&gt;: Permita que um utilizador que foi banido volte a ter acesso à sala. Requer permissão para banir utilizadores.
+command.visibility=%S [&lt;visibilidade&gt;]: define a visibilidade da sala atual no diretório de salas do servidor doméstico atual. Insira um valor inteiro, Privado: 0 e Público: 1. O valor predefinido será Privado (0) se nenhum argumento for fornecido. Requer permissão para alterar a visibilidade da sala.
+command.guest=%S &lt;acesso de convidado&gt; &lt;visibilidade do histórico&gt;: Defina o acesso e a visibilidade do histórico da sala atual para os utilizadores convidados. Insira dois valores inteiros, o primeiro para o acesso do convidado (não permitido: 0 e permitido: 1) e o segundo para a visibilidade do histórico (não visível: 0 e visível: 1). Requer permissão para alterar a visibilidade do histórico.
+command.roomname=%S &lt;nome&gt;: Define o nome da sala. Requer permissão para alterar o nome da sala.
+command.detail=%S: Mostra os detalhes da sala.
+command.addalias=%S &lt;nome_alternativo&gt;: Crie um nome alternativo para a sala. Esperado um nome alternativo para a sala no formato '#nomelocal: domínio'. Requer permissão para adicionar nomes alternativos.
+command.removealias=%S &lt;nome_alternativo&gt;: remove o nome alternativo da sala. Esperado nome alternativo de sala no formato '#nomelocal: domínio'. Requer permissão para remover nomes alternativos.
+command.upgraderoom=%S &lt;novaVersao&gt;: atualize a sala para a versão indicada. Requer permissão para atualizar a sala.
+command.me=%S &lt;ação&gt;: Realiza uma ação.
+command.msg=%S &lt;idDoUtilizador&gt; &lt;mensagem&gt;: Envia uma mensagem direta para o utilizador indicado.
+command.join=%S &lt;idDaSala&gt;: Acede à sala indicada.
+
+# 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 baniu %2$S.
+# Same as message.banned but with a reason.
+# %3$S is the reason the user was banned.
+message.bannedWithReason=%1$S baniu %2$S. Motivo: %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 aceitou o convite para %2$S.
+# %S is the name of the user who accepted an invitation.
+message.acceptedInvite=$S aceitou o convite.
+# %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 convidou %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 alterou o respetivo nome de apresentação de %2$S para %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 definiu o respetivo nome de apresentação para %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 removeu o respetivo nome de apresentação %2$S.
+# %S is the name of the user who has joined the room.
+message.joined=%S entrou na sala.
+# %S is the name of the user who has rejected the invitation.
+message.rejectedInvite=%S rejeitou o convite.
+# %S is the name of the user who has left the room.
+message.left=%S saiu da sala.
+# %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 deixou de banir %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 expulsou %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 expulsou %2$S. Motivo: %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 retirou o convite de %2$S.
+# 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 retirou o convite de %2$S. Motivo: %3$S
+# %S is the name of the user who has removed the room name.
+message.roomName.remove=%S removeu o nome da sala.
+# %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 alterou o nome da sala para %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 alterou o nível de poder de %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 de %2$S para %3$S
+# %S is the name of the user who has allowed guests to join the room.
+message.guest.allowed=%S deu permissão a convidados para entrar na sala.
+# %S is the name of the user who has prevented guests to join the room.
+message.guest.prevented=%S impediu que convidados possam entrar na sala.
+# %S is the name of the user who has made future room history visible to anyone.
+message.history.anyone=%S tornou o histórico futuro da sala, visível para todos.
+# %S is the name of the user who has made future room history visible to all room members.
+message.history.shared=%S tornou o histórico futuro da sala, visível para todos os membros da sala.
+# %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 tornou o histórico futuro da sala visível para todos os membros da sala, a partir do momento em que são convidados.
+# %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 tornou o histórico futuro da sala visível para todos os membros da sala, a partir do momento em que entram na sala.
+# %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 definiu o endereço principal para esta sala de %2$S para %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 adicionou %2$S como endereço alternativo para esta sala.
+# %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 removeu %2$S como endereço alternativo para esta sala.
+# %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 removeu %2$S e adicionou %3$S como endereço para esta sala.
+message.spaceNotSupported=Esta sala é um espaço, o que não é suportado.
+message.encryptionStart=As mensagens nesta conversa são agora encriptadas de ponta a ponta.
+# %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 deseja verificar %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 cancelou a verificação pelo motivo: %2$S
+message.verification.done=Verificação completada.
+message.decryptionError=Não foi possível desencriptar o conteúdo desta mensagem. Para solicitar chaves de encriptação dos seus outros dispositivos, clique nesta mensagem com o botão direito do rato.
+message.decrypting=A desencriptar…
+message.redacted=A mensagem foi expurgada.
+# %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 reagiu a %2$S com %3$S.
+
+# Label in the message context menu
+message.action.requestKey=Re-solicitar Chaves
+message.action.redact=Expurgar
+message.action.report=Reportar Mensagem
+message.action.retry=Repetir o Envio
+message.action.cancel=Cancelar mensagem
+
+# LOCALIZATION NOTE (error.*)
+# These are strings shown as system messages when an action the user took fails.
+error.sendMessageFailed=Ocorreu um erro ao enviar a sua mensagem "%1$S".
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/status.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/status.properties
new file mode 100644
index 0000000000..6520c79599
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/status.properties
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+availableStatusType=Disponível
+awayStatusType=Ausente
+unavailableStatusType=Indisponível
+offlineStatusType=Offline
+invisibleStatusType=Invisível
+idleStatusType=Inativo
+mobileStatusType=Móvel
+# LOCALIZATION NOTE (unknownStatusType):
+# the status of a buddy is unknown when it's in the list of a disconnected account
+unknownStatusType=Desconhecido
+
+# LOCALIZATION NOTE (statusWithStatusMessage):
+# Used to display the status of a buddy together with its status message.
+# %1$S is the status type, %2$S is the status message text.
+statusWithStatusMessage=%1$S - %2$S
+
+# LOCALIZATION NOTE (messenger.status.defaultIdleAwayMessage):
+# This will be the away message put automatically when the user is idle.
+messenger.status.defaultIdleAwayMessage=Neste momento, não estou no computador.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/twitter.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/twitter.properties
new file mode 100644
index 0000000000..015111984a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/twitter.properties
@@ -0,0 +1,122 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (twitter.protocolName)
+# This name is used whenever the name of the protocol is shown.
+twitter.protocolName=Twitter
+
+# LOCALIZATION NOTE (error.*):
+# These are errors that will be shown to the user in conversation.
+error.tooLong=O estado excede 140 caracteres.
+# LOCALIZATION NOTE (error.general, error.retweet, error.delete):
+# %1$S will be either the error string returned by the twitter server,
+# in English, inside parenthesis, or the empty string if we have no specific
+# message for the error.
+# %2$S is the message that caused the error.
+error.general=Ocorreu o erro %1$S ao enviar: %2$S
+error.retweet=Ocorreu o erro %1$S ao retweeting: %2$S
+error.delete=Ocorreu o erro %1$S ao apagar: %2$S
+error.like=Ocorreu o erro %1$S ao associar Gosto: %2$S
+error.unlike=Ocorreu o erro %1$S ao dissociar Gosto: %2$S
+# LOCALIZATION NOTE (error.descriptionTooLong)
+# %S is the truncated string that was sent to the server.
+error.descriptionTooLong=A descrição excede o valor máximo (160 caracteres) e foi automaticamente truncada para: %S.
+
+# LOCALIZATION NOTE (timeline):
+# This is the title of the conversation tab, %S will be replaced by
+# @<username>.
+timeline=Cronologia para %S
+
+# LOCALIZATION NOTE (action.*):
+# This will be an action in the context menu of displayed tweets.
+action.copyLink=Copiar ligação para Tweet
+action.retweet=Retweet
+action.reply=Responder
+action.delete=Apagar
+# LOCALIZATION NOTE (action.follow, action.stopFollowing):
+# %S will be replaced by the screen name of a twitter user.
+action.follow=Seguir %S
+action.stopFollowing=Deixar de seguir %S
+action.like=Gosto
+action.unlike=Remover Gosto
+
+# LOCALIZATION NOTE (event.follow, event.unfollow, event.followed):
+# This will be displayed in system messages inside the timeline conversation.
+# %S will be replaced by the screen name of a twitter user.
+event.follow=Agora, está a seguir %S.
+event.unfollow=Já não está a seguir %S.
+event.followed=%S está agora a seguir-lhe.
+# LOCALIZATION NOTE (event.deleted):
+# %S will be replaced by the text of the deleted tweet.
+event.deleted=Você apagou este tweet: "%S".
+
+# LOCALIZATION NOTE (replyingToStatusText):
+# This will be visible in the status bar of the conversation window
+# while the user is typing a reply to a tweet.
+# %S will be replaced by the text of the tweet the user is replying to.
+replyingToStatusText=Resposta a: %S
+
+# LOCALIZATION NOTE (connection.*):
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds … at the end, so do not include
+# periods at the end of these messages.)
+connection.initAuth=A iniciar processo de autenticação
+connection.requestAuth=A aguardar a sua autorização
+connection.requestAccess=A terminar autenticação
+connection.requestTimelines=A pedir cronologia do utilizador
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.userMismatch=Nome de utilizador não correspondente.
+connection.error.failedToken=Falha ao obter o token pedido.
+connection.error.authCancelled=Você cancelou o processo de autorização.
+connection.error.authFailed=Falha ao obter autorização.
+connection.error.noNetwork=Não existe uma ligação de rede disponível.
+
+# LOCALIZATION NOTE (authPrompt):
+# This is the prompt in the browser window that pops up to authorize us
+# to use a Twitter account. It is shown in the title bar of the authorization
+# window.
+authPrompt=Permitir a utilização da sua conta Twitter
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.track=Palavras-chave monitorizadas
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the Twitter information that will appear in the tooltip
+# for each participant on the home timeline.
+# LOCALIZATION NOTE (tooltip.created_at): the date the user joined.
+tooltip.created_at=Utilizador desde
+tooltip.location=Localização
+tooltip.lang=Idioma
+tooltip.time_zone=Fuso horário
+tooltip.url=Página inicial
+# LOCALIZATION NOTE (tooltip.protected):
+# whether the user's tweets are publicly visible.
+tooltip.protected=Protege os tweets
+# LOCALIZATION NOTE (tooltip.following):
+# whether you are subscribed to the user's tweets.
+tooltip.following=Atualmente a seguir
+tooltip.name=Nome
+tooltip.description=Descrição
+# LOCALIZATION NOTE (tooltip.*_count):
+# Please see the right side of the official Twitter website UI.
+tooltip.friends_count=A seguir
+tooltip.statuses_count=Tweets
+tooltip.followers_count=Seguidores
+tooltip.listed_count=Listado
+
+# LOCALIZATION NOTE (yes, no):
+# These are used to turn true/false values into a yes/no response.
+yes=Sim
+no=Não
+
+command.follow=%S &lt;utilizador&gt;[ &lt;utilizador&gt;]*: Seguir um ou mais utilizadores.
+command.unfollow=%S &lt;utilizador&gt;[ &lt;utilizador&gt;]*: Parar de seguir um ou mais utilizadores.
+
+twitter.disabled=O Twitter deixou de ser compatível devido à desativação do protocolo de transmissão do Twitter.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/xmpp.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/xmpp.properties
new file mode 100644
index 0000000000..c54f0b244e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/xmpp.properties
@@ -0,0 +1,280 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (connection.*)
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds … at the end, so do not include
+# periods at the end of these messages.)
+connection.initializingStream=A iniciar transmissão
+connection.initializingEncryption=A iniciar a encriptação
+connection.authenticating=A autenticar
+connection.gettingResource=A obter o recurso
+connection.downloadingRoster=A transferir a lista de contactos
+connection.srvLookup=A localizar o registo SRV
+
+# LOCALIZATION NOTE (connection.error.*)
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.invalidUsername=Nome de utilizador inválido (o seu nome de utilizador deve conter um carácter '@')
+connection.error.failedToCreateASocket=Falha ao criar o socket (está offline?)
+connection.error.serverClosedConnection=O servidor fechou a ligação
+connection.error.resetByPeer=Ligação reiniciada pelo servidor remoto
+connection.error.timedOut=A ligação excedeu o tempo limite
+connection.error.receivedUnexpectedData=Recebidos dados inesperados
+connection.error.incorrectResponse=Recebida uma resposta incorreta
+connection.error.startTLSRequired=O servidor requer encriptação mas você desativou-a
+connection.error.startTLSNotSupported=O servidor não suporta encriptação mas a sua configuração requer-a
+connection.error.failedToStartTLS=Falha ao iniciar encriptação
+connection.error.noAuthMec=O servidor não disponibiliza um mecanismo de autenticação
+connection.error.noCompatibleAuthMec=Nenhum dos mecanismos de autenticação disponibilizados pelo servidor é suportado
+connection.error.notSendingPasswordInClear=O servidor só suporta autenticação com uma palavra-passe em texto simples
+connection.error.authenticationFailure=Falha na autenticação
+connection.error.notAuthorized=Não autorizado (introduziu a palavra-passe correta?)
+connection.error.failedToGetAResource=Falha ao obter recurso
+connection.error.failedMaxResourceLimit=Esta conta está ligada a diversos locais em simultâneo.
+connection.error.failedResourceNotValid=Recurso inválido.
+connection.error.XMPPNotSupported=Este servidor não suporta 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=Esta mensagem não foi entregue: %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=Não foi possível entrar: %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=Não foi possível entrar em %S porque você foi banido desta sala
+conversation.error.joinFailedNotAuthorized=Requer registo: você não está autorizado a entrar nesta sala.
+conversation.error.creationFailedNotAllowed=Acesso restrito: você não está autorizado a criar salas.
+# 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=Não foi possível entrar na sala %S porque não foi possível atingir o servidor onde a sala está alojada.
+conversation.error.changeTopicFailedNotAuthorized=Não tem permissões para definir o tópico desta sala.
+# 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=Não foi possível enviar a mensagem para %1$S, uma vez que você já não está na sala: %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=Não foi possível enviar a mensagem para %1$S, uma vez que o destinatário já não está na sala: %2$S
+# These are displayed in a conversation as a system error message.
+conversation.error.remoteServerNotFound=Não foi possível estabelecer ligação ao servidor do destinatário
+conversation.error.unknownSendError=Um erro desconhecido ocorreu ao enviar esta mensagem.
+# %S is the name of the message recipient.
+conversation.error.sendServiceUnavailable=Não é possível enviar mensagens para %S neste momento.
+# %S is the nick of participant that is not in room.
+conversation.error.nickNotInRoom=%S não está na sala.
+conversation.error.banCommandAnonymousRoom=Não pode banir participantes de salas anónimas. Experimente o comando /kick.
+conversation.error.banKickCommandNotAllowed=Não possui os privilégios necessários para remover este participante da sala.
+conversation.error.banKickCommandConflict=Desculpe, não pode remover-se a si mesmo da sala.
+conversation.error.changeNickFailedConflict=Não foi possível alterar o seu pseudónimo para %S, porque este pseudónimo já está a ser utilizado.
+conversation.error.changeNickFailedNotAcceptable=Não foi possível alterar o seu pseudónimo para %S, porque os pseudónimos estão bloqueados nesta sala.
+conversation.error.inviteFailedForbidden=Não tem os privilégios necessários para convidar utilizadores para esta sala.
+# %S is the jid of user that is invited.
+conversation.error.failedJIDNotFound=Não foi possível atingir %S.
+# %S is the jid that is invalid.
+conversation.error.invalidJID=%S é um jid inválido (os identificadores Jabber devem estar no formato utilizador@domínio).
+conversation.error.commandFailedNotInRoom=Tem que reentrar na sala para poder utilizar este comando.
+# %S is the name of the recipient.
+conversation.error.resourceNotAvailable=Deve falar primeiro com %S para saber se este se pode ligar a mais do que um cliente.
+
+# LOCALIZATION NOTE (conversation.error.version.*):
+# %S is the name of the recipient.
+conversation.error.version.unknown=O cliente %S não suporta consultas para esta versão do software.
+
+# 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=Estado (%S)
+tooltip.statusNoResource=Estado
+tooltip.subscription=Subscrição
+tooltip.fullName=Nome completo
+tooltip.nickname=Pseudónimo
+tooltip.email=Email
+tooltip.birthday=Data de nascimento
+tooltip.userName=Nome de utilizador
+tooltip.title=Título
+tooltip.organization=Organização
+tooltip.locality=Localidade
+tooltip.country=País
+tooltip.telephone=Número de telefone
+
+# 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=_Sala
+chatRoomField.server=_Servidor
+chatRoomField.nick=_Pseudónimo
+chatRoomField.password=_Palavra-passe
+
+# 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 convidou-lhe a entrar na sala %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 convidou-lhe a entrar em %2$S com a palavra-passe %3$S: %4$S
+conversation.muc.invitationWithoutReason=%1$S convidou-lhe a entrar na sala %2$S
+# %3$S is the password of the room.
+conversation.muc.invitationWithoutReason.password=%1$S convidou-lhe a entrar em %2$S sem palavra-passe %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 entrou na sala.
+
+# LOCALIZATION NOTE (conversation.muc.rejoined):
+# This is displayed as a system message when a participant rejoins room after
+# parting it.
+conversation.message.rejoined=Você entrou novamente na sala.
+
+# 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=Você saiu da sala.
+conversation.message.parted.you.reason=Você saiu da sala: %S
+# %1$S is the participant that is leaving.
+# %2$S is the part message supplied by the participant.
+conversation.message.parted=%1$S saiu da sala.
+conversation.message.parted.reason=%1$S saiu da sala: %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 recusou o seu convite.
+conversation.message.invitationDeclined.reason=%1$S recusou o seu convite: %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 foi banido(a) da sala.
+conversation.message.banned.reason=%1$S foi banido(a) da sala: %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 baniu %2$S da sala.
+conversation.message.banned.actor.reason=%1$S baniu %2$S da sala: %3$S
+conversation.message.banned.you=Você foi banido(a) da sala.
+# %1$S is the reason.
+conversation.message.banned.you.reason=Você foi banido(a) da sala: %1$S
+# %1$S is the person who is banning.
+# %2$S is the reason.
+conversation.message.banned.you.actor=%1$S baniu-lhe da sala.
+conversation.message.banned.you.actor.reason=%1$S baniu-lhe da sala: %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 foi expulso(a) da sala.
+conversation.message.kicked.reason=%1$S foi expulso(a) da sala: %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 expulsou %2$S da sala.
+conversation.message.kicked.actor.reason=%1$S expulsou %2$S da sala.: %3$S
+conversation.message.kicked.you=Você foi expulso da sala.
+# %1$S is the reason.
+conversation.message.kicked.you.reason=Você foi expulso da sala: %1$S
+# %1$S is the person who is kicking.
+# %2$S is the reason.
+conversation.message.kicked.you.actor=%1$S expulsou-o da sala.
+conversation.message.kicked.you.actor.reason=%1$S expulsou-o da sala: %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 foi removido(a) da sala uma vez que a configuração da sala foi alterada para apenas membros.
+conversation.message.removedNonMember.actor=%1$S foi removido(a) da sala uma vez que %2$S foi alterada para apenas membros.
+conversation.message.removedNonMember.you=Você foi removido(a) da sala uma vez que a configuração da sala foi alterada para apenas membros.
+# %1$S is the person who changed the room configuration.
+conversation.message.removedNonMember.you.actor=Você foi removido(a) da sala uma vez que %1$S foi alterada para apenas membros.
+
+# 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=Você foi removido da sala devido ao encerramento do sistema.
+
+# 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 está a utilizar "%2$S %3$S".
+conversation.message.versionWithOS=%1$S está a utilizar "%2$S %3$S" em %4$S.
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.resource=Recurso
+options.priority=Prioridade
+options.connectionSecurity=Segurança da ligação
+options.connectionSecurity.requireEncryption=Requer encriptação
+options.connectionSecurity.opportunisticTLS=Se disponível, utilizar encriptação
+options.connectionSecurity.allowUnencryptedAuth=Permitir envio da palavra-passe desencriptada
+options.connectServer=Servidor
+options.connectPort=Porta
+options.domain=Domínio
+
+# LOCALIZATION NOTE (*.protocolName)
+# This name is used whenever the name of the protocol is shown.
+gtalk.protocolName=Google Talk
+odnoklassniki.protocolName=Odnoklassniki
+
+# LOCALIZATION NOTE (gtalk.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Google Talk account.
+gtalk.usernameHint=endereço de e-mail
+
+# 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=O Google Talk deixou de ser suportado porque o Google desativou seu gateway XMPP.
+
+# 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=ID do perfil
+
+# LOCALZIATION NOTE (command.*):
+# These are the help messages for each command.
+command.join3=%S [&lt;sala&gt;[@&lt;servidor&gt;][/&lt;nick&gt;]] [&lt;palavra-passe&gt;]: entrar numa sala, indicando uma sala, servidor, nick ou palavra passe diferente.
+command.part2=%S [&lt;mensagem&gt;]: Sair da sala com uma mensagem opcional.
+command.topic=%S [&lt;novo tópico&gt;]: Definir o tópico da sala.
+command.ban=%S &lt;nick&gt;[&lt;mensagem&gt;]: Banir alguém da sala. Tem de ter privilégios de administrador para fazer isto.
+command.kick=%S &lt;nick&gt;[&lt;mensagem&gt;]: Remover alguém da sala. Tem de ter privilégios de moderador para fazer isto.
+command.invite=%S &lt;jid&gt;[&lt;mensagem&gt;]: Convidar um utilizador para entrar na sala, com uma mensagem adicional.
+command.inviteto=%S &lt;jid da sala&gt;[&lt;palavra-passe&gt;]: Convidar o seu parceiro de conversação para entrar na sala, juntos com a palavra-passe dele, se necessário.
+command.me=%S &lt;ação a realizar&gt;: Realizar uma ação.
+command.nick=%S &lt;novo nickname&gt;: Alterar o seu pseudónimo.
+command.msg=%S &lt;nick&gt; &lt;mensagem&gt;: Enviar uma mensagem privada para um participante na sala.
+command.version=%S: Solicitar informação sobre o cliente que o seu parceiro de conversação está a utilizar.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/yahoo.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/chat/yahoo.properties
new file mode 100644
index 0000000000..bd486a8dfa
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=O Yahoo Messenger já não é suportado uma vez que a Yahoo desativou o seu antigo protocolo.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/communicator/utilityOverlay.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/communicator/utilityOverlay.dtd
new file mode 100644
index 0000000000..ec53ac7f7c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/communicator/utilityOverlay.dtd
@@ -0,0 +1,43 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE : FILE This file contains the global menu items -->
+
+<!ENTITY fileMenu.label "Ficheiro">
+<!ENTITY fileMenu.accesskey "F">
+<!ENTITY newMenu.label "Novo">
+<!ENTITY newMenu.accesskey "N">
+
+<!ENTITY editMenu.label "Editar">
+<!ENTITY editMenu.accesskey "E">
+<!ENTITY undoCmd.label "Desfazer">
+<!ENTITY undoCmd.accesskey "u">
+<!ENTITY redoCmd.label "Refazer">
+<!ENTITY redoCmd.accesskey "R">
+<!ENTITY deleteCmd.label "Apagar">
+<!ENTITY deleteCmd.accesskey "A">
+
+<!ENTITY customizeCmd.label "Personalizar">
+<!ENTITY customizeCmd.accesskey "z">
+
+<!ENTITY viewMenu.label "Ver">
+<!ENTITY viewMenu.accesskey "V">
+<!ENTITY viewToolbarsMenu.label "Barras de ferramentas">
+<!ENTITY viewToolbarsMenu.accesskey "B">
+<!ENTITY showTaskbarCmd.label "Barra de estado">
+<!ENTITY showTaskbarCmd.accesskey "e">
+
+<!ENTITY closeCmd.label "Fechar">
+<!ENTITY closeCmd.key "W">
+<!ENTITY closeCmd.accesskey "c">
+
+<!ENTITY quitApplicationCmd.label "Sair">
+<!ENTITY quitApplicationCmd.key "Q">
+<!ENTITY quitApplicationCmd.accesskey "r">
+
+<!ENTITY quitApplicationCmdUnix.label "Sair">
+<!ENTITY quitApplicationCmdUnix.accesskey "r">
+
+<!ENTITY quitApplicationCmdMac.label "Sair do &brandShortName;">
+<!ENTITY quitApplicationCmdMac.accesskey "r">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/accessibility.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/accessibility.properties
new file mode 100644
index 0000000000..9358cff1fc
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/accessibility.properties
@@ -0,0 +1,314 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Accessibility panel
+# which is available from the Web Developer sub-menu -> 'Accessibility'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Accessibility panel
+# which is in the Developer Tools, available in the
+# Browser Tools sub-menu -> 'Web Developer Tools'
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (accessibility.role): A title text used for Accessibility
+# tree header column that represents accessible element role.
+accessibility.role=Função
+
+# LOCALIZATION NOTE (accessibility.name): A title text used for Accessibility
+# tree header column that represents accessible element name.
+accessibility.name=Nome
+
+# LOCALIZATION NOTE (accessibility.logo): A title text used for Accessibility
+# logo used on the accessibility panel landing page.
+accessibility.logo=Logótipo de acessibilidade
+
+# LOCALIZATION NOTE (accessibility.properties): A title text used for header
+# for Accessibility details sidebar.
+accessibility.properties=Propriedades
+
+# LOCALIZATION NOTE (accessibility.treeName): A title text used for
+# Accessibility tree (that represents accessible element name) container.
+accessibility.treeName=Árvore de acessibilidade
+
+# 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=Clique para selecionar o nó na Árvore de acessibilidade
+
+# 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=Clique para selecionar o nó no inspetor
+
+# LOCALIZATION NOTE (accessibility.accessible.notAvailable): A title text
+# displayed when accessible sidebar panel does not have an accessible object to
+# display.
+accessibility.accessible.notAvailable=Informação acessível indisponível
+
+# LOCALIZATION NOTE (accessibility.enable): A title text for Enable
+# accessibility button used to enable accessibility service.
+accessibility.enable=Ligar funcionalidades de acessibilidade
+
+# LOCALIZATION NOTE (accessibility.enabling): A title text for Enable
+# accessibility button used when accessibility service is being enabled.
+accessibility.enabling=A ligar funcionalidades de acessibilidade…
+
+# LOCALIZATION NOTE (accessibility.disable): A title text for Disable
+# accessibility button used to disable accessibility service.
+accessibility.disable=Desligar funcionalidades de acessibilidade
+
+# LOCALIZATION NOTE (accessibility.disabling): A title text for Disable
+# accessibility button used when accessibility service is being
+# disabled.
+accessibility.disabling=A desligar funcionalidades de acessibilidade…
+
+# LOCALIZATION NOTE (accessibility.pick): A title text for Picker button
+# button used to pick accessible objects from the page.
+accessibility.pick=Escolher objeto acessível a partir da página
+
+# 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=O serviço de acessibilidade não pode ser desligado. É utilizado fora das Ferramentas de programador.
+
+# 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=O serviço de acessibilidade será desligado para todos os separadores e janelas.
+
+# 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=O serviço de acessibilidade não pode ser ligado. Está desligado via a preferência de privacidade de serviços de acessibilidade.
+
+# 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=O serviço de acessibilidade serão ligados para todos os separadores e janelas.
+
+# 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=Saber mais
+
+# 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=O Inspetor de acessibilidade permite-lhe examinar a árvore de acessibilidade da página atual, que é utilizada por leitores de ecrã e outras tecnologias assistivas. %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=As funcionalidades de acessibilidade podem afetar o desempenho de outros painéis de ferramentas de programador e devem ser desligadas quando não estão em utilização.
+
+# 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=Imprimir para JSON
+
+# LOCALIZATION NOTE (accessibility.checks): A title text used for header for checks
+# section in Accessibility details sidebar.
+accessibility.checks=Verificações
+
+# 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=Nenhuma verificação para este nó.
+
+# LOCALIZATION NOTE (accessibility.contrast.header): A title text used for header for
+# checks related to color and contrast.
+accessibility.contrast.header=Cor e contraste
+
+# 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=Não é possível calcular
+
+# 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=texto grande
+
+# 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=O texto tem 14 pontos e em negrito ou maior, ou 18 pontos ou maior.
+
+# 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=Atende aos padrões WCAG AA para texto acessível. %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=Atende aos padrões WCAG AAA para texto acessível. %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=Não cumpre os padrões WCAG para texto acessível. %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=Escolha uma cor que não seja transparente.
+
+# 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=Verificações de acessibilidade
+
+# 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=Nenhum
+
+# 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=Todos os problemas
+
+# 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=Contraste
+
+# 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=Etiquetas de texto
+
+# 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=Teclado
+
+# 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=contraste
+
+# 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=aviso de contraste
+
+# 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=teclado
+
+# 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=rótulo de texto
+
+# 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=Não atende aos padrões WCAG para texto acessível.
+
+# 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=Não cumpre os padrões WCAG para a acessibilidade com o teclado.
+
+# 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=Não atende aos padrões WCAG para alternativa de texto.
+
+# 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=Verifique por problemas:
+
+# LOCALIZATION NOTE (accessibility.tree.filters.prefs): A title text for the
+# preferences button tooltip that contains preferences for accessibility audit.
+accessibility.tree.filters.prefs=Configurar preferências
+
+# LOCALIZATION NOTE (accessibility.progress.initializing): A title text for the
+# accessibility panel overlay shown when accessibility audit is starting up.
+accessibility.progress.initializing=A inicializar…
+
+# 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=A verificar #1 nó;A verificar #1 nós
+
+# LOCALIZATION NOTE (accessibility.progress.finishing): A title text for the
+# accessibility panel overlay shown when accessibility audit is finishing up.
+accessibility.progress.finishing=A terminar…
+
+# 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=Deslocar para apresentar o nó selecionado na área de visualização automaticamente
+
+# 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=Deslocar para ver
+
+# LOCALIZATION NOTE (accessibility.documentation.label): This is the label for
+# the Documentation menu item.
+accessibility.documentation.label=Documentação…
+
+# 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=Simular:
+
+# 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 (sem vermelho)
+
+# 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 (sem verde)
+
+# 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 (sem azul)
+
+# 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=Perda de contraste
+
+# 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=Acromatopsia (sem cor)
+
+# 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=Mostrar ordem de tabulação
+
+# 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=Mostra a ordem de tabulação dos elementos e o respetivo índice de tabulação.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/animationinspector.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/animationinspector.properties
new file mode 100644
index 0000000000..f734e5d730
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/animationinspector.properties
@@ -0,0 +1,183 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=Não foram encontradas animações para o elemento atual.\nSelecione outro elemento da página.
+
+# LOCALIZATION NOTE (player.animationDurationLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation duration.
+player.animationDurationLabel=Duração:
+
+# 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=Atraso:
+
+# LOCALIZATION NOTE (player.animationEndDelayLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation endDelay.
+player.animationEndDelayLabel=Atraso do fim:
+
+# 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=Taxa de reprodução:
+
+# 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=Repetições:
+
+# 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=Início da iteração: %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=Suavização geral:
+
+# 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=Função de temporização de animação:
+
+# 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=Encher:
+
+# 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=Direção:
+
+# 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=Esta animação está a ser executada na thread de composição
+
+# 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=Todas as propriedades de animação estão otimizadas
+
+# 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=Algumas propriedades de animação estão otimizadas
+
+# 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=Retomar as animações
+
+# 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=Pausar as animações
+
+# 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=Rebobinar as animações
+
+# 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 - Animação CSS
+
+# 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 - Transição CSS
+
+# 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 - Animação do script
+
+# 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=Animação do script
+
+# 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/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/boxmodel.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/boxmodel.properties
new file mode 100644
index 0000000000..6fda6baf3a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/boxmodel.properties
@@ -0,0 +1,48 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE : FILE This file contains the Layout View strings.
+# The Layout View is a panel displayed in the computed view tab of the Inspector sidebar.
+
+# LOCALIZATION NOTE : FILE The correct localization of this file might be to
+# keep it in English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (boxmodel.title) This is the title of the box model panel and is
+# displayed as a label.
+boxmodel.title=Modelo de caixa
+
+# 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=Editar posição
+
+# 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=Propriedades do modelo de caixa
+
+# LOCALIZATION NOTE (boxmodel.propertiesHideLabel):
+# This is the spoken label for the twisty.
+# If the properties are currently showing, it will say "Hide".
+boxmodel.propertiesHideLabel=Ocultar
+
+# LOCALIZATION NOTE (boxmodel.propertiesShowLabel):
+# This is the spoken label for the twisty.
+# If the properties are currently hidden, it will say "Show".
+boxmodel.propertiesShowLabel=Mostrar
+
+# 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=deslocar
+
+# 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=Deslocar parente do elemento selecionado
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/changes.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/changes.properties
new file mode 100644
index 0000000000..2ddd001026
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Não foram encontradas alterações.
+
+# 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=Alterações ao CSS no Inspetor irão aparecer aqui.
+
+# 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=Elemento
+
+# 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=Copiar
+
+# 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=Copiar todas as alterações
+
+# 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=Copiar uma lista de todas as alterações de CSS para a área de transferência.
+
+# LOCALIZATION NOTE (changes.contextmenu.copyDeclaration): Label for "Copy Declaration"
+# option in Changes panel context menu which copies the target CSS declaration.
+changes.contextmenu.copyDeclaration=Copiar declaração
+
+# 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=Copiar regra
+
+# 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=Copiar conteúdos desta regra de CSS para a área de transferência.
+
+# LOCALIZATION NOTE (changes.contextmenu.selectAll): Label for "Select All" option in the
+# Changes panel context menu to select all text content.
+changes.contextmenu.selectAll=Selecionar tudo
+
+# LOCALIZATION NOTE (changes.contextmenu.selectAll.accessKey): Access key for "Select All"
+# option in the Changes panel.
+changes.contextmenu.selectAll.accessKey=S
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/components.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/components.properties
new file mode 100644
index 0000000000..22060a737e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/components.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/.
+
+# 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=(desconhecido)
+
+# 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=Ver fonte no depurador → %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=Ver código fonte no editor de estilos → %S
+
+# LOCALIZATION NOTE (notificationBox.closeTooltip): The content of a tooltip that
+# appears when hovering over the close button in a notification box.
+notificationBox.closeTooltip=Fechar esta mensagem
+
+# 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=O painel %S falhou.
+
+# LOCALIZATION NOTE (appErrorBoundary.fileBugButton): This is the text that appears in
+# the button to visit the bug filing link.
+appErrorBoundary.fileBugButton=Submeter relatório de erro
+
+# LOCALIZATION NOTE (appErrorBoundary.reloadPanelInfo): This is the text that appears
+# after the panel errors to instruct the user to reload the panel.
+appErrorBoundary.reloadPanelInfo=Fechar e reabrir a caixa de ferramentas para limpar este erro.
+
+# LOCALIZATION NOTE(searchModifier.regExpModifier): A search option
+# when searching text in a file
+searchModifier.regExpModifier=Utilizar Expressão Regular
+
+# LOCALIZATION NOTE(searchModifier.caseSensitiveModifier): A search option
+# when searching text in a file
+searchModifier.caseSensitiveModifier=Diferenciar maiúsculas de minúsculas
+
+# LOCALIZATION NOTE(searchModifier.wholeWordModifier): A search option
+# when searching text in a file
+searchModifier.wholeWordModifier=Corresponder a palavra inteira
+
+# LOCALIZATION NOTE (searchBox.clearButtonTitle): The title of the SearchBox clear input
+# button, which is displayed when the input is not empty.
+searchBox.clearButtonTitle=Limpar filtro de introdução
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/debugger.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/debugger.properties
new file mode 100644
index 0000000000..2569cf04ed
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/debugger.properties
@@ -0,0 +1,1100 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Debugger
+# which is available from the Browser Tools sub-menu -> 'Debugger'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (collapseSources): This is the tooltip for the button
+# that collapses the Sources and Outlines panes in the debugger UI.
+collapseSources=Recolher painéis de fontes e esquemas
+
+# LOCALIZATION NOTE (collapseBreakpoints): This is the tooltip for the button
+# that collapses the Breakpoints panes in the debugger UI.
+collapseBreakpoints=Recolher painel de pontos de quebra
+
+# LOCALIZATION NOTE (copyToClipboard.label): This is the text that appears in the
+# context menu to copy the text that the user selected.
+copyToClipboard.label=Copiar para a área de transferência
+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=Copiar texto fonte
+copySource.accesskey=r
+
+# LOCALIZATION NOTE (copySourceUri2): This is the text that appears in the
+# context menu to copy the source URI of file open.
+copySourceUri2=Copiar URI de fonte
+copySourceUri2.accesskey=o
+
+# 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=Colapsar tudo
+
+# 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=Expandir tudo
+
+# LOCALIZATION NOTE (setDirectoryRoot.label): This is the text that appears in the
+# context menu to set a directory as root directory
+setDirectoryRoot.label=Definir raiz do diretório
+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=Remover raiz do diretório
+
+# LOCALIZATION NOTE (ignoreAll.label): Text associated with the ignore context menu item
+ignoreAll.label=Ignorar
+
+# 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=Ignorar ficheiros neste grupo
+
+# 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=Deixar de ignorar ficheiros neste grupo
+
+# 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=Ignorar ficheiros fora deste grupo
+
+# 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=Deixar de ignorar ficheiros fora deste grupo
+
+# 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=Ignorar ficheiros neste diretório
+
+# 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=Deixar de ignorar ficheiros neste diretório
+
+# 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=Ignorar ficheiros fora deste diretório
+
+# 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=Deixar de ignorar ficheiros fora deste diretório
+
+# LOCALIZATION NOTE (copyFunction.label): This is the text that appears in the
+# context menu to copy the function the user selected
+copyFunction.label=Copiar função
+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=Copiar stack trace
+copyStackTrace.accesskey=c
+
+# LOCALIZATION NOTE (restartFrame): This is the text that appears in the
+# context menu to restart a frame.
+restartFrame=Reiniciar quadro
+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=Expandir painéis de fontes e esquemas
+
+# LOCALIZATION NOTE (expandBreakpoints): This is the tooltip for the button
+# that expands the Breakpoints panes in the debugger UI.
+expandBreakpoints=Expandir painel de pontos de quebra
+
+# LOCALIZATION NOTE (evaluateInConsole.label): Editor right-click menu item
+# to execute selected text in browser console.
+evaluateInConsole.label=Avaliar na consola
+
+# LOCALIZATION NOTE (pauseButtonTooltip): The tooltip that is displayed for the pause
+# button when the debugger is in a running state.
+pauseButtonTooltip=Pausar %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=A aguardar pela execução seguinte
+
+# 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=Rastreie todas as frames JavaScript para %S.\nClique com o botão direito para alterar a saída.
+
+# 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=Parar de rastrear frames JavaScript.
+
+# LOCALIZATION NOTE (startTraceButtonTooltip): The label that is displayed on the trace
+# button in the top of the debugger right sidebar.
+# %1$S is for the key shortcut
+# %2$S is for the log output location (webconsole or stdout).
+startTraceButtonTooltip2=Rastreie todas as frames de JavaScript para %2$S. (%1$S)\nClique direito para alterar a saída.
+
+# LOCALIZATION NOTE (stopTraceButtonTooltip): The label that is displayed on the trace
+# button in the top of the debugger right sidebar. This label is only displayed when we are current tracing
+# JavaScript.
+# %S is for the key shortcut
+stopTraceButtonTooltip2=Parar rastreio das frames de JavaScript. (%S)
+
+# LOCALIZATION NOTE (traceInWebConsole): The label that is displayed in the context menu
+# of the trace button, which is in the top of the debugger right sidebar.
+# This is used to force logging JavaScript traces in the Web Console.
+traceInWebConsole=Rastrear na consola web
+
+# 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=Rastrear no stdout
+
+# LOCALIZATION NOTE (resumeButtonTooltip): The label that is displayed on the pause
+# button when the debugger is in a paused state.
+resumeButtonTooltip=Retomar %S
+
+# LOCALIZATION NOTE (stepOverTooltip): The label that is displayed on the
+# button that steps over a function call.
+stepOverTooltip=Passar por %S
+
+# LOCALIZATION NOTE (stepInTooltip): The label that is displayed on the
+# button that steps into a function call.
+stepInTooltip=Passar para %S
+
+# LOCALIZATION NOTE (stepOutTooltip): The label that is displayed on the
+# button that steps out of a function call.
+stepOutTooltip=Passar para fora %S
+
+# LOCALIZATION NOTE (skipPausingTooltip.label): The tooltip text for disabling all
+# breakpoints and pausing triggers
+skipPausingTooltip.label=Desativar pontos de quebra
+
+# LOCALIZATION NOTE (undoSkipPausingTooltip.label): The tooltip text for enabling all
+# breakpoints and pausing triggers
+undoSkipPausingTooltip.label=Ativar pontos de quebra
+
+# LOCALIZATION NOTE (pauseOnExceptionsItem2): The pause on exceptions checkbox description
+# when the debugger will pause on all exceptions.
+pauseOnExceptionsItem2=Pausar em exceções
+
+# LOCALIZATION NOTE (pauseOnCaughtExceptionsItem): The pause on exceptions checkbox description
+# when the debugger should pause on caught exceptions
+pauseOnCaughtExceptionsItem=Pausar em exceções não identificadas
+
+# 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=Thread principal
+
+# LOCALIZATION NOTE (pausedThread): The text to describe the status of paused threads
+pausedThread=em pausa
+
+# LOCALIZATION NOTE (noSourcesText): The text to display in the sources list
+# when there are no sources.
+noSourcesText=Esta página não tem fontes.
+
+# LOCALIZATION NOTE (ignoredSourcesHidden): Notification message displayed in the
+# sources list footer when ignored sources are hidden.
+ignoredSourcesHidden=As fontes ignoradas estão ocultas.
+
+# 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=Mostrar todas as fontes
+
+# 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=Isto irá mostrar todas as fontes ignoradas (que estão atualmente ocultas) na árvore.
+
+# LOCALIZATION NOTE (eventListenersHeader1): The text to display in the events
+# header.
+eventListenersHeader1=Pontos de quebra de escuta de eventos
+
+# 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=Clique com o botão direito do rato num elemento no %S e selecione “Interromper em…” para adicionar um ponto de interrupção
+
+# LOCALIZATION NOTE (inspectorTool): The text to describe the the Inspector tool
+inspectorTool=Inspetor
+
+# LOCALIZATION NOTE (eventListenersHeader1.placeholder): The placeholder text in
+# the event search input bar
+eventListenersHeader1.placeholder=Filtrar pelo tipo de evento
+
+# LOCALIZATION NOTE (domMutationHeader): The text to display in the
+# DOM Mutation Breakpoints header
+domMutationHeader=Pontos de quebra de mutação do DOM
+
+# LOCALIZATION NOTE (domMutationTypes.attribute): The text to display in the
+# DOM Mutation Breakpoints panel for an attribute change
+domMutationTypes.attribute=Modificação de atributo
+
+# LOCALIZATION NOTE (domMutationTypes.removal): The text to display in the
+# DOM Mutation Breakpoints panel for a DOM node removal
+domMutationTypes.removal=Remoção de nó
+
+# LOCALIZATION NOTE (domMutationTypes.subtree): The text to display in the
+# DOM Mutation Breakpoints panel for a DOM subtree change
+domMutationTypes.subtree=Modificação de subárvore
+
+# 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=Passar
+
+# LOCALIZATION NOTE (shortcuts.header.search): Sections header in
+# the shortcuts modal for keyboard shortcuts related to search.
+shortcuts.header.search=Pesquisa
+
+# LOCALIZATION NOTE (projectTextSearch.placeholder): A placeholder shown
+# when searching across all of the files in a project.
+projectTextSearch.placeholder=Localizar em ficheiros…
+
+# 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=ficheiros a excluir
+
+# 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=por exemplo, **/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=Não foram encontrados resultados
+
+# LOCALIZATION NOTE (projectTextSearch.pageNavigated): Tooltip shown on the refresh
+# button, only when it is highlighted because the page navigated to a new document
+# and the results might be obsolete.
+projectTextSearch.refreshButtonTooltip=Clique para atualizar os resultados da pesquisa
+
+# LOCALIZATION NOTE (projectTextSearch.pageNavigated): Tooltip shown on the refresh
+# button, only when it is highlighted because the page navigated to a new document
+# and the results might be obsolete.
+projectTextSearch.refreshButtonTooltipOnNavigation=A página navegou para um novo documento. Clique para atualizar os resultados da pesquisa
+
+# LOCALIZATION NOTE (projectTextSearch.sourceNoLongerAvailable): Tooltip message shown
+# on Text Search results when the related source no longer exists.
+# This typically happens after navigating or reloading the page and search results are obsolete.
+projectTextSearch.sourceNoLongerAvailable=Esta fonte já não está disponível.\nAtualize a pesquisa para ter as fontes mais recentes.
+
+# 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=Pesquisar no ficheiro…
+
+# LOCALIZATION NOTE (sourceSearch.search.placeholder2): placeholder text in
+# the source search input bar
+sourceSearch.search.placeholder2=Localizar em ficheiro…
+
+# 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 resultado;#1 resultados
+
+# LOCALIZATION NOTE (breakpointHeadingMenuItem.*): The text for all the elements
+# that are displayed in the breakpoint headings menu item popup.
+breakpointHeadingsMenuItem.enableInSource.label=Ativar pontos de quebra
+breakpointHeadingsMenuItem.enableInSource.accesskey=e
+breakpointHeadingsMenuItem.disableInSource.label=Desativar pontos de quebra
+breakpointHeadingsMenuItem.disableInSource.accesskey=D
+breakpointHeadingsMenuItem.removeInSource.label=Remover pontos de quebra
+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=Ativar
+breakpointMenuItem.enableSelf2.accesskey=A
+breakpointMenuItem.disableSelf2.label=Desativar
+breakpointMenuItem.disableSelf2.accesskey=D
+breakpointMenuItem.deleteSelf2.label=Remover
+breakpointMenuItem.deleteSelf2.accesskey=R
+breakpointMenuItem.disabledbg.label=Nunca pausar aqui
+breakpointMenuItem.enabledbg.label=Pausar aqui
+breakpointMenuItem.enableOthers2.label=Ativar outros
+breakpointMenuItem.enableOthers2.accesskey=o
+breakpointMenuItem.disableOthers2.label=Desativar outros
+breakpointMenuItem.disableOthers2.accesskey=s
+breakpointMenuItem.deleteOthers2.label=Remover outros
+breakpointMenuItem.deleteOthers2.accesskey=u
+breakpointMenuItem.enableAll2.label=Ativar todos
+breakpointMenuItem.enableAll2.accesskey=t
+breakpointMenuItem.disableAll2.label=Desativar todos
+breakpointMenuItem.disableAll2.accesskey=q
+breakpointMenuItem.deleteAll2.label=Remover todos
+breakpointMenuItem.deleteAll2.accesskey=v
+breakpointMenuItem.removeCondition2.label=Remover condição
+breakpointMenuItem.removeCondition2.accesskey=c
+breakpointMenuItem.addCondition2.label=Adicionar condição
+breakpointMenuItem.addCondition2.accesskey=A
+breakpointMenuItem.editCondition2.label=Editar condição
+breakpointMenuItem.editCondition2.accesskey=n
+breakpointMenuItem.enableSelf=Ativar ponto de quebra
+breakpointMenuItem.disableSelf=Desativar ponto de quebra
+breakpointMenuItem.deleteSelf=Remover ponto de quebra
+breakpointMenuItem.enableOthers=Ativar outros
+breakpointMenuItem.disableOthers=Desativar outros
+breakpointMenuItem.deleteOthers=Remover outros
+breakpointMenuItem.enableAll=Ativar todos os pontos de quebra
+breakpointMenuItem.disableAll=Desativar todos os pontos de quebra
+breakpointMenuItem.deleteAll=Remover todos os pontos de quebra
+breakpointMenuItem.disableAllAtLine.label=Desativar pontos de quebra na linha
+breakpointMenuItem.disableAllAtLine.accesskey=Q
+breakpointMenuItem.enableAllAtLine.label=Ativar pontos de quebra na linha
+breakpointMenuItem.enableAllAtLine.accesskey=L
+breakpointMenuItem.removeAllAtLine.label=Remover pontos de quebra na linha
+breakpointMenuItem.removeAllAtLine.accesskey=X
+
+# LOCALIZATION NOTE (breakpoints.header): Breakpoints right sidebar pane header.
+breakpoints.header=Pontos de quebra
+
+# LOCALIZATION NOTE (breakpoints.removeBreakpointTooltip): The tooltip that is displayed
+# for remove breakpoint button in right sidebar
+breakpoints.removeBreakpointTooltip=Remover ponto de quebra
+
+# 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=Não pausada
+
+# LOCALIZATION NOTE (callStack.collapse): Call Stack right sidebar pane
+# message to hide some of the frames that are shown.
+callStack.collapse=Colapsar linhas
+
+# LOCALIZATION NOTE (callStack.expand): Call Stack right sidebar pane
+# message to show more of the frames.
+callStack.expand=Expandir linhas
+
+# 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=Mostrar frames %S
+
+# 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=Colapsar frames %S
+
+# 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 de #1 resultado;%d de #1 resultados
+
+# LOCALIZATION NOTE (editor.noResultsFound): Editor Search bar message
+# for when no results found.
+editor.noResultsFound=Não foram encontrados resultados
+
+# LOCALIZATION NOTE (editor.searchResults.nextResult): Editor Search bar
+# tooltip for traversing to the Next Result
+editor.searchResults.nextResult=Resultado seguinte
+
+# LOCALIZATION NOTE (editor.searchResults.prevResult): Editor Search bar
+# tooltip for traversing to the Previous Result
+editor.searchResults.prevResult=Resultado anterior
+
+# LOCALIZATION NOTE (editor.continueToHere.label): Editor gutter context
+# menu item for jumping to a new paused location
+editor.continueToHere.label=Continuar para aqui
+editor.continueToHere.accesskey=a
+
+# LOCALIZATION NOTE (editor.addBreakpoint): Editor gutter context menu item
+# for adding a breakpoint on a line.
+editor.addBreakpoint=Adicionar ponto de quebra
+
+# LOCALIZATION NOTE (editor.disableBreakpoint): Editor gutter context menu item
+# for disabling a breakpoint on a line.
+editor.disableBreakpoint=Desativar ponto de quebra
+editor.disableBreakpoint.accesskey=D
+
+# LOCALIZATION NOTE (editor.enableBreakpoint): Editor gutter context menu item
+# for enabling a breakpoint on a line.
+editor.enableBreakpoint=Ativar ponto de quebra
+
+# LOCALIZATION NOTE (editor.removeBreakpoint): Editor gutter context menu item
+# for removing a breakpoint on a line.
+editor.removeBreakpoint=Remover ponto de quebra
+
+# LOCALIZATION NOTE (editor.addConditionBreakpoint): Editor gutter context
+# menu item for adding a breakpoint condition on a line.
+editor.addConditionBreakpoint=Adicionar condição
+editor.addConditionBreakpoint.accesskey=c
+
+# LOCALIZATION NOTE (editor.editConditionBreakpoint): Editor gutter context menu item
+# for setting a breakpoint condition on a line.
+editor.editConditionBreakpoint=Editar condição
+
+# LOCALIZATION NOTE (editor.addLogPoint): Editor gutter context
+# menu item for adding a log point on a line.
+editor.addLogPoint=Adicionar registo
+editor.addLogPoint.accesskey=r
+
+# LOCALIZATION NOTE (editor.editLogPoint): Editor gutter context menu item
+# for editing a log point already set on a line.
+editor.editLogPoint=Editar registo
+editor.editLogPoint.accesskey=E
+
+# LOCALIZATION NOTE (editor.removeLogPoint): Context menu item for removing
+# a log point on a line.
+editor.removeLogPoint.label=Remover registo
+editor.removeLogPoint.accesskey=V
+
+# LOCALIZATION NOTE (editor.conditionalPanel.placeholder2): Placeholder text for
+# input element inside ConditionalPanel component
+editor.conditionalPanel.placeholder2=Condição de ponto de quebra, por ex. 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=Mensagem de registo, por ex. displayName
+
+# LOCALIZATION NOTE (editor.jumpToMappedLocation1): Context menu item
+# for navigating to a source mapped location
+editor.jumpToMappedLocation1=Saltar para a localização de %S
+editor.jumpToMappedLocation1.accesskey=m
+
+# LOCALIZATION NOTE (downloadFile.label): Context menu item
+# for downloading a source's content
+downloadFile.label=Transferir ficheiro
+downloadFile.accesskey=T
+
+# LOCALIZATION NOTE (inlinePreview.show.label): Context menu item
+# for showing the inline preview blocks
+inlinePreview.show.label=Mostrar pré-visualização em linha
+
+# LOCALIZATION NOTE (inlinePreview.hide.label): Context menu item
+# for hiding the inline preview block
+inlinePreview.hide.label=Ocultar pré-visualização em linha
+
+# LOCALIZATION NOTE (inlinePreview.toggle.label): Context menu item
+# that will toggle display of inline preview
+inlinePreview.toggle.label=Pré-visualização de variável em linha
+
+# LOCALIZATION NOTE (inlinePreview.toggle.tooltip): Context menu item
+# tooltip that will describe toggling inline preview
+inlinePreview.toggle.tooltip=Mostrar a pré-visualização em linha no editor do depurador
+
+# LOCALIZATION NOTE (editorWrapping.show.label): Context menu item
+# for showing the wrap lines block
+editorWrapping.show.label=Moldar linhas
+
+# LOCALIZATION NOTE (editorWrapping.hide.label): Context menu item
+# for showing the wrap lines block
+editorWrapping.hide.label=Deixar de moldar linhas
+
+# LOCALIZATION NOTE (editorWrapping.toggle.label): Context menu item
+# label for toggling the lines wrapping feature
+editorWrapping.toggle.label=Moldar linhas
+
+# LOCALIZATION NOTE (editorWrapping.toggle.tooltip): Context menu item
+# tooltip for toggling the lines wrapping feature
+editorWrapping.toggle.tooltip=Moldar linhas no editor do depurador
+
+# LOCALIZATION NOTE (settings.button.label): Label for Settings button
+settings.button.label=Definições do depurador
+
+# LOCALIZATION NOTE (settings.disableJavaScript.label): Context menu item
+# label for disabling JavaScript
+settings.disableJavaScript.label=Desativar JavaScript
+
+# LOCALIZATION NOTE (settings.disableJavaScript.tooltip): Context menu item
+# tooltip for disabling JavaScript
+settings.disableJavaScript.tooltip=Desativa o JavaScript (é necessário atualizar)
+
+# LOCALIZATION NOTE (settings.toggleSourceMaps.tooltip): Context menu item
+# tooltip for toggling the source maps feature
+settings.toggleSourceMaps.tooltip=Ative os mapas da fonte para permitir que as DevTools carreguem o código original, para além do código gerado
+
+# LOCALIZATION NOTE (settings.toggleSourceMaps.label): Context menu item
+# label for toggling the source maps feature
+settings.toggleSourceMaps.label=Mapas de fonte
+
+# LOCALIZATION NOTE (settings.hideIgnoredSources.tooltip): Context menu item
+# tooltip for hiding and showing all the ignored sources
+settings.hideIgnoredSources.tooltip=Oculta todas as fontes ignoradas no painel das Fontes
+
+# 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=Ocultar Fontes Ignoradas
+
+# 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=Ignora todas as origens no campo x_google_ignoreList do mapa de origem.
+
+# 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=Ignorar scripts conhecidos de terceiros
+
+# LOCALIZATION NOTE (preview.noProperties): Label shown in the preview
+# popup when there are no properties to show.
+preview.noProperties=Sem propriedades
+
+# LOCALIZATION NOTE (framework.disableGrouping): This is the text that appears in the
+# context menu to disable framework grouping.
+framework.disableGrouping=Desativar agrupamento de frameworks
+framework.disableGrouping.accesskey=u
+
+# LOCALIZATION NOTE (framework.enableGrouping): This is the text that appears in the
+# context menu to enable framework grouping.
+framework.enableGrouping=Ativar agrupamento de frameworks
+framework.enableGrouping.accesskey=u
+
+# LOCALIZATION NOTE (generated): Source Map term for a server source location
+generated=gerado
+
+# 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=Adicionar expressão de monitorização
+
+# LOCALIZATION NOTE (expressions.errorMsg): Error text for expression
+# input element
+expressions.errorMsg=Expressão inválida…
+expressions.label=Adicionar expressão de monitorização
+expressions.accesskey=e
+expressions.remove.tooltip=Remover expressão de monitorização
+
+# LOCALIZATION NOTE (xhrBreakpoints.header): The pause on any XHR breakpoints headings
+xhrBreakpoints.header=Pontos de quebra XHR
+xhrBreakpoints.placeholder=Quebrar quando o URL contém
+xhrBreakpoints.label=Adicionar ponto de quebra XHR
+
+# LOCALIZATION NOTE (xhrBreakpoints.removeAll.tooltip): For the `Remove all XHR breakpoints' button in the header of the XHR breakpoints panel
+xhrBreakpoints.removeAll.tooltip=Remover todos os pontos de interrupção XHR
+
+
+# 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 contém “%S”
+
+# LOCALIZATION NOTE (pauseOnAnyXHR): The pause on any XHR checkbox description
+# when the debugger will pause on any XHR requests.
+pauseOnAnyXHR=Pausar em qualquer URL
+
+# LOCALIZATION NOTE (watchpoints.submenu): This is the text for the watchpoints sub-menu.
+watchpoints.submenu=Interromper em…
+
+# 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=Obtenção de propriedade
+
+# 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=Definição de propriedade
+
+# 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=Obter ou definir propriedade
+
+# LOCALIZATION NOTE (watchpoints.removeWatchpoint): This is the text that appears in the
+# context menu to delete a watchpoint on an object property.
+watchpoints.removeWatchpoint=Remover ponto de monitorização
+
+# LOCALIZATION NOTE (watchpoints.removeWatchpointTooltip): This is the text that appears in the
+# tooltip to delete a watchpoint on an object property.
+watchpoints.removeWatchpointTooltip=Remover ponto de monitorização
+
+# LOCALIZATION NOTE (sourceTabs.closeTab): Editor source tab context menu item
+# for closing the selected tab below the mouse.
+sourceTabs.closeTab=Fechar separador
+sourceTabs.closeTab.accesskey=f
+sourceTabs.closeTab.key=CmdOrCtrl+W
+
+# LOCALIZATION NOTE (sourceTabs.closeOtherTabs): Editor source tab context menu item
+# for closing the other tabs.
+sourceTabs.closeOtherTabs=Fechar outros
+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=Fechar separadores à direita
+sourceTabs.closeTabsToEnd.accesskey=e
+
+# LOCALIZATION NOTE (sourceTabs.closeAllTabs): Editor source tab context menu item
+# for closing all tabs.
+sourceTabs.closeAllTabs=Fechar todos os separadores
+sourceTabs.closeAllTabs.accesskey=t
+
+# LOCALIZATION NOTE (sourceTabs.revealInTree): Editor source tab context menu item
+# for revealing source in tree.
+sourceTabs.revealInTree=Revelar em árvore
+sourceTabs.revealInTree.accesskey=r
+
+# LOCALIZATION NOTE (sourceTabs.prettyPrint): Editor source tab context menu item
+# for pretty printing the source.
+sourceTabs.prettyPrint=Formatação bonita da fonte
+sourceTabs.prettyPrint.accesskey=f
+
+# 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=Não é possível formatar para leitura. O ficheiro já está no formato de leitura
+
+# 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=Não é possível formatar as fontes originais para leitura dado que o ficheiro já é legível
+
+# 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=Não é possível formatar para leitura fontes geradas com mapas de origem válidos. Por favor, utilize as fontes originais.
+
+# 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=Não é possível formatar para leitura dado que o ficheiro não tem conteúdos
+
+# 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=Não é possível formatar para leitura dado que o ficheiro não é JavaScript
+
+# LOCALIZATION NOTE (sourceFooter.ignores): Tooltip text associated
+# with the ignores button
+sourceFooter.ignore=Ignorar fonte
+
+# LOCALIZATION NOTE (sourceFooter.unignore): Tooltip text associated
+# with the ignore button
+sourceFooter.unignore=Deixar de ignorar fonte
+
+# LOCALIZATION NOTE (sourceFooter.ignoreList): Tooltip text associated
+# with the ignore source button when the selected source is on the ignore list
+sourceFooter.ignoreList=Esta fonte está na lista de ignorados. Desative a opção `Ignorar scripts conhecidos de terceiros` para a ativar.
+
+# LOCALIZATION NOTE (ignoreContextItem.ignore): Text associated
+# with the ignore context menu item
+ignoreContextItem.ignore=Ignorar fonte
+ignoreContextItem.ignore.accesskey=I
+
+# LOCALIZATION NOTE (ignoreContextItem.unignore): Text associated
+# with the unignore context menu item
+ignoreContextItem.unignore=Deixar de ignorar fonte
+ignoreContextItem.unignore.accesskey=x
+
+# LOCALIZATION NOTE (overridesContextItem.override): Text associated
+# with the add overrides context menu item
+overridesContextItem.override=Adicionar substituição de script
+overridesContextItem.override.accesskey=o
+
+# LOCALIZATION NOTE (overridesContextItem.removeOverride): Text associated
+# with the remove override context menu item
+overridesContextItem.removeOverride=Remover substituição de script
+overridesContextItem.removeOverride.accesskey=o
+
+# LOCALIZATION NOTE (ignoreContextItem.ignoreLine): Text associated
+# with the ignore line context menu item
+ignoreContextItem.ignoreLine=Ignorar linha
+ignoreContextItem.ignoreLine.accesskey=l
+
+# LOCALIZATION NOTE (ignoreContextItem.unignoreLine): Text associated
+# with the unignore line context menu item
+ignoreContextItem.unignoreLine=Não ignorar linha
+ignoreContextItem.unignoreLine.accesskey=n
+
+# LOCALIZATION NOTE (ignoreContextItem.ignoreLines): Text associated
+# with the ignore lines context menu item
+ignoreContextItem.ignoreLines=Ignorar linhas
+ignoreContextItem.ignoreLines.accesskey=i
+
+# LOCALIZATION NOTE (ignoreContextItem.unignoreLines): Text associated
+# with the unignore lines context menu item
+ignoreContextItem.unignoreLines=Não ignorar linhas
+ignoreContextItem.unignoreLines.accesskey=n
+
+# LOCALIZATION NOTE (sourceFooter.mappedSource): Text associated
+# with a mapped source. %S is replaced by the source map origin.
+sourceFooter.mappedSource=(De %S)
+
+# LOCALIZATION NOTE (sourceFooter.mappedSourceTooltip): Tooltip text associated
+# with a mapped source. %S is replaced by the source map origin.
+sourceFooter.mappedSourceTooltip=(Fonte mapeada de %S)
+
+# LOCALIZATION NOTE (sourceFooter.mappedSuffix): Text associated
+# with a mapped source. Displays next to URLs in tree and tabs.
+sourceFooter.mappedSuffix=(mapeado)
+
+# LOCALIZATION NOTE (sourceFooter.currentCursorPosition): Text associated
+# with the current cursor line and column
+sourceFooter.currentCursorPosition=(%S, %S)
+
+# LOCALIZATION NOTE (sourceFooter.currentCursorPosition.tooltip): Text associated
+# with the current cursor line and column
+sourceFooter.currentCursorPosition.tooltip=(Linha %1$S, coluna %2$S)
+
+# LOCALIZATION NOTE (sourceTabs.closeTabButtonTooltip): The tooltip that is displayed
+# for close tab button in source tabs.
+sourceTabs.closeTabButtonTooltip=Fechar separador
+
+# LOCALIZATION NOTE (scopes.header): Scopes right sidebar pane header.
+scopes.header=Âmbitos
+
+# LOCALIZATION NOTE (scopes.notAvailable): Scopes right sidebar pane message
+# for when the debugger is paused, but there isn't pause data.
+scopes.notAvailable=Âmbitos indisponíveis
+
+# LOCALIZATION NOTE (scopes.notPaused): Scopes right sidebar pane message
+# for when the debugger is not paused.
+scopes.notPaused=Não pausado
+
+# LOCALIZATION NOTE (scopes.mapping.label): Scopes right sidebar pane
+# tooltip for checkbox and label
+scopes.mapping.label=Mapear nomes de variáveis originais
+
+# LOCALIZATION NOTE (eventlisteners.log.label): Event listeners tooltip for
+# checkbox and label
+eventlisteners.log.label=Registar eventos na consola
+
+# LOCALIZATION NOTE (eventlisteners.log): Checkbox label for logging events
+eventlisteners.log=Registo
+
+# LOCALIZATION NOTE (scopes.helpTooltip.label): Scopes right sidebar pane
+# icon tooltip for link to MDN
+scopes.helpTooltip.label=Saber mais acerca de âmbitos de mapas
+
+# LOCALIZATION NOTE (scopes.map.label): Checkbox label to map scopes
+scopes.map.label=Mapear
+
+# LOCALIZATION NOTE (scopes.block): Refers to a block of code in
+# the scopes pane when the debugger is paused.
+scopes.block=Bloco
+
+# LOCALIZATION NOTE (sources.header): Sources left sidebar header
+sources.header=Fontes
+
+# LOCALIZATION NOTE (outline.header): Outline left sidebar header
+outline.header=Esquema
+
+# LOCALIZATION NOTE (search.header): Search left sidebar header
+search.header=Pesquisar
+
+# LOCALIZATION NOTE (outline.placeholder): Placeholder text for the filter input
+# element
+outline.placeholder=Filtrar funções
+
+# LOCALIZATION NOTE (outline.sortLabel): Label for the sort button
+outline.sortLabel=Ordenar por nome
+
+# LOCALIZATION NOTE (outline.noFunctions): Outline text when there are no functions to display
+outline.noFunctions=Sem funções
+
+# LOCALIZATION NOTE (outline.noFileSelected): Outline text when there are no files selected
+outline.noFileSelected=Nenhum ficheiro selecionado
+
+# 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 para pesquisar
+
+# LOCALIZATION NOTE (watchExpressions.header): Watch Expressions right sidebar
+# pane header.
+watchExpressions.header=Expressões de monitorização
+
+# LOCALIZATION NOTE (watchExpressions.refreshButton): Watch Expressions header
+# button for refreshing the expressions.
+watchExpressions.refreshButton=Atualizar
+
+# 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 para pesquisar por fontes
+
+# 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 Ir para ficheiro
+
+# 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 para localizar ficheiros
+
+# 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 Localizar em ficheiros
+
+# LOCALIZATION NOTE (welcome.allShortcuts): The label to open the modal of
+# shortcuts, displayed in the welcome panel.
+welcome.allShortcuts=Mostrar todos os atalhos
+
+# LOCALIZATION NOTE (sourceSearch.search): The center pane Source Search
+# prompt for searching for files.
+sourceSearch.search=Pesquisar fontes…
+
+# LOCALIZATION NOTE (sourceSearch.search2): The center pane Source Search
+# prompt for searching for files.
+sourceSearch.search2=Ir para ficheiro…
+
+# LOCALIZATION NOTE (pauseOnExceptions): The pause on exceptions button tooltip
+# when the debugger will pause on all exceptions.
+pauseOnExceptions=Pausar em todas as exceções. Clique para ignorar exceções
+
+# 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=A carregar\u2026
+
+# LOCALIZATION NOTE (wasmIsNotAvailable): The text that is displayed in the
+# script editor when the WebAssembly source is not available.
+wasmIsNotAvailable=Por favor atualize para depurar este módulo
+
+# LOCALIZATION NOTE (errorLoadingText3): The text that is displayed in the debugger
+# viewer when there is an error loading a file
+errorLoadingText3=Erro ao carregar este URI: %S
+
+# LOCALIZATION NOTE(gotoLineModal.placeholder): The placeholder
+# text displayed when the user searches for specific lines in a file
+gotoLineModal.placeholder=Ir para a linha…
+
+# LOCALIZATION NOTE(gotoLineModal.title): The message shown to users
+# to open the go to line modal
+gotoLineModal.title=Vá para um número de linha num ficheiro
+
+# 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=Pesquisar funções…
+symbolSearch.search.functionsPlaceholder.title=Procure por uma função num ficheiro
+
+# LOCALIZATION NOTE(symbolSearch.search.variablesPlaceholder): The placeholder
+# text displayed when the user searches for variables in a file
+symbolSearch.search.variablesPlaceholder=Pesquisar variáveis…
+symbolSearch.search.variablesPlaceholder.title=Procure por uma variável num ficheiro
+
+# 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=Esta é uma funcionalidade experimental
+
+# 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=<anónimo>
+
+# 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=Alternar ponto de quebra
+shortcuts.toggleBreakpoint.accesskey=B
+
+# LOCALIZATION NOTE (shortcuts.toggleCondPanel.breakpoint): text describing
+# keyboard shortcut action for toggling conditional panel for breakpoints
+shortcuts.toggleCondPanel.breakpoint=Editar ponto de quebra condicional
+
+# LOCALIZATION NOTE (shortcuts.toggleCondPanel.logPoint): text describing
+# keyboard shortcut action for toggling conditional panel for log points
+shortcuts.toggleCondPanel.logPoint=Editar ponto de registo
+
+# LOCALIZATION NOTE (shortcuts.pauseOrResume): text describing
+# keyboard shortcut action for pause of resume
+shortcuts.pauseOrResume=Pausar/Retomar
+
+# LOCALIZATION NOTE (shortcuts.stepOver): text describing
+# keyboard shortcut action for stepping over
+shortcuts.stepOver=Passar por
+
+# LOCALIZATION NOTE (shortcuts.stepIn): text describing
+# keyboard shortcut action for stepping in
+shortcuts.stepIn=Passar para
+
+# LOCALIZATION NOTE (shortcuts.stepOut): text describing
+# keyboard shortcut action for stepping out
+shortcuts.stepOut=Passar para fora
+
+# LOCALIZATION NOTE (shortcuts.fileSearch): text describing
+# keyboard shortcut action for source file search
+shortcuts.fileSearch=Pesquisa de ficheiro fonte
+
+# LOCALIZATION NOTE (shortcuts.fileSearch2): text describing
+# keyboard shortcut action for source file search
+shortcuts.fileSearch2=Ir para ficheiro
+
+# LOCALIZATION NOTE (shortcuts.gotoLine): text describing
+# keyboard shortcut for jumping to a specific line
+shortcuts.gotoLine=Ir para a linha
+
+# LOCALIZATION NOTE (shortcuts.projectSearch): text describing
+# keyboard shortcut action for full project search
+shortcuts.projectSearch=Pesquisa de projeto inteiro
+
+# LOCALIZATION NOTE (shortcuts.projectSearch2): text describing
+# keyboard shortcut action for full project search
+shortcuts.projectSearch2=Localizar em ficheiros
+
+# LOCALIZATION NOTE (shortcuts.functionSearch): text describing
+# keyboard shortcut action for function search
+shortcuts.functionSearch=Pesquisa de funções
+
+# LOCALIZATION NOTE (shortcuts.functionSearch2): text describing
+# keyboard shortcut action for function search
+shortcuts.functionSearch2=Localizar função
+
+# LOCALIZATION NOTE (shortcuts.buttonName): text describing
+# keyboard shortcut button text
+shortcuts.buttonName=Atalhos de teclado
+
+# LOCALIZATION NOTE (variablesSeparatorLabel): The text that is displayed
+# in the variables list as a separator between the name and value.
+variablesSeparatorLabel=:
+variablesViewOptimizedOut=(caminho otimizado)
+variablesViewUninitialized=(não inicializado)
+variablesViewMissingArgs=(não disponível)
+
+# 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=Clique para selecionar o nó no inspetor
+
+# LOCALIZATION NOTE (variablesEditButtonTooltip): The text that is displayed
+# in the variables list on a getter or setter which can be edited.
+variablesEditButtonTooltip=Clique para definir o valor
+
+# 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=mais #1…;mais #1…
+
+# LOCALIZATION NOTE (variablesEditableNameTooltip): The text that is displayed
+# in the variables list on an item with an editable name.
+variablesEditableNameTooltip=Duplo clique para editar
+
+# LOCALIZATION NOTE (variablesEditableValueTooltip): The text that is displayed
+# in the variables list on an item with an editable value.
+variablesEditableValueTooltip=Clique para mudar o valor
+
+# LOCALIZATION NOTE (variablesCloseButtonTooltip): The text that is displayed
+# in the variables list on an item which can be removed.
+variablesCloseButtonTooltip=Clique para remover
+
+# 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=configurável
+enumerableTooltip=enumerável
+writableTooltip=para escrita
+frozenTooltip=congelado
+sealedTooltip=selado
+extensibleTooltip=extensível
+overriddenTooltip=substituído
+WebIDLTooltip=WebIDL
+
+# LOCALIZATION NOTE (serviceWorkerInfo.parsed): State displayed for a service
+# worker that has been parsed.
+serviceWorkerInfo.parsed=analisado
+# LOCALIZATION NOTE (serviceWorkerInfo.installing): State displayed for a
+# service worker that is being installed.
+serviceWorkerInfo.installing=a instalar
+# LOCALIZATION NOTE (serviceWorkerInfo.installed): State displayed for a
+# service worker that has finished being installed.
+serviceWorkerInfo.installed=instalado
+# LOCALIZATION NOTE (serviceWorkerInfo.activating): State displayed for a
+# service worker that is being activated.
+serviceWorkerInfo.activating=a ativar
+# LOCALIZATION NOTE (serviceWorkerInfo.activated): State displayed for a
+# service worker that has finished being activated.
+serviceWorkerInfo.activated=ativado
+# LOCALIZATION NOTE (serviceWorkerInfo.redundant): State displayed for a
+# service worker that is redundant.
+serviceWorkerInfo.redundant=redundante
+# LOCALIZATION NOTE (serviceWorkerInfo.unknown): State displayed for a
+# service worker that is in an unknown state.
+serviceWorkerInfo.unknown=desconhecido
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/device.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/device.properties
new file mode 100644
index 0000000000..5f71d7a149
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Telemóveis
+device.tablets=Tablets
+device.laptops=Portáteis
+device.televisions=Televisões
+device.consoles=Consolas de jogos
+device.watches=Relógios
+device.custom=Personalizado
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/dom.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/dom.properties
new file mode 100644
index 0000000000..dfe03b0832
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/dom.properties
@@ -0,0 +1,27 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the DOM panel
+# which is available from the Web Developer sub-menu -> 'DOM'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the DOM panel
+# which is available from the Browser Tools sub-menu -> 'DOM'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (dom.filterDOMPanel): A placeholder text used for
+# DOM panel search box.
+dom.filterDOMPanel=Filtrar painel DOM
+
+# LOCALIZATION NOTE (dom.refresh): A label for Refresh button in
+# DOM panel toolbar
+dom.refresh=Atualizar
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/filterwidget.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/filterwidget.properties
new file mode 100644
index 0000000000..48933b004f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/filterwidget.properties
@@ -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/.
+
+# 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=Nenhum filtro especificado
+
+# LOCALIZATION NOTE (emptyPresetList):
+# This string is displayed when preset's list is empty
+emptyPresetList=Não possui quaisquer predefinições guardadas. Pode armazenar filtros de predefinições escolhendo um nome e guardando-os. As predefinições estão rapidamente acessíveis e pode reutilizá-las com facilidade.
+
+# 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=Adicione um filtro através da lista abaixo
+
+# 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=Cor de raio xy
+
+# 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=Arraste para cima/baixo para reordenar o filtro
+
+# 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=Arraste para a esquerda/direita para diminuir ou aumentar o valor
+
+# LOCALIZATION NOTE (filterListSelectPlaceholder):
+# This string is used as a preview option in the list of possible filters
+# <select>
+filterListSelectPlaceholder=Selecione um filtro
+
+# LOCALIZATION NOTE (addNewFilterButton):
+# This string is displayed on a button used to add new filters
+addNewFilterButton=Adicionar
+
+# LOCALIZATION NOTE (newPresetPlaceholder):
+# This string is used as a placeholder in the list of presets which is used to
+# save a new preset
+newPresetPlaceholder=Nome predefinido
+
+# LOCALIZATION NOTE (savePresetButton):
+# This string is displayed on a button used to save a new preset
+savePresetButton=Guardar
+
+# LOCALIZATION NOTE(presetsToggleButton):
+# This string is used in a button which toggles the presets list
+presetsToggleButton=Predefinições
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/font-inspector.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/font-inspector.properties
new file mode 100644
index 0000000000..f0c592a7d1
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=sistema
+
+# LOCALIZATION NOTE (fontinspector.noFontsUsedOnCurrentElement): This label is shown when
+# no fonts were used on the selected element.
+fontinspector.noFontsUsedOnCurrentElement=Nenhum tipo de fonte utilizado no elemento atual.
+
+# 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=Copiar 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=Personalizado
+
+# 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=Instância
+
+# 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=Tamanho
+
+# 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=Espessura
+
+# 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=Itálico
+
+# LOCALIZATION NOTE (fontinspector.showMore): Label for a collapsed list of fonts.
+fontinspector.showMore=Mostrar mais
+
+# LOCALIZATION NOTE (fontinspector.showLess): Label for an expanded list of fonts.
+fontinspector.showLess=Mostrar menos
+
+# LOCALIZATION NOTE (fontinspector.letterSpacingLabel): Label for the UI to change the
+# letter spacing in the font editor.
+fontinspector.letterSpacingLabel=Espaçamento
+
+# LOCALIZATION NOTE (fontinspector.lineHeightLabelCapitalized): Label for the UI to change the line height in the font editor.
+fontinspector.lineHeightLabelCapitalized=Altura da linha
+
+# LOCALIZATION NOTE (fontinspector.allFontsOnPageHeader): Header for the section listing
+# all the fonts on the current page.
+fontinspector.allFontsOnPageHeader=Todos os tipos de letra na página
+
+# LOCALIZATION NOTE (fontinspector.fontsUsedLabel): Label for the Font Editor section
+# which shows the fonts used on the selected element.
+fontinspector.fontsUsedLabel=Tipos de letra utilizados
+
+# 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=Texto de pré-visualização de tipo de letra
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/har.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/har.properties
new file mode 100644
index 0000000000..403a95fd9a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/har.properties
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Network Monitor
+# which is available from the Web Developer sub-menu -> 'Network Monitor'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Network Monitor
+# which is available from the Browser Tools sub-menu -> 'Network Monitor'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (har.responseBodyNotIncluded): A label used within
+# HAR file explaining that HTTP response bodies are not includes
+# in exported data.
+har.responseBodyNotIncluded=O corpo das respostas não será incluído.
+
+# LOCALIZATION NOTE (har.responseBodyNotIncluded): A label used within
+# HAR file explaining that HTTP request bodies are not includes
+# in exported data.
+har.requestBodyNotIncluded=Os corpos de pedidos não estão incluídos.
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/inspector.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/inspector.properties
new file mode 100644
index 0000000000..25c1babf32
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/inspector.properties
@@ -0,0 +1,602 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 Browser Tools sub-menu -> 'Inspect'.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+inspector.panelLabel.markupView=Vista de marcação
+
+# 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=Alguns nós foram ocultados.
+
+# LOCALIZATION NOTE (markupView.more.showAll2): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+markupView.more.showAll2=Mostrar mais um nó;Mostrar todos os #1 nós
+
+# LOCALIZATION NOTE (markupView.whitespaceOnly.label)
+# Used in the badge that appears when whitespace-only text nodes are displayed in the
+# inspector.
+markupView.whitespaceOnly.label=espaço em branco
+
+# 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=indisponível
+
+# 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=Os filhos deste elemento não estão disponíveis no modo de Caixa de ferramentas do navegador atual
+
+# 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=Nó de texto de apenas espaço em branco: %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=Este elemento comporta-se como um elemento em bloco e dispõe o seu conteúdo de acordo com o modelo flexbox. Clique para alternar a sobreposição flexbox para este elemento.
+
+# 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=Este elemento comporta-se como um elemento em linha e dispõe o seu conteúdo de acordo com o modelo flexbox. Clique para alternar a sobreposição flexbox para este elemento.
+
+# 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=Este elemento comporta-se como um elemento em bloco e dispõe o respetivo conteúdo de acordo com o modelo em grelha. Clique para alternar a sobreposição em grelha para este elemento.
+
+# 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=Este elemento comporta-se como um elemento em linha e dispõe o respetivo conteúdo de acordo com o modelo em grelha. Clique para alternar a sobreposição em grelha para este elemento.
+
+# 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=Este elemento expõe o seu conteúdo de acordo com o modelo de grelha mas adia a definição das suas linhas e/ou colunas para o seu conteúdo de grelha principal.
+
+# 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=Este elemento gera uma caixa de elemento block que estabelece um novo contexto de formatação block.
+
+# 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=Este elemento não produz uma caixa específica por ele próprio, mas renderiza o seu conteúdo.
+
+# 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=Escuta de eventos
+
+# LOCALIZATION NOTE (markupView.event.tooltiptext)
+# Used in a tooltip that appears when the user hovers over 'event' badge in
+# the markup view.
+markupView.event.tooltiptext2=Clique para mostrar os recetores de eventos para este elemento
+
+# 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=Mostrar definição do elemento personalizado
+
+# 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=Novo atributo
+
+# 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=Revelar
+
+#LOCALIZATION NOTE: Used in the image preview tooltip when the image could not be loaded
+previewTooltip.image.brokenImage=Não foi possível carregar a imagem
+
+# LOCALIZATION NOTE: Used in color picker tooltip when the eyedropper is disabled for
+# non-HTML documents
+eyedropper.disabled.title=Indisponível em documentos não-HTML
+
+#LOCALIZATION NOTE: Used in the event tooltip to allow the debugger to be opened
+eventsTooltip.openInDebugger=Abrir no depurador
+
+# LOCALIZATION NOTE: Used in the event tooltip for the toggle button.
+# Parameter is the event type (e.g. "click")
+eventsTooltip.toggleButton.label=Código do recetor de evento “%S”
+
+#LOCALIZATION NOTE: Used in the event tooltip to allow the debugger to be opened
+eventsTooltip.openInDebugger2=Abrir “%S” no Depurador
+
+#LOCALIZATION NOTE: Used in the event tooltip when a script's filename cannot be detected
+eventsTooltip.unknownLocation=Localização desconhecida
+
+#LOCALIZATION NOTE: Used in the mouseover tooltip when hovering "Unknown location."
+eventsTooltip.unknownLocationExplanation=A localização original desta escuta não pode ser detetada. Se calhar o código é "transpilado" por um utilitário como o Babel.
+
+# LOCALIZATION NOTE: Label for the checkbox in the event tooltip that toggles event listeners
+# Parameter is the event type (e.g. "click")
+eventsTooltip.toggleListenerLabel=Ativar o recetor de evento “%S”
+
+#LOCALIZATION NOTE: Used in the tooltip for Bubbling
+eventsTooltip.Bubbling=Bubbling
+
+#LOCALIZATION NOTE: Used in the tooltip for Capturing
+eventsTooltip.Capturing=Capturando
+
+# LOCALIZATION NOTE: Title of the iframe we use in the event tooltip to display the code of
+# the event listener. Parameter is the event type (e.g. "click")
+eventsTooltip.codeIframeTitle=Código do recetor de evento “%S”
+
+# LOCALIZATION NOTE (allTabsMenuButton.tooltip): The tooltip that gets
+# displayed when hovering over the tabs overflow button.
+allTabsMenuButton.tooltip=Mostrar todos os separadores
+
+# LOCALIZATION NOTE (inspector.showThreePaneMode): This is the tooltip for the button
+# that toggles on the 3 pane inspector mode.
+inspector.showThreePaneMode=Ativar o inspetor de 3 painéis
+
+# LOCALIZATION NOTE (inspector.hideThreePaneMode): This is the tooltip for the button
+# that toggles off the 3 pane inspector mode.
+inspector.hideThreePaneMode=Desativar o inspetor de 3 painéis
+
+# LOCALIZATION NOTE (inspector.searchResultsCount2): This is the label that
+# will show up next to the inspector search box. %1$S is the current result
+# index and %2$S is the total number of search results. For example: "3 of 9".
+# This won't be visible until the search box is updated in Bug 835896.
+inspector.searchResultsCount2=%1$S de %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=Sem correspondências
+
+# 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=Abrir ligação num novo separador
+
+# 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=Copiar endereço da ligação
+
+# 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=Selecionar o elemento #%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=Editar atributo “%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=Remover atributo “%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=Copiar valor do atributo “%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=Clique para destacar este nó na página
+
+# 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=Editar como XML
+inspectorHTMLEdit.label=Editar como HTML
+inspectorSVGEdit.label=Editar como SVG
+inspectorMathMLEdit.label=Editar como 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=HTML intrínseco
+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=HTML extrínseco
+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=Seletor de CSS
+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=Caminho CSS
+inspectorCopyCSSPath.accesskey=C
+
+# 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=HTML extrínseco
+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=HTML intrínseco
+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=Antes
+inspectorHTMLPasteBefore.accesskey=e
+
+# 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=Depois
+inspectorHTMLPasteAfter.accesskey=D
+
+# 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=Como primeiro filho
+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=Como último filho
+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=Deslocar para a vista
+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=Apagar nó
+inspectorHTMLDelete.accesskey=A
+
+# 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=Atributos
+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=Adicionar atributo
+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=Alterar pseudo-classe
+
+# LOCALIZATION NOTE (inspectorBreakpointSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the DOM breakpoints.
+inspectorBreakpointSubmenu.label=Quebrar em…
+
+# 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=Modificação de subárvore
+
+# 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=Modificação de atributo
+
+# 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=Remoção de nó
+
+# LOCALIZATION NOTE (inspectorSearchHTML.label3): This is the label that is
+# shown as the placeholder for the markup view search in the inspector.
+inspectorSearchHTML.label3=Pesquisar HTML
+
+# LOCALIZATION NOTE (inspectorImageDataUri.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users copy
+# the URL embedding the image data encoded in Base 64 (what we name
+# here Image Data URL). For more information:
+# https://developer.mozilla.org/en-US/docs/Web/HTTP/data_URIs
+inspectorImageDataUri.label=Dados de imagem-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=Mostrar propriedades DOM
+
+# 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=Mostrar propriedades de acessibilidade
+
+# 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=Utilizar na consola
+
+# LOCALIZATION NOTE (inspectorExpandNode.label): This is the label
+# shown in the inspector contextual-menu for recursively expanding
+# mark-up elements
+inspectorExpandNode.label=Expandir tudo
+
+# LOCALIZATION NOTE (inspectorCollapseAll.label): This is the label
+# shown in the inspector contextual-menu for recursively collapsing
+# mark-up elements
+inspectorCollapseAll.label=Colapsar todos
+
+# 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=Nó de captura de ecrã
+
+# 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=Duplicar nó
+
+# 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=Criar novo nó
+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=Copiar
+
+# 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=Colar
+
+# 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=Mostrar elemento personalizado
+
+# 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=Tipos de letra
+
+# 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=Alterações
+
+# 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=Regras
+
+# 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=Computado
+
+# 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=Esquema
+
+# 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=Animações
+
+# 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=Compatibilidade
+
+# 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=Obter uma cor da página
+
+# 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=Área de navegação
+
+# 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=Estilos do navegador
+
+# LOCALIZATION NOTE (inspector.filterStyles.label): This is the label for the search box
+inspector.filterStyles.label=Filtrar estilos
+
+# 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=Filtrar estilos
+
+# LOCALIZATION NOTE (inspector.filterStylesClearButton.title): This is the title
+# for the search box clear button displayed when the input is not empty.
+inspector.filterStylesClearButton.title = Limpar filtro de introdução
+
+# 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=Adicionar nova regra
+
+# 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=Alternar 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=Alternar 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=Adicionar nova classe
+
+# 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=Sem classes neste elemento
+
+# 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=Nenhuma propriedade CSS encontrada.
+
+# 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 = Alternar a simulação de impressão de multimédia para a página
+
+# 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=Alternar a simulação do esquema de cores claro para a página
+
+# 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=Alternar a simulação do esquema de cores escuro para a página
+
+# 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=deslocamento
+
+# 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=Este elemento tem excesso deslocável.
+
+# 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=Este elemento tem um deslocamento por overflow. Clique para revelar os elementos que estão na origem do 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=Este elemento está a causar o overflow de um elemento.
+
+# 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=Nenhuma regra associada
+
+# 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=Calculado em relação ao fundo: %S
+
+# LOCALIZATION NOTE (colorPickerTooltip.spectrumDraggerTitle): A title text for the
+# spectrum dragger panel in the color picker tooltip.
+colorPickerTooltip.spectrumDraggerTitle=Espectro
+
+# LOCALIZATION NOTE (colorPickerTooltip.eyedropperTitle): A title text for the
+# eyedropper in the color picker tooltip.
+colorPickerTooltip.eyedropperTitle=Escolha uma cor na página
+
+# 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=Mais próxima de: %S
+
+# LOCALIZATION NOTE (colorPickerTooltip.hueSliderTitle): A title text for the
+# hue slider in the color picker tooltip.
+colorPickerTooltip.hueSliderTitle=Tonalidade
+
+# LOCALIZATION NOTE (colorPickerTooltip.alphaSliderTitle): A title text for the
+# alpha slider in the color picker tooltip.
+colorPickerTooltip.alphaSliderTitle=Opacidade
+
+# 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=Contraste %S:
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/jsonview.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/jsonview.properties
new file mode 100644
index 0000000000..6db0d504bd
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/jsonview.properties
@@ -0,0 +1,47 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used in the JSON View tool
+# that is used to inspect application/json document types loaded
+# in the browser.
+
+# LOCALIZATION NOTE The correct localization of this file might be to keep it
+# in English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best documentation
+# on web development on the web.
+
+# LOCALIZATION NOTE (jsonViewer.tab.JSON, jsonViewer.tab.RawData,
+# jsonViewer.tab.Headers): Label for a panel tab.
+jsonViewer.tab.JSON=JSON
+jsonViewer.tab.RawData=Dados em bruto
+jsonViewer.tab.Headers=Cabeçalhos
+
+# LOCALIZATION NOTE (jsonViewer.responseHeaders, jsonViewer.requestHeaders):
+# Label for header groups within the 'Headers' panel.
+jsonViewer.responseHeaders=Cabeçalhos de resposta
+jsonViewer.requestHeaders=Cabeçalhos do pedido
+
+# LOCALIZATION NOTE (jsonViewer.Save): Label for save command
+jsonViewer.Save=Guardar
+
+# LOCALIZATION NOTE (jsonViewer.Copy): Label for clipboard copy command
+jsonViewer.Copy=Copiar
+
+# LOCALIZATION NOTE (jsonViewer.ExpandAll): Label for expanding all nodes
+jsonViewer.ExpandAll=Expandir tudo
+
+jsonViewer.ExpandAllSlow=Expandir tudo (lento)
+
+# LOCALIZATION NOTE (jsonViewer.CollapseAll): Label for collapsing all nodes
+jsonViewer.CollapseAll=Colapsar todos
+
+# LOCALIZATION NOTE (jsonViewer.PrettyPrint): Label for JSON
+# pretty print action button.
+jsonViewer.PrettyPrint=Formatação bonita
+
+# LOCALIZATION NOTE (jsonViewer.filterJSON): Label used in search box
+# at the top right cornder of the JSON Viewer.
+jsonViewer.filterJSON=Filtrar JSON
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/layout.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/layout.properties
new file mode 100644
index 0000000000..15456f474f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Voltar para o Contentor Flex
+
+# LOCALIZATION (flexbox.flexContainer): The accordion header for the Flexbox panel
+# when a flex container is selected.
+flexbox.flexContainer=Contentor flex
+
+# 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=Item flex de %S
+
+# LOCALIZATION NOTE (flexbox.noFlexboxeOnThisPage): In the case where there are no CSS
+# flex containers to display.
+flexbox.noFlexboxeOnThisPage=Selecione um contentor Flex ou item para continuar.
+
+# LOCALIZATION NOTE (flexbox.flexItems): Header label displayed for the flex item list.
+flexbox.flexItems=Itens flex
+
+# 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=Sem itens flex
+
+# LOCALIZATION NOTE (flexbox.itemSizing.baseSizeSectionHeader): Header label displayed
+# at the start of the flex item sizing Base Size section.
+flexbox.itemSizing.baseSizeSectionHeader=Tamanho base
+
+# LOCALIZATION NOTE (flexbox.itemSizing.flexibilitySectionHeader): Header label displayed
+# at the start of the flex item sizing Flexibility section.
+flexbox.itemSizing.flexibilitySectionHeader=Flexibilidade
+
+# LOCALIZATION NOTE (flexbox.itemSizing.minSizeSectionHeader): Header label displayed
+# at the start of the flex item sizing Minimum Size section.
+flexbox.itemSizing.minSizeSectionHeader=Tamanho mínimo
+
+# LOCALIZATION NOTE (flexbox.itemSizing.maxSizeSectionHeader): Header label displayed at
+# the start of the flex item sizing Maximum Size section.
+flexbox.itemSizing.maxSizeSectionHeader=Tamanho máximo
+
+# LOCALIZATION NOTE (flexbox.itemSizing.finalSizeSectionHeader): Header label displayed at
+# the start of the flex item sizing Final Size section.
+flexbox.itemSizing.finalSizeSectionHeader=Tamanho final
+
+# 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=Tamanho do conteúdo
+
+# 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=O item foi preso ao seu tamanho máximo.
+
+# 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=O item foi preso ao seu tamanho mínimo.
+
+# 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=O item foi definido para crescer.
+
+# 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=O item foi definido para encolher.
+
+# 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=O item não foi definido para crescer.
+
+# 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=O item não foi definido para encolher.
+
+# LOCALIZATION NOTE (flexbox.togglesFlexboxHighlighter2): The tooltip text for the Flexbox
+# toggle button.
+flexbox.togglesFlexboxHighlighter2=Alternar marcador flexbox
+
+# LOCALIZATION NOTE (layout.cannotShowGridOutline, layout.cannotSHowGridOutline.title):
+# In the case where the grid outline cannot be effectively displayed.
+layout.cannotShowGridOutline=Não é possível mostrar contorno para esta grelha
+layout.cannotShowGridOutline.title=O contorno da grelha selecionada não cabe efetivamente dentro do painel de esquema para que seja utilizável.
+
+# LOCALIZATION NOTE (layout.displayAreaNames): Label of the display area names setting
+# option in the CSS Grid panel.
+layout.displayAreaNames=Mostrar nomes das áreas
+
+# LOCALIZATION NOTE (layout.displayLineNumbers): Label of the display line numbers
+# setting option in the CSS Grid panel.
+layout.displayLineNumbers=Mostrar números das linhas
+
+# LOCALIZATION NOTE (layout.extendLinesInfinitely): Label of the extend lines
+# infinitely setting option in the CSS Grid panel.
+layout.extendLinesInfinitely=Estender linhas infinitamente
+
+# LOCALIZATION NOTE (layout.header): The accordion header for the CSS Grid panel.
+layout.header=Grelha
+
+# LOCALIZATION NOTE (layout.gridDisplaySettings): The header for the grid display
+# settings container in the CSS Grid panel.
+layout.gridDisplaySettings=Definições de apresentação em grelha
+
+# LOCALIZATION NOTE (layout.noGridsOnThisPage): In the case where there are no CSS grid
+# containers to display.
+layout.noGridsOnThisPage=CSS Grid não está em utilização nesta página
+
+# LOCALIZATION NOTE (layout.overlayGrid): Alternate header for the list of grid container
+# elements if only one item can be selected.
+layout.overlayGrid=Sobrepor grelha
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/memory.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/memory.properties
new file mode 100644
index 0000000000..75977b4315
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/memory.properties
@@ -0,0 +1,434 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Memory Tools
+# which is available from the Web Developer sub-menu -> 'Memory'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Memory Tools
+# which is available from the Browser Tools sub-menu -> 'Memory'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (snapshot.io.save): The label for the link that saves a
+# snapshot to disk.
+snapshot.io.save=Guardar
+
+# LOCALIZATION NOTE (snapshot.io.delete): The label for the link that deletes
+# a snapshot
+snapshot.io.delete=Apagar
+
+# LOCALIZATION NOTE (snapshot.io.save.window): The title for the window
+# displayed when saving a snapshot to disk.
+snapshot.io.save.window=Guardar captura
+
+# LOCALIZATION NOTE (snapshot.io.import.window): The title for the window
+# displayed when importing a snapshot form disk.
+snapshot.io.import.window=Importar captura
+
+# LOCALIZATION NOTE (snapshot.io.filter): The title for the filter used to
+# filter file types (*.fxsnapshot)
+snapshot.io.filter=Capturas do Firefox
+
+# 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=A processar…
+
+# LOCALIZATION NOTE (checkbox.recordAllocationStacks): The label describing the
+# boolean checkbox whether or not to record call stacks.
+checkbox.recordAllocationStacks=Gravar 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=Alterna a gravação da call stack quando um objeto foi alocado. Capturas subsequentes irão poder agrupar e etiquetar objetos como call stacks, mas apenas quando esses objetos criados depois de alternar esta opção. A gravação de call stacks tem uma sobrecarga no desempenho.
+
+# LOCALIZATION NOTE (toolbar.displayBy): The label describing the select menu
+# options of the display options.
+toolbar.displayBy=Agrupar por:
+
+# LOCALIZATION NOTE (toolbar.displayBy.tooltip): The tooltip for the label
+# describing the select menu options of the display options.
+toolbar.displayBy.tooltip=Alterar como os objetos são agrupados
+
+# 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=Retroceder para agregados
+
+# LOCALIZATION NOTE (toolbar.viewing-individuals): The text letting the user
+# know that they are viewing individual nodes from a census group.
+toolbar.viewing-individuals=⁂ A ver indivíduos em grupo
+
+# LOCALIZATION NOTE (censusDisplays.coarseType.tooltip): The tooltip for the
+# "coarse type" display option.
+censusDisplays.coarseType.tooltip=Agrupar itens pelo seu tipo
+
+# LOCALIZATION NOTE (censusDisplays.allocationStack.tooltip): The tooltip for
+# the "call stack" display option.
+censusDisplays.allocationStack.tooltip=Agrupar itens pela stack de JavaScript gravada quando o objeto foi alocado
+
+# LOCALIZATION NOTE (censusDisplays.invertedAllocationStack.tooltip): The
+# tooltip for the "inverted call stack" display option.
+censusDisplays.invertedAllocationStack.tooltip=Agrupar itens pela call stack de JavaScript invertida gravada quando o objeto foi criado
+
+# LOCALIZATION NOTE (toolbar.labelBy): The label describing the select menu
+# options of the label options.
+toolbar.labelBy=Etiqueta por:
+
+# LOCALIZATION NOTE (toolbar.labelBy.tooltip): The tooltip for the label describing the
+# select menu options of the label options.
+toolbar.labelBy.tooltip=Alterar como os objetos são etiquetados
+
+# LOCALIZATION NOTE (dominatorTreeDisplays.coarseType.tooltip): The tooltip for
+# the "coarse type" dominator tree display option.
+dominatorTreeDisplays.coarseType.tooltip=Etiquetar objetos pelas categorias genéricas nos quais eles se inserem
+
+# LOCALIZATION NOTE (dominatorTreeDisplays.allocationStack.tooltip): The
+# tooltip for the "call stack" dominator tree display option.
+dominatorTreeDisplays.allocationStack.tooltip=Etiquetar objetos pela stack de JavaScript gravada quando foi alocada
+
+# LOCALIZATION NOTE (treeMapDisplays.coarseType.tooltip): The tooltip for
+# the "coarse type" tree map display option.
+treeMapDisplays.coarseType.tooltip=Etiquetar objetos pelas categorias genéricas nos quais eles se inserem
+
+# LOCALIZATION NOTE (toolbar.view): The label for the view selector in the
+# toolbar.
+toolbar.view=Vista:
+
+# LOCALIZATION NOTE (toolbar.view.tooltip): The tooltip for the label for the
+# view selector in the toolbar.
+toolbar.view.tooltip=Alterar a vista da captura
+
+# LOCALIZATION NOTE (toolbar.view.census): The label for the census view option
+# in the toolbar.
+toolbar.view.census=Agregar
+
+# LOCALIZATION NOTE (toolbar.view.census.tooltip): The tooltip for the label for
+# the census view option in the toolbar.
+toolbar.view.census.tooltip=Ver um sumário dos conteúdos capturados ao agregar objetos em grupos
+
+# LOCALIZATION NOTE (toolbar.view.dominators): The label for the dominators view
+# option in the toolbar.
+toolbar.view.dominators=Dominadores
+
+# LOCALIZATION NOTE (toolbar.view.dominators.tooltip): The tooltip for the label
+# for the dominators view option in the toolbar.
+toolbar.view.dominators.tooltip=Ver a árvore dominadora e a superfície das maiores estruturas na captura
+
+# LOCALIZATION NOTE (toolbar.view.treemap): The label for the tree map option
+# in the toolbar.
+toolbar.view.treemap=Mapa em árvore
+
+# LOCALIZATION NOTE (toolbar.view.treemap.tooltip): The tooltip for the label for
+# the tree map view option in the toolbar.
+toolbar.view.treemap.tooltip=Visualizar utilização de memória: blocos maiores contam para uma percentagem maior de utilização de memória
+
+# LOCALIZATION NOTE (take-snapshot): The label describing the button that
+# initiates taking a snapshot, either as the main label, or a tooltip.
+take-snapshot=Capturar estado
+
+# LOCALIZATION NOTE (import-snapshot): The label describing the button that
+# initiates importing a snapshot.
+import-snapshot=Importar…
+
+# LOCALIZATION NOTE (clear-snapshots.tooltip): The tooltip for the button that
+# deletes existing snapshot.
+clear-snapshots.tooltip=Apagar todas as capturas
+
+# LOCALIZATION NOTE (diff-snapshots.tooltip): The tooltip for the button that
+# initiates selecting two snapshots to diff with each other.
+diff-snapshots.tooltip=Comparar capturas
+
+# LOCALIZATION NOTE (filter.placeholder): The placeholder text used for the
+# memory tool's filter search box.
+filter.placeholder=Filtrar
+
+# LOCALIZATION NOTE (filter.tooltip): The tooltip text used for the memory
+# tool's filter search box.
+filter.tooltip=Filtrar os conteúdos da captura
+
+# LOCALIZATION NOTE (tree-item.view-individuals.tooltip): The tooltip for the
+# button to view individuals in this group.
+tree-item.view-individuals.tooltip=Ver nós individuais neste grupo e os seus caminhos retidos
+
+# 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=Carregar mais…
+
+# LOCALIZATION NOTE (tree-item.rootlist): The label for the root of the
+# dominator tree.
+tree-item.rootlist=Raízes de GC
+
+# 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=(nenhuma stack disponível)
+
+# 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=(nenhum nome de ficheiro disponível)
+
+# 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=(raiz)
+
+# 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=Linha base
+
+# LOCALIZATION NOTE (diffing.comparison): The name of the snapshot being
+# compared to the baseline in a diffing comparison.
+diffing.comparison=Comparação
+
+# LOCALIZATION NOTE (diffing.prompt.selectBaseline): The prompt to select the
+# first snapshot when doing a diffing comparison.
+diffing.prompt.selectBaseline=Selecionar captura de linha base
+
+# LOCALIZATION NOTE (diffing.prompt.selectComparison): The prompt to select the
+# second snapshot when doing a diffing comparison.
+diffing.prompt.selectComparison=Selecionar captura para comparar com a linha base
+
+# 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=Erro
+
+# 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=Ocorreu um erro durante a comparação das capturas.
+
+# 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=A determinar diferenças…
+
+# 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=A determinar diferença…
+
+# LOCALIZATION NOTE (diffing.state.selecting): The label describing the diffing
+# state SELECTING.
+diffing.state.selecting=Selecionar duas capturas a comparar
+
+# 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=Selecionar duas capturas a comparar
+
+# LOCALIZATION NOTE (dominatorTree.state.computing): The label describing the
+# dominator tree state COMPUTING.
+dominatorTree.state.computing=A gerar relatório de dominadores…
+
+# LOCALIZATION NOTE (dominatorTree.state.computing.full): The label describing the
+# dominator tree state COMPUTING, used in the dominator tree view.
+dominatorTree.state.computing.full=A gerar relatório de dominadores…
+
+# LOCALIZATION NOTE (dominatorTree.state.fetching): The label describing the
+# dominator tree state FETCHING.
+dominatorTree.state.fetching=A computar tamanhos…
+
+# LOCALIZATION NOTE (dominatorTree.state.fetching.full): The label describing the
+# dominator tree state FETCHING, used in the dominator tree view.
+dominatorTree.state.fetching.full=A computar tamanhos retidos de dominador…
+
+# LOCALIZATION NOTE (dominatorTree.state.incrementalFetching): The label
+# describing the dominator tree state INCREMENTAL_FETCHING.
+dominatorTree.state.incrementalFetching=A obter…
+
+# 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=A obter mais…
+
+# LOCALIZATION NOTE (dominatorTree.state.error): The label describing the
+# dominator tree state ERROR.
+dominatorTree.state.error=Erro
+
+# LOCALIZATION NOTE (dominatorTree.state.error.full): The label describing the
+# dominator tree state ERROR, used in the dominator tree view.
+dominatorTree.state.error.full=Ocorreu um erro ao processar a árvore de dominadores
+
+# LOCALIZATION NOTE (snapshot.state.saving.full): The label describing the
+# snapshot state SAVING, used in the main heap view.
+snapshot.state.saving.full=A guardar o estado…
+
+# 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=A ler o estado…
+
+# 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=A gerar relatório de agregado…
+
+# 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=A guardar mapa em árvore…
+
+# LOCALIZATION NOTE (snapshot.state.error.full): The label describing the
+# snapshot state ERROR, used in the main heap view.
+snapshot.state.error.full=Ocorreu um erro ao processar este estado.
+
+# LOCALIZATION NOTE (individuals.state.error): The short message displayed when
+# there is an error fetching individuals from a group.
+individuals.state.error=Erro
+
+# LOCALIZATION NOTE (individuals.state.error.full): The longer message displayed
+# when there is an error fetching individuals from a group.
+individuals.state.error.full=Ocorreu um erro enquanto ao obter indivíduos no grupo
+
+# LOCALIZATION NOTE (individuals.state.fetching): The short message displayed
+# while fetching individuals.
+individuals.state.fetching=A obter…
+
+# LOCALIZATION NOTE (individuals.state.fetching.full): The longer message
+# displayed while fetching individuals.
+individuals.state.fetching.full=A obter indivíduos em grupo…
+
+# LOCALIZATION NOTE (individuals.field.node): The header label for an individual
+# node.
+individuals.field.node=Nó
+
+# LOCALIZATION NOTE (individuals.field.node.tooltip): The tooltip for the header
+# label for an individual node.
+individuals.field.node.tooltip=O nó individual na captura
+
+# LOCALIZATION NOTE (snapshot.state.saving): The label describing the snapshot
+# state SAVING, used in the snapshot list view
+snapshot.state.saving=A guardar o estado…
+
+# LOCALIZATION NOTE (snapshot.state.importing): The label describing the
+# snapshot state IMPORTING, used in the snapshot list view
+snapshot.state.importing=A importar captura…
+
+# 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=A ler o estado…
+
+# LOCALIZATION NOTE (snapshot.state.saving-census): The label describing the
+# snapshot state SAVING, used in snapshot list view.
+snapshot.state.saving-census=A guardar relatório…
+
+# LOCALIZATION NOTE (snapshot.state.saving-census): The label describing the
+# snapshot state SAVING, used in snapshot list view.
+snapshot.state.saving-tree-map=A guardar mapa em árvore…
+
+# LOCALIZATION NOTE (snapshot.state.error): The label describing the snapshot
+# state ERROR, used in the snapshot list view.
+snapshot.state.error=Erro
+
+# LOCALIZATION NOTE (heapview.no-difference): Message displayed when there is no
+# difference between two snapshots.
+heapview.no-difference=Sem diferenças entre a linha de base e a comparação.
+
+# LOCALIZATION NOTE (heapview.none-match): Message displayed when there are no
+# matches when filtering.
+heapview.none-match=Sem correspondências.
+
+# LOCALIZATION NOTE (heapview.none-match): Message displayed when there report
+# is empty.
+heapview.empty=Vazio.
+
+# 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=Não foram encontradas call stacks. Grave call stacks antes de tirar uma captura.
+
+# LOCALIZATION NOTE (heapview.field.retainedSize): The name of the column in the
+# dominator tree view for retained byte sizes.
+heapview.field.retainedSize=Tamanho conservado (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=O somatório do tamanho do objeto e os tamanhos de todos os outros objetos mantidos vivos por ele
+
+# LOCALIZATION NOTE (heapview.field.shallowSize): The name of the column in the
+# dominator tree view for shallow byte sizes.
+heapview.field.shallowSize=Tamanho superficial (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=O tamanho do objeto em si
+
+# LOCALIZATION NOTE (dominatortree.field.label): The name of the column in the
+# dominator tree for an object's label.
+dominatortree.field.label=Dominador
+
+# 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=A etiqueta para um objeto na memória
+
+# 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=O número de bytes consumidos por este grupo, excluindo subgrupos
+
+# LOCALIZATION NOTE (heapview.field.count): The name of the column in the heap
+# view for count.
+heapview.field.count=Contagem
+
+# LOCALIZATION NOTE (heapview.field.count.tooltip): The tooltip for the column
+# header in the heap view for count.
+heapview.field.count.tooltip=O número de objetos alcançáveis neste grupo, excluindo subgrupos
+
+# LOCALIZATION NOTE (heapview.field.totalbytes): The name of the column in the
+# heap view for total bytes.
+heapview.field.totalbytes=Bytes totais
+
+# LOCALIZATION NOTE (heapview.field.totalbytes.tooltip): The tooltip for the
+# column header in the heap view for total bytes.
+heapview.field.totalbytes.tooltip=O número de bytes consumidos por este grupo, incluindo subgrupos
+
+# LOCALIZATION NOTE (heapview.field.totalcount): The name of the column in the
+# heap view for total count.
+heapview.field.totalcount=Contagem total
+
+# LOCALIZATION NOTE (heapview.field.totalcount.tooltip): The tooltip for the
+# column header in the heap view for total count.
+heapview.field.totalcount.tooltip=O número de objetos alcançáveis neste grupo, incluindo subgrupos
+
+# LOCALIZATION NOTE (heapview.field.name): The name of the column in the heap
+# view for name.
+heapview.field.name=Grupo
+
+# LOCALIZATION NOTE (heapview.field.name.tooltip): The tooltip for the column
+# header in the heap view for name.
+heapview.field.name.tooltip=O nome deste grupo
+
+# LOCALIZATION NOTE (shortest-paths.header): The header label for the shortest
+# paths pane.
+shortest-paths.header=Caminhos retidos (de raízes de recolha de lixo)
+
+# 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=Selecione um item para ver os seus caminhos retidos
+
+# LOCALIZATION NOTE (tree-map.node-count): The label for the count value of a
+# node in the tree map
+tree-map.node-count=contagem
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/menus.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/menus.properties
new file mode 100644
index 0000000000..2776553899
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/menus.properties
@@ -0,0 +1,29 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (devtoolsRemoteDebugging.label): This is the label for the menu item
+# in Tools > Web Developer. Clicking on this menu item will open about:debugging which
+# acts as a hub for debugging remote devices.
+devtoolsRemoteDebugging.label = Depuração remota
+devtoolsRemoteDebugging.accesskey = R
+
+browserConsoleCmd.label = Consola do navegador
+browserConsoleCmd.accesskey = C
+
+responsiveDesignMode.label = Modo de design responsivo
+responsiveDesignMode.accesskey = r
+
+eyedropper.label = Selecionador de cores
+eyedropper.accesskey = e
+
+# 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 = Caixa de ferramentas do navegador
+browserToolboxMenu.accesskey = e
+
+webDeveloperToolsMenu.label = Ferramentas de Programador Web
+webDeveloperToolsMenu.accesskey = F
+
+extensionsForDevelopersCmd.label = Extensões para Programadores
+extensionsForDevelopersCmd.accesskey = p
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/netmonitor.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/netmonitor.properties
new file mode 100644
index 0000000000..f7a262d561
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/netmonitor.properties
@@ -0,0 +1,1679 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Network Monitor
+# which is available from the Browser Tools sub-menu -> 'Network Monitor'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (netmonitor.security.state.secure)
+# This string is used as an tooltip for request that was performed over secure
+# channel i.e. the connection was encrypted.
+netmonitor.security.state.secure=A ligação utilizada para obter este recurso era segura.
+
+# 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=A ligação utilizada para obter este recurso não era segura.
+
+# 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=Um erro de segurança impediu o carregamento do recurso.
+
+# LOCALIZATION NOTE (netmonitor.security.state.weak)
+# This string is used as an tooltip for request that had minor security issues
+netmonitor.security.state.weak=Este recurso foi transferido através de uma ligação que utiliza uma encriptação fraca.
+
+# 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=Ativado
+
+# 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=Desativado
+
+# 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=Servidor %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=<Não disponível>
+
+# LOCALIZATION NOTE (collapseDetailsPane): This is the tooltip for the button
+# that collapses the network details pane in the UI.
+collapseDetailsPane=Ocultar detalhes do pedido
+
+# LOCALIZATION NOTE (collapseActionPane): This is the tooltip for the button
+# that collapses the network action pane in the UI.
+collapseActionPane=Ocultar ações de rede
+
+# LOCALIZATION NOTE (allTabsMenuButton.tooltip): The tooltip that gets
+# displayed when hovering over the tabs overflow button.
+allTabsMenuButton.tooltip=Mostrar todos os separadores
+
+# LOCALIZATION NOTE (headersEmptyText): This is the text displayed in the
+# headers tab of the network details pane when there are no headers available.
+headersEmptyText=Sem cabeçalhos para este pedido
+
+# LOCALIZATION NOTE (headersFilterText): This is the text displayed in the
+# headers tab of the network details pane for the filtering input.
+headersFilterText=Filtrar cabeçalhos
+
+# LOCALIZATION NOTE (messagesEmptyText): This is the text displayed in the
+# WebSockets tab of the network details pane when there are no frames available.
+messagesEmptyText=Sem mensagens para este pedido
+
+# LOCALIZATION NOTE (cookiesEmptyText): This is the text displayed in the
+# cookies tab of the network details pane when there are no cookies available.
+cookiesEmptyText=Sem cookies para este pedido
+
+# LOCALIZATION NOTE (cookiesFilterText): This is the text displayed in the
+# cookies tab of the network details pane for the filtering input.
+cookiesFilterText=Filtrar 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=Nenhum dado de resposta disponível para este pedido
+
+# LOCALIZATION NOTE (paramsNoPayloadText): This is the text displayed in the
+# request tab of the network details pane when there are no params available.
+paramsNoPayloadText=Sem corpo para este pedido
+
+# LOCALIZATION NOTE (paramsFilterText): This is the text displayed in the
+# request tab of the network details pane for the filtering input.
+paramsFilterText=Filtrar parâmetros do pedido
+
+# LOCALIZATION NOTE (paramsQueryString): This is the label displayed
+# in the network details request tab identifying the query string.
+paramsQueryString=String de consulta
+
+# LOCALIZATION NOTE (paramsFormData): This is the label displayed
+# in the network details request tab identifying the form data.
+paramsFormData=Dados do formulário
+
+# LOCALIZATION NOTE (paramsPostPayload): This is the label displayed
+# in the network details request tab identifying the request payload.
+paramsPostPayload=Payload do pedido
+
+# 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=Em bruto
+
+# LOCALIZATION NOTE (requestHeaders): This is the label displayed
+# in the network details headers tab identifying the request headers.
+requestHeaders=Cabeçalhos do pedido
+
+# 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=Cabeçalhos do pedido do fluxo de carregamento
+
+# LOCALIZATION NOTE (responseHeaders): This is the label displayed
+# in the network details headers tab identifying the response headers.
+responseHeaders=Cabeçalhos de resposta
+
+# LOCALIZATION NOTE (requestCookies): This is the label displayed
+# in the network details request tab identifying the request cookies.
+requestCookies=Cookies de solicitação
+
+# LOCALIZATION NOTE (responseCookies): This is the label displayed
+# in the network details request tab identifying the response cookies.
+responseCookies=Cookies de resposta
+
+# LOCALIZATION NOTE (responsePayload): This is the label displayed
+# in the network details response tab identifying the response payload.
+responsePayload=Payload de resposta
+
+# 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=Em bruto
+
+# 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=Filtrar propriedades
+
+# LOCALIZATION NOTE (jsonScopeName): This is the text displayed
+# in the response tab of the network details pane for a JSON scope.
+jsonScopeName=JSON
+
+# LOCALIZATION NOTE (jsonpScopeName): This is the text displayed
+# in the response tab of the network details pane for a JSONP scope.
+jsonpScopeName=JSONP → chamada de retorno %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=A string “%S” foi removida do início do JSON mostrado abaixo
+
+# 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=A resposta foi truncada
+
+# 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=O pedido foi truncado
+
+# 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 (corrido)
+
+# LOCALIZATION NOTE (networkMenu.sortedAsc): This is the tooltip displayed
+# in the network table toolbar, for any column that is sorted ascending.
+networkMenu.sortedAsc=Ordem ascendente
+
+# LOCALIZATION NOTE (networkMenu.sortedDesc): This is the tooltip displayed
+# in the network table toolbar, for any column that is sorted descending.
+networkMenu.sortedDesc=Ordem descendente
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.perf): A tooltip explaining
+# what the perf button does
+networkMenu.summary.tooltip.perf=Iniciar análise de desempenho
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.domContentLoaded): A tooltip explaining
+# what the DOMContentLoaded label displays
+networkMenu.summary.tooltip.domContentLoaded=Altura em que o evento “DOMContentLoad” ocorreu
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.load): A tooltip explaining
+# what the load label displays
+networkMenu.summary.tooltip.load=Altura em que o evento “load” ocorreu
+
+# 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=Um pedido;#1 pedidos
+
+# LOCALIZATION NOTE (networkMenu.summary.requestsCountEmpty): This label is displayed
+# in the network table footer when there are no requests
+networkMenu.summary.requestsCountEmpty=Sem pedidos
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.requestsCount): A tooltip explaining
+# what the requestsCount label displays
+networkMenu.summary.tooltip.requestsCount=Número de pedidos
+
+# LOCALIZATION NOTE (networkMenu.summary.transferred): This label is displayed
+# in the network table footer providing the transferred size.
+networkMenu.summary.transferred=%S / %S transferido(s)
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.transferred): A tooltip explaining
+# what the transferred label displays
+networkMenu.summary.tooltip.transferred=Tamanho/tamanho transferido de todos os pedidos
+
+# LOCALIZATION NOTE (networkMenu.summary.finish): This label is displayed
+# in the network table footer providing the transfer time.
+networkMenu.summary.finish=Concluído: %S
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.finish): A tooltip explaining
+# what the finish label displays
+networkMenu.summary.tooltip.finish=Tempo total necessário para carregar todos os pedidos
+
+# 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=Uma mensagem;#1 mensagens
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.framesCountEmpty): This label is displayed
+# in the messages table footer when there are no frames
+networkMenu.ws.summary.framesCountEmpty=Sem mensagens
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.tooltip.framesCount): A tooltip explaining
+# what the framesCount label displays
+networkMenu.ws.summary.tooltip.framesCount=Número de mensagens
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.tooltip.framesTotalSize): A tooltip explaining
+# what the framesTotalSize label displays
+networkMenu.ws.summary.tooltip.framesTotalSize=Tamanho total das mensagens mostradas
+
+# 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 no total, %2$S enviados, %3$S recebidos
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.tooltip.framesTotalTime): A tooltip explaining
+# what framesTotalTime displays
+networkMenu.ws.summary.tooltip.framesTotalTime=Tempo total decorrido entre a primeira e as últimas mensagens mostradas
+
+# 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=O tamanho transferido não está disponível
+
+# 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=em cache
+
+# 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=Bloqueado
+
+# 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=Bloqueado por %S
+
+# LOCALIZATION NOTE (networkMenu.blockedTooltip): This is a the text displayed
+# as a tooltip for the blocked icon in the request list
+networkMenu.blockedTooltip=Bloqueado
+
+# 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=Bloqueado %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=Ligar %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=Enviar %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=Espera %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=Receber %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=Temporização dos pedidos
+
+# 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=Temporização do servidor
+
+# 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=Em fila: %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=Iniciado: %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=Transferido: %S
+
+# LOCALIZATION NOTE (netmonitor.timings.noTimings): Message that displays in the
+# timings pane when thea request has been blocked
+netmonitor.timings.noTimings=Sem temporizações para este pedido
+
+# LOCALIZATION NOTE (networkMenu.millisecond): This is the label displayed
+# in the network menu specifying timing interval divisions (in milliseconds).
+networkMenu.millisecond=%S ms
+
+# LOCALIZATION NOTE (networkMenu.second): This is the label displayed
+# in the network menu specifying timing interval divisions (in seconds).
+networkMenu.second=%S s
+
+# LOCALIZATION NOTE (networkMenu.minute): This is the label displayed
+# in the network menu specifying timing interval divisions (in minutes).
+networkMenu.minute=%S min
+
+# LOCALIZATION NOTE (pieChart.loading): This is the label displayed
+# for pie charts (e.g., in the performance analysis view) when there is
+# no data available yet.
+pieChart.loading=A carregar
+
+# 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=Vazio
+
+# 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=Gráfico circular a representar o tamanho proporcional entre si de cada tipo de pedido
+
+# LOCALIZATION NOTE (pieChart.sliceAriaLabel): This is the text used for the aria-label attribute
+# for SVG pie charts slices (e.g., in the performance analysis view).
+# %1$S is the slice label (e.g. "html")
+# %2$S is the percentage (e.g. "33.23%").
+pieChart.sliceAriaLabel=%1$S: %2$S
+
+# LOCALIZATION NOTE (tableChart.loading): This is the label displayed
+# for table charts (e.g., in the performance analysis view) when there is
+# no data available yet.
+tableChart.loading=Por favor, aguarde…
+
+# 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=Sem dados disponíveis
+
+# 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=Tamanho transferido: %S kB
+
+# LOCALIZATION NOTE (charts.cacheEnabled): This is the label displayed
+# in the performance analysis view for "cache enabled" charts.
+charts.cacheEnabled=Cache utilizada
+
+# LOCALIZATION NOTE (charts.cacheDisabled): This is the label displayed
+# in the performance analysis view for "cache disabled" charts.
+charts.cacheDisabled=Cache vazia
+
+# LOCALIZATION NOTE (charts.learnMore): This is the label displayed
+# in the performance analysis view, with a link to external documentation.
+charts.learnMore=Saber mais acerca de análise de desempenho
+
+# LOCALIZATION NOTE (charts.totalSize.kB): This is the label displayed
+# in the performance analysis view for total requests size, in kilobytes.
+charts.totalSize.kB=Tamanho: %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=Tempo: #1 segundo;Tempo: #1 segundos
+
+# 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=Tempo de não-bloqueio: #1 segundo;Tempo de não-bloqueio: #1 segundos
+
+# LOCALIZATION NOTE (charts.totalCached): This is the label displayed
+# in the performance analysis view for total cached responses.
+charts.totalCached=Respostas em cache: %S
+
+# LOCALIZATION NOTE (charts.totalCount): This is the label displayed
+# in the performance analysis view for total requests.
+charts.totalCount=Total de pedidos: %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=Número de pedidos
+
+# 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=Tamanho
+
+# LOCALIZATION NOTE (charts.type): This is the label displayed
+# in the header column in the performance analysis view for type of request.
+charts.type=Tipo
+
+# 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=Transferido
+
+# LOCALIZATION NOTE (charts.time): This is the label displayed
+# in the header column in the performance analysis view for time of request.
+charts.time=Tempo
+
+# 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=Tempo de não-bloqueio
+
+# 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=Descodificado: %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=Emitido para
+
+# LOCALIZATION NOTE (certmgr.certdetail.cn):
+# A label used for Issued To and Issued By sub-section in security tab
+certmgr.certdetail.cn=Nome Comum (CN):
+
+# LOCALIZATION NOTE (certmgr.certdetail.o):
+# A label used for Issued To and Issued By sub-section in security tab
+certmgr.certdetail.o=Organização (O):
+
+# LOCALIZATION NOTE (certmgr.certdetail.ou):
+# A label used for Issued To and Issued By sub-section in security tab
+certmgr.certdetail.ou=Unidade Organizacional (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=Emitido por
+
+# 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=Período de validade
+
+# LOCALIZATION NOTE (certmgr.begins):
+# A label used for Period of Validity sub-section in security tab
+certmgr.begins=Inicia em:
+
+# LOCALIZATION NOTE (certmgr.expires):
+# A label used for Period of Validity sub-section in security tab
+certmgr.expires=Expira em:
+
+# 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=Impressões digitais
+
+# LOCALIZATION NOTE (certmgr.certdetail.sha256fingerprint):
+# A label used for Fingerprints sub-section in security tab
+certmgr.certdetail.sha256fingerprint=Impressão digital SHA-256:
+
+# LOCALIZATION NOTE (certmgr.certdetail.sha1fingerprint):
+# A label used for Fingerprints sub-section in security tab
+certmgr.certdetail.sha1fingerprint=Impressão digital SHA1:
+
+# LOCALIZATION NOTE (certmgr.certificateTransparency.label):
+# This string is used as a label in the security tab.
+certmgr.certificateTransparency.label=Transparência:
+
+# 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=Registos de SCTs válidos
+
+# 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=Sem SCTs suficientes
+
+# 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=Sem SCTs diversos
+
+# LOCALIZATION NOTE (netmonitor.perfNotice1/2/3): These are the labels displayed
+# in the network table when empty to start performance analysis.
+netmonitor.perfNotice1=• Clique no
+netmonitor.perfNotice2=botão para iniciar a análise de desempenho.
+netmonitor.perfNotice3=Analisar
+
+# LOCALIZATION NOTE (netmonitor.reload1/2/3): These are the labels displayed
+# in the network table when empty to start logging network requests.
+netmonitor.reloadNotice1=• Realize um pedido ou
+netmonitor.reloadNotice2=Recarregar
+netmonitor.reloadNotice3=a página para ver informação detalhada acerca de atividade de rede.
+netmonitor.emptyBrowserToolbox=Execute um pedido para ver informações detalhadas sobre a atividade da rede.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.status3): This is the label displayed
+# in the network table toolbar, above the "status" column.
+netmonitor.toolbar.status3=Estado
+
+# LOCALIZATION NOTE (netmonitor.toolbar.method): This is the label displayed
+# in the network table toolbar, above the "method" column.
+netmonitor.toolbar.method=Método
+
+# LOCALIZATION NOTE (netmonitor.toolbar.priority): This is the label displayed
+# in the network table toolbar, above the "priority" column.
+netmonitor.toolbar.priority=Prioridade
+
+# LOCALIZATION NOTE (netmonitor.toolbar.file): This is the label displayed
+# in the network table toolbar, above the "file" column.
+netmonitor.toolbar.file=Ficheiro
+
+# 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=Protocolo
+
+# LOCALIZATION NOTE (netmonitor.toolbar.domain): This is the label displayed
+# in the network table toolbar, above the "domain" column.
+netmonitor.toolbar.domain=Domínio
+
+# LOCALIZATION NOTE (netmonitor.toolbar.remoteip): This is the label displayed
+# in the network table toolbar, above the "remoteip" column.
+netmonitor.toolbar.remoteip=IP remoto
+
+# LOCALIZATION NOTE (netmonitor.toolbar.initiator): This is the label displayed
+# in the network table toolbar, above the "initiator" column.
+netmonitor.toolbar.initiator=Iniciador
+
+# LOCALIZATION NOTE (netmonitor.toolbar.type): This is the label displayed
+# in the network table toolbar, above the "type" column.
+netmonitor.toolbar.type=Tipo
+
+# 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=Tempo de início
+
+# 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=Tempo de término
+
+# 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=Tempo de resposta
+
+# 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=Duração
+
+# 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=Latência
+
+# 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=Transferido
+
+# 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=Tamanho
+
+# LOCALIZATION NOTE (netmonitor.toolbar.waterfall): This is the label displayed
+# in the network table toolbar, above the "waterfall" column.
+netmonitor.toolbar.waterfall=Cronologia
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.size): This is the label displayed
+# in the messages table header, above the "size" column.
+netmonitor.ws.toolbar.size=Tamanho
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.data): This is the label displayed
+# in the messages table header, above the "data" column.
+netmonitor.ws.toolbar.data=Dados
+
+# 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=Tempo
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.eventName): This is the label displayed
+# in the messages table header, above the "eventName" column.
+netmonitor.ws.toolbar.eventName=Nome do evento
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.retry): This is the label displayed
+# in the messages table header, above the "retry" column.
+netmonitor.ws.toolbar.retry=Tentar novamente
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.lastEventId): This is the label displayed
+# in the messages table header, above the "lastEventId" column.
+netmonitor.ws.toolbar.lastEventId=ID do último evento
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.clear): This is the label displayed
+# in the messages panel toolbar for the "Clear" button.
+netmonitor.ws.toolbar.clear=Limpar
+
+# 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=Filtrar mensagens
+
+# 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=Repor colunas
+
+# LOCALIZATION NOTE (netmonitor.ws.context.all): This is the label displayed
+# on the context menu that shows "All" WebSocket frames.
+netmonitor.ws.context.all=Todos
+
+# 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=T
+
+# LOCALIZATION NOTE (netmonitor.ws.context.sent): This is the label displayed
+# on the context menu that shows "Sent" WebSocket frames.
+netmonitor.ws.context.sent=Enviados
+
+# 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=Recebidos
+
+# 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=Controlo
+
+# 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=Copiar mensagem
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrame.accesskey): This is the access key
+# for the "Copy Message" menu item displayed in the context menu of a WebSocket frame.
+netmonitor.ws.context.copyFrame.accesskey=C
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsBase64): This is the label displayed
+# on the context menu that shows "Copy as Base64" displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsBase64=Copiar como Base64
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsBase64.accesskey): This is the access key
+# for the "Copy as Base64" menu item displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsBase64.accesskey=B
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsHex): This is the label displayed
+# on the context menu that shows "Copy as Hex" displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsHex=Copiar como hexadecimal
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsHex.accesskey): This is the access key
+# for the "Copy as Hex" menu item displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsHex.accesskey=H
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsText): This is the label displayed
+# on the context menu that shows "Copy as Text" displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsText=Copiar como texto
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsText.accesskey): This is the access key
+# for the "Copy as Text" menu item displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsText.accesskey=T
+
+# LOCALIZATION NOTE (netmonitor.ws.connection.closed): This is the text displayed in the
+# websocket messages panel when the connection is closed
+netmonitor.ws.connection.closed=Ligação fechada
+
+# 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=Enviado
+
+# 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=Recebido
+
+# LOCALIZATION NOTE (netmonitor.ws.rawData.header): This is the label displayed
+# in the messages panel identifying the raw data.
+netmonitor.ws.rawData.header=Dados brutos (%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=Encontrar nos recursos…
+
+# LOCALIZATION NOTE (netmonitor.search.toolbar.close): This is the label
+# displayed in the search toolbar to close the search panel.
+netmonitor.search.toolbar.close=Fechar painel de pesquisa
+
+# LOCALIZATION NOTE (netmonitor.search.toolbar.clear): This is the label
+# displayed in the search toolbar to clear the search panel.
+netmonitor.search.toolbar.clear=Limpar resultados da pesquisa
+
+# 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=Sensível mai./min.
+
+# 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=A pesquisar…
+
+# 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=Pesquisa cancelada.
+
+# 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=Pesquisa concluída. %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=Encontrada #1 linha correspondente;Encontradas #1 linhas correspondentes
+
+# 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=em #1 ficheiro;in #1 ficheiros
+
+# 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=Erro de pesquisa.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.requestBlocking): This is the tooltip displayed
+# over the toolbar's Request Blocking button
+netmonitor.toolbar.requestBlocking=Bloqueio de pedidos
+
+# LOCALIZATION NOTE (netmonitor.actionbar.requestBlocking2): This is the label displayed
+# in the action bar's request blocking tab
+netmonitor.actionbar.requestBlocking2=Bloqueio
+
+# 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=Ativar bloqueio de pedidos
+
+# LOCALIZATION NOTE (netmonitor.actionbar.blockSearchPlaceholder): This is the
+# placeholder text for the request addition form
+netmonitor.actionbar.blockSearchPlaceholder=Bloquear recurso quando o endereço contém
+
+# LOCALIZATION NOTE (netmonitor.actionbar.removeBlockedUrl): This is the
+# tooltip shown over the remove button for blocked URL item
+netmonitor.actionbar.removeBlockedUrl=Remover padrão
+
+# LOCALIZATION NOTE (netmonitor.actionbar.requestBlockingUsageNotice): This is the
+# usage notice displayed when network blocking list is empty
+netmonitor.actionbar.requestBlockingUsageNotice=Adicione padrões de endereços aqui para bloquear os pedidos correspondentes.
+
+# 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=Comece por adicionar um padrão ou arrastando uma linha da tabela da rede.
+
+# LOCALIZATION NOTE (netmonitor.requestBlockingMenu.removeAllBlockedUrls): This is the
+# context menu item for removing all blocked URLs
+netmonitor.requestBlockingMenu.removeAllBlockedUrls=Remover tudo
+
+# LOCALIZATION NOTE (netmonitor.requestBlockingMenu.enableAllBlockedUrls): This is the
+# context menu item for enabling all blocked URLs
+netmonitor.requestBlockingMenu.enableAllBlockedUrls=Ativar tudo
+
+# LOCALIZATION NOTE (netmonitor.requestBlockingMenu.disableAllBlockedUrls): This is the
+# context menu item for disabling all blocked URLs
+netmonitor.requestBlockingMenu.disableAllBlockedUrls=Desativar tudo
+
+# LOCALIZATION NOTE (netmonitor.actionbar.search): This is the label displayed
+# in the action bar's search tab
+netmonitor.actionbar.search=Pesquisar
+
+# LOCALIZATION NOTE (netmonitor.actionbar.HTTPCustomRequest): This is the label displayed
+# in the action bar's edit and resend tab
+netmonitor.actionbar.HTTPCustomRequest=Novo pedido
+
+# 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 mensagem foi truncada para economizar memória;#1 mensagens foram truncadas para economizar memória
+
+# LOCALIZATION NOTE (disableMessagesTruncation): This is the text displayed
+# in the messages panel checkbox label for toggling message truncation.
+toggleMessagesTruncation=Manter todas as mensagens futuras
+
+# LOCALIZATION NOTE (toggleMessagesTruncation.title): This is the title used
+# to describe the checkbox used to toggle message truncation.
+toggleMessagesTruncation.title=Manter todas as mensagens futuras ou continuar a mostrar as mensagens truncadas
+
+# LOCALIZATION NOTE (messageDataTruncated): This is the text displayed
+# to describe to describe data truncation in the messages panel.
+messageDataTruncated=Os dados foram truncados
+
+# LOCALIZATION NOTE (netmonitor.tab.headers): This is the label displayed
+# in the network details pane identifying the headers tab.
+netmonitor.tab.headers=Cabeçalhos
+
+# LOCALIZATION NOTE (netmonitor.tab.messages): This is the label displayed
+# in the network details pane identifying the messages tab.
+netmonitor.tab.messages=Mensagens
+
+# 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=Parâmetros
+
+# LOCALIZATION NOTE (netmonitor.tab.request): This is the label displayed
+# in the network details pane identifying the request tab.
+netmonitor.tab.request=Pedido
+
+# LOCALIZATION NOTE (netmonitor.tab.response): This is the label displayed
+# in the network details pane identifying the response tab.
+netmonitor.tab.response=Resposta
+
+# LOCALIZATION NOTE (netmonitor.tab.timings): This is the label displayed
+# in the network details pane identifying the timings tab.
+netmonitor.tab.timings=Temporizações
+
+# LOCALIZATION NOTE (netmonitor.tab.stackTrace): This is the label displayed
+# in the network details pane identifying the stack-trace tab.
+netmonitor.tab.stackTrace=Stack trace
+
+# LOCALIZATION NOTE (netmonitor.tab.security): This is the label displayed
+# in the network details pane identifying the security tab.
+netmonitor.tab.security=Segurança
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.all): This is the label displayed
+# in the network toolbar for the "All" filtering button.
+netmonitor.toolbar.filter.all=Tudo
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.html): This is the label displayed
+# in the network toolbar for the "HTML" filtering button.
+netmonitor.toolbar.filter.html=HTML
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.css): This is the label displayed
+# in the network toolbar for the "CSS" filtering button.
+netmonitor.toolbar.filter.css=CSS
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.js): This is the label displayed
+# in the network toolbar for the "JS" filtering button.
+netmonitor.toolbar.filter.js=JS
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.xhr): This is the label displayed
+# in the network toolbar for the "XHR" filtering button.
+netmonitor.toolbar.filter.xhr=XHR
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.fonts): This is the label displayed
+# in the network toolbar for the "Fonts" filtering button.
+netmonitor.toolbar.filter.fonts=Tipos de letra
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.images): This is the label displayed
+# in the network toolbar for the "Images" filtering button.
+netmonitor.toolbar.filter.images=Imagens
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.media): This is the label displayed
+# in the network toolbar for the "Media" filtering button.
+netmonitor.toolbar.filter.media=Multimédia
+
+# 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=Outro
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filterFreetext.label): This is the label
+# displayed in the network toolbar for the url filtering textbox.
+netmonitor.toolbar.filterFreetext.label=Filtrar 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=Saber mais acerca de filtragem
+
+# LOCALIZATION NOTE (netmonitor.toolbar.enablePersistentLogs.label): This is the label
+# displayed for the checkbox for enabling persistent logs.
+netmonitor.toolbar.enablePersistentLogs.label=Registos persistentes
+
+# LOCALIZATION NOTE (netmonitor.toolbar.enablePersistentLogs.tooltip): This is the tooltip
+# displayed for the checkbox for enabling persistent logs.
+netmonitor.toolbar.enablePersistentLogs.tooltip=Se ativar esta opção a lista de pedidos não será limpa a cada vez que navegar para uma nova página
+
+# LOCALIZATION NOTE (netmonitor.toolbar.disableCache.label): This is the label
+# displayed for the checkbox for disabling browser cache.
+netmonitor.toolbar.disableCache.label=Desativar cache
+
+# LOCALIZATION NOTE (netmonitor.toolbar.disableCache.tooltip): This is the tooltip
+# displayed for the checkbox for disabling browser cache.
+netmonitor.toolbar.disableCache.tooltip=Desativar cache HTTP
+
+# LOCALIZATION NOTE (netmonitor.toolbar.clear): This is the label displayed
+# in the network toolbar for the "Clear" button.
+netmonitor.toolbar.clear=Limpar
+
+# LOCALIZATION NOTE (netmonitor.toolbar.toggleRecording): This is the label displayed
+# in the network toolbar for the toggle recording button.
+netmonitor.toolbar.toggleRecording=Pausar/retomar registo de gravação de rede
+
+# LOCALIZATION NOTE (netmonitor.toolbar.search): This is the tooltip label displayed
+# in the network toolbar for the search button.
+netmonitor.toolbar.search=Pesquisar
+
+# 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=Novo pedido
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resetColumns): This is the label
+# displayed in the network table header context menu.
+netmonitor.toolbar.resetColumns=Repor colunas
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resetSorting): This is the label
+# displayed in the network table header context menu to reset sorting
+netmonitor.toolbar.resetSorting=Repor ordem
+
+# 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=Redimensionar coluna para se ajustar ao conteúdo
+
+# 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=Duplo clique para ajustar a coluna ao conteúdo
+
+# LOCALIZATION NOTE (netmonitor.toolbar.timings): This is the label
+# displayed in the network table header context menu for the timing submenu
+netmonitor.toolbar.timings=Temporizações
+
+# 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=Cabeçalhos de resposta
+
+# 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=Bloqueio
+
+# LOCALIZATION NOTE (netmonitor.headers.address): This is the label displayed
+# in the network details headers tab identifying the remote address.
+netmonitor.headers.address=Endereço
+
+# LOCALIZATION NOTE (netmonitor.headers.proxyAddress): This is the label displayed
+# in the network details headers tab identifying the proxy address.
+netmonitor.headers.proxyAddress=Endereço de proxy
+
+# LOCALIZATION NOTE (netmonitor.headers.status): This is the label displayed
+# in the network details headers tab identifying the status code.
+netmonitor.headers.status=Estado
+
+# LOCALIZATION NOTE (netmonitor.headers.proxyStatus): This is the label displayed
+# in the network details headers tab identifying the status code for the proxy.
+netmonitor.headers.proxyStatus=Estado do proxy
+
+# LOCALIZATION NOTE (netmonitor.headers.size): This is the label displayed
+# in the network details headers tab identifying the size.
+netmonitor.headers.size=Tamanho
+
+# 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 (tamanho %2$S)
+
+# LOCALIZATION NOTE (netmonitor.headers.version): This is the label displayed
+# in the network details headers tab identifying the http version.
+netmonitor.headers.version=Versão
+
+# LOCALIZATION NOTE (netmonitor.headers.proxyVersion): This is the label displayed
+# in the network details headers tab identifying the http version of the proxy.
+netmonitor.headers.proxyVersion=Versão do proxy
+
+# 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=Saber mais acerca de código de estado
+
+# LOCALIZATION NOTE (netmonitor.headers.referrerPolicy): This is the label displayed
+# in the network details headers tab identifying the referrer policy.
+netmonitor.headers.referrerPolicy=Política de referências
+
+# LOCALIZATION NOTE (netmonitor.headers.contentBlocking): This is the label displayed
+# in the network details headers tab identifying the content blocking mode.
+netmonitor.headers.contentBlocking=A bloquear
+
+# LOCALIZATION NOTE (netmonitor.headers.requestPriority): This is the label displayed
+# in the network details headers tab identifying the request priority.
+netmonitor.headers.requestPriority=Prioridade do Pedido
+
+# LOCALIZATION NOTE (netmonitor.headers.dns): This is the label displayed
+# in the network details headers tab identifying the DNS resolution.
+netmonitor.headers.dns=Resolução de DNS
+
+# LOCALIZATION NOTE (netmonitor.headers.dns.basic): This is the label value displayed
+# in the network details headers tab identifying the Basic DNS resolution.
+netmonitor.headers.dns.basic=Sistema
+
+# LOCALIZATION NOTE (netmonitor.headers.dns.doh): This is the label value displayed
+# in the network details headers tab identifying the DNS over HTTPS resolution.
+netmonitor.headers.dns.overHttps=DNS sobre HTTPS
+
+# LOCALIZATION NOTE (netmonitor.summary.editAndResend): This is the label displayed
+# on the button in the headers tab that opens a form to edit and resend the currently
+# displayed request
+netmonitor.summary.editAndResend=Editar e reenviar
+
+# 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=Original
+
+# 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=O corpo da resposta não está disponível para scripts (Justificação: %S)
+
+#LOCALIZATION NOTE (netmonitor.headers.blockedByCORSTooltip): This is the tooltip
+# displayed on the learnmore link of the blocked by CORS notification.
+netmonitor.headers.blockedByCORSTooltip=Saber mais sobre este erro CORS
+
+# LOCALIZATION NOTE (netmonitor.response.name): This is the label displayed
+# in the network details response tab identifying an image's file name or font face's name.
+netmonitor.response.name=Nome:
+
+# LOCALIZATION NOTE (netmonitor.response.dimensions): This is the label displayed
+# in the network details response tab identifying an image's dimensions.
+netmonitor.response.dimensions=Dimensões:
+
+# 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=Tipo MIME:
+
+# 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=Não foi possível gerar a pré-visualização do tipo de letra
+
+# 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=Bloqueado:
+
+# 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=Resolução de DNS:
+
+# 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=Configuração TLS:
+
+# 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=Ligação:
+
+# 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=Envio:
+
+# 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=Espera:
+
+# 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=Receção:
+
+# 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=Saber mais acerca de temporizações
+
+# 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=Tempo de resposta lento do servidor (%1$S). O limite recomendado é %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=A cifra utilizada para encriptação foi descontinuada e é insegura.
+
+# LOCALIZATION NOTE (netmonitor.security.error): This is the label displayed
+# in the security tab if a security error prevented the connection.
+netmonitor.security.error=Ocorreu um erro:
+
+# LOCALIZATION NOTE (netmonitor.security.protocolVersion): This is the label displayed
+# in the security tab describing TLS/SSL protocol version.
+netmonitor.security.protocolVersion=Versão do protocolo:
+
+# 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=Cifra:
+
+# 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=Grupo de troca de chaves:
+
+# 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=nenhum
+
+# 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=personalizado
+
+# LOCALIZATION NOTE (netmonitor.security.keaGroup.unknown): This is the value
+# displayed in the security tab describing an unknown group.
+netmonitor.security.keaGroup.unknown=grupo desconhecido
+
+# 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=Esquema de assinatura:
+
+# 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=nenhum
+
+# LOCALIZATION NOTE (netmonitor.security.signatureScheme.unknown): This is the
+# value displayed in the security tab describing an unknown signature scheme.
+netmonitor.security.signatureScheme.unknown=esquema de assinatura desconhecido
+
+# 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=Chave pública:
+
+# 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=Ligação:
+
+# LOCALIZATION NOTE (netmonitor.security.certificate): This is the label displayed
+# in the security tab describing the server certificate section.
+netmonitor.security.certificate=Certificado:
+
+# 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=Este URL corresponde a um rastreador conhecido e seria bloqueado com o Bloqueio de conteúdo ativado.
+
+# LOCALIZATION NOTE (netmonitor.trackingResource.enhancedTrackingProtection): This is
+# the label used in the Network monitor panel for showing enhanced tracking protection.
+netmonitor.trackingResource.enhancedTrackingProtection=Proteção melhorada contra a monitorização
+
+# 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=Saiba mais sobre a proteção melhorada contra a monitorização
+
+# 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=Copiar valor
+
+# 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=Copiar 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=Copiar parâmetros do URL
+
+# 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=Copiar dados %S
+
+# 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=Copiar como 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=Copiar como 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=Copiar como 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=Copiar cabeçalhos do pedido
+
+# 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=Copiar cabeçalhos de resposta
+
+# 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=Copiar resposta
+
+# 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=Copiar imagem como dados 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=Utilizar como Fetch na consola
+
+# 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=Guardar imagem como
+
+# 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=R
+
+# LOCALIZATION NOTE (netmonitor.context.copyAll): This is the label displayed
+# on the context menu that copies all data
+netmonitor.context.copyAll=Copiar tudo
+
+# 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=Copiar tudo como 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=Guardar tudo como 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=Importar ficheiro HAR
+
+# LOCALIZATION NOTE (netmonitor.har.importDialogHARFilter):
+# This string is displayed as a filter for importing HAR file
+netmonitor.har.importDialogHARFilter=Ficheiros HAR
+
+# LOCALIZATION NOTE (netmonitor.har.importDialogAllFilter):
+# This string is displayed as a filter for importing HAR file
+netmonitor.har.importDialogAllFilter=Todos os ficheiros
+
+# 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=Reenviar
+
+# 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=Editar e reenviar
+
+# 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=Bloquear 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=Desbloquear 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=Abrir num novo separador
+
+# 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=s
+
+# 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=Abrir no depurador
+
+# 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=Abrir no editor de estilos
+
+# 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=e
+
+# LOCALIZATION NOTE (netmonitor.context.perfTools): This is the label displayed
+# on the context menu that shows the performance analysis tools
+netmonitor.context.perfTools=Iniciar análise de desempenho…
+
+# 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=Novo pedido
+
+# 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=Método
+
+# 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=String de consulta:
+
+# LOCALIZATION NOTE (netmonitor.custom.urlParameters): This is the label displayed
+# above the query string entry in the custom request form
+netmonitor.custom.urlParameters=Parâmetros do URL
+
+# LOCALIZATION NOTE (netmonitor.custom.headers): This is the label displayed
+# above the request headers entry in the custom request form
+netmonitor.custom.headers=Cabeçalhos do pedido:
+
+# LOCALIZATION NOTE (netmonitor.custom.newRequestHeaders): This is the label displayed
+# above the request headers entry in the new custom request form
+netmonitor.custom.newRequestHeaders=Cabeçalhos
+
+# 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=nome
+
+# 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=valor
+
+# LOCALIZATION NOTE (netmonitor.custom.postBody): This is the label displayed
+# above the request body entry in the new custom request form
+netmonitor.custom.postBody=Corpo
+
+# 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=Corpo pedido:
+
+# LOCALIZATION NOTE (netmonitor.custom.send): This is the label displayed
+# on the button which sends the custom request
+netmonitor.custom.send=Enviar
+
+# LOCALIZATION NOTE (netmonitor.custom.cancel): This is the label displayed
+# on the button which cancels and closes the custom request form
+netmonitor.custom.cancel=Cancelar
+
+# 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=Limpar
+
+# LOCALIZATION NOTE (netmonitor.custom.removeItem): This is the
+# tooltip shown over the remove button for headers and query params item
+netmonitor.custom.removeItem=Remover item
+
+# LOCALIZATION NOTE (netmonitor.backButton): This is the label displayed
+# on the button which exists the performance statistics view
+netmonitor.backButton=Retroceder
+
+# 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 (em cache)
+
+# 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 (em cache, 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 = Largue ficheiros HAR aqui
+
+# LOCALIZATION NOTE (netmonitor.label.har): This is a label used
+# as a tooltip for toolbar drop-down button with HAR actions
+netmonitor.label.har=Exportar/importar HAR
+
+# 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=Sem informação de cache
+
+# LOCALIZATION NOTE (netmonitor.cache.notAvailable): This is the text displayed under
+# a node that has no information available.
+netmonitor.cache.notAvailable=Não disponível
+
+# LOCALIZATION NOTE (netmonitor.cache.dataSize): This is the label text for
+# the datasize of the cached object.
+netmonitor.cache.dataSize=Tamanho dos dados
+
+# LOCALIZATION NOTE (netmonitor.cache.expires): This is the label text for the
+# expires time of the cached object.
+netmonitor.cache.expires=Expira
+
+# LOCALIZATION NOTE (netmonitor.cache.fetchCount): This is the label text for the
+# fetch count of the cached object.
+netmonitor.cache.fetchCount=Contagem de obtenções
+
+# LOCALIZATION NOTE (netmonitor.cache.lastFetched): This is the label text for the
+# last fetched date/time of the cached object.
+netmonitor.cache.lastFetched=Última obtenção
+
+# LOCALIZATION NOTE (netmonitor.cache.lastModified): This is the label text for the
+# last modified date/time of the cached object.
+netmonitor.cache.lastModified=Última modificação
+
+# 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=Dispositivo
+
+# LOCALIZATION NOTE (netmonitor.settings.menuTooltip): This is the tooltip that gets displayed
+# when the settings menu button is hovered.
+netmonitor.settings.menuTooltip=Definições de rede
+
+# LOCALIZATION NOTE (netmonitor.settings.importHarTooltip): This is the tooltip that gets displayed
+# when the HAR import menu item is hovered
+netmonitor.settings.importHarTooltip=Importar um ficheiro HAR dos dados da rede
+
+# LOCALIZATION NOTE (netmonitor.settings.saveHarTooltip): This is the tooltip that gets displayed
+# when the HAR save menu item is hovered
+netmonitor.settings.saveHarTooltip=Guardar os dados da rede num ficheiro HAR
+
+# LOCALIZATION NOTE (netmonitor.settings.copyHarTooltip): This is the tooltip that gets displayed
+# when the HAR copy menu item is hovered
+netmonitor.settings.copyHarTooltip=Copiar os dados da rede para a área de transferência
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/network-throttling.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/network-throttling.properties
new file mode 100644
index 0000000000..5543784332
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Sem limitações
+
+# 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 = transferência %1$S %2$S, carregamento %3$S %4$S, latência %5$S ms
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/responsive.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/responsive.properties
new file mode 100644
index 0000000000..5c14bde5da
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Editar lista…
+
+# LOCALIZATION NOTE (responsive.exit): Tooltip text of the exit button.
+responsive.exit=Fechar modo de design responsivo
+
+# LOCALIZATION NOTE (responsive.rotate): Tooltip text of the rotate button.
+responsive.rotate=Rodar viewport
+
+# LOCALIZATION NOTE (responsive.responsiveMode): Placeholder text for the
+# device selector.
+responsive.responsiveMode=Responsivo
+
+# LOCALIZATION NOTE (responsive.enableTouch): Tooltip text for the touch
+# simulation button when it's disabled.
+responsive.enableTouch=Ativar simulação de toque
+
+# LOCALIZATION NOTE (responsive.disableTouch): Tooltip text for the touch
+# simulation button when it's enabled.
+responsive.disableTouch=Desativar simulação de toque
+
+# LOCALIZATION NOTE (responsive.screenshot): Tooltip of the screenshot button.
+responsive.screenshot=Tirar uma captura de ecrã do 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=Captura de ecrã %1$S às %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=O modo de design responsivo está apenas disponível para separadores de navegação remotos, como os que são utilizados para conteúdo web no multi-processo do Firefox.
+
+# LOCALIZATION NOTE (responsive.changeDevicePixelRatio): Tooltip for the
+# device pixel ratio dropdown when is enabled.
+responsive.changeDevicePixelRatio=Alterar o rácio de pixeis do dispositivo do 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=Rácio de píxeis do dispositivo definido automaticamente para %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=Dispositivo personalizado
+
+# 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 (Personalizado)
+
+# LOCALIZATION NOTE (responsive.addDevice2): Button text that reveals a form to
+# be used for adding custom devices.
+responsive.addDevice2=Adicionar dispositivo personalizado…
+
+# LOCALIZATION NOTE (responsive.deviceAdderName): Label of form field for the
+# name of a new device.
+responsive.deviceAdderName=Nome
+
+# LOCALIZATION NOTE (responsive.deviceAdderSize): Label of form field for the
+# size of a new device.
+responsive.deviceAdderSize=Tamanho
+
+# LOCALIZATION NOTE (responsive.deviceAdderPixelRatio2): Label of form field for
+# the device pixel ratio of a new device.
+responsive.deviceAdderPixelRatio2=Rácio de pixeis do dispositivo
+
+# LOCALIZATION NOTE (responsive.deviceAdderUserAgent2): Label of form field for
+# the user agent of a new device.
+responsive.deviceAdderUserAgent2=String de User Agent
+
+# LOCALIZATION NOTE (responsive.deviceAdderTouch2): Label of form field for the
+# touch input support of a new device.
+responsive.deviceAdderTouch2=Ecrã tátil
+
+# LOCALIZATION NOTE (responsive.deviceAdderSave): Button text that submits a
+# form to add a new device.
+responsive.deviceAdderSave=Guardar
+
+# LOCALIZATION NOTE (responsive.deviceAdderCancel): Button text that cancels a
+# form to add a new device.
+responsive.deviceAdderCancel=Cancelar
+
+# 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=Tamanho: %1$S x %2$S\nDPR: %3$S\nUA: %4$S\nToque: %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 no %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=Tamanho: %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=Toque: %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=Recarregar quando a simulação de toque é alternada
+
+# LOCALIZATION NOTE (responsive.reloadConditions.userAgent): Label on checkbox used
+# to select whether to reload when user agent is changed.
+responsive.reloadConditions.userAgent=Recarregar quando o user agent é alterado
+
+# 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=As alterações de simulação de dispositivo requerem uma recarga para se aplicarem totalmente. As recargas automáticas estão desativadas por predefinição para evitar perder quaisquer alterações nas DevTools. Pode ativar a recarga via o menu Definições.
+
+# LOCALIZATION NOTE (responsive.leftAlignViewport): Label on checkbox used in the settings
+# menu.
+responsive.leftAlignViewport=Alinhar Viewport à esquerda
+
+# LOCALIZATION NOTE (responsive.customUserAgent): This is the placeholder for the user
+# agent input in the responsive design mode toolbar.
+responsive.customUserAgent=User Agent personalizado
+
+responsive.showUserAgentInput=Mostrar user agent
+
+# LOCALIZATION NOTE (responsive.deviceSettings): The header text for the device settings
+# view.
+responsive.deviceSettings=Definições do dispositivo
+
+# LOCALIZATION NOTE (responsive.deviceNameAlreadyInUse): This is the text shown when adding a new
+# device with an already existing device name.
+responsive.deviceNameAlreadyInUse=O nome de dispositivo já está a ser utilizado
+
+# LOCALIZATION NOTE (responsive.deviceFormUpdate): Button text that updates a custom
+# device when the form is submitted.
+responsive.deviceFormUpdate=Atualizar
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/shared.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/shared.properties
new file mode 100644
index 0000000000..ff751e4865
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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×%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=Tamanho: Largura %1$S, altura %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=Dimensões: Largura %1$S, altura %2$S, posição %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/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/sourceeditor.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/sourceeditor.properties
new file mode 100644
index 0000000000..c8c5918042
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/sourceeditor.properties
@@ -0,0 +1,117 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Source Editor component.
+# This component is used whenever source code is displayed for the purpose of
+# being edited, inside the Firefox developer tools - current examples are the
+# Scratchpad and the Style Editor tools.
+
+# LOCALIZATION NOTE These strings are used inside the Source Editor component.
+# This component is used whenever source code is displayed for the purpose of
+# being edited, inside the Firefox developer tools (like Style Editor).
+
+# LOCALIZATION NOTE The correct localization of this file might be to keep it
+# in English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best documentation
+# on web development on the web.
+
+# LOCALIZATION NOTE (findCmd.promptMessage): This is the message shown when
+# the user wants to search for a string in the code. You can
+# access this feature by pressing Ctrl-F on Windows/Linux or Cmd-F on Mac.
+findCmd.promptMessage=Pesquisar por:
+
+# 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=Ir para a linha…
+
+# LOCALIZATION NOTE (autocompletion.docsLink): This is the text shown on
+# the link inside of the documentation popup. If you type 'document' in Scratchpad
+# then press Shift+Space you can see the popup.
+autocompletion.docsLink=documentação
+
+# 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=não encontrado
+
+# LOCALIZATION NOTE (jumpToLine.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to jump to
+# a specific line in the editor.
+jumpToLine.commandkey=J
+
+# LOCALIZATION NOTE (toggleComment.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to either
+# comment or uncomment selected lines in the editor.
+toggleComment.commandkey=/
+
+# LOCALIZATION NOTE (indentLess.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to reduce
+# indentation level in CodeMirror. However, its default value also used by
+# the Toolbox to switch between tools so we disable it.
+#
+# DO NOT translate this key without proper synchronization with toolbox.dtd.
+indentLess.commandkey=[
+
+# LOCALIZATION NOTE (indentMore.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to increase
+# indentation level in CodeMirror. However, its default value also used by
+# the Toolbox to switch between tools
+#
+# DO NOT translate this key without proper synchronization with toolbox.dtd.
+indentMore.commandkey=]
+
+# LOCALIZATION NOTE (moveLineUp.commandkey): This is the combination of keys
+# used to move the current line up.
+# Do not localize "Alt", "Up", or change the format of the string. These are key
+# identifiers, not messages displayed to the user.
+moveLineUp.commandkey=Alt-Up
+
+# LOCALIZATION NOTE (moveLineDown.commandkey): This is the combination of keys
+# used to move the current line up.
+# Do not localize "Alt", "Down", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+moveLineDown.commandkey=Alt-Down
+
+# LOCALIZATION NOTE (autocompletion.commandkey): This is the key, used with
+# Ctrl, for code autocompletion.
+# Do not localize "Space", it's the key identifier, not a message displayed to
+# the user.
+autocompletion.commandkey=Space
+
+# LOCALIZATION NOTE (showInformation2.commandkey): This is the combination of
+# keys used to display more information, like type inference.
+# Do not localize "Shift", "Ctrl", "Space", or change the format of the string.
+# These are key identifiers, not messages displayed to the user.
+showInformation2.commandkey=Shift-Ctrl-Space
+
+# LOCALIZATION NOTE (find.key):
+# Key shortcut used to find the typed search
+# Do not localize "CmdOrCtrl", "F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+find.key=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (replaceAll.key):
+# Key shortcut used to replace the content of the editor
+# Do not localize "Shift", "CmdOrCtrl", "F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+replaceAll.key=Shift+CmdOrCtrl+F
+
+# LOCALIZATION NOTE (replaceAllMac.key):
+# Key shortcut used to replace the content of the editor on Mac
+# Do not localize "Alt", "CmdOrCtrl", "F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+replaceAllMac.key=Alt+CmdOrCtrl+F
+
+# LOCALIZATION NOTE (findNext.key):
+# Key shortcut used to find again the typed search
+# Do not localize "CmdOrCtrl", "G", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+findNext.key=CmdOrCtrl+G
+
+# LOCALIZATION NOTE (findPrev.key):
+# Key shortcut used to find the previous typed search
+# Do not localize "Shift", "CmdOrCtrl", "G", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+findPrev.key=Shift+CmdOrCtrl+G
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/startup.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/startup.properties
new file mode 100644
index 0000000000..81f2441616
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/startup.properties
@@ -0,0 +1,248 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (optionsButton.tooltip): This is used as the tooltip
+# for the options panel tab.
+optionsButton.tooltip=Opções da caixa de ferramentas
+
+# LOCALIZATION NOTE (options.label): This is used as the label of the tab in
+# the devtools window.
+options.label=Opções
+
+# LOCALIZATION NOTE (options.panelLabel): This is used as the label for the
+# toolbox panel.
+options.panelLabel=Painel de opções da caixa de ferramentas
+
+# LOCALIZATION NOTE (options.darkTheme.label2)
+# Used as a label for dark theme
+options.darkTheme.label2=Escuro
+
+# LOCALIZATION NOTE (options.lightTheme.label2)
+# Used as a label for light theme
+options.lightTheme.label2=Claro
+
+# 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=Desempenho
+
+# LOCALIZATION NOTE (performance.panelLabel):
+# This is used as the label for the toolbox panel.
+performance.panelLabel=Painel de desempenho
+
+# LOCALIZATION NOTE (performance.accesskey)
+# Used for the menuitem in the tool menu
+performance.accesskey=p
+
+# LOCALIZATION NOTE (performance.tooltip):
+# This string is displayed in the tooltip of the tab when the profiler is
+# displayed inside the developer tools window.
+# Keyboard shortcut for Performance Tools will be shown inside brackets.
+performance.tooltip=Desempenho (%S)
+
+# LOCALIZATION NOTE (MenuWebconsole.label): the string displayed in the Tools
+# menu as a shortcut to open the devtools with the Web Console tab selected.
+MenuWebconsole.label=Consola Web
+
+# LOCALIZATION NOTE (ToolboxTabWebconsole.label): the string displayed as the
+# label of the tab in the devtools window.
+ToolboxTabWebconsole.label=Consola
+
+# LOCALIZATION NOTE (ToolboxWebConsole.panelLabel): the string used as the
+# label for the toolbox panel.
+ToolboxWebConsole.panelLabel=Painel da consola
+
+# 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=Consola Web (%S)
+
+webConsoleCmd.accesskey=w
+
+# LOCALIZATION NOTE (ToolboxDebugger.label):
+# This string is displayed in the title of the tab when the debugger is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+ToolboxDebugger.label=Depurador
+
+# LOCALIZATION NOTE (ToolboxDebugger.panelLabel):
+# This is used as the label for the toolbox panel.
+ToolboxDebugger.panelLabel=Painel do depurador
+
+# 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=Depurador de JavaScript (%S)
+
+# LOCALIZATION NOTE (debuggerMenu.accesskey)
+# Used for the menuitem in the tool menu
+debuggerMenu.accesskey=D
+
+# LOCALIZATION NOTE (ToolboxStyleEditor.label):
+# This string is displayed in the title of the tab when the style editor is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+ToolboxStyleEditor.label=Editor de estilos
+
+# LOCALIZATION NOTE (ToolboxStyleEditor.panelLabel):
+# This is used as the label for the toolbox panel.
+ToolboxStyleEditor.panelLabel=Painel do editor de estilos
+
+# 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=Editor de folhas de estilo (CSS) (%S)
+
+# LOCALIZATION NOTE (open.accesskey): The access key used to open the style
+# editor.
+open.accesskey=l
+
+# LOCALIZATION NOTE (inspector.*)
+# Used for the menuitem in the tool menu
+inspector.label=Inspetor
+inspector.accesskey=I
+
+# LOCALIZATION NOTE (inspector.panelLabel)
+# Labels applied to the panel and views within the panel in the toolbox
+inspector.panelLabel=Painel do inspetor
+
+# LOCALIZATION NOTE (inspector.tooltip2)
+# Keyboard shortcut for DOM and Style Inspector will be shown inside brackets.
+inspector.tooltip2=DOM e inspetor de estilos (%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 e inspetor de estilos (%1$S ou %2$S)
+
+# LOCALIZATION NOTE (netmonitor.label):
+# This string is displayed in the title of the tab when the Network Monitor is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+netmonitor.label=Rede
+
+# LOCALIZATION NOTE (netmonitor.panelLabel):
+# This is used as the label for the toolbox panel.
+netmonitor.panelLabel=Painel da rede
+
+# LOCALIZATION NOTE (netmonitor.accesskey)
+# Used for the menuitem in the tool menu
+netmonitor.accesskey=R
+
+# 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=Monitor de rede (%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=Armazenamento
+
+# 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=Inspetor de armazenamento
+
+# 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=Painel de armazenamento
+
+# 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=Inspetor de armazenamento (cookies, armazenamento local, …) (%S)
+
+# LOCALIZATION NOTE (memory.label): This string is displayed in the title of the
+# tab when the memory tool is displayed inside the developer tools window and in
+# the Developer Tools Menu.
+memory.label=Memória
+
+# LOCALIZATION NOTE (memory.panelLabel): This is used as the label for the
+# toolbox panel.
+memory.panelLabel=Painel de memória
+
+# 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=Memória
+
+# 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=Painel DOM
+
+# 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=Acessibilidade
+
+# LOCALIZATION NOTE (accessibility.panelLabel):
+# This is used as the label for the toolbox panel.
+accessibility.panelLabel=Painel de acessibilidade
+
+# LOCALIZATION NOTE (accessibility.accesskey)
+# Used for the menuitem in the tool menu
+accessibility.accesskey=i
+
+# 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=Acessibilidade (%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=Aplicação
+
+# LOCALIZATION NOTE (application.panelLabel):
+# This is used as the label for the toolbox panel.
+application.panelLabel=Painel da aplicação
+
+# 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=Painel da aplicação
+
+# 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 = Modo de design responsivo (%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 = Tirar uma captura de ecrã da página inteira
+
+# 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 = Alternar as réguas para a página
+
+# LOCALIZATION NOTE (toolbox.buttons.measure):
+# This is the tooltip of the button in the toolbox toolbar that toggles the
+# measuring tools
+toolbox.buttons.measure = Medir uma porção da página
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/styleeditor.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/styleeditor.properties
new file mode 100644
index 0000000000..7abc0a9382
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=<folha de estilo inline #%S>
+
+# LOCALIZATION NOTE (newStyleSheet): This is the default name for a new
+# user-created style sheet.
+newStyleSheet=Nova folha de estilo #%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 regra.;#1 regras.
+
+# LOCALIZATION NOTE (error-load): This is shown when loading fails.
+error-load=A folha de estilo não pôde ser carregada.
+
+# LOCALIZATION NOTE (error-save): This is shown when saving fails.
+error-save=A folha de estilo não foi guardada.
+
+# LOCALIZATION NOTE (importStyleSheet.title): This is the file picker title,
+# when you import a style sheet into the Style Editor.
+importStyleSheet.title=Importar folha de estilo
+
+# LOCALIZATION NOTE (importStyleSheet.filter): This is the *.css filter title
+importStyleSheet.filter=Ficheiros CSS
+
+# LOCALIZATION NOTE (saveStyleSheet.title): This is the file picker title,
+# when you save a style sheet from the Style Editor.
+saveStyleSheet.title=Guardar folha de estilo
+
+# LOCALIZATION NOTE (saveStyleSheet.filter): This is the *.css filter title
+saveStyleSheet.filter=Ficheiros CSS
+
+# 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=Mostrar fontes originais
+
+# 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=Mostrar a barra lateral de Regras-arroba (@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/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/toolbox.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/toolbox.properties
new file mode 100644
index 0000000000..8783541d0f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/toolbox.properties
@@ -0,0 +1,267 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (toolbox.titleTemplate1): This is the template
+# used to format the title of the toolbox.
+# The URL of the page being targeted: %1$S.
+toolbox.titleTemplate1=Ferramentas de programador - %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=Ferramentas de programador - %1$S - %2$S
+
+# LOCALIZATION NOTE (toolbox.multiProcessBrowserToolboxTitle): Title used for
+# the Browser Toolbox when the pref `devtools.browsertoolbox.fission` is true.
+# This Browser Toolbox allows to debug the parent process as well as the content
+# processes in the same toolbox.
+toolbox.multiProcessBrowserToolboxTitle=Caixa de ferramentas multi-processo do navegador
+
+# LOCALIZATION NOTE (toolbox.parentProcessBrowserToolboxTitle): Title used for
+# the Browser Toolbox when the pref `devtools.browsertoolbox.fission` and
+# `devtools.browsertoolbox.scope` is set to "parent-process".
+# This Browser Toolbox allows to debug only the parent process resources.
+toolbox.parentProcessBrowserToolboxTitle=Caixa de ferramentas do navegador do processo-pai
+
+# LOCALIZATION NOTE (toolbox.defaultTitle): This is used as the tool
+# name when no tool is selected.
+toolbox.defaultTitle=Ferramentas de programador
+
+# LOCALIZATION NOTE (toolbox.label): This is used as the label for the
+# toolbox as a whole
+toolbox.label=Ferramentas de programador
+
+# LOCALIZATION NOTE (options.autoTheme.label)
+# Used as a label for auto theme
+options.autoTheme.label=Automático
+
+# 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=Escolher um elemento da página (%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=Escolher um elemento da página (%1$S ou %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=Escolher um elemento do telemóvel Android (%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=Escolher um elemento do telemóvel Android (%1$S ou %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=Abrir ficheiro no editor de estilos
+
+# 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=Abrir ficheiro no depurador
+
+toolbox.resumeOrderWarning=A página não retomou depois do depurador se ligar. Para reparar isto, por favor feche e reabra a caixa de ferramentas.
+
+# LOCALIZATION NOTE (toolbox.help.key)
+# Key shortcut used to open the options panel
+toolbox.help.key=F1
+
+# LOCALIZATION NOTE (toolbox.nextTool.key)
+# Key shortcut used to select the next tool
+toolbox.nextTool.key=CmdOrCtrl+]
+
+# LOCALIZATION NOTE (toolbox.previousTool.key)
+# Key shortcut used to select the previous tool
+toolbox.previousTool.key=CmdOrCtrl+[
+
+# LOCALIZATION NOTE (toolbox.zoom*.key)
+# Key shortcuts used to zomm in/out or reset the toolbox
+# Should match full-zoom-*-shortcut values from browserSets.ftl
+toolbox.zoomIn.key=CmdOrCtrl+Plus
+toolbox.zoomIn2.key=CmdOrCtrl+=
+
+toolbox.zoomOut.key=CmdOrCtrl+-
+toolbox.zoomOut2.key=
+
+toolbox.zoomReset.key=CmdOrCtrl+0
+toolbox.zoomReset2.key=
+
+# LOCALIZATION NOTE (toolbox.reload*.key)
+# Key shortcuts used to reload the page
+toolbox.reload.key=CmdOrCtrl+R
+toolbox.reload2.key=F5
+
+# LOCALIZATION NOTE (toolbox.forceReload*.key)
+# Key shortcuts used to force reload of the page by bypassing caches
+toolbox.forceReload.key=CmdOrCtrl+Shift+R
+toolbox.forceReload2.key=CmdOrCtrl+F5
+
+# LOCALIZATION NOTE (toolbox.toggleHost.key)
+# Key shortcut used to move the toolbox in bottom or side of the browser window
+toolbox.toggleHost.key=CmdOrCtrl+Shift+D
+
+# LOCALIZATION NOTE (toolbox.closeToolbox.key) Key shortcut used to close the toolbox
+toolbox.closeToolbox.key=CmdOrCtrl+W
+
+# LOCALIZATION NOTE (toolbox.toggleToolbox.key) Key shortcut used to toggle the toolbox
+toolbox.toggleToolbox.key=CmdOrCtrl+Shift+I
+
+# LOCALIZATION NOTE (toolbox.toggleToolboxOSX.key) Key shortcut used to toggle the toolbox
+toolbox.toggleToolboxOSX.key=CmdOrCtrl+Alt+I
+
+# LOCALIZATION NOTE (toolbox.toggleToolboxF12.key) Key shortcut used to toggle the toolbox
+toolbox.toggleToolboxF12.key=F12
+
+# LOCALIZATION NOTE (toolbox.frames.tooltip): This is the label for
+# the iframes menu list that appears only when the document has some.
+# It allows you to switch the context of the whole toolbox.
+toolbox.frames.tooltip=Selecionar um iframe como o documento de destino atual
+
+# 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=Este botão apenas está disponível em páginas com vários 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=Personalizar as Ferramentas de programador e obter ajuda
+
+# LOCALIZATION NOTE (toolbox.closebutton.tooltip): This is the tooltip for
+# the close button the developer tools toolbox.
+toolbox.closebutton.tooltip=Fechar ferramentas de programador
+
+# LOCALIZATION NOTE (toolbox.errorCountButton.tooltip): This is the tooltip for
+# the error count button displayed in the developer tools toolbox.
+toolbox.errorCountButton.tooltip=Mostrar consola dividida
+
+# 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=Mostrar o número de erros na página
+
+# 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=Erro de mapa de fontes: %1$S\nURL do recurso: %2$S\nURL do mapa de fontes: %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=Erro ao obter uma fonte original: %1$S\nURL da fonte: %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=Este %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=Caixa de ferramentas (%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=Caixa de ferramentas - %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=Caixa de ferramentas - ocorreu um erro
+
+# 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=Rede
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.reload):
+# Used as the reload button tooltip
+toolbox.debugTargetInfo.reload=Recarregar
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.forward):
+# Used as the navigation's "forward" button tooltip
+toolbox.debugTargetInfo.forward=Avançar
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.back):
+# Used as the navigation's "back" button tooltip
+toolbox.debugTargetInfo.back=Retroceder
+
+# 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=Extensão
+toolbox.debugTargetInfo.targetType.process=Processo
+toolbox.debugTargetInfo.targetType.tab=Separador
+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=Estado de ligação da caixa de ferramentas do navegador:
+
+# 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 = Erro
+
+# 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 = Não é possível ligar ao destino de depuração. Veja os detalhes do erro abaixo:
+
+# 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=Descontinuado. Saber mais…
+
+# 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=Ativar a caixa de ferramentas multi-processo do navegador (requer a reinicialização da caixa de ferramentas do navegador)
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/webconsole.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/webconsole.properties
new file mode 100644
index 0000000000..d67cc65f5d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/client/webconsole.properties
@@ -0,0 +1,579 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+# LOCALIZATION NOTE
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (multiProcessBrowserConsole.title): Title of the Browser
+# Console window when the pref `devtools.browsertoolbox.scope` is set to "everything". This
+# Browser Console will log messages from all processes, not just the the parent
+# process.
+multiProcessBrowserConsole.title=Consola de multi-processo do navegador
+
+# LOCALIZATION NOTE (parentProcessBrowserConsole.title): Title used for
+# the Browser Console when the pref `devtools.browsertoolbox.scope` is set to "parent-process".
+parentProcessBrowserConsole.title=Consola do navegador do processo-pai
+
+# LOCALIZATION NOTE (timestampFormat): %1$02S = hours (24-hour clock),
+# %2$02S = minutes, %3$02S = seconds, %4$03S = milliseconds.
+timestampFormat=%02S:%02S:%02S.%03S
+
+ConsoleAPIDisabled=A API de registo da Consola Web (console.log, console.info, console.warn, console.error) foi desativada por um script nesta página.
+
+# LOCALIZATION NOTE (webConsoleXhrIndicator): the indicator displayed before
+# a URL in the Web Console that was requested using an XMLHttpRequest.
+webConsoleXhrIndicator=XHR
+
+# LOCALIZATION NOTE (webConsoleMoreInfoLabel): the more info tag displayed
+# after security related web console messages.
+webConsoleMoreInfoLabel=Saber mais
+
+# 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=<anónimo>
+
+# 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=(Assíncrona: %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 - o temporizador terminou
+
+# 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=A consola foi limpa.
+
+# LOCALIZATION NOTE (preventedConsoleClear): this string is displayed when receiving a
+# call to console.clear() when the user has the "Persist logs" option enabled, to let the
+# user know the console method call was ignored.
+# "Persist Logs" should be kept in sync with webconsole.console.settings.menu.item.enablePersistentLogs.label
+preventedConsoleClear=console.clear() foi impedido devido a “Registos persistentes”
+
+# LOCALIZATION NOTE (noCounterLabel): this string is used to display
+# count-messages with no label provided.
+noCounterLabel=<sem etiqueta>
+
+# LOCALIZATION NOTE (counterDoesntExist): this string is displayed when
+# console.countReset() is called with a counter that doesn't exist.
+counterDoesntExist=O contador “%S” não existe.
+
+# LOCALIZATION NOTE (noGroupLabel): this string is used to display
+# console.group messages with no label provided.
+noGroupLabel=<sem etiqueta de grupo>
+
+maxTimersExceeded=O número máximo de temporizadores permitidos nesta página foi excedido.
+timerAlreadyExists=O temporizador “%S” já existe.
+timerDoesntExist=O temporizador “%S” não existe.
+timerJSError=Falha ao processar o nome do temporizador.
+
+# LOCALIZATION NOTE (connectionTimeout): message displayed when the Remote Web
+# Console fails to connect to the server due to a timeout.
+connectionTimeout=A ligação excedeu o tempo limite. Consulte a consola de erros ver a mensagem de erro. Reabra a consola Web e volte a tentar.
+
+# LOCALIZATION NOTE (propertiesFilterPlaceholder): this is the text that
+# appears in the filter text box for the properties view container.
+propertiesFilterPlaceholder=Filtrar propriedades
+
+# 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 repetição;#1 repetições
+
+# 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=Clique para selecionar o nó no inspetor
+
+# 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=Aviso de fraude: tenha cuidado ao colar coisas que não entende. Isto poderia permitir o roubo de identidade ou tomar o controlo do seu computador. Por favor digite ‘%S‘ abaixo (não é necessário pressionar enter) para permitir a colagem.
+
+# 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=permitir colagem
+
+# 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=Mostrar/ocultar detalhes da mensagem.
+
+# LOCALIZATION NOTE (groupToggle): the text that is displayed when
+# you hover the arrow for expanding/collapsing the messages of a group.
+groupToggle=Mostrar/esconder grupo.
+
+# LOCALIZATION NOTE (table.index, table.iterationIndex, table.key, table.value):
+# the column header displayed in the console table widget.
+table.index=(índice)
+table.iterationIndex=(índice da interação)
+table.key=Chave
+table.value=Valores
+
+# LOCALIZATION NOTE (level.error, level.warn, level.info, level.log, level.debug):
+# tooltip for icons next to console output
+level.error=Erro
+level.warn=Aviso
+level.info=Informação
+level.log=Registo
+level.debug=Depurar
+
+# LOCALIZATION NOTE (logpoint.title)
+# Tooltip shown for logpoints sent from the debugger
+logpoint.title=Pontos de registo do depurador
+
+# LOCALIZATION NOTE (logtrace.title)
+# Tooltip shown for JavaScript tracing logs
+logtrace.title=Rastreamento de JavaScript
+
+# LOCALIZATION NOTE (blockedReason.title)
+# Tooltip shown for blocked network events sent from the network panel
+blockedrequest.label=Bloqueado pelo DevTools
+
+# LOCALIZATION NOTE (webconsole.disableIcon.title)
+# Tooltip shown for disabled console messages
+webconsole.disableIcon.title=Esta mensagem não está mais ativa, os detalhes da mensagem não estão disponíveis
+
+# LOCALIZATION NOTE (command.title)
+# Tooltip shown for console input evaluated code displayed in the console output
+command.title=Código avaliado
+
+# LOCALIZATION NOTE (result.title)
+# Tooltip shown for evaluation result displayed in the console output
+result.title=Resultado da avaliação
+
+# 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=Copiar ligação
+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=Abrir URL num novo separador
+webconsole.menu.openURL.accesskey=s
+
+# 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=Abrir no painel de rede
+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=Reenviar pedido
+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=Revelar no inspetor
+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=Armazenar como variável global
+webconsole.menu.storeAsGlobalVar.accesskey=A
+
+# 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=Copiar mensagem
+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=Copiar objeto
+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=Inspecionar objeto na barra lateral
+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=Copiar todas as mensagens
+webconsole.menu.copyAllMessages.accesskey=X
+
+# 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=Guardar todas as mensagens num ficheiro
+webconsole.menu.saveAllMessagesFile.accesskey=G
+
+# 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=Limpar a saída da Consola Web
+
+# 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=Alternar barra de filtro
+
+# LOCALIZATION NOTE (webconsole.filterInput.placeholder)
+# Label used for for the placeholder on the filter input, in the console top toolbar.
+webconsole.filterInput.placeholder=Filtrar saída
+
+# 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=Erros
+
+# 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=Avisos
+
+# 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=Registos
+
+# 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=Informação
+
+# 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=Depuração
+
+# LOCALIZATION NOTE (webconsole.cssFilterButton.label)
+# Label used as the text of the "CSS" button in the additional filter toolbar.
+# It shows or hides CSS warning messages, inserted in the page by the browser
+# when there are CSS errors in the page.
+webconsole.cssFilterButton.label=CSS
+
+# LOCALIZATION NOTE (webconsole.cssFilterButton.inactive.tooltip)
+# Label used as the tooltip of the "CSS" button in the additional filter toolbar, when the
+# filter is inactive (=unchecked).
+webconsole.cssFilterButton.inactive.tooltip=As folhas de estilo serão reanalisadas para verificar se há erros. Atualize a página para ver também os erros das folhas de estilo modificadas a partir do 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=Pedidos
+
+# 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 item ocultado;#1 itens ocultados
+
+# 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 ocultado por filtro de texto;#1 itens ocultados por filtro de texto
+
+# 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=Definições da consola
+
+# 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=Barra de ferramentas compacta
+
+# 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=Mostrar marcadores temporais
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.timestamps.tooltip)
+webconsole.console.settings.menu.item.timestamps.tooltip=Se ativar esta opção, os comandos e a saída na Consola Web irão apresentar um marcador temporal
+
+# 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=Agrupar mensagens semelhantes
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.warningGroups.tooltip)
+webconsole.console.settings.menu.item.warningGroups.tooltip=Quando ativado, as mensagens semelhantes são colocadas em grupos
+
+# 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=Ativar conclusão automática
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.autocomplete.tooltip)
+webconsole.console.settings.menu.item.autocomplete.tooltip=Se ativar esta opção, o campo irá apresentar sugestões à medida que você digita
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.enablePersistentLogs.label)
+webconsole.console.settings.menu.item.enablePersistentLogs.label=Registos persistentes
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.enablePersistentLogs.tooltip)
+webconsole.console.settings.menu.item.enablePersistentLogs.tooltip=Se ativar esta opção a saída não será limpa sempre que navegar para uma nova página
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.instantEvaluation.label)
+webconsole.console.settings.menu.item.instantEvaluation.label=Avaliação instantânea
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.instantEvaluation.tooltip)
+webconsole.console.settings.menu.item.instantEvaluation.tooltip=Se ativar esta opção, a entrada será avaliada imediatamente à medida que a introduz
+
+# 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=Ativar Monitorização de Rede
+# LOCALIZATION NOTE (browserconsole.enableNetworkMonitoring.tooltip)
+# Tooltip for the "Enable Network Monitoring" check item.
+browserconsole.enableNetworkMonitoring.tooltip=Ative isto para começar a ouvir pedidos de rede
+
+# 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=Navegada para %S
+
+# LOCALIZATION NOTE (webconsole.closeSplitConsoleButton.tooltip): This is the tooltip for
+# the close button of the split console.
+webconsole.closeSplitConsoleButton.tooltip=Fechar consola dividida (Esc)
+
+# LOCALIZATION NOTE (webconsole.closeSidebarButton.tooltip): This is the tooltip for
+# the close button of the sidebar.
+webconsole.closeSidebarButton.tooltip=Fechar barra lateral
+
+# 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=Pesquisar histórico
+
+# 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=Fechar (%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=1 resultado;#1 of #2 resultados
+
+# 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=Sem resultados
+
+# 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=Resultado anterior (%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=Resultado seguinte (%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=Invocar o getter %S para obter a lista de propriedades?
+
+# 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=Invocar (%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=Fechar (%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=Elementos que correspondem ao seletor: %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=[ERRO DEVTOOLS] Pedimos desculpa, não conseguimos renderizar a mensagem. Isto não deveria ter acontecido - por favor submeta um bug em %S com os metadados da mensagem na descrição.
+
+# 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=Texto copiado para a área de transferência
+
+# 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=O comando `copy` falhou; não foi possível converter o objeto para uma string: %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=Os pedidos para endereços contendo “%S” estão agora bloqueados
+
+# 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=Filtro de bloqueio "%S" removido
+
+# LOCALIZATION NOTE (webconsole.messages.commands.blockArgMissing)
+# Message displayed when no filter is passed to block/unblock command
+webconsole.messages.commands.blockArgMissing=Não foi especificado nenhum filtro
+
+# 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=Copiar metadados da mensagem para a área de transferência
+
+
+# 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=Executar
+
+# 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=Abrir a pesquisa reversa do histórico (%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=Fechar a pesquisa reversa do histórico (%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=Executar expressão (%S). Isto não irá limpar a entrada.
+
+# 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=Formatação bonita da expressão
+
+# 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=Expressão anterior
+
+
+# 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=Expressão seguinte
+
+# 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=Voltar para o modo em linha (%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=Mudar para o modo do editor de múltiplas linhas (%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 mensagem;#1 mensagens
+
+# 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=Itere o seu código mais rapidamente com o novo modo de editor de múltiplas linhas. Utilize %1$S para adicionar novas linhas e %2$S para executar.
+
+# 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=Percebi!
+
+# 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=Abrir ficheiro JavaScript
+
+# LOCALIZATION NOTE (webconsole.input.openJavaScriptFileFilter):
+# This string is displayed as a filter when opening a file in the console input.
+webconsole.input.openJavaScriptFileFilter=Ficheiros de JavaScript
+
+# 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=Topo
+
+# 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=Selecionar o contexto de avaliação
+
+# LOCALIZATION NOTE (webconsole.group.cookieSameSiteLaxByDefaultEnabled2): do not translate 'SameSite'.
+webconsole.group.cookieSameSiteLaxByDefaultEnabled2=Algumas cookies estão a utilizar o atributo “SameSite“ incorretamente, pelo que não irá funcionar conforme o esperado
+# LOCALIZATION NOTE (webconsole.group.cookieSameSiteLaxByDefaultDisabled2): do not translate 'SameSite'.
+webconsole.group.cookieSameSiteLaxByDefaultDisabled2=Algumas cookies estão a utilizar o atributo recomendado “SameSite“ incorretamente
+
+# LOCALIZATION NOTE (webconsole.group.csp): do not translate
+# 'Content-Security-Policy', as that's the name of the header.
+webconsole.group.csp=Avisos de Content-Security-Policy
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/accessibility.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/accessibility.properties
new file mode 100644
index 0000000000..9d46f22b41
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Contraste: %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=Não é possível calcular
+
+# 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=Contraste:
+
+# 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=Contraste (texto grande):
+
+# 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 = Utilize o atributo “alt” para rotular elementos de “area” que tenham o atributo “href”.
+
+# 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 = Diálogos devem ser rotulados.
+
+# 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 = Documentos devem ter um título.
+
+# 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 = Conteúdo embutido deve ser rotulado.
+
+# 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 = Figuras com legendas opcionais devem ser rotuladas.
+
+# 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 = Elementos “fieldset” devem ser rotulados.
+
+# 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 = Utilize um elemento “legend” para etiquetar um “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 = Elementos de formulário devem ser rotulados.
+
+# 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 = Elementos de formulário devem ter um rótulo de texto visível.
+
+# 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 = Elementos “frame” devem ser rotulados.
+
+# 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 = Utilize o atributo “alt” para rotular os elementos “mglyph”.
+
+# 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 = Cabeçalhos devem ser rotulados.
+
+# 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 = Cabeçalhos devem ter conteúdo de texto visível.
+
+# 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 = Utilize o atributo “title” para descrever o conteúdo “iframe”.
+
+# 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 = Conteúdo com imagens deve ser rotulado.
+
+# 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 = Elementos interativos devem ser rotulados.
+
+# 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 = Utilize um atributo “label” para etiquetar um “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 = Barras de ferramentas devem ser rotuladas quando houver mais de uma barra de ferramentas.
+
+# 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=Os elementos focáveis ​​deverão ter semântica interativa.
+
+# 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=Evite utilizar o atributo “tabindex” maior do que 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=Deve ser possível ativar os elementos interativos com recurso a um teclado.
+
+# 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=Os elementos interativos devem ser focáveis.
+
+# 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=O elemento focável pode não ter um estilo de foco.
+
+# 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=Os elementos clicáveis devem ser focáveis e deverão ter semântica interativa.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/debugger.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/debugger.properties
new file mode 100644
index 0000000000..3de473734f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/debugger.properties
@@ -0,0 +1,67 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Debugger
+# which is available from the Web Developer sub-menu -> 'Debugger'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Debugger
+# which is available from the Browser Tools sub-menu -> 'Debugger'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (remoteIncomingPromptTitle): The title displayed on the
+# dialog that prompts the user to allow the incoming connection.
+remoteIncomingPromptTitle=Ligação a receber
+
+# LOCALIZATION NOTE (remoteIncomingPromptHeader): Header displayed on the
+# dialog that prompts the user to allow the incoming connection.
+remoteIncomingPromptHeader=Foi detetado um pedido a receber para permitir uma ligação de depuração remota. Um cliente remoto pode obter o controlo total sobre o seu navegador!
+# 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=Endereço do cliente: %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=Endereço do servidor: %1$S
+# LOCALIZATION NOTE (remoteIncomingPromptFooter): Footer displayed on the
+# dialog that prompts the user to allow the incoming connection.
+remoteIncomingPromptFooter=Permitir ligação?
+
+# 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=Desativar
+
+# LOCALIZATION NOTE (clientSendOOBTitle): The title displayed on the dialog that
+# instructs the user to transfer an authentication token to the server.
+clientSendOOBTitle=Identificação do cliente
+# LOCALIZATION NOTE (clientSendOOBHeader): Header displayed on the dialog that
+# instructs the user to transfer an authentication token to the server.
+clientSendOOBHeader=O ponto a que está a ligar precisa de mais informação para autenticar esta ligação. Por favor, forneça o token abaixo que aparece no outro lado.
+# 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=Meu certificado: %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=Código: %1$S
+
+# LOCALIZATION NOTE (serverReceiveOOBTitle): The title displayed on the dialog
+# that instructs the user to provide an authentication token from the client.
+serverReceiveOOBTitle=Fornecer o código de cliente
+# LOCALIZATION NOTE (serverReceiveOOBBody): Main text displayed on the dialog
+# that instructs the user to provide an authentication token from the client.
+serverReceiveOOBBody=O cliente deverá estar a mostrar um valor de token. Introduza-o aqui para concluir a autenticação com este cliente.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/eyedropper.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/eyedropper.properties
new file mode 100644
index 0000000000..b1ed74bbec
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=copiado
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/screenshot.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/screenshot.properties
new file mode 100644
index 0000000000..be5344e787
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/screenshot.properties
@@ -0,0 +1,148 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside Web Console commands.
+# The Web Console command line is available from the Web Developer sub-menu
+# -> 'Web Console'.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Web Console commands
+# which can be executed in the Developer Tools, available in the
+# Browser Tools sub-menu -> 'Web Developer Tools'
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (screenshotDesc) A very short description of the
+# 'screenshot' command. Displayed when the --help flag is passed to
+# the screenshot command.
+screenshotDesc=Guardar uma imagem da página
+
+# 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=Nome de ficheiro de destino
+
+# LOCALIZATION NOTE (screenshotFilenameManual) A fuller description of the
+# 'filename' parameter to the 'screenshot' command.
+screenshotFilenameManual=O nome do ficheiro (deve ter uma extensão ‘.png‘) para o qual gravamos a captura de ecrã.
+
+# 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=Copiar captura de ecrã para a área de transferência? (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 se quiser copiar a captura de ecrã em vez de a guardar para um ficheiro.
+
+# 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=Opções
+
+# 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=Atraso (segundos)
+
+# 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=O tempo de espera (em segundos) antes da captura de ecrã ser tirada
+
+# 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=Rácio de pixeis do dispositivo
+
+# 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=O rácio de pixeis do dispositivo a utilizar ao tirar a captura de ecrã
+
+# 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=Página web completa? (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 se a captura de ecrã também incluir partes da página web que estão fora das margens deslocadas.
+
+# 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=Guardar para ficheiro? (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 se a captura de ecrã deve guardar o ficheiro mesmo quando outras opções estejam ativadas (exemplo: área de transferência).
+
+# 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=Captura de ecrã %1$S às %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=Erro ao guardar para %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=Guardada para %1$S
+
+# LOCALIZATION NOTE (screenshotErrorCopying) Text displayed to user upon
+# encountering error while copying the screenshot to clipboard.
+screenshotErrorCopying=Ocorreu um erro ao copiar a captura de ecrã para a área de transferência.
+
+# LOCALIZATION NOTE (screenshotCopied) Text displayed to user when the
+# screenshot is successfully copied to the clipboard.
+screenshotCopied=Captura de ecrã copiada para a área de transferência.
+
+# 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=Seletor CSS
+
+# 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=Um seletor CSS para uso com document.querySelector que identifica um único elemento
+
+# 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=A imagem foi cortada para %1$S×%2$S porque a imagem resultante era muito grande
+
+# 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=A proporção de pixeis do dispositivo foi reduzida para 1, pois a imagem resultante era muito grande
+
+# 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=Erro ao criar a imagem. A imagem resultante provavelmente era muito grande.
+
+# 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=O seletor ‘%S’ utilizado não coincide com qualquer elemento na página.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/shared.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/shared.properties
new file mode 100644
index 0000000000..0978450dee
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/styleinspector.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/styleinspector.properties
new file mode 100644
index 0000000000..471b57d8c7
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/devtools/shared/styleinspector.properties
@@ -0,0 +1,249 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Style Inspector.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+
+# LOCALIZATION NOTE (rule.status): For each style property the panel shows
+# the rules which hold that specific property. For every rule, the rule status
+# is also displayed: a rule can be the best match, a match, a parent match, or a
+# rule did not match the element the user has highlighted.
+rule.status.BEST=Melhor correspondência
+rule.status.MATCHED=Corresponde
+rule.status.PARENT_MATCH=Correspondência parente
+
+# LOCALIZATION NOTE (rule.sourceElement, rule.sourceInline,
+# rule.sourceConstructed): For each style property the panel shows the rules
+# which hold that specific property.
+# For every rule, the rule source is also displayed: a rule can come from a
+# file, from the same page (inline), from a constructed style sheet
+# (constructed), or from the element itself (element).
+rule.sourceInline=inline
+rule.sourceConstructed=construído
+rule.sourceElement=elemento
+
+# 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=Herdado de %S
+
+# LOCALIZATION NOTE (rule.keyframe): Shown for CSS Rules keyframe header.
+# Will be passed an identifier of the keyframe animation name.
+rule.keyframe=Keyframes %S
+
+# LOCALIZATION NOTE (rule.userAgentStyles): Shown next to the style sheet
+# link for CSS rules that were loaded from a user agent style sheet.
+# These styles will not be editable, and will only be visible if the
+# devtools.inspector.showUserAgentStyles pref is true.
+rule.userAgentStyles=(user agent)
+
+# LOCALIZATION NOTE (rule.pseudoElement): Shown for CSS rules
+# pseudo element header
+rule.pseudoElement=Pseudo-elementos
+
+# LOCALIZATION NOTE (rule.selectedElement): Shown for CSS rules element header if
+# pseudo elements are present in the rule view.
+rule.selectedElement=Este elemento
+
+# 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=Valor de propriedade inválido
+
+# 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=Nome de propriedade inválido
+
+# 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=Filtrar regras que contenham esta propriedade
+
+# LOCALIZATION NOTE (rule.empty): Text displayed when the highlighter is
+# first opened and there's no node selected in the rule view.
+rule.empty=Nenhum elemento selecionado.
+
+# 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 não está definido
+
+# 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=Destacar todos os elementos que correspondem a este seletor
+
+# 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=Clique para abrir o seletor de cores, Shift+Clique para alterar o formato da cor
+
+# 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=Clicar para abrir o editor de funções temporizadoras
+
+# 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=Clicar para abrir o editor de filtros
+
+# 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 para alterar o formato do ângulo
+
+# 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=Clique para alternar o demarcador da Flexbox
+
+# 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=Clique para alternar o demarcador do CSS Grid
+
+# 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=Filtrar estilos
+
+# 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=Adicionar nova regra
+
+# 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=Alternar 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=Alternar 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=Adicionar nova classe
+
+# 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=Sem classes neste elemento
+
+# 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=Alternar a simulação de impressão de multimédia para a página
+
+# 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=Alternar a simulação do esquema de cor para a página
+
+# LOCALIZATION NOTE (rule.twistyCollapse.label): The text a screen reader
+# speaks when the header of a rule is expanded.
+rule.twistyCollapse.label=Colapsar
+
+# LOCALIZATION NOTE (rule.twistyExpand.label): The text a screen reader
+# speaks when the header of a rule is collapsed.
+rule.twistyExpand.label=Expandir
+
+# 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=Clique para selecionar o nó contentor
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyColor): Text displayed in the rule
+# and computed view context menu when a color value was clicked.
+styleinspector.contextmenu.copyColor=Copiar cor
+
+# 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=Copiar 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=Copiar URL de dados da imagem
+
+# 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=Falha ao copiar o URL da imagem
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.toggleOrigSources): Text displayed in the rule view
+# context menu.
+styleinspector.contextmenu.toggleOrigSources=Mostrar fontes originais
+
+# 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=Adicionar nova regra
+
+# 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=Selecionar tudo
+
+# 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=Copiar
+
+# 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=Copiar ligação
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyDeclaration): Text
+# displayed in the rule view context menu for copying the CSS declaration.
+styleinspector.contextmenu.copyDeclaration=Copiar declaração
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyPropertyName): Text displayed in
+# the rule view context menu for copying the property name.
+styleinspector.contextmenu.copyPropertyName=Copiar nome da propriedade
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyPropertyValue): Text displayed in
+# the rule view context menu for copying the property value.
+styleinspector.contextmenu.copyPropertyValue=Copiar valor da propriedade
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyRule): Text displayed in the
+# rule view context menu for copying the rule.
+styleinspector.contextmenu.copyRule=Copiar regra
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copySelector): Text displayed in the
+# rule view context menu for copying the selector.
+styleinspector.contextmenu.copySelector=Copiar seletor
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/mac/accessible.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/mac/accessible.properties
new file mode 100644
index 0000000000..6f2739231f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/mac/accessible.properties
@@ -0,0 +1,71 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+jump = Saltar
+press = Premir
+check = Marcar
+uncheck = Desmarcar
+select = Selecionar
+open = Abrir
+close = Fechar
+switch = Mudar
+click = Clicar
+collapse= Colapsar
+expand = Expandir
+activate= Ativar
+cycle = Trocar
+# 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 = Clique no ancestral
+
+# Universal Access API support
+# (Mac Only)
+# The Role Description for AXWebArea (the web widget). Like in Safari.
+htmlContent = Conteúdo HTML
+# The Role Description for the Tab button.
+tab = separador
+# The Role Description for definition list dl, dt and dd
+term = termo
+definition = definição
+# The Role Description for an input type="search" text field
+searchTextField = pesquisar no campo de texto
+# Role Description (exposed as AXTitle) for datepickers
+dateField = campo de data
+# The Role Description for WAI-ARIA Landmarks
+application = aplicação
+search = pesquisa
+banner = banner
+navigation = navegação
+complementary = complementar
+content = conteúdo
+main = principal
+# The (spoken) role description for various WAI-ARIA roles
+alert = alerta
+alertDialog = diálogo de alerta
+dialog = janela
+article = artigo
+document = documento
+# The (spoken) role description for the WAI-ARIA figure role
+# https://w3c.github.io/aria/core-aam/core-aam.html#role-map-figure
+figure = figura
+# The (spoken) role description for the WAI-ARIA heading role
+# https://w3c.github.io/aria/core-aam/core-aam.html#role-map-heading
+heading = cabeçalho
+log = registo
+marquee = marcação
+math = matemática
+note = nota
+region = região
+status = estado da aplicação
+timer = temporizador
+tooltip = dica
+separator = separador
+tabPanel = painel de separador
+# The roleDescription for the html:mark element
+highlight = destacar
+# The roleDescription for the details element
+details = detalhes
+# The roleDescription for the summary element
+summary = resumo
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/mac/intl.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/mac/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/mac/platformKeys.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/mac/platformKeys.properties
new file mode 100644
index 0000000000..d830a29b86
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/mac/platformKeys.properties
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Platform: Mac
+# This file defines the on-screen display names for the various modifier keys
+# and the Return key (VK_RETURN).
+# These are used in XP menus to show keyboard shortcuts.
+
+# The Shift key - open up arrow symbol (ctrl-e)
+VK_SHIFT=⇧
+
+# The Command key - clover leaf symbol (ctrl-q)
+VK_META=⌘
+
+# The Win key - never generated by native key event
+VK_WIN=win
+
+# The Command key - clover leaf symbol (ctrl-q)
+VK_COMMAND_OR_WIN=\u2318
+
+# The Option/Alt key - splitting tracks symbol (ctrl-g)
+VK_ALT=⌥
+
+# The Control key - hat symbol (ctrl-f)
+VK_CONTROL=⌃
+
+# The Return key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Return
+
+# The separator character used between modifiers (none on Mac OS)
+MODIFIER_SEPARATOR=
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/unix/accessible.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/unix/accessible.properties
new file mode 100644
index 0000000000..41e1aed3ed
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/unix/accessible.properties
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+jump = Saltar
+press = Premir
+check = Marcar
+uncheck = Desmarcar
+select = Selecionar
+open = Abrir
+close = Fechar
+switch = Mudar
+click = Clicar
+collapse= Colapsar
+expand = Expandir
+activate= Ativar
+cycle = Trocar
+# 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 = Clique no ancestral
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/unix/intl.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/unix/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/unix/platformKeys.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/unix/platformKeys.properties
new file mode 100644
index 0000000000..fded02a68e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/unix/platformKeys.properties
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Platform: Unix
+# This file defines the on-screen display names for the various modifier keys
+# and the Enter key (VK_RETURN).
+# These are used in XP menus to show keyboard shortcuts.
+
+# The Shift key
+VK_SHIFT=Shift
+
+# The Command key
+VK_META=Meta
+
+# The Win key (Super key and Hyper keys are mapped to DOM Win key)
+VK_WIN=Win
+
+# The Super/Hyper key
+VK_COMMAND_OR_WIN=Win
+
+# The Alt key
+VK_ALT=Alt
+
+# The Control key
+VK_CONTROL=Ctrl
+
+# The Enter key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Enter
+
+# The separator character used between modifiers
+MODIFIER_SEPARATOR=+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/win/accessible.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/win/accessible.properties
new file mode 100644
index 0000000000..41e1aed3ed
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/win/accessible.properties
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+jump = Saltar
+press = Premir
+check = Marcar
+uncheck = Desmarcar
+select = Selecionar
+open = Abrir
+close = Fechar
+switch = Mudar
+click = Clicar
+collapse= Colapsar
+expand = Expandir
+activate= Ativar
+cycle = Trocar
+# 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 = Clique no ancestral
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/win/intl.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/win/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/win/platformKeys.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/win/platformKeys.properties
new file mode 100644
index 0000000000..1df027dccf
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global-platform/win/platformKeys.properties
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Platform: Windows
+# This file defines the on-screen display names for the various modifier keys
+# and the Enter key (VK_RETURN).
+# These are used in XP menus to show keyboard shortcuts.
+
+# The Shift key
+VK_SHIFT=Shift
+
+# The Command key
+VK_META=Meta
+
+# The Win key
+VK_WIN=Win
+
+# The Win key
+VK_COMMAND_OR_WIN=Win
+
+# The Alt key
+VK_ALT=Alt
+
+# The Control key
+VK_CONTROL=Ctrl
+
+# The Enter key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Enter
+
+# The separator character used between modifiers
+MODIFIER_SEPARATOR=+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/aboutStudies.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/aboutStudies.properties
new file mode 100644
index 0000000000..f049d92fb8
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/aboutStudies.properties
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# LOCALIZATION NOTE (title): keep "Shield" in English. See
+# https://wiki.mozilla.org/Firefox/Shield/Shield_Studies for more information
+title = Estudos Shield
+removeButton = Remover
+
+# LOCALIZATION NOTE (activeStudiesList): Title above a list of active studies
+activeStudiesList = Estudos ativos
+# LOCALIZATION NOTE (activeStudiesList): Title above a list of completed studies
+completedStudiesList = Estudos concluídos
+# LOCALIZATION NOTE (activeStatus): Displayed for an active study
+activeStatus = Ativo
+
+# LOCALIZATION NOTE (completeStatus): Displayed for a study that is already complete
+completeStatus = Concluído
+
+updateButtonWin = Atualizar opções
+updateButtonUnix = Atualizar preferências
+learnMore = Saber mais
+noStudies = Não participou em quaisquer estudos.
+disabledList = Esta é uma lista dos estudos em que participou. Nenhum novo estudo irá ser executado.
+# LOCALIZATION NOTE (enabledList): %S is brandShortName (e.g. Firefox)
+enabledList = O que é isto? O %S pode instalar e executar estudos de vez em quando.
+
+# 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 = Este estudo define %1$S para %2$S.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/appstrings.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/appstrings.properties
new file mode 100644
index 0000000000..b83518f088
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/appstrings.properties
@@ -0,0 +1,37 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+malformedURI2=Por favor, verifique se o URL está correto e tente novamente.
+fileNotFound=O ficheiro %S não foi encontrado. Verifique a localização e tente novamente.
+fileAccessDenied=O ficheiro em %S não é legível.
+dnsNotFound2=Não foi possível encontrar %S. Por favor, verifique o nome e tente novamente.
+unknownProtocolFound=Um dos seguintes (%S) não é um protocolo registado ou não é permitido neste contexto.
+connectionFailure=A ligação a %S foi recusada.
+netInterrupt=A ligação a %S terminou abruptamente. Alguns dados podem ter sido transferidos.
+netTimeout=A operaçao expirou ao tentar contactar %S.
+redirectLoop=Limite de encaminhamentos para este URL excedido. Não é possível carregar a página. Isto pode ser causado por cookies que estão bloqueados.
+confirmRepostPrompt=Para mostrar esta página, a aplicação tem de enviar informação que irá repetir qualquer ação (como uma pesquisa ou confirmação de compra) efetuada anteriormente.
+resendButton.label=Reenviar
+unknownSocketType=Este documento não pode ser mostrado a não ser que instale o Personal Security Manager (PSM). Transfira e instale o PSM e tente novamente, ou contacte o seu administrador do sistema.
+netReset=O documento não possui dados.
+notCached=Este documento já não está disponível.
+netOffline=Este documento não pode ser mostrado no modo offline. Para ativar o modo online, desmarque a opção Trabalhar offline no menu Ficheiro.
+isprinting=O documento não pode ser alterado durante a impressão ou pré-visualização.
+deniedPortAccess=O acesso a este número de porta foi desativado para sua segurança.
+proxyResolveFailure=O servidor proxy não foi encontrado. Verifique as definições do proxy e tente novamente.
+proxyConnectFailure=A ligação foi recusada ao tentar contactar o servidor de proxy que configurou. Por favor verifique as suas definições de proxy e tente novamente.
+contentEncodingError=A página que está a tentar ver não pode ser mostrada porque utiliza uma forma de compressão inválida ou não suportada.
+unsafeContentType=A página que está a tentar ver não pode ser apresentada porque está contida num tipo de ficheiro cuja a abertura pode não ser segura. Por favor, contacte os proprietários do site para os informar deste problema.
+malwareBlocked=O site em %S foi reportado como um site de ataque e foi bloqueado com base nas suas preferências de segurança.
+harmfulBlocked=O site em %S foi reportado como um site potencialmente perigoso e foi bloqueado com base nas suas preferências de segurança.
+unwantedBlocked=O site em %S foi reportado como um site que fornece software não-solicitado e foi bloqueado com base nas suas preferências de segurança.
+deceptiveBlocked=Esta página web em %S foi reportada como um site decetivo e foi bloqueada com base nas suas preferências de segurança.
+cspBlocked=Esta página tem uma política de segurança de conteúdo que a impede de ser carregada desta maneira.
+xfoBlocked=Esta página possui uma política X-Frame-Options que impede que a mesma seja carregada neste contexto.
+corruptedContentErrorv2=O site em %S sofreu uma violação do protocolo de rede que não pode ser reparada.
+sslv3Used=Não é possível garantir a segurança dos seus dados em %S porque este utiliza SSLv3, um protocolo de segurança obsoleto.
+weakCryptoUsed=O proprietário de %S configurou o site incorretamente. Para impedir que a sua informação fosse furtada, a ligação a este site não foi estabelecida.
+inadequateSecurityError=O site tentou negociar um nível de segurança inadequado.
+blockedByPolicy=A sua organização bloqueou o acesso a esta página ou site.
+networkProtocolError=O Firefox sofreu uma violação do protocolo de rede que não pode ser reparada.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/autocomplete.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/autocomplete.properties
new file mode 100644
index 0000000000..105e0ff25c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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/pt-PT/chrome/pt-PT/locale/pt-PT/global/browser.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/browser.properties
new file mode 100644
index 0000000000..5cd57bb186
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 = Aviso de segurança
+formPostSecureToInsecureWarning.message = A informação que introduziu nesta página vai ser enviada através de uma ligação insegura e pode ser lida por terceiros.\n\nTem a certeza que pretende enviar esta informação?
+formPostSecureToInsecureWarning.continue = Continuar
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/commonDialogs.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/commonDialogs.properties
new file mode 100644
index 0000000000..c7f592eeaf
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/commonDialogs.properties
@@ -0,0 +1,46 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+Alert=Alerta
+Confirm=Confirmar
+ConfirmCheck=Confirmar
+Prompt=Solicitação
+# LOCALIZATION NOTE - %S is brandFullName
+PromptUsernameAndPassword3=Autenticação necessária - %S
+# LOCALIZATION NOTE - %S is brandFullName
+PromptPassword3=Palavra-passe necessária - %S
+Select=Selecionar
+OK=OK
+Cancel=Cancelar
+Yes=&Sim
+No=&Não
+Save=&Guardar
+Revert=&Reverter
+DontSave=&Não guardar
+ScriptDlgGenericHeading=[Aplicação JavaScript]
+ScriptDlgHeading=A página em %S diz:
+ScriptDlgNullPrincipalHeading=Esta página diz:
+ScriptDialogLabel=Impedir esta página de criar novos diálogos
+ScriptDialogLabelNullPrincipal=Não permitir que este site o questione novamente
+# LOCALIZATION NOTE (ScriptDialogLabelContentPrincipal):
+# %S is either the domain and port of the site prompting, or the name of
+# an add-on prompting.
+ScriptDialogLabelContentPrincipal=Não permitir que %S o questione novamente
+ScriptDialogPreventTitle=Confirmar a preferência do diálogo
+# 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 está a solicitar o seu nome de utilizador e palavra-passe. O site diz: “%1$S”
+EnterLoginForProxy3=O proxy %2$S está a solicitar um nome de utilizador e palavra-passe. O site diz: “%1$S”
+EnterUserPasswordFor2=%1$S está a solicitar o seu nome de utilizador e palavra-passe.
+EnterUserPasswordForCrossOrigin2=%1$S está a solicitar o seu nome de utilizador e palavra-passe. AVISO: A sua palavra-passe não será enviada para o site que está atualmente a visitar!
+EnterPasswordFor=Escreva a palavra-passe para %1$S em %2$S
+EnterCredentials=Este site está a solicitar que inicie sessão.
+# %S is the username for which a password is requested.
+EnterPasswordOnlyFor=Este site está a solicitar que inicie sessão como %S.
+# %S is the domain of the site being accessed.
+EnterCredentialsCrossOrigin=Este site está a solicitar que inicie sessão. Aviso: as suas informações de autenticação serão partilhadas com %S e não com o site que está a visitar neste momento.
+SignIn=Iniciar sessão
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/contentAreaCommands.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/contentAreaCommands.properties
new file mode 100644
index 0000000000..6c4353fd1d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Guardar imagem
+SaveMediaTitle=Guardar multimédia
+SaveVideoTitle=Guardar vídeo
+SaveAudioTitle=Guardar áudio
+SaveLinkTitle=Guardar como
+WebPageCompleteFilter=Página Web, completa
+WebPageHTMLOnlyFilter=Página Web, apenas HTML
+WebPageXHTMLOnlyFilter=Página Web, apenas XHTML
+WebPageSVGOnlyFilter=Página Web, apenas SVG
+WebPageXMLOnlyFilter=Página Web, apenas XML
+
+# 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=Sem título
+
+# 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_ficheiros
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/css.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/css.properties
new file mode 100644
index 0000000000..50150313e2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/css.properties
@@ -0,0 +1,52 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+MimeNotCss=A folha de estilo %1$S não foi carregada devido ao seu tipo MIME, “%2$S”, não é “text/css”.
+MimeNotCssWarn=A folha de estilo %1$S foi carregada como CSS ainda que o seu tipo MIME, “%2$S”, não seja “text/css”.
+
+PEDeclDropped=Declaração ignorada.
+PEDeclSkipped=Ignorado para a declaração seguinte.
+PEUnknownProperty=Propriedade desconhecida ‘%1$S’.
+PEPRSyntaxFieldEmptyInput=O descritor de sintaxe @property está vazio.
+PEPRSyntaxFieldExpectedPipe=O descritor de sintaxe @property ‘%S’ contém componentes sem um canal entre eles.
+PEPRSyntaxFieldInvalidNameStart=O descritor de sintaxe @property ‘%S’ contém um nome de componente que começa com um caractere inválido.
+PEPRSyntaxFieldInvalidName=O descritor de sintaxe @property ‘%S’ contém um nome de componente com um caractere inválido.
+PEPRSyntaxFieldUnclosedDataTypeName=O descritor de sintaxe @property ‘%S’ contém um nome de tipo de dados não fechado.
+PEPRSyntaxFieldUnexpectedEOF=O descritor de sintaxe @property ‘%S’ está incompleto.
+PEPRSyntaxFieldUnknownDataTypeName=O descritor de sintaxe @property ‘%S’ contém um nome de tipo de dados desconhecido.
+PEValueParsingError=Erro a processar valor para ‘%1$S’.
+PEUnknownAtRule=At-rule não reconhecido ou erro ao interpretar o at-rule '%1$S'.
+PEMQUnexpectedOperator=Operador inesperado na lista de multimédia.
+PEMQUnexpectedToken=Token inesperado ‘%1$S’ na lista de multimédia.
+PEAtNSUnexpected=Inesperado token no @namespace: '%1$S'.
+PEKeyframeBadName=Identificador esperado para o nome da regra @keyframes.
+PEBadSelectorRSIgnored=Definição de regra ignorada devido a um seletor errado.
+PEBadSelectorKeyframeRuleIgnored=Regra Keyframe devido a um seletor errado.
+PESelectorGroupNoSelector=Seletor esperado.
+PESelectorGroupExtraCombinator=Combinador desnecessário.
+PEClassSelNotIdent=Esperado identificador para o seletor da classe mas foi encontrado '%1$S'.
+PETypeSelNotType=Esperado o nome do elemento ou '*' mas foi encontrado '%1$S'.
+PEUnknownNamespacePrefix=Prefixo de namespace desconhecido '%1$S'.
+PEAttributeNameExpected=Esperado identificador para nome de atributo mas foi encontrado '%1$S'.
+PEAttributeNameOrNamespaceExpected=Esperado nome de atributo ou namespace mas foi encontrado '%1$S'.
+PEAttSelNoBar=Esperado '|' mas foi encontrado '%1$S'.
+PEAttSelUnexpected=Inesperado token no seletor de atributo: '%1$S'.
+PEAttSelBadValue=Esperado identificador ou string para valor no seletor de atributo mas foi encontrado '%1$S'.
+PEPseudoSelBadName=Esperado identificador para pseudo-classe ou pseudo-elemento mas foi encontrado '%1$S'.
+PEPseudoSelEndOrUserActionPC=Esperado fim de seletor ou uma ação do utilizador de pseudo-classe após um pseudo-elemento mas foi encontrado '%1$S'.
+PEPseudoSelUnknown=Pseudo-classe ou pseudo-elemento '%1$S' desconhecido.
+PEPseudoClassArgNotIdent=Esperado um identificador para um parâmetro de pseudo-classe mas foi encontrado '%1$S'.
+PEColorNotColor=Esperada cor mas foi encontrado '%1$S'.
+PEParseDeclarationDeclExpected=Esperada uma declaração mas foi encontrado '%1$S'.
+PEUnknownFontDesc=Descritor '%1$S' desconhecido em regra @font-face.
+PEMQExpectedFeatureName=Esperada nome da propriedade multimédia mas foi encontrado '%1$S'.
+PEMQNoMinMaxWithoutValue=As funcionalidades multimédia com min- or max- têm de ter um valor.
+PEMQExpectedFeatureValue=Encontrado um valor inválido para funcionalidade multimédia.
+PEExpectedNoneOrURL=Esperado 'none' ou URL mas foi encontrado '%1$S'.
+PEExpectedNoneOrURLOrFilterFunction=Esperado 'none', URL, ou função filtro mas foi encontrado '%1$S'.
+PEDisallowedImportRule=As regras @import ainda não são válidas em folhas de estilo construídas.
+PENeverMatchingHostSelector=O seletor :host em ‘%S’ não é descaraterizado e nunca irá corresponder. Talvez pretendesse utilizar :host()?
+
+TooLargeDashedRadius=O raio da borda é muito grande para o estilo ‘dashed’ (o limite é 100000px). A renderizar como sólido.
+TooLargeDottedRadius=O raio da borda é muito grande para o estilo ‘dotted’ (o limite é 100000px). A renderizar como sólido.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/dialog.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/dialog.properties
new file mode 100644
index 0000000000..398db4703a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Cancelar
+button-help=Ajuda
+button-disclosure=Mais informação
+accesskey-accept=
+accesskey-cancel=
+accesskey-help=A
+accesskey-disclosure=i
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/dom/dom.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/dom/dom.properties
new file mode 100644
index 0000000000..62eefe162f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/dom/dom.properties
@@ -0,0 +1,469 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+KillScriptTitle=Aviso: script não responde
+KillScriptMessage=Um script nesta página pode estar ocupado ou pode ter parado de responder. Pode parar o script agora ou pode continuar para ver se o script conclui.
+KillScriptWithDebugMessage=Um script nesta página pode estar ocupado ou pode ter parado de responder. Pode parar o script agora, abrir o script no depurador ou aguardar que o script termine.
+KillScriptLocation=Script: %S
+
+KillAddonScriptTitle=Aviso: script de extra não responde
+# LOCALIZATION NOTE (KillAddonScriptMessage): %1$S is the name of an extension.
+# %2$S is the name of the application (e.g., Firefox).
+KillAddonScriptMessage=Um script da extensão “%1$S” está a executar nesta página, e a fazer o %2$S não responder.\n\nPode estar ocupado, ou pode ter parado de responder permanentemente. Pode parar o script agora, ou pode continuar para ver se o mesmo conclui.
+KillAddonScriptGlobalMessage=Prevenir que o script da extensão execute nesta página até à próxima recarga
+
+StopScriptButton=Parar script
+DebugScriptButton=Depurar script
+WaitForScriptButton=Continuar
+DontAskAgain=&Não me perguntar novamente
+WindowCloseBlockedWarning=Os scripts não podem fechar janelas que não tenham sido abertas pelo mesmo.
+OnBeforeUnloadTitle=Tem a certeza?
+OnBeforeUnloadMessage2=Esta página está a solicitar a confirmação de que pretende sair - os dados que introduziu poderão não ser guardados.
+OnBeforeUnloadStayButton=Ficar na página
+OnBeforeUnloadLeaveButton=Sair da página
+EmptyGetElementByIdParam=String vazia enviada para getElementById().
+SpeculationFailed2=Uma árvore não balanceada foi escrita utilizando document.write(), fazendo com que os dados da rede tivessem de ser reinterpretados. Para mais informação: https://developer.mozilla.org/en-US/docs/Glossary/speculative_parsing
+DocumentWriteIgnored=Um pedido ao document.write() de um script externo carregado assincronamente foi ignorado.
+# LOCALIZATION NOTE (EditorFileDropFailed): Do not translate contenteditable, %S is the error message explaining why the drop failed.
+EditorFileDropFailed=Falha ao largar um ficheiro num elemento contenteditable: %S.
+FormValidationTextTooLong=Por favor reduza este texto para %S caracteres ou menos (está a utilizar %S caracteres).
+FormValidationTextTooShort=Por favor utilize pelo menos %S caracteres (está a utilizar atualmente %S caracteres).
+FormValidationValueMissing=Por favor preencha este campo.
+FormValidationCheckboxMissing=Por favor selecione esta caixa para continuar.
+FormValidationRadioMissing=Por favor selecione uma destas opções.
+FormValidationFileMissing=Por favor selecione um ficheiro.
+FormValidationSelectMissing=Por favor selecione um item na lista.
+FormValidationInvalidEmail=Por favor introduza um endereço de email.
+FormValidationInvalidURL=Por favor introduza um URL.
+FormValidationInvalidDate=Por favor introduza uma data válida.
+FormValidationInvalidTime=Por favor, introduza uma hora válida.
+FormValidationInvalidDateTime=Por favor, introduza uma data e hora válidas.
+FormValidationInvalidDateMonth=Por favor, introduza um mês válido.
+FormValidationInvalidDateWeek=Por favor, introduza uma semana válida.
+FormValidationPatternMismatch=Por favor corresponda ao formato pedido.
+# LOCALIZATION NOTE (FormValidationPatternMismatchWithTitle): %S is the (possibly truncated) title attribute value.
+FormValidationPatternMismatchWithTitle=Por favor corresponda ao formato pedido: %S.
+# LOCALIZATION NOTE (FormValidationNumberRangeOverflow): %S is a number.
+FormValidationNumberRangeOverflow=Por favor selecione um valor que não seja maior a %S.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeOverflow): %S is a date or a time.
+FormValidationDateTimeRangeOverflow=Por favor selecione um valor que não seja posterior a %S.
+# LOCALIZATION NOTE (FormValidationNumberRangeUnderflow): %S is a number.
+FormValidationNumberRangeUnderflow=Por favor selecione um valor que não seja menor que %S.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeUnderflow): %S is a date or a time.
+FormValidationDateTimeRangeUnderflow=Por favor selecione um valor que não seja anterior a %S.
+# LOCALIZATION NOTE (FormValidationStepMismatch): both %S can be a number, a date or a time.
+FormValidationStepMismatch=Por favor, selecione um valor válido. Os dois valores válidos mais aproximados são %S e %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=Por favor, selecione um valor válido. O valor válido mais aproximado é %S.
+# LOCALIZATION NOTE (FormValidationTimeReversedRangeUnderflowAndOverflow): %1$S,%2$S are time.
+FormValidationTimeReversedRangeUnderflowAndOverflow=Selecione um valor entre %1$S e %2$S.
+FormValidationBadInputNumber=Por favor introduza um número.
+FullscreenDeniedDisabled=O pedido de ecrã completo foi negado porque a Fullscreen API foi desativada por preferência do utilizador.
+FullscreenDeniedFocusedPlugin=O pedido de ecrã completo foi negado porque um plugin de janela está focado.
+FullscreenDeniedHidden=O pedido de ecrã completo foi negado porque o documento já não está visível.
+FullscreenDeniedHTMLDialog=O pedido de ecrã completo foi negado porque o elemento que o solicitou é um elemento <dialog>.
+FullscreenDeniedContainerNotAllowed=O pedido de ecrã completo foi negado porque, pelo menos, um dos elementos do documento não é um iframe ou não tem um atributo “allowfullscreen”.
+FullscreenDeniedNotInputDriven=O pedido de ecrã completo foi negado porque Element.requestFullscreen() não foi invocado dentro de um processador de eventos de execução curta gerado pelo utilizador.
+FullscreenDeniedMouseEventOnlyLeftBtn=O pedido de ecrã completo foi negado porque Element.requestFullscreen() foi invocado dentro do negociador de eventos do rato não acionado pelo botão esquerdo do rato.
+FullscreenDeniedNotHTMLSVGOrMathML=O pedido de ecrã completo foi negado porque o elemento solicitador não é um elemento <svg>, <math>, ou HTML.
+FullscreenDeniedNotInDocument=O pedido de ecrã completo foi negado porque o elemento solicitador já não existe no documento.
+FullscreenDeniedMovedDocument=O pedido de ecrã completo foi negado porque o elemento solicitador foi movido do documento.
+FullscreenDeniedLostWindow=O pedido de ecrã completo foi negado porque já não temos uma janela.
+FullscreenDeniedPopoverOpen=O pedido de ecrã completo foi negado porque o elemento já está aberto como um popover.
+FullscreenDeniedSubDocFullscreen=O pedido de ecrã completo foi negado porque um subdocumento do documento que solicita o ecrã completo já está neste modo.
+FullscreenDeniedNotFocusedTab=O pedido de ecrã completo foi negado porque o elemento solicitador não está no separador focado.
+FullscreenDeniedFeaturePolicy=O pedido de ecrã completo foi negado por causa de diretivas FeaturePolicy.
+FullscreenExitWindowFocus=Saiu do modo de ecrã completo porque uma janela foi focada.
+RemovedFullscreenElement=Saiu do modo de ecrã completo porque um elemento foi removido do documento.
+FocusedWindowedPluginWhileFullscreen=Saiu do modo de ecrã completo porque o plugin de janela estava focado.
+PointerLockDeniedDisabled=O pedido de bloqueio do apontador foi negado porque a Pointer Lock API foi desativada por preferência do utilizador.
+PointerLockDeniedInUse=O pedido de bloqueio do apontador foi negado porque o apontador é atualmente controlado por um documento diferente.
+PointerLockDeniedNotInDocument=O pedido de bloqueio do apontador foi negado porque o elemento solicitador não está num documento.
+PointerLockDeniedSandboxed=O pedido de bloqueio do apontador foi negado porque a Pointer Lock API está restrita via sandbox.
+PointerLockDeniedHidden=O pedido de bloqueio do apontador foi negado porque o documento já não está visível.
+PointerLockDeniedNotFocused=O pedido de bloqueio do apontador foi negado porque o documento não está focado.
+PointerLockDeniedMovedDocument=O pedido de bloqueio do apontador foi negado porque o elemento solicitador foi movido do documento.
+PointerLockDeniedNotInputDriven=O pedido de bloqueio do apontador foi negado porque Element.requestPointerLock() não foi invocado dentro de um processador de eventos de execução curta gerado pelo utilizador, e o documento não está em ecrã completo.
+PointerLockDeniedFailedToLock=O pedido do bloqueio do apontador foi negado porque o navegador falhou ao bloquear o apontador.
+HTMLSyncXHRWarning=O processamento HTML no XMLHttpRequest não é suportado no modo síncrono.
+# LOCALIZATION NOTE: %S is the name of the header in question
+ForbiddenHeaderWarning=Tentativa de definir um cabeçalho proibido foi negada: %S
+ResponseTypeSyncXHRWarning=A utilização do atributo responseType de XMLHttpRequest já não é suportada no modo síncrono no contexto da janela.
+TimeoutSyncXHRWarning=A utilização de XMLHttpRequest timeout não é suportada neste modo síncrono na janela de contexto.
+# LOCALIZATION NOTE: Do not translate navigator.sendBeacon, unload, pagehide, or XMLHttpRequest.
+UseSendBeaconDuringUnloadAndPagehideWarning=A utilização de navigator.sendBeacon em vez de XMLHttpRequest síncrono durante unload e pagehide melhora a experiência do utilizador.
+JSONCharsetWarning=Foi feita uma tentativa para declarar uma codificação não UTF-8 para JSON obtida usando XMLHttpRequest. Apenas UTF-8 é suportado para descodificar JSON.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and createMediaElementSource.
+MediaElementAudioSourceNodeCrossOrigin=O HTMLMediaElement passado para createMediaElementSource tem um recurso de origem cruzada, o nó irá apresentar silêncio na saída.
+# LOCALIZATION NOTE: Do not translate MediaStream and createMediaStreamSource.
+MediaStreamAudioSourceNodeCrossOrigin=O MediaStream passado para createMediaElementSource tem um recurso de origem cruzada, o nó irá apresentar silêncio na saída.
+# LOCALIZATION NOTE : Do not translate MediaStreamTrack and createMediaStreamTrackSource.
+MediaStreamTrackAudioSourceNodeCrossOrigin=O MediaStreamTrack passado para createMediaStreamTrackSource é um recurso de origem cruzada, o nó irá apresentar silêncio na saída.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
+MediaElementAudioCaptureOfMediaStreamError=O HTMLMediaElement capturado está a reproduzir uma MediaStream. Aplicar volume ou estado silenciado não é suportado atualmente.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
+MediaElementStreamCaptureCycle=O MediaStream atribuído ao srcObject vem de uma captura deste HTMLMediaElement, formando um ciclo; atribuição ignorada.
+MediaLoadExhaustedCandidates=Todos os recursos candidatos falharam o carregamento. Carregamento multimédia pausado.
+MediaLoadSourceMissingSrc=O elemento <source> não tem atributo “src”. O carregamento do recurso multimédia falhou.
+MediaStreamAudioSourceNodeDifferentRate=Ligar AudioNodes a partir de AudioContexts com taxa de amostragem diferente não é suportado atualmente.
+# 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=O carregamento HTTP falhou com o estado %1$S. O carregamento do recurso multimédia %2$S falhou.
+# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load.
+MediaLoadInvalidURI=URI inválido. O carregamento do recurso multimédia %S falhou.
+# 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=O atributo “type” de “%1$S” não é suportado. O carregamento do recurso multimédia %2$S falhou.
+MediaLoadUnsupportedTypeAttributeLoadingNextChild=O atributo “type” especificado como “%1$S” não é suportado. O carregamento do recurso de media %2$S falhou. A tentar carregar a partir do próximo elemento <source>.
+# 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=O HTTP “Content-Type” de “%1$S” não é suportado. O carregamento do recurso multimédia %2$S falhou.
+# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load because of error in decoding.
+MediaLoadDecodeError=O recurso multimédia %S não pode ser descodificado.
+MediaWidevineNoWMF=Tentar reproduzir Widevine sem Windows Media Foundation. Veja 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=Para reproduzir formatos de vídeo %S, precisa de instalar software da Microsoft extra, veja 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=O vídeo nesta página não pode ser reproduzido. O seu sistema pode não possuir os codecs de vídeo necessários para: %S
+MediaUnsupportedLibavcodec=Este vídeo nesta página não pode ser reproduzido. O seu sistema tem uma versão não suportada de libavcodec
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+MediaDecodeError=O recurso multimédia %1$S não pôde ser descodificado, erro: %2$S
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+MediaDecodeWarning=O recurso multimédia %1$S pôde ser descodificado, mas com o erro: %2$S
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaCannotPlayNoDecoders=Não foi possível reproduzir multimédia. Sem descodificadores para formatos solicitados: %S
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaNoDecoders=Sem decodificadores para alguns dos formatos solicitados: %S
+MediaCannotInitializePulseAudio=Não foi possível utilizar PulseAudio
+# LOCALIZATION NOTE: %S is the URL of the web page which is not served on HTTPS and thus is not encrypted and considered insecure.
+MediaEMEInsecureContextDeprecatedWarning=A utilização de Encrypted Media Extensions em %S num contexto inseguro (exemplo: não-HTTPS) está descontinuada e será removida brevemente. Deve considerar trocar para uma origem segura como 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=Chamar navigator.requestMediaKeySystemAccess() (em %S) sem passar um candidato MediaKeySystemConfiguration que contenha audioCapabilities ou videoCapabilities foi descontinuado e brevemente irá tornar-se não suportado.
+# 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=Chamar navigator.requestMediaKeySystemAccess() (em %S) a passar um candidato MediaKeySystemConfiguration que contenha audioCapabilities ou videoCapabilities sem um contentType com uma string “codecs” foi descontinuado e brevemente irá tornar-se não suportado.
+# LOCALIZATION NOTE: Do not translate "Mutation Event" and "MutationObserver"
+MutationEventWarning=A utilização de Mutation Events foi descontinuada. Em alternativa, utilize MutationObserver.
+BlockAutoplayError=A reprodução automática é apenas permitida quando aprovada pelo utilizador, o site está ativado pelo utilizador, ou multimédia está silenciada.
+BlockAutoplayWebAudioStartError=Um AudioContext foi impedido de iniciar automaticamente. Deve ser criado ou retomado após um gesto do utilizador na página.
+# LOCALIZATION NOTE: Do not translate "Components"
+ComponentsWarning=O objeto Components foi descontinuado. Brevemente será removido.
+PluginHangUITitle=Aviso: plugin não responde
+PluginHangUIMessage=%S pode estar ocupado ou pode ter deixado de responde. Pode parar o plugin agora, ou pode continuar a ver se o plugin responde.
+PluginHangUIWaitButton=Continuar
+PluginHangUIStopButton=Parar plugin
+# LOCALIZATION NOTE: Do not translate "NodeIterator" or "detach()".
+NodeIteratorDetachWarning=A invocação de detach() em NodeIterator já não tem efeito.
+# LOCALIZATION NOTE: Do not translate "LenientThis" and "this"
+LenientThisWarning=A ignorar obtenção ou definição da propriedade que tem [LenientThis] porque o objeto "this" está incorreto.
+# LOCALIZATION NOTE: Do not translate "captureEvents()" or "addEventListener()"
+UseOfCaptureEventsWarning=A utilização de captureEvents() foi descontinuada. Para atualizar o seu código, utilize o método DOM 2 addEventListener(). Para mais ajuda, consulte http://developer.mozilla.org/en/docs/DOM:element.addEventListener
+# LOCALIZATION NOTE: Do not translate "releaseEvents()" or "removeEventListener()"
+UseOfReleaseEventsWarning=A utilização de releaseEvents() foi descontinuada. Para atualizar o seu código, utilize o método DOM 2 removeEventListener(). Para mais ajuda, consulte http://developer.mozilla.org/en/docs/DOM:element.removeEventListener
+# LOCALIZATION NOTE: Do not translate "XMLHttpRequest"
+SyncXMLHttpRequestWarning=XMLHttpRequest síncrono na thread principal foi descontinuado devido ao seu efeito negativo na experiência do utilizador. Para mais ajuda http://xhr.spec.whatwg.org/
+# LOCALIZATION NOTE: Do not translate "XMLHttpRequest"
+SyncXMLHttpRequestDeprecatedWarning=XMLHttpRequest síncrono na thread principal está obsoleto devido aos seus efeitos prejudiciais à experiência do utilizador final. Para mais ajuda https://xhr.spec.whatwg.org/#sync-warning
+# LOCALIZATION NOTE: Do not translate "window.controllers/Controllers"
+Window_Cc_ontrollersWarning=window.controllers/Controllers foi descontinuado. Não o utilize para a deteção de UA.
+ImportXULIntoContentWarning=A importação de nós XUL no conteúdo de um documento foi descontinuado. Esta funcionalidade será removida brevemente.
+# LOCALIZATION NOTE: Do not translate "IndexedDB".
+IndexedDBTransactionAbortNavigation=Uma transação IndexedDB que ainda não estava terminada foi abortada devido à navegação na página.
+# LOCALIZATION NOTE: Do not translate Will-change, %1$S,%2$S are numbers.
+IgnoringWillChangeOverBudgetWarning=O consumo da memória will-change está muito alto. O limite é a área de superfície do documento multiplicada por %1$S (%2$S px). Todas as ocorrências de will-change do documento acima do limite serão ignoradas.
+# LOCALIZATION NOTE: Do not translate "Worker".
+HittingMaxWorkersPerDomain2=Um Worker não pôde ser iniciado imediatamente porque outros documentos na mesma origem já estão a utilizar o número máximo de workers. O Worker está na fila de espera e será iniciado depois de outros workers concluírem.
+# LOCALIZATION NOTE: Do not translate "Application Cache API", "AppCache" and "ServiceWorker".
+AppCacheWarning=A Application Cache API (AppCache) foi descontinuada e será removida no futuro. Por favor, considere utilizar ServiceWorker para suporte offline.
+# LOCALIZATION NOTE: Do not translate "Worker".
+EmptyWorkerSourceWarning=A tentar criar um Worker de uma fonte vazia. Possivelmente isto não foi intencional.
+NavigatorGetUserMediaWarning=navigator.mozGetUserMedia foi substituído por navigator.mediaDevices.getUserMedia
+# LOCALIZATION NOTE: Do not translate "RTCPeerConnection", "getLocalStreams", "getRemoteStreams", "getSenders" or "getReceivers".
+RTCPeerConnectionGetStreamsWarning=RTCPeerConnection.getLocalStreams/getRemoteStreams foram descontinuadas. Em alternativa, utilize RTCPeerConnection.getSenders/getReceivers.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL.
+InterceptionFailedWithURL=Falha ao carregar ‘%S’. Um ServiceWorker intercetou o pedido e encontrou um erro inesperado.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "cors", "Response", "same-origin" or "Request". %1$S is a URL, %2$S is a URL.
+CorsResponseForSameOriginRequest=Falha ao carregar ‘%1$S’ ao responder ‘%2$S’. Um ServiceWorker não é permitido de sintetizar uma cors Response para um 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=Falha ao carregar ‘%1$S’. Um ServiceWorker passou uma opaque Response para FetchEvent.respondWith() enquanto processava um FetchEvent ‘%2$S’. Objetos Opaque Response são apenas válidos quando o RequestMode é ‘no-cors’.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Error", "Response", "FetchEvent.respondWith()", or "fetch()". %S is a URL.
+InterceptedErrorResponseWithURL=Falha ao carregar ‘%S’. Um ServiceWorker passou uma Error Response para FetchEvent.respondWith(). Tipicamente isto significa que o ServiceWorker executou uma chamada fetch() inválida.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", or "Response.clone()". %S is a URL.
+InterceptedUsedResponseWithURL=Falha ao carregar ‘%S’. Um ServiceWorker passou uma Response utilizada para FetchEvent.respondWith(). O corpo de uma Response apenas pode ser lido uma vez. Utilize Response.clone() para aceder ao corpo várias vezes.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "opaqueredirect", "Response", "FetchEvent.respondWith()", or "FetchEvent". %S is a URL.
+BadOpaqueRedirectInterceptionWithURL=Falha ao carregar ‘%S’. Um ServiceWorker passou uma opaqueredirect Response para FetchEvent.respondWith() enquanto processava um FetchEvent não navegável.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", "RedirectMode" or "follow". %S is a URL.
+BadRedirectModeInterceptionWithURL=Falha ao carregar ‘%S’. Um ServiceWorker passou uma Response redirecionada para FetchEvent.respondWith() quando o RedirectMode não é ‘follow’.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker" or "FetchEvent.preventDefault()". %S is a URL.
+InterceptionCanceledWithURL=Falha ao carregar ‘%S’. Um ServiceWorker cancelou o carregamento ao chamar FetchEvent.preventDefault().
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "promise", or "FetchEvent.respondWith()". %1$S is a URL. %2$S is an error string.
+InterceptionRejectedResponseWithURL=Falha ao carregar ‘%1$S’. Um ServiceWorker passou uma promise para FetchEvent.respondWith() que rejeitou com ‘%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=Falha ao carregar ‘%1$S’. Um ServiceWorker passou uma promise para FetchEvent.respondWith() que resolveu com um valor não-Response ‘%2$S’.
+
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Service-Worker-Allowed" or "HTTP". %1$S and %2$S are URLs.
+ServiceWorkerScopePathMismatch=Falha ao registar um ServiceWorker: O caminho do âmbito providenciado '%1$S' não está dentro do âmbito máximo permitido '%2$S'. Ajuste o âmbito, mova o script do Service Worker, ou utilize o cabeçalho HTTP Service-Worker-Allowed para permitir o âmbito.
+# 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=Falha ao registar/atualizar um ServiceWorker para o âmbito ‘%1$S’: Carregamento falhou com o estado %2$S para o 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=Falha ao registar/atualizar um ServiceWorker para o âmbito ‘%1$S’: Foi recebido um Content-Type inválido de ‘%2$S’ para o script ‘%3$S’. Deve ser um tipo MIME de JavaScript.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL representing the scope of the ServiceWorker.
+ServiceWorkerRegisterStorageError=Falha ao registar/atualizar um ServiceWorker para o âmbito ‘%S’: Acesso ao armazenamento é restringido neste contexto devido a definições do utilizador ou modo de navegação privada.
+ServiceWorkerGetRegistrationStorageError=Falha ao obter registo(s) do service worker: Acesso ao armazenamento é restringido neste contexto devido a definições do utilizador ou modo de navegação privada.
+ServiceWorkerGetClientStorageError=Falha ao obter cliente(s) do service worker: Acesso ao armazenamento é restringido neste contexto devido a definições do utilizador ou modo de navegação privada.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker" and "postMessage". %S is a URL representing the scope of the ServiceWorker.
+ServiceWorkerPostMessageStorageError=O ServiceWorker para o âmbito ‘%S’ falhou a executar ‘postMessage‘ porque o acesso ao armazenamento é restringido neste contexto devido a definições do utilizador ou modo de navegação privada.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker.
+ServiceWorkerGraceTimeoutTermination=A terminar o ServiceWorker para o âmbito ‘%1$S’ com promessas waitUntil/respondWith pendentes por causa intervalo de graça.
+# LOCALIZATION NOTE (ServiceWorkerNoFetchHandler): Do not translate "Fetch".
+ServiceWorkerNoFetchHandler=Os processadores de eventos fetch têm de ser adicionados durante a avaliação inicial do script do worker.
+ExecCommandCutCopyDeniedNotInputDriven=document.execCommand(‘cut’/‘copy’) foi negado porque não foi invocado dentro de um processador de eventos de execução curta gerado pelo utilizador.
+ManifestIdIsInvalid=O ID do membro não resolveu para um endereço válido.
+ManifestIdNotSameOrigin=O ID do membro deve ter a mesma origem que o membro start_url.
+ManifestShouldBeObject=O manifest deve ser um objeto.
+ManifestScopeURLInvalid=O URL de âmbito é inválido.
+ManifestScopeNotSameOrigin=O URL de âmbito deve ser da mesma origem que o documento.
+ManifestStartURLOutsideScope=O URL de início está fora do âmbito, pelo que o âmbito é inválido.
+ManifestStartURLInvalid=O URL de início é inválido.
+ManifestStartURLShouldBeSameOrigin=O URL de início deve ser da mesma origem que o documento.
+# 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=Esperado que o membro %2$S de %1$S fosse um %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 não é uma cor CSS válida.
+# 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 não é um código de idioma válido.
+# 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=O item %1$S no índice %2$S é inválido. O membro %3$S é um URL inválido %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=O item %1$S no índice %2$S carece de um propósito utilizável. Será ignorado.
+# 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=O item %1$S no índice %2$S inclui propósito(s) não suportado(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=O item %1$S no índice %2$S inclui propósito(s) repetido(s): %3$S.
+PatternAttributeCompileFailure=Não foi possível verificar <input pattern='%S'> porque o padrão não é um regexp válido: %S
+# LOCALIZATION NOTE: Do not translate "postMessage" or DOMWindow. %S values are origins, like https://domain.com:port
+TargetPrincipalDoesNotMatch=Falha ao executar ‘postMessage’ em ‘DOMWindow’: A origem do destino providenciada (‘%S’) não corresponde à origem da janela do destinatário (‘%S’).
+# LOCALIZATION NOTE: Do not translate 'YouTube'. %S values are origins, like https://domain.com:port
+RewriteYouTubeEmbed=A reescrever o estilo antigo do Flash do YouTube embutido (%S) para iframe embutido (%S). Por favor atualize a página para utilizar um iframe em vez de embução/objeto, se possível.
+# LOCALIZATION NOTE: Do not translate 'YouTube'. %S values are origins, like https://domain.com:port
+RewriteYouTubeEmbedPathParams=A reescrever o estilo antigo do Flash do YouTube embutido (%S) para iframe embutido (%S). Os parâmetros não eram suportados pelas embuções de iframe e convertidos. Por favor atualize a página para utilizar um iframe em vez de embução/objeto, se possível.
+# 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=O ServiceWorker para o âmbito ‘%1$S’ falhou ao desencriptar a mensagem push. O cabeçalho ‘Encryption’ deve incluir um parâmetro ‘salt‘ único para cada mensagem. Veja https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 para mais informação.
+# 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=O ServiceWorker para o âmbito ‘%1$S’ falhou ao desencriptar a mensagem push. O cabeçalho ‘Crypto-Key’ deve incluir um parâmetro ‘dh‘ que contenha a chave pública da aplicação do servidor. Veja https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 para mais informação.
+# 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=O ServiceWorker para o âmbito ‘%1$S’ falhou ao desencriptar a mensagem push. O cabeçalho ‘Encryption-Key’ deve incluir um parâmetro ‘dh‘. Este cabeçalho foi descontinuado e será removido brevemente. Por favor, em alternativa, utilize ‘Crypto-Key‘ com ‘Content-Encoding: aesgcm‘. Veja https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 para mais informação.
+# 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=O ServiceWorker para o âmbito ‘%1$S’ falhou ao desencriptar a mensagem push. O cabeçalho ‘Content-Encoding’ deve ser ‘aesgcm‘. ‘aesgcm128‘ é permitido, mas foi descontinuado e será removido brevemente. Veja https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-2 para mais informação.
+# 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=O ServiceWorker para o âmbito ‘%1$S’ falhou ao desencriptar a mensagem push. O parâmetro ‘dh’ no cabeçalho ‘Crypto-Key‘ deve ser a chave pública Diffie-Hellman da aplicação do servidor, codificada com base64url (https://tools.ietf.org/html/rfc7515#appendix-C) e na forma "não comprimida" ou "bruta" (65 bytes antes de codificar). Veja https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 para mais informação.
+# 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=O ServiceWorker para o âmbito ‘%1$S’ falhou ao desencriptar a mensagem push. O parâmetro ‘salt’ no cabeçalho ‘Encryption‘ deve ser codificado com base64url (https://tools.ietf.org/html/rfc7515#appendix-C) e deve ter, pelo menos, 16 bytes antes de codificar. Veja https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 para mais informação.
+# 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=O ServiceWorker para o âmbito ‘%1$S’ falhou ao desencriptar a mensagem push. O parâmetro ‘rs’ no cabeçalho ‘Encryption‘ deve estar entre %2$S e 2^36-31, ou inteiramente omitido. Veja https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 para mais informação.
+# 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=O ServiceWorker para o âmbito ‘%1$S’ falhou ao desencriptar a mensagem push. Um registo na mensagem encriptada não foi preenchido corretamente. Veja https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-2 para mais informação.
+# 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=O ServiceWorker para o âmbito '%1$S' falhou ao desencriptar uma mensagem push. Para ajuda com encriptação, por favor veja 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=A ignorar a chamada ‘preventDefault()’ no evento do tipo ‘%1$S’ de uma escuta registada como ‘passive’.
+# LOCALIZATION NOTE: 'ImageBitmapRenderingContext.transferImageBitmap' and 'ImageBitmapRenderingContext.transferFromImageBitmap' should not be translated
+ImageBitmapRenderingContext_TransferImageBitmapWarning=ImageBitmapRenderingContext.transferImageBitmap foi descontinuado e será removido brevemente. Em alternativa, utilize ImageBitmapRenderingContext.transferFromImageBitmap.
+IIRFilterChannelCountChangeWarning=Mudanças do contador de canal de IIRFilterNode podem produzir falhas no áudio.
+BiquadFilterChannelCountChangeWarning=Mudanças do contador de canal de BiquadFilterNode podem produzir falhas no áudio.
+# LOCALIZATION NOTE: Do not translate ".png"
+GenericImageNamePNG=imagem.png
+GenericFileName=ficheiro
+GeolocationInsecureRequestIsForbidden=Um pedido de geolocalização pode apenas ser realizado num contexto seguro.
+NotificationsInsecureRequestIsForbidden=A permissão de notificação só pode ser solicitada num contexto seguro.
+NotificationsCrossOriginIframeRequestIsForbidden=A permissão de Notificação só pode ser solicitada num documento de nível de topo ou numa iframe com a mesma origem.
+NotificationsRequireUserGesture=A permissão de notificação apenas pode ser solicitada a partir de dentro de um processador de eventos de execução curta gerado pelo utilizador.
+NotificationsRequireUserGestureDeprecationWarning=A solicitação de uma permissão de Notificação fora de um manipulador de evento de execução curta e gerado pelo utilizador está descontinuada e deixará de ser suportada no futuro.
+# LOCALIZATION NOTE: Do not translate "content", "Window", and "window.top"
+WindowContentUntrustedWarning=O atributo ‘content’ dos objetos Window foi descontinuado. Em alternativa, por favor utilize ‘window.top’.
+# 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=O SVG <%S> com ID “%S” tem um ciclo de referência.
+# 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=Uma cadeia de referência do SVG <%S> que é demasiado longa foi abandonada no elemento com o ID “%S”.
+# LOCALIZATION NOTE: Do not translate SVGGraphicsElement.nearestViewportElement or SVGElement.viewportElement.
+SVGNearestViewportElement=SVGGraphicsElement.nearestViewportElement está obsoleto e será removido no futuro. Como alternativa, utilize SVGElement.viewportElement.
+# LOCALIZATION NOTE: Do not translate SVGGraphicsElement.farthestViewportElement.
+SVGFarthestViewportElement=SVGGraphicsElement.farthestViewportElement está obsoleto e será removido no futuro.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceEmpty=‘%S’ atributo do elemento <script> está vazio.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceInvalidUri=‘%S’ atributo do elemento <script> não é um URI válido: “%S”
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceLoadFailed=O carregamento falhou para o <script> com fonte “%S”.
+ModuleSourceLoadFailed=O carregamento falhou para o módulo com fonte “%S”.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceMalformed=Fonte URI <script> está mal formada: “%S”.
+ModuleSourceMalformed=Módulo fonte URI está mal formado: “%S”.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceNotAllowed=Fonte URI <script> não é permitida neste documento: “%S”.
+ModuleSourceNotAllowed=Módulo fonte URI não é permitido neste documento: “%S”.
+WebExtContentScriptModuleSourceNotAllowed=Os scripts de conteúdo de extensões web só podem carregar módulos com endereços moz-extension e não: “%S”.
+ModuleResolveFailureNoWarn=Erro ao resolver o especificador do módulo “%S”.
+ModuleResolveFailureWarnRelative=Erro ao resolver o especificador de módulo “%S”. Os especificadores relativos de módulos devem começar com “./”, “../” ou “/”.
+ImportMapInvalidTopLevelKey=Uma chave de nível superior inválida “%S” estava presente no mapa de importação.
+ImportMapEmptySpecifierKeys=As chaves do especificador não podem ser strings vazias.
+ImportMapAddressesNotStrings=Os endereços precisam de ser strings.
+ImportMapInvalidAddress=O endereço “%S” era inválido.
+# %1$S is the specifier key, %2$S is the URL.
+ImportMapAddressNotEndsWithSlash=Um endereço inválido foi fornecido para a chave especificada “%1$S”; já que “%1$S” termina numa barra, o endereço “%2$S” também precisa.
+ImportMapScopePrefixNotParseable=O URL de prefixo de âmbito “%S” não pode ser analisado.
+ImportMapResolutionBlockedByNullEntry=A resolução do especificador “%S” foi bloqueada por uma entrada nula.
+ImportMapResolutionBlockedByAfterPrefix=A resolução do especificador “%S” foi bloqueada porque a substring após o prefixo não pôde ser analisada como uma URL relativa ao endereço no mapa de importação.
+ImportMapResolutionBlockedByBacktrackingPrefix=A resolução do especificador “%S” foi bloqueada porque a URL analisada não inicia com o endereço no mapa de importação.
+ImportMapResolveInvalidBareSpecifierWarnRelative=O especificador “%S” era um especificador simples, mas não foi remapeado para alguma coisa. Os especificadores de módulo relativos devem começar com “./”, “../” ou “/”.
+# LOCALIZATION NOTE: Do not translate "<script type='importmap'>", "src".
+ImportMapExternalNotSupported=Mapas de importação externos não são suportados: <script type='importmap'> com um atributo src não é suportado neste momento.
+ImportMapNotAllowedMultiple=Não são permitidos múltiplos mapas de importação.
+ImportMapNotAllowedAfterModuleLoad=Não são permitidos mapas de importação após o carregamento ou pré-carregamento de um módulo ter sido iniciado.
+# LOCALIZATION NOTE: %1$S is the invalid property value and %2$S is the property name.
+InvalidKeyframePropertyValue=O valor da propriedade keyframe “%1$S” é inválido de acordo com a sintaxe para “%2$S”.
+# LOCALIZATION NOTE: Do not translate "ReadableStream".
+ReadableStreamReadingFailed=Falha ao ler dados de ReadableStream: “%S”.
+# LOCALIZATION NOTE: Do not translate "registerProtocolHandler"
+RegisterProtocolHandlerPrivateBrowsingWarning=Não pode utilizar registerProtocolHandler dentro do modo de navegação privada.
+MotionEventWarning=Utilização de sensor de movimento está obsoleta.
+OrientationEventWarning=Utilização de sensor de orientação está obsoleta.
+ProximityEventWarning=Utilização de sensor de proximidade está obsoleta.
+AmbientLightEventWarning=Utilização de sensor de luz de ambiente está obsoleta.
+UnsupportedEntryTypesIgnored=A ignorar entryTypes não suportados: %S.
+AllEntryTypesIgnored=Sem entryTypes válidos; a abortar registo.
+# LOCALIZATION NOTE: do not localize key=“%S” modifiers=“%S” id=“%S”
+GTK2Conflict2=Evento de tecla não disponível no GTK2: key=“%S” modifiers=“%S” id=“%S”
+WinConflict2=Evento de tecla não disponível em algumas disposições de teclado: key=“%S” modifiers=“%S” id=“%S”
+# LOCALIZATION NOTE: do not translated "document.domain"
+DocumentSetDomainNotAllowedWarning=Definir document.domain num ambiente isolado de origem cruzada não é permitido.
+
+#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=A utilização de CanvasRenderingContext2D em createImageBitmap foi descontinuada.
+
+# LOCALIZATION NOTE (DrawWindowCanvasRenderingContext2DWarning): Do not translate CanvasRenderingContext2D, drawWindow and tabs.captureTab.
+DrawWindowCanvasRenderingContext2DWarning=A utilização do método drawWindow de CanvasRenderingContext2D está obsoleto. Como alternativa, utilize a API de extensões tabs.captureTab https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/tabs/captureTab
+
+# LOCALIZATION NOTE (MozRequestFullScreenDeprecatedPrefixWarning): Do not translate mozRequestFullScreen.
+MozRequestFullScreenDeprecatedPrefixWarning=mozRequestFullScreen() foi descontinuado.
+# LOCALIZATION NOTE (MozfullscreenchangeDeprecatedPrefixWarning): Do not translate onmozfullscreenchange.
+MozfullscreenchangeDeprecatedPrefixWarning=onmozfullscreenchange foi descontinuado.
+# LOCALIZATION NOTE (MozfullscreenerrorDeprecatedPrefixWarning): Do not translate onmozfullscreenerror.
+MozfullscreenerrorDeprecatedPrefixWarning=onmozfullscreenerror foi descontinuado.
+# LOCALIZATION NOTE(External_AddSearchProviderWarning): Do not translate AddSearchProvider.
+External_AddSearchProviderWarning=AddSearchProvider foi descontinuado.
+
+# LOCALIZATION NOTE: Do not translate "MouseEvent.mozPressure" and "PointerEvent.pressure".
+MouseEvent_MozPressureWarning=MouseEvent.mozPressure foi descontinuado. Em alternativa, utilize PointerEvent.pressure.
+# LOCALIZATION NOTE: Do not translate small, normal, big and mathsize.
+MathML_DeprecatedMathSizeValueWarning=“small”, “normal” e “big” são valores descontinuados para o atributo mathsize e serão removidos no futuro.
+# LOCALIZATION NOTE: Do not translate veryverythinmathspace, verythinmathspace,
+# thinmathspace, mediummathspace, thickmathspace, verythickmathspace, veryverythickmathspace and MathML.
+MathML_DeprecatedMathSpaceValueWarning=“veryverythinmathspace”, “verythinmathspace”, “thinmathspace”, “mediummathspace”, “thickmathspace”, “verythickmathspace” e “veryverythickmathspace” são valores descontinuados para comprimentos no MathML e serão removidos no futuro.
+# LOCALIZATION NOTE: Do not translate MathML, background, color, fontfamily, fontsize, fontstyle and fontweight.
+MathML_DeprecatedStyleAttributeWarning=Os atributos MathML “background”, “color”, “fontfamily”, “fontsize”, “fontstyle” e “fontweight” estão obsoletos e serão removidos no futuro.
+# LOCALIZATION NOTE: Do not translate "MouseEvent.mozInputSource" and "PointerEvent.pointerType".
+MozInputSourceWarning=MouseEvent.mozInputSource está obsoleto. Utilize PointerEvent.pointerType em substituição.
+# LOCALIZATION NOTE: Do not translate "initMouseEvent()" and "MouseEvent()".
+InitMouseEventWarning=initMouseEvent() está obsoleto. Utilize o construtor MouseEvent() em substituição.
+# LOCALIZATION NOTE: Do not translate "initNSMouseEvent()" and "MouseEvent()".
+InitNSMouseEventWarning=initNSMouseEvent() está obsoleto. Utilize o construtor MouseEvent() em substituição.
+# LOCALIZATION NOTE: Do not translate MathML. %S is the deprecated length value.
+MathML_DeprecatedMathSpaceValue2Warning=Valor de comprimento MathML “%S” está obsoleto e será removido numa data futura.
+# LOCALIZATION NOTE: Do not translate mathvariant or MathML. %S is the deprecated value of the mathvariant attribute.
+MathML_DeprecatedMathVariantWarning=“mathvariant='%S'” em elementos MathML está obsoleto e será removido numa data futura.
+# LOCALIZATION NOTE: Do not translate MathML and STIXGeneral. %S is a documentation URL.
+MathML_DeprecatedStixgeneralOperatorStretchingWarning=O suporte para renderização de operadores MathML estendidos com tipos de letra STIXGeneral foi descontinuado e poderá ser removido no futuro. Para detalhes sobre os tipos de letra mais recentes que continuarão a ser suportados, consulte %S
+# LOCALIZATION NOTE: Do not translate MathML and scriptminsize.
+MathML_DeprecatedScriptminsizeAttributeWarning=O atributo “scriptminsize” do MathML está descontinuado e será removido no futuro.
+# LOCALIZATION NOTE: Do not translate MathML and scriptsizemultiplier.
+MathML_DeprecatedScriptsizemultiplierAttributeWarning=O atributo “scriptsizemultiplier” do MathML está descontinuado e será removido no futuro.
+FormSubmissionUntrustedEventWarning=O envio de formulários através de um evento de submissão não confiável está obsoleto e será removido no futuro.
+
+# LOCALIZATION NOTE: Do not translate "sizeToContent()".
+SizeToContentWarning=sizeToContent() está obsoleto e será removido no futuro.
+
+WebShareAPI_Failed=A operação de partilha falhou.
+WebShareAPI_Aborted=A operação de partilha foi abortada.
+# LOCALIZATION NOTE (UnknownProtocolNavigationPrevented): %1$S is the destination URL.
+UnknownProtocolNavigationPrevented=A navegação para “%1$S” foi impedida devido a um protocolo desconhecido.
+PostMessageSharedMemoryObjectToCrossOriginWarning=Não é possível enviar uma mensagem que contenha um objeto de memória partilhada para uma janela de origem cruzada.
+# LOCALIZATION NOTE: %S is the URL of the resource in question
+UnusedLinkPreloadPending=O recurso em “%S” pré-carregado com o pré-carregamento da ligação não foi utilizado no espaço de alguns segundos. Verifique se todos os atributos da tag de pré-carregamento estão corretamente definidos.
+
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-same-origin and sandbox (though you may translate "sandboxed").
+RequestStorageAccessNullPrincipal=document.requestStorageAccess() não pode ser invocado num documento com uma origem opaca, como um iframe isolada sem o valor allow-same-origin no respetivo atributo sandbox.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-storage-access-by-user-activation and sandbox (though you may translate "sandboxed").
+RequestStorageAccessSandboxed=document.requestStorageAccess() não pode ser invocado numa iframe isolada sem o valor allow-storage-access-by-user-activation no respetivo atributo sandbox.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess() and iframe.
+RequestStorageAccessNested=document.requestStorageAccess() não pode ser invocado numa iframe em cascata.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(). In some locales it may be preferable to not translate "event handler", either.
+RequestStorageAccessUserGesture=document.requestStorageAccess() apenas pode ser solicitado dentro de um processador de evento de execução curta gerado pelo utilizador.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), Permissions Policy and storage-access.
+RequestStorageAccessPermissionsPolicy=document.requestStorageAccess() não pode ser invocado onde a funcionalidade de acesso ao armazenamento está bloqueada pela Política de Permissões.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess()
+RequestStorageAccessNotSecureContext=document.requestStorageAccess() apenas pode conceder acesso a contextos seguros.
+# LOCALIZATION NOTE: Do not translate "Location" and "History".
+LocChangeFloodingPrevented=Demasiadas invocações às API de localização ou de histórico num curto espaço de tempo.
+FolderUploadPrompt.title = Confirmar envio
+# LOCALIZATION NOTE: %S is the name of the folder the user selected in the file picker.
+FolderUploadPrompt.message = Tem a certeza que pretende carregar todos os ficheiros de “%S”? Só o deve fazer se confiar no site.
+FolderUploadPrompt.acceptButtonLabel = Carregar
+InputPickerBlockedNoUserActivation=O seletor <input> foi bloqueado por não ter sido ativado pelo utilizador.
+ExternalProtocolFrameBlockedNoUserActivation=O iframe com protocolo externo foi bloqueado por não ter sido ativado pelo utilizador ou porque não passou tempo suficiente desde que o último iframe deste tipo foi carregado.
+MultiplePopupsBlockedNoUserActivation=A abertura de múltiplos pop-ups foi bloqueada por não ter sido ativada pelo utilizador.
+# LOCALIZATION NOTE: %S is the URL of the preload that was ignored.
+PreloadIgnoredInvalidAttr=O pré-carregamento de %S foi ignorado devido a valores desconhecidos de “as” ou “type” ou atributo “media” não coincidente.
+# LOCALIZATION NOTE: %S is the blob URL. Don't translate "agent cluster".
+BlobDifferentClusterError=Não é possível aceder ao endereço blob “%S” a partir de um grupo de agentes diferente.
+# LOCALIZATION NOTE: %S is the blob URL. Don't translate "partition key".
+PartitionKeyDifferentError=Não é possível aceder ao URL do blob “%S” com uma chave de partição diferente.
+# LOCALIZATION NOTE: Do not translate "Element.setCapture()" and "Element.setPointerCapture()"".
+ElementSetCaptureWarning=Element.setCapture () está obsoleto. Como alternativa, utilize Element.setPointerCapture(). Para obter mais ajuda, consulte https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture
+# LOCALIZATION NOTE: Do not translate "Element.releaseCapture()" and "Element.releasePointerCapture()".
+ElementReleaseCaptureWarning=Element.releaseCapture () está obsoleto. Como alternativa, utilize Element.releasePointerCapture(). Para obter mais ajuda, consulte https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture
+# LOCALIZATION NOTE: Do not translate "Document.releaseCapture()" and "Element.releasePointerCapture()".
+DocumentReleaseCaptureWarning=Document.releaseCapture () está obsoleto. Como alternativa, utilize Element.releasePointerCapture(). Para obter mais ajuda, consulte 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=O valor de browser.runtime.lastError não foi verificado: %S
+
+# LOCALIZATION NOTE: Do not translate "OffscreenCanvas.toBlob()" and "OffscreenCanvas.convertToBlob()".
+OffscreenCanvasToBlobWarning=OffscreenCanvas.toBlob() está obsoleto. Como alternativa utilize OffscreenCanvas.convertToBlob().
+
+# LOCALIZATION NOTE: Do not translate "InstallTrigger"
+InstallTriggerDeprecatedWarning=O InstallTrigger está obsoleto e será removido no futuro.
+# LOCALIZATION NOTE: Do not translate "InstallTrigger.install()"
+InstallTriggerInstallDeprecatedWarning=O InstallTrigger.install() está obsoleto e será removido no futuro. Para obter mais ajuda vá a 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=A expansão da lista de opções do <select> via a atribuição de HTMLOptionsCollection.length (valor %1$S) foi recusada. O tamanho máximo suportado é de %2$S.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/extensions.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/extensions.properties
new file mode 100644
index 0000000000..e736902494
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/extensions.properties
@@ -0,0 +1,27 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#LOCALIZATION NOTE (uninstall.confirmation.title) %S is the name of the extension which is about to be uninstalled.
+uninstall.confirmation.title = Desinstalar %S
+
+#LOCALIZATION NOTE (uninstall.confirmation.message) %S is the name of the extension which is about to be uninstalled.
+uninstall.confirmation.message = A extensão “%S” está a solicitar para ser desinstalada. O que gostaria de fazer?
+
+uninstall.confirmation.button-0.label = Desinstalar
+uninstall.confirmation.button-1.label = Manter instalada
+
+saveaspdf.saveasdialog.title = Guardar como
+
+#LOCALIZATION NOTE (newTabControlled.message2) %S is the icon and name of the extension which updated the New Tab page.
+newTabControlled.message2 = Uma extensão, %S, alterou a página que vê quando abre um novo separador.
+newTabControlled.learnMore = Saber mais
+
+#LOCALIZATION NOTE (homepageControlled.message) %S is the icon and name of the extension which updated the homepage.
+homepageControlled.message = Uma extensão, %S, alterou o que vê quando abre a sua página inicial e novas janelas.
+homepageControlled.learnMore = Saber mais
+
+#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 = Uma extensão, %1$S, está a ocultar alguns dos seus separadores. Pode ainda aceder a todos os seus separadores a partir de %2$S.
+tabHideControlled.learnMore = Saber mais
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/fallbackMenubar.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/fallbackMenubar.properties
new file mode 100644
index 0000000000..747a3e95b1
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/fallbackMenubar.properties
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# OSX only. Default menu label when there is no xul menubar.
+
+quitMenuitem.label=Sair
+quitMenuitem.key=q
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/filepicker.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/filepicker.properties
new file mode 100644
index 0000000000..3532abff40
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Todos os ficheiros
+htmlTitle=Ficheiros HTML
+textTitle=Ficheiros de texto
+imageTitle=Imagens
+xmlTitle=Ficheiros XML
+xulTitle=Ficheiros XUL
+appsTitle=Aplicações
+audioTitle=Ficheiros de áudio
+videoTitle=Ficheiros de vídeo
+
+pdfTitle=Ficheiros PDF
+
+formatLabel=Formato:
+selectedFileNotReadableError=O ficheiro selecionado não tem permissões de leitura
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/global-strres.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/global-strres.properties
new file mode 100644
index 0000000000..a51c72191d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Ocorreu um erro desconhecido (%1$S)
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/intl.css b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/intl.css
new file mode 100644
index 0000000000..2f54eb367d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/intl.css
@@ -0,0 +1,11 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/*
+ * This file contains all localizable skin settings such as
+ * font, layout, and geometry
+ */
+window {
+ font: 3mm tahoma,arial,helvetica,sans-serif;
+}
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/intl.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/intl.properties
new file mode 100644
index 0000000000..83ef935339
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=pt-PT, pt, en, en-US
+
+# LOCALIZATION NOTE (font.language.group):
+# This preference controls the initial setting of the language drop-down menu
+# in the Content > Fonts & Colors > Advanced preference panel.
+#
+# Set it to the value of one of the menuitems in the "selectLangs" menulist in
+# http://dxr.mozilla.org/mozilla-central/source/browser/components/preferences/fonts.xul
+font.language.group=x-western
+
+# LOCALIZATION NOTE (pluralRule): Pick the appropriate plural rule for your
+# language. This will determine how many plural forms of a word you will need
+# to provide and in what order.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+pluralRule=1
+
+# LOCALIZATION NOTE (intl.menuitems.alwaysappendaccesskeys, intl.menuitems.insertseparatorbeforeaccesskeys):
+# Valid values are: true, false, <empty string>
+# Missing preference or empty value equals false.
+intl.menuitems.alwaysappendaccesskeys=
+intl.menuitems.insertseparatorbeforeaccesskeys=true
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/keys.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/keys.properties
new file mode 100644
index 0000000000..e498e528ef
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Seta para cima
+VK_DOWN=Seta para baixo
+VK_LEFT=Seta para a esquerda
+VK_RIGHT=Seta para a direita
+VK_PAGE_UP=Page Up
+VK_PAGE_DOWN=Page Down
+# LOCALIZATION NOTE : BLOCK end GLYPHS
+
+# Enter, backspace, and Tab might have both glyphs and text
+# if the keyboards usually have a glyph,
+# if there is a meaningful translation,
+# or if keyboards are localized
+# then translate them or insert the appropriate glyph
+# otherwise you should probably just translate the glyph regions
+
+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=Fim
+
+VK_ESCAPE=Esc
+VK_INSERT=Ins
+# LOCALIZATION NOTE : BLOCK end
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout/HtmlForm.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout/HtmlForm.properties
new file mode 100644
index 0000000000..7a77a5c78a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Repor
+Submit=Submeter pedido
+Browse=Explorar…
+FileUpload=Carregar ficheiro
+DirectoryUpload=Selecionar a pasta a carregar
+DirectoryPickerOkButtonLabel=Carregar
+ForgotPostWarning=O formulário contém enctype=%S, mas não contém method=post. Submissão normal com method=GET e sem enctype.
+ForgotFileEnctypeWarning=O formulário contém um campo de ficheiro, mas não contem method=POST e enctype=multipart/form-data no formulário. O ficheiro não será enviado.
+# LOCALIZATION NOTE (DefaultFormSubject): %S will be replaced with brandShortName
+DefaultFormSubject=Formulário do %S
+CannotEncodeAllUnicode=Foi submetido um formulário com a codificação %S que não foi codificado com todos os caracteres Unicode, por isso a introdução pelo utilizador pode estar danificada. Para evitar este problema, a página pode ser alterada para que o formulário seja submetido na codificação UTF-8, mudando a codificação da página para UTF-8 ou especificando accept-charset=utf-8 no elemento do formulário.
+AllSupportedTypes=Todos os tipos suportados
+# LOCALIZATION NOTE (NoFileSelected): this string is shown on a
+# <input type='file'> when there is no file selected yet.
+NoFileSelected=Nenhum ficheiro selecionado.
+# LOCALIZATION NOTE (NoFilesSelected): this string is shown on a
+# <input type='file' multiple> when there is no file selected yet.
+NoFilesSelected=Nenhuns ficheiros selecionados.
+# LOCALIZATION NOTE (NoDirSelected): this string is shown on a
+# <input type='file' directory/webkitdirectory> when there is no directory
+# selected yet.
+NoDirSelected=Nenhum diretório selecionado.
+# 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 ficheiros selecionados.
+ColorPicker=Escolha uma cor
+# 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=Detalhes
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout/MediaDocument.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout/MediaDocument.properties
new file mode 100644
index 0000000000..b27722175f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout/MediaDocument.properties
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#LOCALIZATION NOTE (ImageTitleWithDimensions2AndFile): first %S is filename, second %S is type, third %S is width and fourth %S is height
+#LOCALIZATION NOTE (ImageTitleWithoutDimensions): first %S is filename, second %S is type
+#LOCALIZATION NOTE (ImageTitleWithDimensions2): first %S is type, second %S is width and third %S is height
+#LOCALIZATION NOTE (ImageTitleWithNeitherDimensionsNorFile): first %S is type
+#LOCALIZATION NOTE (MediaTitleWithFile): first %S is filename, second %S is type
+#LOCALIZATION NOTE (MediaTitleWithNoInfo): first %S is type
+ImageTitleWithDimensions2AndFile=%S (imagem %S, %S × %S pixeis)
+ImageTitleWithoutDimensions=%S (Imagem %S)
+ImageTitleWithDimensions2=(Imagem %S, %S × %S pixeis)
+ImageTitleWithNeitherDimensionsNorFile=(Imagem %S)
+MediaTitleWithFile=%S (Objeto %S)
+MediaTitleWithNoInfo=(Objeto %S)
+
+InvalidImage=A imagem “%S” não pode ser apresentada porque contém erros.
+UnsupportedImage=A imagem “%S” não pode ser apresentada porque requer funcionalidades não suportadas.
+ScaledImage=Redimensionado (%S%%)
+
+TitleWithStatus=%S - %S
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout/htmlparser.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout/htmlparser.properties
new file mode 100644
index 0000000000..73cbe215f0
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout/htmlparser.properties
@@ -0,0 +1,145 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Encoding warnings and errors
+EncNoDeclarationFrame=A codificação de caracteres do documento não foi declarada. O documento pode parecer diferente se visualizado sem o frame do documento.
+EncXmlDecl=A codificação de caracteres de um documento HTML foi declarada utilizando a sintaxe de declaração XML. Isto não está em conformidade e declarar a codificação utilizando uma tag meta no início da secção head é mais eficiente.
+EncMetaTooLate=Uma tag meta com a tentativa de declaração da codificação de caracteres foi encontrada demasiado tarde e a codificação foi inferida a partir do conteúdo. A tag meta precisa de ser movida para o início da secção head do documento.
+EncMetaTooLateFrame=Uma tag meta com a tentativa de declaração da codificação de caracteres foi encontrada demasiado tarde e foi utilizada a codificação de carateres do documento pai. A tag meta precisa de ser movida para o início da secção head do documento.
+EncMetaAfterHeadInKilobyte=A tag meta que declara a codificação de caracteres do documento deve ser movida para o início da secção head do documento.
+EncNoDecl=A codificação de caracteres do documento não foi declarada, portanto, a codificação foi inferida a partir do conteúdo. A codificação de caracteres precisa ser declarada no cabeçalho HTTP Content-Type, utilizando uma tag meta ou uma marca de ordem de byte.
+EncNoDeclPlain=A codificação de caracteres do documento não foi declarada, portanto, a codificação foi inferida a partir do conteúdo. A codificação de caracteres precisa ser declarada no cabeçalho HTTP Content-Type ou utilizando uma marca de ordem de byte.
+EncMetaUnsupported=Foi declarada uma codificação de caracteres não suportados para o documento HTML usando uma meta tag. A declaração foi ignorada.
+EncProtocolUnsupported=Foi declarada uma codificação de caracteres não suportados ao nível do protocolo de transferência. A declaração foi ignorada.
+EncMetaUtf16=Foi usada uma meta tag para declarar uma codificação de caracteres como UTF-16. Em alternativa foi interpretada como uma declaração UTF-8.
+EncMetaUserDefined=Foi usada uma meta tag para declarar a codificação de caracteres como x-user-defined. Isto foi interpretado, em alternativa, como uma declaração windows-1252 para compatibilidade com tipos de letra legados mal codificados. Este site deve migrar para Unicode.
+
+EncMetaReplacement=Foi utilizada uma tag meta para declarar uma codificação perigosa para scripts cruzados entre sites. Como alternativa mais segura, foi utilizada uma codificação de substituição.
+EncProtocolReplacement=Uma codificação perigosa para scripts cruzados entre sites foi declarada ao nível do protocolo de transferência. Como alternativa mais segura, foi utilizada uma codificação de substituição.
+EncDetectorReload=A codificação de caracteres do documento não foi declarada, portanto, a codificação foi inferida tardiamenta a partir do conteúdo. Isto fez com que o documento tivesse de ser recarregado. A codificação de caracteres precisa ser declarada no cabeçalho HTTP Content-Type, utilizando uma tag meta ou uma marca de ordem de byte.
+EncDetectorReloadPlain=A codificação de caracteres do documento não foi declarada, portanto, a codificação foi inferida tardiamenta a partir do conteúdo. Isto fez com que o documento tivesse de ser recarregado. A codificação de caracteres precisa ser declarada no cabeçalho HTTP Content-Type ou utilizando uma marca de ordem de byte.
+EncError=O fluxo de bytes estava incorreto de acordo com a codificação de caracteres que foi declarada. A declaração de codificação de caracteres pode estar incorreta.
+EncErrorFrame=O fluxo de bytes estava incorreto de acordo com a codificação de caracteres que foi herdada do documento pai. A codificação de caracteres precisa ser declarada no cabeçalho HTTP Content-Type, utilizando uma tag meta ou uma marca de ordem de byte.
+EncErrorFramePlain=O fluxo de bytes estava incorreto de acordo com a codificação de caracteres que foi herdada do documento pai. A codificação de caracteres precisa ser declarada no cabeçalho HTTP Content-Type ou utilizando uma marca de ordem de byte.
+EncSpeculationFailMeta=O início do documento foi reinterpretado porque haviam caracteres não ASCII antes da tag meta que declarava a codificação. A meta deve ser o primeiro filho de head sem comentários não ASCII antes da mesma.
+EncSpeculationFailXml=O início do documento foi reinterpretado porque haviam caracteres não ASCII na parte do documento na qual se tentou identificar sem sucesso uma tag meta antes de se mudar para o método alternativo da sintaxe de declaração XML. Deve ser utilizada uma tag meta no início da secção head em vez da sintaxe da declaração XML.
+# The audience of the following message isn't the author of the document but other people debugging browser behavior.
+EncSpeculationFail2022=O início do documento foi novamente reanalisado, porque ISO-2022-JP é uma codificação incompatível com ASCII.
+
+# 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=Lixo após “</”.
+errLtSlashGt=Observado “</>”. Causas prováveis: “<” sem escape (escape como “&lt;”) ou fim de etiqueta mal escrito.
+errCharRefLacksSemicolon=A referência do caractere não foi terminada com ponto e vírgula.
+errNoDigitsInNCR=Sem dígitos na referência numérica do caractere.
+errGtInSystemId=“>” no identificador de sistema.
+errGtInPublicId=“>” no identificador público.
+errNamelessDoctype=Doctype sem nome.
+errConsecutiveHyphens=Hífens consecutivos não terminaram um comentário. “--” não é permitido dentro de um comentário, mas ex. “- -” já é.
+errPrematureEndOfComment=Fim de comentário prematuro. Use “-->” terminar o comentário corretamente.
+errBogusComment=Comentário falso.
+errUnquotedAttributeLt=“<” é um valor de atributo não citado. Causa provável: Falta “>” imediatamente antes.
+errUnquotedAttributeGrave=“`” é um valor de atributo não citado. Causa provável: Uso do caractere errado como citação.
+errUnquotedAttributeQuote=Citação num valor de atributo não citado. Causas prováveis: Atributos executados em conjunto ou uma string dum pedido URL num valor de atributo não citado.
+errUnquotedAttributeEquals=“=” num valor de atributo não citado. Causas prováveis: Atributos executados em conjunto ou uma string dum pedido URL num valor de atributo não citado.
+errSlashNotFollowedByGt=Uma barra não foi imediatamente seguida por “>”.
+errNoSpaceBetweenAttributes=Nenhum espaço entre atributos.
+errUnquotedAttributeStartLt=“<” no início de um valor de atributo não citado. Causa provável: Falta “>” imediatamente antes.
+errUnquotedAttributeStartGrave=“`” no início de um valor de atributo não citado. Causa provável: Uso do caractere errado como citação.
+errUnquotedAttributeStartEquals=“=” no início de um valor de atributo não citado. Causa provável: Sinal de igualdade duplicado.
+errAttributeValueMissing=Valor do atributo em falta.
+errBadCharBeforeAttributeNameLt=Observado “<” ao esperar a atributo de um nome. Causa provável: Falta “>” imediatamente antes.
+errEqualsSignBeforeAttributeName=Observado “=” ao esperar a atributo de um nome. Causa provável: Nome do atributo em falta.
+errBadCharAfterLt=Caractere inválido após “<”. Causa provável: “<” sem escape. Tente escapar com “&lt;”.
+errLtGt=Observado “<>”. Causas prováveis: “<” sem escape (escape como “&lt;”) ou início de etiqueta mal escrito.
+errProcessingInstruction=Observado “<?”. Causa provável: Tentativa de utilizar uma instrução de processamento XML em HTML. (instruções de processamento XML não são suportadas em HTML.)
+errUnescapedAmpersandInterpretedAsCharacterReference=A string seguinte a “&” foi interpretada como uma referência de caractere. (Provavelmente “&” deveria ter sido escapado como “&amp;”.)
+errNotSemicolonTerminated=A referência do caractere não foi terminada com um ponto e vírgula. (Ou “&” deveria ter sido escapada como “&amp;”.)
+errNoNamedCharacterMatch=“&” não iniciou uma referência de caractere. (Provavelmente “&” deveria ter sido escapado como “&amp;”.)
+errQuoteBeforeAttributeName=Observada uma citação quando esperava um nome do atríbuto. Causa provável: “=” em falta imediatamente antes.
+errLtInAttributeName=“<” no nome do atríbuto. Causa provável: “>” em falta imediatamente antes.
+errQuoteInAttributeName=Citação no nome do atríbuto. Causa provável: Correspondente citação em falta anteriormente.
+errExpectedPublicId=Esperado um identificador público mas o doctype terminou.
+errBogusDoctype=Falso doctype.
+maybeErrAttributesOnEndTag=O fim da etiqueta tinha atributos.
+maybeErrSlashInEndTag=Dispersão “/” no fim do fim de uma etiqueta.
+errNcrNonCharacter=Referência do caractere expande para um não caractere.
+errNcrSurrogate=Referência do caractere expande para substituto.
+errNcrControlChar=Referência do caractere expande para um caractere de controlo.
+errNcrCr=Referência do caractere numérico expande para um retorno do transporte.
+errNcrInC1Range=Referência do caractere numérico expande para o limite dos controlos C1.
+errEofInPublicId=Fim do ficheiro dentro do identificador público.
+errEofInComment=Fim do ficheiro dentro do comentário.
+errEofInDoctype=Fim do ficheiro dentro do doctype.
+errEofInAttributeValue=Fim do ficheiro atingido dentro do atributo do valor. A ignorar etiqueta.
+errEofInAttributeName=Fim do ficheiro ocorreu no nome do atributo. A ignorar etiqueta.
+errEofWithoutGt=Observado fim do ficheiro sem o fim previsto da etiqueta com “>”. A ignorar etiqueta.
+errEofInTagName=Fim do ficheiro ao ver o nome da etiqueta. A ignorar etiqueta.
+errEofInEndTag=Fim do ficheiro dentro do fim da etiqueta. A ignorar etiqueta.
+errEofAfterLt=Fim do ficheiro depois de “<”.
+errNcrOutOfRange=Referência do caractere fora do intervalo Unicode permitido.
+errNcrUnassigned=Referência do caractere expande para um ponto permanente não assinado.
+errDuplicateAttribute=Atributo duplicado.
+errEofInSystemId=Fim do ficheiro dentro do identificador do sistema.
+errExpectedSystemId=Esperado um identificador de sistema mas o doctype terminou.
+errMissingSpaceBeforeDoctypeName=Espaço em falta antes de nome do doctype.
+errNestedComment=Foi detetado um “<!--” dentro de um comentário. Possível causa: comentário em cascata (não permitido).
+errNcrZero=Referência do caractere expande para zero.
+errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Nenhum espaço entre a palavra-chave “SYSTEM” do doctype e as aspas.
+errNoSpaceBetweenPublicAndSystemIds=Nenhum espaço entre o doctype público e os identificadores do sistema.
+errNoSpaceBetweenDoctypePublicKeywordAndQuote=Nenhum espaço entre a palavra-chave “PUBLIC” do doctype e as aspas.
+
+# Tree builder errors
+errDeepTree=A árvore do documento é muito profunda. A árvore será aplainada para ter 513 elementos de profundidade.
+errStrayStartTag2=Fim da etiqueta dispersa “%1$S”.
+errStrayEndTag=Fim da etiqueta dispersa “%1$S”.
+errUnclosedElements=Observado fim da etiqueta “%1$S”, mas havia elementos abertos.
+errUnclosedElementsImplied=Implicado fim da etiqueta “%1$S”, mas havia elementos abertos.
+errUnclosedElementsCell=A célula de uma tabela foi implicitamente fechada, mas havia elementos abertos.
+errStrayDoctype=Doctype disperso.
+errAlmostStandardsDoctype=Almost standards mode doctype. Esperado “<!DOCTYPE html>”.
+errQuirkyDoctype=Quirky doctype. Esperado “<!DOCTYPE html>”.
+errAlmostStandardsDoctypeVerbose=Esta página está no modo quase padrão. O layout da página pode ser afetado. Para o modo de padrões, utilize “<!DOCTYPE html>”.
+errQuirkyDoctypeVerbose=Esta página está no modo Quirks. O layout da página pode ser afetado. Para o modo de padrões, utilize “<!DOCTYPE html>”.
+errNonSpaceInTrailer=Sem espaço no trailer página.
+errNonSpaceAfterFrameset=Sem espaço depois de “frameset”.
+errNonSpaceInFrameset=Sem espaço em “frameset”.
+errNonSpaceAfterBody=Caractere sem espaço depois do corpo.
+errNonSpaceInColgroupInFragment=Sem espaço em “colgroup” ao processar o fragmento.
+errNonSpaceInNoscriptInHead=Sem espaço dentro de “noscript” dentro de “head”.
+errFooBetweenHeadAndBody=“%1$S” elemento entre “head” e “body”.
+errStartTagWithoutDoctype=Etiqueta de início encontrada sem existir um doctype primeiro. Esperado “<!DOCTYPE html>”.
+errNoSelectInTableScope=Nenhum “select” no âmbito da tabela.
+errStartSelectWhereEndSelectExpected=Início de etiqueta “select” onde era esperada um etiqueta de fim.
+errStartTagWithSelectOpen=Etiqueta de início “%1$S” com “select” aberto.
+errBadStartTagInNoscriptInHead=Tag de início “%1$S” inválida no “noscript” no “head”.
+errImage=Observada uma etiqueta de início “image”.
+errFooSeenWhenFooOpen2=Tag de início “%1$S” encontrada mas um elemento do mesmo tipo já estava aberto.
+errHeadingWhenHeadingOpen=O cabeçalho não pode ser filho de outro cabeçalho.
+errFramesetStart=Etiqueta “frameset” encontrada.
+errNoCellToClose=Nenhuma célula para fechar.
+errStartTagInTable=Etiqueta de início “%1$S” observada em “table”.
+errFormWhenFormOpen=Observada uma etiqueta de início “form”, mas já havia um elemento “form” ativo. Não são permitidos formulários em cascata. A ignorar a etiqueta.
+errTableSeenWhileTableOpen=Etiqueta de início para “table” observada mas a anterior “table” ainda está aberta.
+errStartTagInTableBody=Etiqueta de início “%1$S” no corpo da tabela.
+errEndTagSeenWithoutDoctype=Observado fim da etiqueta sem ver primeiro o doctype. Esperado “<!DOCTYPE html>”.
+errEndTagAfterBody=Observado o fim da etiqueta depois do “body” ter sido fechado.
+errEndTagSeenWithSelectOpen=“%1$S” fim de etiqueta com “select” aberto.
+errGarbageInColgroup=Lixo no fragmento “colgroup”.
+errEndTagBr=Fim da etiqueta “br”.
+errNoElementToCloseButEndTagSeen=Nenhum elemento “%1$S” no ambiente mas observado uma etiqueta de fim “%1$S”.
+errHtmlStartTagInForeignContext=Etiqueta de início HTML “%1$S” num contexto namespace externo.
+errNoTableRowToClose=Nenhuma coluna da tabela para fechar.
+errNonSpaceInTable=Caracteres sem espaço mal colocados dentro da tabela.
+errUnclosedChildrenInRuby=Filhos não fechados em “ruby”.
+errStartTagSeenWithoutRuby=Etiqueta de início “%1$S” observada sem a abertura do elemento “ruby”.
+errSelfClosing=Sintaxe de fecho automático (“/>”) usado em elemento HTML não vazio. A ignorar a barra e a tratar como início de etiqueta.
+errNoCheckUnclosedElementsOnStack=Elementos não fechados em stack.
+errEndTagDidNotMatchCurrentOpenElement=Fim de etiqueta “%1$S” não correspondeu com o nome do elemento aberto atual (“%2$S”).
+errEndTagViolatesNestingRules=O fim da etiqueta “%1$S” viola as regras.
+errEndWithUnclosedElements=Observado o fim da etiqueta “%1$S”, mas havia elementos não fechados.
+errListUnclosedStartTags=Elemento ou elementos não fechados.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout/xmlparser.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout/xmlparser.properties
new file mode 100644
index 0000000000..181886e5b9
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 = sem memória
+2 = erro de sintaxe
+3 = nenhum elemento de raiz encontrado
+4 = mal formado
+5 = token por fechar
+6 = caractere parcial
+7 = etiqueta não correspondente
+8 = atributo duplicado
+9 = lixo após o elemento do documento
+10 = parâmetro ilegal para referência de entidade
+11 = entidade indefinida
+12 = referência recursiva de entidade
+13 = entidade assíncrona
+14 = referência a um caractere numérico inválido
+15 = referência a uma entidade binária
+16 = referência a uma entidade externa no atributo
+17 = XML ou declaração de texto não está no início da entidade
+18 = codificação desconhecida
+19 = a codificação especificada na declaração XML está incorreta
+20 = secção CDATA por fechar
+21 = erro ao processar a referência à entidade externa
+22 = o documento não é standalone
+23 = estado inesperado no analisador
+24 = entidade declarada no parâmetro entity
+27 = o prefixo não se limita a um namespace
+28 = o prefixo não pode ser não-declarado
+29 = marcação incompleta no parâmetro entidade
+30 = declaração XML mal formada
+31 = declaração de texto mal formada
+32 = caractere(s) ilegal(is) no identificador público
+38 = prefixo reservado (xml) não pode ser não-declarado ou ligado a outro espaço de nomes
+39 = prefixo reservado (xmlns) não pode ser declarado ou não-declarado
+40 = o prefixo não pode ser ligado a um dos nomes de namespace reservado
+
+# %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 = Erro na análise de XML: %1$S\nLocalização: %2$S\nLinha número %3$u, Coluna %4$u:
+
+# %S is replaced by a tag name.
+# This gets appended to the error string if the error is mismatched tag.
+Expected = . Esperado: </%S>.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout_errors.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout_errors.properties
new file mode 100644
index 0000000000..b12cee5a5e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout_errors.properties
@@ -0,0 +1,53 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ImageMapRectBoundsError=O atributo “coords” da etiqueta <area shape="rect"> não está no formato “left,top,right,bottom”.
+ImageMapCircleWrongNumberOfCoords=O atributo “coords” da etiqueta <area shape="circle"> não está no formato “center-x,center-y,radius”.
+ImageMapCircleNegativeRadius=O atributo “coords” da etiqueta <area shape="circle"> tem um raio negativo.
+ImageMapPolyWrongNumberOfCoords=O atributo “coords” da etiqueta <area shape="poly"> não está no formato “x1,y1,x2,y2 …”.
+ImageMapPolyOddNumberOfCoords=O atributo “coords” da etiqueta <area shape="poly"> não tem a última coordenada “y” (o formato correto é “x1,y1,x2,y2 …”).
+
+ScrollLinkedEffectFound3=Este site aparenta utilizar um efeito de posicionamento scroll-linked. Isto pode não funcionar bem com deslocamento panorâmico assíncrono; veja https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html para mais detalhes e para se juntar à discussão de ferramentas e funcionalidades relacionadas!
+
+## 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=A animação não pode ser executada no compositor porque a área do frame (%1$S) é muito grande relativamente ao viewport (maior do que %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=A animação não pode ser executada no compositor porque o tamanho do frame (%1$S, %2$S) é muito grande relativamente ao viewport (maior do que (%3$S, %4$S)) ou maior do que o valor máximo permitido (%5$S, %6$S)
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformBackfaceVisibilityHidden):
+## 'backface-visibility: hidden' is a CSS property, don't translate it.
+CompositorAnimationWarningTransformBackfaceVisibilityHidden=As animações de transformações 'backface-visibility: hidden' não podem ser executadas no compositor
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformSVG,
+## CompositorAnimationWarningTransformWithGeometricProperties,
+## CompositorAnimationWarningTransformWithSyncGeometricAnimations,
+## CompositorAnimationWarningTransformFrameInactive,
+## CompositorAnimationWarningOpacityFrameInactive):
+## 'transform' and 'opacity' mean CSS property names, don't translate it.
+CompositorAnimationWarningTransformSVG=As animações de 'transform' em elementos com transformações SVG não podem ser executadas no compositor
+CompositorAnimationWarningTransformWithGeometricProperties=As animações de 'transform' não podem ser executadas no compositor quando as propriedades geométricas são animadas no mesmo elemento ao mesmo tempo
+CompositorAnimationWarningTransformWithSyncGeometricAnimations=A animação de ‘transform’ não pode ser executada no compositor porque deve ser sincronizada com animações de propriedades geométricas que começaram ao mesmo tempo
+CompositorAnimationWarningTransformFrameInactive=As animações não podem ser executadas no compositor porque o frame não foi marcado ativo para a animação 'transform'
+CompositorAnimationWarningTransformIsBlockedByImportantRules=A animação transform não pode ser executada no compositor porque as propriedades relacionadas à transformação são substituídas por regras !important
+CompositorAnimationWarningOpacityFrameInactive=As animações não podem ser executadas no compositor porque o frame não foi marcado ativo para a animação 'opacity'
+CompositorAnimationWarningHasRenderingObserver=A animação não pode ser executada no compositor porque o elemento tem observadores de renderização (-moz-element ou SVG clipping/masking)
+CompositorAnimationWarningHasCurrentColor=As animações de ‘background-color’ não podem ser executadas no compositor com o fotograma-chave ‘current-color’.
+
+## LOCALIZATION NOTE: Do not translate zoom, calc(), "transform", "transform-origin: 0 0"
+ZoomPropertyWarning=Esta página utilizar a propriedade não padrão “zoom”. Considere usar calc() nos valores relevantes da propriedade ou utilizar ”transform” em conjunto com ”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=Ao renderizar o elemento <html>, os valores das propriedades CSS “writing-mode”, “direction” e “text-orientation” utilizados no elemento <html> são obtidos a partir dos valores calculados do elemento <body> e não dos próprios valores do elemento <html>. Considere definir estas propriedades na pseudo-classe CSS :root. Para obter mais informações, consulte “O modo principal de escrita” em 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=A ancoragem do deslocamento foi desativada num contentor de deslocamento devido a muitos ajustes consecutivos (%1$S) com pouca distância total (%2$Spx em média, %3$Spx no total).
+
+ForcedLayoutStart=O layout foi forçado antes que a página fosse totalmente carregada. Se as folhas de estilo ainda não estiverem carregadas, isto poderá originar a apresentação de conteúdo não estilizado.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/mathml/mathml.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/mathml/mathml.properties
new file mode 100644
index 0000000000..393b4b7294
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Marcação inválida: <%1$S> não é permitido como filho de <%2$S>.
+ChildCountIncorrect=Marcação inválida: número de filhos incorreto para a etiqueta <%1$S/>.
+DuplicateMprescripts=Marcação inválida: mais do que um <mprescripts/> em <mmultiscripts/>.
+# LOCALIZATION NOTE: The first child of <mmultiscript/> is the base, that is the element to which scripts are attached.
+NoBase=Marcação inválida: esperado exatamente um elemento base em <mmultiscripts/>. Nenhum encontrado.
+SubSupMismatch=Marcação inválida: par subscript/superscript incompleto em <mmultiscripts/>.
+
+# LOCALIZATION NOTE: When localizing the single quotes ('), follow the conventions in css.properties for your target locale.
+AttributeParsingError=Erro ao interpretar o valor '%1$S' para o atributo '%2$S' em <%3$S/>. Atributo ignorado.
+AttributeParsingErrorNoTag=Erro ao interpretar o valor '%1$S' para o atributo '%2$S'. Atributo ignorado.
+LengthParsingError=Erro ao interpretar o valor do atributo MathML '%1$S' como comprimento. Atributo ignorado.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/narrate.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/narrate.properties
new file mode 100644
index 0000000000..d2a81478f7
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/narrate.properties
@@ -0,0 +1,25 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# "Listen, which allows users to listen to Firefox reading the text,
+# instead of having to read it themselves." This is the name
+# of the feature and it is the label for the popup button.
+# %S is the keyboard shortcut for the listen command
+listen-label = Ouvir (%S)
+back = Anterior
+# %S is the keyboard shortcut for the start command
+start-label = Iniciar (%S)
+# %S is the keyboard shortcut for the stop command
+stop-label = Parar (%S)
+# Keyboard shortcut to toggle the narrate feature
+narrate-key-shortcut = N
+forward = Avançar
+speed = Velocidade
+selectvoicelabel = Voz:
+# Default voice is determined by the language of the document.
+defaultvoice = Predefinida
+
+# Voice name and language.
+# eg. David (English)
+voiceLabel = %S (%S)
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/nsWebBrowserPersist.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/nsWebBrowserPersist.properties
new file mode 100644
index 0000000000..8c833e3065
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 não foi guardado, porque o ficheiro fonte não pode ser lido.\n\nTente mais tarde ou contacte o administrador do servidor.
+writeError=%S não foi guardado, porque ocorreu um erro desconhecido.\n\nTente guardar em uma localização diferente.
+launchError=Não foi possível abrir %S, porque ocorreu um erro desconhecido.\n\nTente guardar primeiro no disco e depois abrir o ficheiro.
+diskFull=Não existe espaço suficiente no disco para guardar %S.\n\nRemova os ficheiros desnecessários e tente novamente, ou tente guardar numa localização diferente.
+readOnly=%S não foi guardado, porque o disco, pasta, ou ficheiro está protegido contra escrita.\n\nAtive a escrita no disco e tente novamente, ou tente guardar em uma localização diferente.
+accessError=%S não foi guardado, porque não pode alterar os conteúdo dessa pasta.\n\nAltere as propriedades da pasta e tente novamente, ou tente guardar em uma localização diferente.
+SDAccessErrorCardReadOnly=Não é possível transferir o ficheiro porque o cartão SD está a ser utilizado.
+SDAccessErrorCardMissing=Não é possível transferir o ficheiro porque o cartão SD está em falta.
+helperAppNotFound=%S não foi aberto, porque a aplicação associada não existe. Altere a associação nas preferências.
+noMemory=Não existe memória suficiente para completar a ação solicitada.\n\nFeche algumas aplicações e tente novamente.
+title=A transferir %S
+fileAlreadyExistsError=%S não pôde ser guardado, porque já existe um ficheiro com o mesmo nome que o diretório ‘_ficheiros’.\n\nTente guardar num diretório diferente.
+fileNameTooLongError=%S não foi guardado, porque o nome do ficheiro é muito grande.\n\nTente guardar com um nome de ficheiro mais curto.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/printdialog.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/printdialog.properties
new file mode 100644
index 0000000000..97732f08a9
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Imprimir
+optionsTabLabelGTK=Opções
+
+# Mac titles:
+optionsTitleMac=Opções:
+appearanceTitleMac=Aparência:
+pageHeadersTitleMac=Cabeçalhos da página:
+pageFootersTitleMac=Rodapés da página:
+
+# Windows titles:
+optionsTitleWindows=Opções
+
+# 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=Ignorar aumento e di_minuição para caber na largura da página
+selectionOnly=Imprimir apenas a _seleção
+printBGOptions=Imprimir fundos
+printBGColors=Imprimir _cores de fundo
+printBGImages=Imprimir i_magens de fundo
+headerFooter=Cabeçalho e rodapé
+left=Esquerda
+center=Centro
+right=Direita
+headerFooterBlank=--vazio--
+headerFooterTitle=Título
+headerFooterURL=URL
+headerFooterDate=Data/Hora
+headerFooterPage=Página #
+headerFooterPageTotal=Página # de #
+headerFooterCustom=Personalizado…
+customHeaderFooterPrompt=Por favor, introduza o seu texto de cabeçalho/rodapé personalizado
+
+summarySelectionOnlyTitle=Imprimir seleção
+summaryShrinkToFitTitle=Encolher para caber
+summaryPrintBGColorsTitle=Imprimir cores de fundo
+summaryPrintBGImagesTitle=Imprimir imagens de fundo
+summaryHeaderTitle=Cabeçalhos da página
+summaryFooterTitle=Rodapés da página
+summaryNAValue=N/D
+summaryOnValue=Ligado
+summaryOffValue=Desligado
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/printing.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/printing.properties
new file mode 100644
index 0000000000..8842e4adae
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 de %2$d
+
+PrintToFile=Imprimir para ficheiro
+print_error_dialog_title=Erro de impressora
+printpreview_error_dialog_title=Erro de pré-visualização
+
+# 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=Ocorreu um erro ao imprimir.
+
+PERR_ABORT=A impressão foi abortada ou cancelada.
+PERR_NOT_AVAILABLE=Algumas funcionalidade de impressão ainda não estão disponíveis.
+PERR_NOT_IMPLEMENTED=Algumas funcionalidade de impressão ainda não estão implementadas.
+PERR_OUT_OF_MEMORY=Não existe memória livre suficiente para imprimir.
+PERR_UNEXPECTED=Houve um erro inesperado ao imprimir.
+
+PERR_GFX_PRINTER_NO_PRINTER_AVAILABLE=Não foi encontrada nenhuma impressora.
+PERR_GFX_PRINTER_NO_PRINTER_AVAILABLE_PP=Nenhuma impressora disponível, não é possível mostrar a pré-visualização.
+PERR_GFX_PRINTER_NAME_NOT_FOUND=A impressora selecionada não foi encontrada.
+PERR_GFX_PRINTER_COULD_NOT_OPEN_FILE=Não foi possível abrir o ficheiro de saída para imprimir para ficheiro.
+PERR_GFX_PRINTER_STARTDOC=Ocorreu um erro ao iniciar a impressão.
+PERR_GFX_PRINTER_ENDDOC=A impressão falhou ao completar o documento.
+PERR_GFX_PRINTER_STARTPAGE=A impressão falhou ao iniciar a página.
+PERR_GFX_PRINTER_DOC_IS_BUSY=Ainda não pode imprimir o documento, porque ainda está a ser carregado.
+PERR_GFX_PRINTER_DOC_IS_BUSY_PP=Ainda não pode pré-visualizar este documento, porque ainda está a ser carregado.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/resetProfile.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/resetProfile.properties
new file mode 100644
index 0000000000..d79519f2ae
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Parece que não inicia o %S há algum tempo. Pretende limpá-lo para uma nova experiência? E, já agora, seja bem-vindo(a) de volta!
+# LOCALIZATION NOTE (resetUninstalled.message): %S is brandShortName.
+resetUninstalled.message=Parece que reinstalou o %S. Pretende que o limpemos para uma nova experiência?
+
+# LOCALIZATION NOTE (refreshProfile.resetButton.label): %S is brandShortName.
+refreshProfile.resetButton.label=Restaurar o %S…
+refreshProfile.resetButton.accesskey=e
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/security/caps.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/security/caps.properties
new file mode 100644
index 0000000000..94a01fbec4
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/security/caps.properties
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+CheckLoadURIError = Erro de segurança: o conteúdo em %S pode não carregar ou vincular a %S.
+CheckSameOriginError = Erro de segurança: o conteúdo em %S pode não carregar dados de %S.
+ExternalDataError = Erro de segurança: o conteúdo em %S tentou carregar %S, mas pode não carregar dados externos se estiver a ser utilizado como imagem.\u0020
+
+CreateWrapperDenied = Permissão negada para criar um wrapper para objeto da classe %S
+CreateWrapperDeniedForOrigin = Permissão negada para <%2$S> para criar um wrapper para objeto da classe %1$S
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/security/csp.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/security/csp.properties
new file mode 100644
index 0000000000..e65586c74d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/security/csp.properties
@@ -0,0 +1,125 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# CSP Warnings:
+# LOCALIZATION NOTE (CSPViolation):
+# %1$S is the reason why the resource has not been loaded.
+CSPViolation = As definições da página bloquearam o carregamento do recurso: %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 = As definições da página bloquearam o carregamento de um recurso em %2$S (“%1$S”).
+# LOCALIZATION NOTE (CSPROViolation):
+# %1$S is the reason why the resource has not been loaded.
+CSPROViolation = Ocorreu uma violação para uma política de report-only da CSP (“%1$S”). O comportamento foi permitido e foi enviado um relatório CSP.
+# 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 = As definições da página observaram o carregamento de um recurso em %2$S (“%1$S”). Está a ser enviado um relatório CSP.
+# LOCALIZATION NOTE (triedToSendReport):
+# %1$S is the URI we attempted to send a report to.
+triedToSendReport = Tentado o envio de relatório para um URI inválido: “%1$S”
+tooManyReports = Evitado o envio de demasiados relatórios CSP num curto período de tempo.
+# LOCALIZATION NOTE (couldNotParseReportURI):
+# %1$S is the report URI that could not be parsed
+couldNotParseReportURI = não foi possível analisar o URI do relatório: %1$S
+# LOCALIZATION NOTE (couldNotProcessUnknownDirective):
+# %1$S is the unknown directive
+couldNotProcessUnknownDirective = Não foi possível processar a diretiva desconhecida '%1$S'
+# LOCALIZATION NOTE (ignoringUnknownOption):
+# %1$S is the option that could not be understood
+ignoringUnknownOption = A ignorar a opção desconhecida %1$S
+# LOCALIZATION NOTE (ignoringDuplicateSrc):
+# %1$S defines the duplicate src
+ignoringDuplicateSrc = A ignorar fonte suplicada %1$S
+# LOCALIZATION NOTE (ignoringNonAsciiToken):
+# %1$S defines the name of the directive
+# %2$S is the token string containing non-ASCII characters.
+ignoringNonAsciiToken = A ignorar a diretiva ‘%1$S’ com o token não ASCII ‘%2$S’
+# LOCALIZATION NOTE (ignoringSrcFromMetaCSP):
+# %1$S defines the ignored src
+ignoringSrcFromMetaCSP = A ignorar fonte '%1$S' (Não suportado quando entregue via elemento meta).
+# LOCALIZATION NOTE (ignoringSrcWithinNonceOrHashDirective):
+# %1$S is the ignored src (e.g. "unsafe-inline")
+# %2$S is the directive (e.g. "script-src-elem")
+ignoringSrcWithinNonceOrHashDirective = A ignorar “%1$S” dentro %2$S: especificado nonce-source ou hash-source
+# 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 = A ignorar “%1$S” dentro de %2$S: ‘strict-dynamic’ especificado
+# LOCALIZATION NOTE (ignoringStrictDynamic):
+# %1$S is the ignored src
+ignoringStrictDynamic = A ignorar fonte “%1$S” (apenas suportado dentro de script-src).\u0020
+# 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 = A ignorar ‘unsafe-eval’ ou ‘wasm-unsafe-eval’ dentro de “%1$S”.
+# LOCALIZATION NOTE (strictDynamicButNoHashOrNonce):
+# %1$S is the csp directive that contains 'strict-dynamic'
+# 'strict-dynamic' should not be localized
+strictDynamicButNoHashOrNonce = Palavra-chave ‘strict-dynamic’ dentro de “%1$S” sem nonce válido ou hash pode bloquear todos os scripts de carregarem
+# LOCALIZATION NOTE (reportURInotHttpsOrHttp2):
+# %1$S is the ETLD of the report URI that is not HTTP or HTTPS
+reportURInotHttpsOrHttp2 = O relatório URI (%1$S) tem de ser um URI HTTP ou HTTPS.
+# LOCALIZATION NOTE (reportURInotInReportOnlyHeader):
+# %1$S is the ETLD of the page with the policy
+reportURInotInReportOnlyHeader = Este site (%1$S) tem uma política de Report-Only sem uma URI de relatório. A CSP não irá bloquear nem poderá reportar violações desta política.
+# LOCALIZATION NOTE (failedToParseUnrecognizedSource):
+# %1$S is the CSP Source that could not be parsed
+failedToParseUnrecognizedSource = Falha ao analisar uma fonte desconhecida %1$S
+# LOCALIZATION NOTE (upgradeInsecureRequest):
+# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+upgradeInsecureRequest = A atualizar o pedido inseguro ‘%1$S’ para utilizar ‘%2$S’
+# LOCALIZATION NOTE (ignoreSrcForDirective):
+ignoreSrcForDirective = A ignorar fontes para a diretiva '%1$S'
+# LOCALIZATION NOTE (hostNameMightBeKeyword):
+# %1$S is the hostname in question and %2$S is the keyword
+hostNameMightBeKeyword = A interpretar %1$S como anfitrião e não como palavra-chave. Se tencionava que fosse uma palavra-chave, utilize '%2$S' (entre aspas simples).
+# LOCALIZATION NOTE (notSupportingDirective):
+# directive is not supported (e.g. 'reflected-xss')
+notSupportingDirective = Não suporta a diretiva '%1$S'. A diretiva e valores serão ignorados.
+# LOCALIZATION NOTE (blockAllMixedContent):
+# %1$S is the URL of the blocked resource load.
+blockAllMixedContent = A bloquear pedido inseguro ‘%1$S’.
+# LOCALIZATION NOTE (ignoringDirectiveWithNoValues):
+# %1$S is the name of a CSP directive that requires additional values
+ignoringDirectiveWithNoValues = A ignorar ‘%1$S‘ pois não contém quaisquer parâmetros.
+# LOCALIZATION NOTE (ignoringReportOnlyDirective):
+# %1$S is the directive that is ignored in report-only mode.
+ignoringReportOnlyDirective = A ignorar diretiva sandbox quando recebida numa política de apenas relatórios ‘%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=A ignorar ‘%1$S’ por causa da diretiva ‘%2$S’.
+# LOCALIZATION NOTE (IgnoringSourceWithinDirective):
+# %1$S is the ignored src
+# %2$S is the directive which supports src
+IgnoringSourceWithinDirective = Ignorar fonte “%1$S” (Não suportado dentro de ‘%2$S’).
+# LOCALIZATION NOTE (IgnoringSourceWithinDirective):
+# %1$S is the ignored src
+obsoleteBlockAllMixedContent = A ignorar ‘%1$S’ porque a atualização de exibição de conteúdo misto torna obsoleto bloquear todo o conteúdo misto.
+
+
+# CSP Errors:
+# LOCALIZATION NOTE (couldntParseInvalidSource):
+# %1$S is the source that could not be parsed
+couldntParseInvalidSource = Não foi possível analisar a fonte inválida %1$S
+# LOCALIZATION NOTE (couldntParseInvalidHost):
+# %1$S is the host that's invalid
+couldntParseInvalidHost = Não foi possível analisar o servidor inválido %1$S
+# LOCALIZATION NOTE (couldntParsePort):
+# %1$S is the string source
+couldntParsePort = Não foi possível analisar a porta em %1$S
+# LOCALIZATION NOTE (duplicateDirective):
+# %1$S is the name of the duplicate directive
+duplicateDirective = Detetadas %1$S diretivas duplicadas. À exceção da primeira, todas serão ignoradas.
+# LOCALIZATION NOTE (couldntParseInvalidSandboxFlag):
+# %1$S is the option that could not be understood
+couldntParseInvalidSandboxFlag = Não foi possível analisar a bandeira de sandbox inválida ‘%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/pt-PT/chrome/pt-PT/locale/pt-PT/global/security/security.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/security/security.properties
new file mode 100644
index 0000000000..a78464e102
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/security/security.properties
@@ -0,0 +1,167 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = Bloqueado o carregamento do conteúdo misto apresentado “%1$S”
+BlockMixedActiveContent = Bloqueado o carregamento do conteúdo misto ativo “%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=Pedido de origem cruzada bloqueado: A política da mesma origem não permite a leitura do recurso remoto em %1$S. (Motivo: CORS desativado).
+CORSDidNotSucceed2=Pedido de origem cruzada bloqueado: A política de mesma origem não permite a leitura do recurso remoto em %1$S. (Motivo: pedido CORS não foi bem sucedido). Código de estado: %2$S.
+CORSOriginHeaderNotAdded=Pedido de origem cruzada bloqueado: A política da mesma origem não permite a leitura do recurso remoto em %1$S. (Motivo: cabeçalho CORS ‘Origin’ não pode ser adicionado).
+CORSExternalRedirectNotAllowed=Pedido de origem cruzada bloqueado: A política da mesma origem não permite a leitura do recurso remoto em %1$S. (Motivo: pedido CORS de redirecionamento externo não permitido).
+CORSRequestNotHttp=Pedido de origem cruzada bloqueado: A política da mesma origem não permite a leitura do recurso remoto em %1$S. (Motivo: pedido CORS não http).
+CORSMissingAllowOrigin2=Pedido de origem cruzada bloqueado: A política de mesma origem não permite a leitura do recurso remoto em %1$S. (Motivo: cabeçalho CORS ‘Access-Control-Allow-Origin’ em falta). Código de estado: %2$S.
+CORSMultipleAllowOriginNotAllowed=Pedido de origem cruzada bloqueado: A política da mesma origem não permite a leitura do recurso remoto em %1$S. (Motivo: múltiplos cabeçalhos CORS ‘Access-Control-Allow-Origin’ não permitidos).
+CORSAllowOriginNotMatchingOrigin=Pedido de origem cruzada bloqueado: A política da mesma origem não permite a leitura do recurso remoto em %1$S. (Motivo: cabeçalho CORS 'Access-Control-Allow-Origin' não corresponde a '%2$S').
+CORSNotSupportingCredentials=Pedido de origem cruzada bloqueado: A política da mesma origem não permite a leitura do recurso remoto em ‘%1$S’. (Motivo: Credencial não suportada se o cabeçalho CORS ‘Access-Control-Allow-Origin’ é ‘*’).
+CORSMethodNotFound=Pedido de origem cruzada bloqueado: A política da mesma origem não permite a leitura do recurso remoto em %1$S. (Motivo: não encontrou o método no cabeçalho CORS ‘Access-Control-Allow-Methods’).
+CORSMissingAllowCredentials=Pedido de origem cruzada bloqueado: A política da mesma origem não permite a leitura do recurso remoto em %1$S. (Motivo: era esperado ‘true’ no cabeçalho CORS 'Access-Control-Allow-Credentials').
+CORSPreflightDidNotSucceed3=Pedido de origem cruzada bloqueado: A política de mesma origem não permite a leitura do recurso remoto em %1$S. (Motivo: a resposta CORS preflight não foi bem sucedida). Código de estado: %2$S.
+CORSInvalidAllowMethod=Pedido de origem cruzada bloqueado: A política da mesma origem não permite a leitura do recurso remoto em %1$S. (Motivo: token inválido '%2$S' no cabeçalho CORS 'Access-Control-Allow-Methods').
+CORSInvalidAllowHeader=Pedido de origem cruzada bloqueado: A política da mesma origem não permite a leitura do recurso remoto em %1$S. (Motivo: token inválido '%2$S' no cabeçalho CORS 'Access-Control-Allow-Headers').
+CORSMissingAllowHeaderFromPreflight2=Pedido de origem cruzada bloqueado: A política de mesma origem não permite a leitura do recurso remoto em %1$S. (Motivo: o cabeçalho ‘%2$S’ não é permitido de acordo com cabeçalho ‘Access-Control-Allow-Headers’ da resposta CORS preflight).
+CORSAllowHeaderFromPreflightDeprecation=Aviso de solicitação de origem cruzada: a política de mesma origem impedirá a leitura do recurso remoto em %1$S em breve. (Motivo: quando o `Access-Control-Allow-Headers` é `*`, o cabeçalho `Authorization` não é coberto. Para incluir o cabeçalho `Authorization`, ele deve ser explicitamente listado no cabeçalho CORS `Access-Control-Allow-Headers`).
+
+# LOCALIZATION NOTE: Do not translate "Strict-Transport-Security", "HSTS", "max-age" or "includeSubDomains"
+STSUnknownError=Strict-Transport-Security: Ocorreu um erro desconhecido ao processar o cabeçalho especificado pelo site.
+STSCouldNotParseHeader=Strict-Transport-Security: O site especificou um cabeçalho que não foi possível de analisar com sucesso.
+STSNoMaxAge=Strict-Transport-Security: O site especificou um cabeçalho que não incluiu uma diretiva 'max-age'.
+STSMultipleMaxAges=Strict-Transport-Security: O site especificou um cabeçalho que incluiu múltiplas diretivas 'max-age'.
+STSInvalidMaxAge=Strict-Transport-Security: O site especificou um cabeçalho que incluiu uma diretiva 'max-age' inválida.
+STSMultipleIncludeSubdomains=Strict-Transport-Security: O site especificou um cabeçalho que incluiu múltiplas diretivas 'includeSubDomains'.
+STSInvalidIncludeSubdomains=Strict-Transport-Security: O site especificou um cabeçalho que incluiu uma diretiva 'includeSubDomains' inválida.
+STSCouldNotSaveState=Strict-Transport-Security: Ocorreu um erro ao marcar o site como um anfitrião Strict-Transport-Security.
+
+InsecurePasswordsPresentOnPage=Campos de palavra-passe presentes numa página insegura (http://). Isto é um risco de segurança que permite que as credenciais de início de sessão de utilizador sejam furtadas.
+InsecureFormActionPasswordsPresent=Campos de palavra-passe presentes num formulário inseguro (http://). Isto é um risco de segurança que permite que as credenciais de início de sessão de utilizador sejam furtadas.
+InsecurePasswordsPresentOnIframe=Campos de palavra-passe presentes num iframe inseguro (http://). Isto é um risco de segurança que permite que as credenciais de início de sessão de utilizador sejam furtadas.
+# LOCALIZATION NOTE: "%1$S" is the URI of the insecure mixed content resource
+LoadingMixedActiveContent2=A carregar conteúdo ativo misto (inseguro) “%1$S” numa página segura
+LoadingMixedDisplayContent2=A carregar apresentação de conteúdo misto (inseguro) “%1$S” numa página segura
+LoadingMixedDisplayObjectSubrequestDeprecation=O carregamento de conteúdo misto (inseguro) “%1$S” num plugin numa página segura não é recomendado e será bloqueado em breve.
+# LOCALIZATION NOTE: "%S" is the URI of the insecure mixed content download
+MixedContentBlockedDownload = Transferência de conteúdo não seguro “%S” bloqueada.
+
+# LOCALIZATION NOTE: Do not translate "allow-scripts", "allow-same-origin", "sandbox" or "iframe"
+BothAllowScriptsAndSameOriginPresent=Um iframe que tenha como valores do atributo sandbox, allow-scripts e allow-same-origin pode remover o seu encapsulamento de segurança.
+# LOCALIZATION NOTE: Do not translate "allow-top-navigation-by-user-activation", "allow-top-navigation", "sandbox" or "iframe"
+BothAllowTopNavigationAndUserActivationPresent=Um iframe que tenha allow-top-navigation e allow-top-navigation-by-user-activation no seu atributo sandbox irá permitir navegações de topo.
+
+# Sub-Resource Integrity
+# LOCALIZATION NOTE: Do not translate "script" or "integrity". "%1$S" is the invalid token found in the attribute.
+MalformedIntegrityHash=O elemento de script tem uma hash mal formada no seu atributo integrity: “%1$S”. O formato correto é “<hash algorithm>-<hash value>”.
+# LOCALIZATION NOTE: Do not translate "integrity"
+InvalidIntegrityLength=A hash contida no atributo de integridade tem o comprimento errado.
+# LOCALIZATION NOTE: Do not translate "integrity"
+InvalidIntegrityBase64=A hash contida no atributo de integridade não pôde ser descodificada.
+# 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=Nenhuma das hashes “%1$S” no atributo de integridade, corresponde ao conteúdo do subrecurso. A hash calculada é “%2$S”.
+# LOCALIZATION NOTE: "%1$S" is the URI of the sub-resource that cannot be protected using SRI.
+IneligibleResource=“%1$S” não é elegível para verificações de integridade pois não é CORS-enabled nem same-origin.
+# LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the invalid hash algorithm found in the attribute.
+UnsupportedHashAlg=Algoritmo de hash no atributo integrity não suportado: “%1$S”
+# LOCALIZATION NOTE: Do not translate "integrity"
+NoValidMetadata=O atributo de integridade não contém quaisquer meta-dados válidos.
+
+# LOCALIZATION NOTE: Do not translate "RC4".
+WeakCipherSuiteWarning=Este site utiliza o protocolo RC4 para encriptar os dados, que foi descontinuado e é inseguro.
+
+DeprecatedTLSVersion2=Este site utiliza uma versão descontinuada do TLS. Por favor atualize para o TLS 1.2 ou 1.3.
+
+#XCTO: nosniff
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options: nosniff".
+MimeTypeMismatch2=O recurso de “%1$S” foi bloqueado devido a uma não correspondência do tipo MIME (“%2$S”) (X-Content-Type-Options: nosniff).
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options" and also do not translate "nosniff".
+XCTOHeaderValueMissing=Aviso de cabeçalho X-Content-Type-Options: o valor era “%1$S”; queria enviar “nosniff”?
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options" and also do not translate "nosniff".
+XTCOWithMIMEValueMissing=O recurso de “%1$S” não foi renderizado devido a um tipo de MiME desconhecido, incorreto ou inexistente (X-Content-Type-Options: nosniff).
+
+BlockScriptWithWrongMimeType2=O script de “%1$S” foi bloqueado por causa de um tipo MIME não permitido (“%2$S”).
+WarnScriptWithWrongMimeType=O script de “%1$S” foi carregado apesar do seu tipo MIME (“%2$S”) não ser um tipo MIME JavaScript válido.
+# LOCALIZATION NOTE: Do not translate "importScripts()"
+BlockImportScriptsWithWrongMimeType=O carregamento de script de “%1$S” com importScripts() foi bloqueado por causa de um tipo MIME não permitido (“%2$S”).
+BlockWorkerWithWrongMimeType=O carregamento do Worker de “%1$S” foi bloqueado por causa de um tipo MIME não permitido (“%2$S”).
+BlockModuleWithWrongMimeType=O carregamento de módulo de “%1$S” foi bloqueado por causa de um tipo MIME não permitido (“%2$S”).
+
+# LOCALIZATION NOTE: Do not translate "data: URI".
+BlockTopLevelDataURINavigation=Navegação para dados de nível de topo: URI não permitido (bloqueado o carregamento de: “%1$S”)
+BlockRedirectToDataURI=Redirecionamento para dados: URI não permitido (carregamento de “%1$S” bloqueado)
+
+# 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=A carregar script do ficheiro: o URI (“%1$S”) foi bloqueado porque o tipo MIME (“%2$S”) não é um tipo MIME JavaScript válido.
+
+# LOCALIZATION NOTE: “%S” is the whole URI of the loaded file.
+BlockExtensionScriptWithWrongExt=O carregamento do comando com o URI “%S” foi bloqueado porque a extensão do ficheiro não é permitida.
+
+RestrictBrowserEvalUsage=A utilização de eval() e similares não é permitida no processo-pai ou em contextos de sistema (Utilização bloqueada em “%1$S”)
+
+# LOCALIZATION NOTE (MixedContentAutoUpgrade):
+# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+MixedContentAutoUpgrade=A atualizar o pedido de apresentação inseguro ‘%1$S’ para utilizar ‘%2$S’
+# LOCALIZATION NOTE (RunningClearSiteDataValue):
+# %S is the URI of the resource whose data was cleaned up
+RunningClearSiteDataValue=O cabeçalho Clear-Site-Data forçou a limpeza de dados de “%S”.
+UnknownClearSiteDataValue=Cabeçalho Clear-Site-Data encontrado. Valor desconhecido “%S”.
+
+# Reporting API
+ReportingHeaderInvalidJSON=Cabeçalho de relatório: valor JSON inválido recebido.
+ReportingHeaderInvalidNameItem=Cabeçalho de relatório: nome inválido para grupo.
+ReportingHeaderDuplicateGroup=Cabeçalho de relatório: a ignorar grupo duplicado chamado “%S”.
+ReportingHeaderInvalidItem=Cabeçalho de relatório: a ignorar item inválido chamado “%S”.
+ReportingHeaderInvalidEndpoint=Cabeçalho de relatório: a ignorar endpoint inválido para item chamado “%S”.
+# LOCALIZATION NOTE(ReportingHeaderInvalidURLEndpoint): %1$S is the invalid URL, %2$S is the group name
+ReportingHeaderInvalidURLEndpoint=Cabeçalho de relatório: a ignorar URL de endpoint inválido “%1$S” para item chamado “%2$S”.
+
+FeaturePolicyUnsupportedFeatureName=Feature Policy: A ignorar nome de funcionalidade não suportado “%S”.
+# TODO: would be nice to add a link to the Feature-Policy MDN documentation here. See bug 1449501
+FeaturePolicyInvalidEmptyAllowValue= Feature Policy: A ignorar lista de permissão vazia para a funcionalidade: “%S”.
+# TODO: would be nice to add a link to the Feature-Policy MDN documentation here. See bug 1449501
+FeaturePolicyInvalidAllowValue=Feature Policy: A ignorar valor de permissão não suportado “%S”.
+
+# LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
+ReferrerLengthOverLimitation=Cabeçalho HTTP Referrer: O tamanho está “%1$S” bytes acima do limite - a reduzir o cabeçalho à origem: “%2$S”
+# LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
+ReferrerOriginLengthOverLimitation=Cabeçalho HTTP Referrer: O tamanho da origem do referente está “%1$S” bytes acima do limite - a remover o referente com a origem “%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=Política de referência: políticas menos restritas, incluindo ‘no-referrer-when-downgrade’, ‘origin-when-cross-origin’ e ‘unsafe-url’, serão ignoradas em breve para pedidos inter-sites: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Política de referência: Ignorando a política de referência menos restrita %1$S” para o pedido inter-sites: %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 = Foi encontrado um cabeçalho X-Frame-Options inválido ao carregar “%2$S”: “%1$S” não é uma diretiva válida.
+# 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=O carregamento de “%2$S” numa frame é impedido pela diretiva “X-Frame-Options“ definida como “%1$S“.
+
+# HTTPS-Only Mode
+# LOCALIZATION NOTE: %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+HTTPSOnlyUpgradeRequest = A atualizar o pedido inseguro “%1$S” para utilizar “%2$S”.
+# LOCALIZATION NOTE: %1$S is the URL of request.
+HTTPSOnlyNoUpgradeException = O pedido inseguro “%1$S” não foi atualizado porque está excluído.
+# LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
+HTTPSOnlyFailedRequest = A atualização do pedido inseguro “%1$S” falhou. (%2$S)
+# LOCALIZATION NOTE: %S is the URL of the failed request;
+HTTPSOnlyFailedDowngradeAgain = A atualização do pedido inseguro “%S” falhou. A degradar novamente para “http”.
+# 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 = A atualizar a ligação TCP especulativa insegura “%1$S” para utilizar “%2$S”.
+
+HTTPSFirstSchemeless = URL carregada na barra de endereços atualizada sem um esquema de protocolo explícito para utilizar HTTPS.
+
+# LOCALIZATION NOTE: %S is the URL of the blocked request;
+IframeSandboxBlockedDownload = A transferência de “%S” foi bloqueada porque o iframe de onde foi acionada tem a etiqueta sandbox definida.
+
+# LOCALIZATION NOTE: %S is the URL of the blocked request;
+SandboxBlockedCustomProtocols = Navegação bloqueada para o protocolo personalizado “%S” a partir de um contexto de área restrita.
+
+# Sanitizer API
+# LOCALIZATION NOTE: Please do not localize "DocumentFragment". It's the name of an API.
+SanitizerRcvdNoInput = Não foi recebida nenhuma entrada ou mesma estava vazia. A devolver um DocumentFragment vazio.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/svg/svg.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/svg/svg.properties
new file mode 100644
index 0000000000..9f80548b62
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Valor %2$S inesperado enquanto analisava o atributo %1$S.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/viewSource.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/viewSource.properties
new file mode 100644
index 0000000000..72ed995590
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 = Ir para a linha
+goToLineText = Introduza o número da linha
+invalidInputTitle = Introdução inválida
+invalidInputText = O número de linha introduzido é inválido.
+outOfRangeTitle = Linha não encontrada
+outOfRangeText = A linha especificada não foi encontrada.
+viewSelectionSourceTitle = Código DOM da seleção
+
+context_goToLine_label = Ir para a linha…
+context_goToLine_accesskey = l
+context_wrapLongLines_label = Encapsular linhas longas
+context_highlightSyntax_label = Realce de sintaxe
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/wizard.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/wizard.properties
new file mode 100644
index 0000000000..eaa90b7c5a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Bem-vindo(a) ao %S
+default-last-title=A completar o %S
+default-first-title-mac=Introdução
+default-last-title-mac=Conclusão
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/xslt/xslt.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/xslt/xslt.properties
new file mode 100644
index 0000000000..f6d0988f40
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 = A análise de uma folha de estilo XSLT falhou.
+2 = A interpretação de uma expressão XPath falhou.
+3 =
+4 = A conversão XSLT falhou.
+5 = Função XSLT/XPath inválida.
+6 = Folha de estilo XSLT contém recursividade (possivelmente).
+7 = Atributo de valor ilegal no XSLT 1.0.
+8 = Esperava-se uma expressão XPath para retornar um NodeSet.
+9 = A conversão XSLT foi terminada por <xsl:message>.
+10 = Ocorreu um erro de rede ao carregar uma folha de estilo XSLT:
+11 = Uma folha de estilo XSLT não tem um mimetype XML:
+12 = Uma folha de estilo XSLT faz, direta ou indiretamente, a importação ou inclusão de si própria:
+13 = Uma função XPath foi chamada com um número errado de argumentos.
+14 = Foi chamada uma extensão desconhecida de uma função XPath.
+15 = Falha de análise XPath: ')' esperado:
+16 = Falha de análise XPath: eixo inválido:
+17 = Falha de análise XPath: nome ou teste de Nodetype esperado:
+18 = Falha de análise XPath: ']' esperado:
+19 = Falha de análise XPath: nome de variável inválido:
+20 = Falha de análise XPath: fim de expressão inesperado:
+21 = Falha de análise XPath: operador esperado:
+22 = Falha de análise XPath: literal não fechado:
+23 = Falha de análise XPath: ‘:’ inesperado:
+24 = Falha de análise XPath: ‘!’ inesperado, a negação é not():
+25 = Falha de análise XPath: caractere ilegal encontrado:
+26 = Falha de análise XPath: operador binário esperado:
+27 = Uma folha de estilo XSLT foi bloqueada por razões de segurança.
+28 = A avaliar uma expressão inválida.
+29 = Chaveta sem par.
+30 = A criar um elemento com um QName inválido.
+31 = Ligação a variável esconde ligação a variável dentro do mesmo modelo.
+32 = Chamada para a função chave não permitida.
+
+LoadingError = Erro ao carregar a folha de estilo: %S
+TransformError = Erro durante a conversão XSLT: %S
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/xul.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/xul.properties
new file mode 100644
index 0000000000..65e0f61bdc
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=A instrução de processamento <?%1$S?> já não tem qualquer efeito fora do prólogo (ver bug 360119).
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/lightning/lightning-toolbar.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/lightning/lightning-toolbar.dtd
new file mode 100644
index 0000000000..ddb86b81f1
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/lightning/lightning-toolbar.dtd
@@ -0,0 +1,51 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY lightning.toolbar.calendar.name "Barra de calendário">
+<!ENTITY lightning.toolbar.calendar.name.accesskey "c">
+<!ENTITY lightning.toolbar.task.name "Barra de tarefas">
+<!ENTITY lightning.toolbar.task.name.accesskey "t">
+
+<!ENTITY lightning.toolbar.sync.label "Sincronizar">
+<!ENTITY lightning.toolbar.sync.tooltip "Recarregar calendários e sincronizar alterações">
+<!ENTITY lightning.toolbar.delete.label "Apagar">
+<!ENTITY lightning.toolbar.delete.tooltip "Apagar eventos ou tarefas selecionadas">
+<!ENTITY lightning.toolbar.edit.label "Editar">
+<!ENTITY lightning.toolbar.edit.tooltip "Apagar evento ou tarefa selecionada">
+<!ENTITY lightning.toolbar.gototoday.label "Ir para hoje">
+<!ENTITY lightning.toolbar.gototoday.tooltip "Ir para hoje">
+<!ENTITY lightning.toolbar.print.label "Imprimir">
+<!ENTITY lightning.toolbar.print.tooltip "Imprimir eventos ou tarefas">
+<!-- Mode Toolbar -->
+
+<!ENTITY lightning.toolbar.calendar.label "Calendário">
+<!ENTITY lightning.toolbar.calendar.tooltip "Muda para o separador do calendário">
+<!ENTITY lightning.toolbar.calendar.accesskey "C">
+<!ENTITY lightning.toolbar.task.label "Tarefas">
+<!ENTITY lightning.toolbar.task.tooltip "Muda para o separador de tarefas">
+<!ENTITY lightning.toolbar.task.accesskey "T">
+<!-- Toolbar write button -->
+
+<!ENTITY lightning.toolbar.newevent.label "Evento">
+<!ENTITY lightning.toolbar.newevent.tooltip "Criar um novo evento">
+<!ENTITY lightning.toolbar.newtask.label "Tarefa">
+<!ENTITY lightning.toolbar.newtask.tooltip "Criar uma nova tarefa">
+<!-- Calendar and Task Mode Toolbar -->
+
+<!ENTITY lightning.toolbar.day.label "Dia">
+<!ENTITY lightning.toolbar.day.accesskey "D">
+<!ENTITY lightning.toolbar.week.label "Semana">
+<!ENTITY lightning.toolbar.week.accesskey "S">
+<!ENTITY lightning.toolbar.multiweek.label "Multissemanal">
+<!ENTITY lightning.toolbar.multiweek.accesskey "u">
+<!ENTITY lightning.toolbar.month.label "Mês">
+<!ENTITY lightning.toolbar.month.accesskey "M">
+<!-- LOCALIZATION NOTE: the same as appmenuButton.label and appmenuButton1.tooltip
+ from messenger.dtd -->
+<!ENTITY lightning.toolbar.appmenuButton.label "Menu">
+<!ENTITY lightning.toolbar.appmenuButton1.tooltip "Mostra o menu do &brandShortName;">
+<!ENTITY lightning.toolbar.calendarmenu.label "Painel do calendário">
+<!ENTITY lightning.toolbar.calendarmenu.accesskey "P">
+<!ENTITY lightning.toolbar.calendarpane.label "Mostrar painel do calendário">
+<!ENTITY lightning.toolbar.calendarpane.accesskey "p">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/lightning/lightning.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/lightning/lightning.dtd
new file mode 100644
index 0000000000..7d0da6aeea
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Calendário">
+
+<!-- New menu popup in File menu -->
+<!ENTITY lightning.menupopup.new.event.label "Evento…">
+<!ENTITY lightning.menupopup.new.event.accesskey "E">
+<!ENTITY lightning.menupopup.new.task.label "Tarefa…">
+<!ENTITY lightning.menupopup.new.task.accesskey "T">
+<!ENTITY lightning.menupopup.new.calendar.label "Calendário…">
+<!ENTITY lightning.menupopup.new.calendar.accesskey "n">
+
+<!-- Open menu popup in File menu -->
+<!ENTITY lightning.menupopup.open.calendar.label "Ficheiro de calendário…">
+<!ENTITY lightning.menupopup.open.calendar.accesskey "c">
+
+<!-- View Menu -->
+<!ENTITY lightning.menu.view.calendar.label "Calendário">
+<!ENTITY lightning.menu.view.calendar.accesskey "C">
+<!ENTITY lightning.menu.view.tasks.label "Tarefas">
+<!ENTITY lightning.menu.view.tasks.accesskey "T">
+
+<!-- Events and Tasks menu -->
+<!ENTITY lightning.menu.eventtask.label "Eventos e tarefas">
+<!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 "Preferir agendamento de email do lado do cliente">
+<!-- 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 "Por agora, só pode ativar isto depois de configurar este calendário na sua janela de propriedade se o servidor do calendário cuidar do agendamento.">
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.tooltiptext2 "Esta opção apenas está disponível se o servidor do calendário lidar com o agendamento. Ativar isto irá permitir retroceder para o agendamento baseado no email padrão em vez de o deixar para o servidor.">
+
+<!-- The notifications settings in the properties dialog -->
+<!ENTITY lightning.calendarproperties.notifications.label "Notificações">
+<!ENTITY lightning.calendarproperties.globalNotifications.label "Preferências globais de notificação...">
+
+<!-- iMIP Bar (meeting support) -->
+<!ENTITY lightning.imipbar.btnAccept.label "Aceitar">
+<!ENTITY lightning.imipbar.btnAccept2.tooltiptext "Aceitar convite do evento">
+<!ENTITY lightning.imipbar.btnAcceptRecurrences.label "Aceitar tudo">
+<!ENTITY lightning.imipbar.btnAcceptRecurrences2.tooltiptext "Aceitar convite do evento para todas as ocorrências deste evento">
+<!ENTITY lightning.imipbar.btnAdd.label "Adicionar">
+<!ENTITY lightning.imipbar.btnAdd.tooltiptext "Adicionar evento ao calendário">
+<!ENTITY lightning.imipbar.btnDecline.label "Recusar">
+<!ENTITY lightning.imipbar.btnDecline2.tooltiptext "Recusar convite do evento">
+<!ENTITY lightning.imipbar.btnDeclineRecurrences.label "Recusar todos">
+<!ENTITY lightning.imipbar.btnDeclineRecurrences2.tooltiptext "Recusar convite do evento para todas as ocorrências deste evento">
+<!ENTITY lightning.imipbar.btnDeclineCounter.label "Recusar">
+<!ENTITY lightning.imipbar.btnDeclineCounter.tooltiptext "Recusar a contra-proposta">
+<!ENTITY lightning.imipbar.btnDelete.label "Apagar">
+<!ENTITY lightning.imipbar.btnDelete.tooltiptext "Apagar do calendário">
+<!ENTITY lightning.imipbar.btnDetails.label "Detalhes…">
+<!ENTITY lightning.imipbar.btnDetails.tooltiptext "Mostrar detalhes do evento">
+<!ENTITY lightning.imipbar.btnDoNotShowImipBar.label "Não mostrar estas mensagens">
+<!ENTITY lightning.imipbar.btnGoToCalendar.label "Calendário">
+<!ENTITY lightning.imipbar.btnGoToCalendar.tooltiptext "Ir para o separador do calendário">
+<!ENTITY lightning.imipbar.btnMore.label "Mais">
+<!ENTITY lightning.imipbar.btnMore.tooltiptext "Clique para mostrar mais opções">
+<!ENTITY lightning.imipbar.btnReconfirm2.label "Nova confirmação">
+<!ENTITY lightning.imipbar.btnReconfirm.tooltiptext "Envia uma nova confirmação ao promotor">
+<!ENTITY lightning.imipbar.btnReschedule.label "Reagendar">
+<!ENTITY lightning.imipbar.btnReschedule.tooltiptext "Reagendar o evento">
+<!ENTITY lightning.imipbar.btnSaveCopy.label "Guardar uma cópia">
+<!ENTITY lightning.imipbar.btnSaveCopy.tooltiptext "Guarda uma cópia do evento no calendário, independentemente da resposta ao organizador. A lista de participantes será limpa.">
+<!ENTITY lightning.imipbar.btnTentative.label "Tentativa">
+<!ENTITY lightning.imipbar.btnTentative2.tooltiptext "Aceitar convite do evento tentativamente">
+<!ENTITY lightning.imipbar.btnTentativeRecurrences.label "Tentativar tudo">
+<!ENTITY lightning.imipbar.btnTentativeRecurrences2.tooltiptext "Aceitar convite do evento tentativamente para todas as ocorrências deste evento">
+<!ENTITY lightning.imipbar.btnUpdate.label "Atualizar">
+<!ENTITY lightning.imipbar.btnUpdate.tooltiptext "Atualizar evento no calendário">
+<!ENTITY lightning.imipbar.description "Esta mensagem tem um convite para um evento.">
+
+<!ENTITY lightning.imipbar.btnSend.label "Enviar uma resposta agora">
+<!ENTITY lightning.imipbar.btnSend.tooltiptext "Enviar uma resposta para o organizador">
+<!ENTITY lightning.imipbar.btnSendSeries.tooltiptext "Enviar uma resposta para todas as séries para o organizador">
+<!ENTITY lightning.imipbar.btnDontSend.label "Não enviar uma resposta">
+<!ENTITY lightning.imipbar.btnDontSend.tooltiptext "Alterar o seu estado de participação sem enviar uma resposta para o organizador">
+<!ENTITY lightning.imipbar.btnDontSendSeries.tooltiptext "Alterar o seu estado de participação para as séries sem enviar uma resposta para o organizador">
+
+<!-- Lightning specific keybindings -->
+<!ENTITY lightning.keys.event.new "I">
+<!ENTITY lightning.keys.todo.new "D">
+
+<!-- Account Central page -->
+<!ENTITY lightning.acctCentral.newCalendar.label "Criar um novo calendário">
+
+<!-- today-pane-specific -->
+<!ENTITY todaypane.showMinimonth.label "Mostrar mini-mês">
+<!ENTITY todaypane.showMinimonth.accesskey "m">
+<!ENTITY todaypane.showMiniday.label "Mostrar minidia">
+<!ENTITY todaypane.showMiniday.accesskey "d">
+<!ENTITY todaypane.showNone.label "Nada mostrar">
+<!ENTITY todaypane.showNone.accesskey "N">
+<!ENTITY todaypane.showTodayPane.label "Mostrar hoje">
+<!ENTITY todaypane.showTodayPane.accesskey "o">
+<!ENTITY todaypane.statusButton.label "Painel hoje">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/lightning/lightning.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/lightning/lightning.properties
new file mode 100644
index 0000000000..f42b3e652d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/lightning/lightning.properties
@@ -0,0 +1,201 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# addon description:
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.name=Lightning
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.description=Calendarização e agendamento integrados no seu cliente de email
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.creator=Projeto Mozilla Calendar
+
+# Lightning branding
+brandShortName=Lightning
+
+# Task mode title
+taskModeApplicationTitle=Tarefas
+
+# Tab titles
+tabTitleCalendar=Calendário
+tabTitleTasks=Tarefas
+
+# Html event display in message
+imipHtml.header=Convite para evento
+imipHtml.summary=Título:
+imipHtml.location=Localização:
+imipHtml.when=Quando:
+imipHtml.organizer=Organizador:
+imipHtml.description=Descrição:
+# LOCALIZATION_NOTE(imipHtml.attachments): This is a label for one or more (additional) links to
+# documents or websites attached to this event.
+imipHtml.attachments=Anexos:
+imipHtml.comment=Comentário:
+imipHtml.attendees=Participantes:
+# 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=Ligação relacionada:
+imipHtml.canceledOccurrences=Ocorrências canceladas:
+imipHtml.modifiedOccurrences=Ocorrências modificadas:
+imipHtml.newLocation=Novo local %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=(delegado de %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=(delegado em %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=%2$S - %1$S
+
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.CHAIR): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.CHAIR=%1$S preside o evento.
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.NON-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.NON-PARTICIPANT=%1$S é um não-participante.
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.OPT-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.OPT-PARTICIPANT=%1$S é um participante opcional.
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.REQ-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.REQ-PARTICIPANT=%1$S é um participante necessário.
+
+# 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 confirmou a participação.
+# 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 não aceitou a participação.
+# 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 delegou a participação em %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 ainda precisa de responder.
+# 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 confirmou a participação provisoriamente.
+
+# 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 (grupo)
+# 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 (recurso)
+# 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 (sala)
+# 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=Este evento foi adicionado ao seu calendário.
+imipCanceledItem2=O evento foi apagado do seu calendário.
+imipUpdatedItem2=O evento foi atualizado.
+imipBarCancelText=Esta mensagem contém um cancelamento de um evento.
+imipBarCounterErrorText=Esta mensagem contém uma contra-proposta para um convite mas não pode ser processada.
+imipBarCounterPreviousVersionText=Esta mensagem contém uma contra-proposta para uma versão anterior de um convite.
+imipBarCounterText=Esta mensagem contém uma contra-proposta a um convite.
+imipBarDisallowedCounterText=Esta mensagem contém uma contra-proposta, mas você não permite essa opção para este evento.
+imipBarDeclineCounterText=Esta mensagem contém uma resposta à sua contra-proposta.
+imipBarRefreshText=Esta mensagem contém uma atualização do evento.
+imipBarPublishText=Esta mensagem contém um evento.
+imipBarRequestText=Esta mensagem contém um convite para um evento.
+imipBarSentText=Esta mensagem contém um evento enviado.
+imipBarSentButRemovedText=Esta mensagem contém o envio de um evento que já não existe no calendário.
+imipBarUpdateText=Esta mensagem contém uma atualização a um evento existente.
+imipBarUpdateMultipleText=Esta mensagem contém atualizações para múltiplos eventos existentes.
+imipBarUpdateSeriesText=Esta mensagem contém uma atualização para uma série de eventos existentes.
+imipBarAlreadyProcessedText=Esta mensagem contém um evento que já foi processado.
+imipBarProcessedNeedsAction=Esta mensagem contém um evento a que ainda não respondeu.
+imipBarProcessedMultipleNeedsAction=Esta mensagem contém múltiplos eventos aos quais você ainda não respondeu.
+imipBarProcessedSeriesNeedsAction=Esta mensagem contém uma série de eventos aos quais você ainda não respondeu.
+imipBarReplyText=Esta mensagem contém uma resposta a um convite.
+imipBarReplyToNotExistingItem=Esta mensagem contem uma resposta referente a um evento que não está no seu calendário.
+# LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
+# %1$S - datetime of deletion
+imipBarReplyToRecentlyRemovedItem=Esta mensagem contem uma resposta referente a um evento que foi removido do seu calendário a %1$S.
+imipBarUnsupportedText=Esta mensagem contém um evento que esta versão do Lightning não pode processar.
+imipBarUnsupportedText2=Esta mensagem contém um evento que esta versão do %1$S não pode processar.
+imipBarProcessingFailed=Erro ao processar a mensagem. Estado: %1$S.
+imipBarCalendarDeactivated=Esta mensagem contém informações do evento. Ative um calendário para o gerir.
+imipBarNotWritable=Não existem calendários editáveis configurados para convites, por favor verifique as propriedades do calendário.
+imipSendMail.title=Notificação por e-mail
+imipSendMail.text=Deseja enviar agora as mensagens de notificação?
+imipNoIdentity=Nenhuma
+imipNoCalendarAvailable=Não existem calendários editáveis disponíveis.
+
+itipReplySubject2=Resposta ao convite: %1$S
+itipReplyBodyAccept=%1$S aceitou o seu convite para o evento.
+itipReplyBodyDecline=%1$S não aceitou o seu convite para o evento.
+itipReplySubjectAccept2=Aceite: %1$S
+itipReplySubjectDecline2=Convite recusado: %1$S
+itipReplySubjectTentative2=Tentativo: %1$S
+itipRequestSubject2=Convite: %1$S
+itipRequestUpdatedSubject2=Atualizado: %1$S
+itipRequestBody=%1$S convidou-lhe para %2$S
+itipCancelSubject2=Cancelado: %1$S
+itipCancelBody=%1$S cancelou este evento: %2$S
+itipCounterBody=%1$S fez uma contra-propostas para %2$S:
+itipDeclineCounterBody=%1$S recusou a sua contra-proposta para %2$S.
+itipDeclineCounterSubject=Contra-proposta recusada: %1$S
+
+confirmProcessInvitation=Eliminou este item recentemente. Tem a certeza que deseja processar este convite?
+confirmProcessInvitationTitle=Processar convite?
+
+invitationsLink.label=Convites: %1$S
+
+# LOCALIZATION_NOTE(binaryComponentKnown): This is shown when Lightning is
+# missing the binary component and knows how to calculate the expected version
+# number. To test, remove the binary component from the components/
+# subdirectory and start Lightning, or force install into a different
+# Thunderbird version. In the last part of the sentence it should be made clear
+# that the user can install e.g. 3.7, 3.7.1 or anything other 3.7.x version
+# %1$S - The Lightning brand name, from the brandShortName string above.
+# %2$S - The current Lightning version
+# %3$S - The expected Lightning version
+binaryComponentKnown=O componente binário necessário para %1$S não foi carregado, provavelmente porque está a utilizar uma combinação de versão errada. Você tem instalado o %1$S %2$S, mas deveria utilizar uma versão da série %3$S.
+
+# LOCALIZATION_NOTE(binaryComponentUnknown): This is shown when Lightning is
+# missing the binary component but can't calculate the expected version. This
+# happens in the rare case that Lightning is installed into something other
+# than Thunderbird or Seamonkey. You may link to a different page if you can
+# commit to keeping it up to date, I'd recommend staying with the English page.
+# %1$S - The Lightning brand name, from the brandShortName string above.
+# %2$S - The application brand name, e.g. Postbox
+# %3$S - The application version
+# %3$S - The current Lightning version
+binaryComponentUnknown=O componente binário necessário para %1$S não foi carregado, provavelmente porque está a utilizar uma combinação de versão errada. Você está a utilizar o %2$S %3$S e ao mesmo tempo o %1$S %4$S. Por favor consulte https://developer.mozilla.org/en/Calendar/Calendar_Versions para mais informações.
+
+# LOCALIZATION_NOTE(binaryComponentTitle): The title for the dialog that
+# notifies about a version mismatch.
+# %1$S - The Lightning brand name, from the brandShortName string above.
+binaryComponentTitle=Versão do %1$S não correspondente
+
+# LOCALIZATION NOTE(noIdentitySelectedNotification):
+noIdentitySelectedNotification=Se deseja utilizar este calendário para armazenar convites para ou de outras pessoas deve atribuir uma identidade de email abaixo.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-mapi/mapi.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-mapi/mapi.properties
new file mode 100644
index 0000000000..23afa8b706
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-mapi/mapi.properties
@@ -0,0 +1,35 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Mail Integration Dialog
+dialogTitle=%S
+dialogText=Deseja utilizar o %S como aplicação predefinida para correio eletrónico?\u0020
+newsDialogText=Deseja utilizar o %S como aplicação predefinida para notícias?
+feedDialogText=Deseja utilizar o %S como aplicação predefinida de fontes agregadoras?
+checkboxText=Não mostrar novamente
+setDefaultMail=Atualmente, o %S não é a aplicação predefinida de correio eletrónico. Gostaria de o tornar a aplicação predefinida?
+setDefaultNews=Atualmente, o %S não é a aplicação de notícias predefinida. Gostaria de o tornar a aplicação predefinida?
+setDefaultFeed=Atualmente, o %S não é a sua aplicação de agregação de fontes predefinida. Gostaria de definir esta aplicação como o seu agregador de fontes predefinido?
+alreadyDefaultMail=O %S já é a aplicação predefinida de correio eletrónico.
+alreadyDefaultNews=O %S já é a aplicação predefinida de notícias.
+alreadyDefaultFeed=O %S já é a aplicação predefinida de fontes agregadoras.
+
+# MAPI Messages
+loginText=Por favor introduza a palavra-passe para %S:
+loginTextwithName=Por favor introduza o nome de utilizador e a palavra-passe\u0020
+loginTitle=%S
+PasswordTitle=%S
+
+# MAPI Error Messages
+errorMessage=O %S não pode ser definido como a aplicação predefinida de correio eletrónico porque uma chave do registo não foi atualizada. Verifique com o administrador de sistemas se tem permissões de escrita no registo do sistema e tente novamente.
+errorMessageNews=O %S não pode ser definido como a aplicação predefinida de notícias porque uma chave do registo não foi atualizada. Verifique com o administrador de sistemas se tem permissões de escrita no registo do sistema e tente novamente.
+errorMessageTitle=%S
+
+# MAPI Security Messages
+mapiBlindSendWarning=Outra aplicação está a tentar enviar correio utilizando o seu perfil. Tem a certeza que pretende enviar correio?
+mapiBlindSendDontShowAgain=Avisar-me quando outras aplicações tentarem enviar correio
+
+#Default Mail Display String
+# localization note, %S is the vendor name
+defaultMailDisplayTitle=%S
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-newsblog/am-newsblog.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-newsblog/am-newsblog.dtd
new file mode 100644
index 0000000000..944c306072
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-newsblog/am-newsblog.dtd
@@ -0,0 +1,14 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY biffAll.label "Ativar atualizações para todas as fontes">
+<!ENTITY biffAll.accesskey "A">
+
+<!ENTITY newFeedSettings.label "Definições predefinidas para novas fontes">
+
+<!ENTITY manageSubscriptions.label "Gerir subscrições…">
+<!ENTITY manageSubscriptions.accesskey "G">
+
+<!ENTITY feedWindowTitle.label "Assistente para conta de fontes">
+<!ENTITY feeds.accountName "Blogues e fontes de notícias">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-newsblog/feed-subscriptions.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-newsblog/feed-subscriptions.dtd
new file mode 100644
index 0000000000..0bec50afd5
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-newsblog/feed-subscriptions.dtd
@@ -0,0 +1,55 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Subscription Dialog -->
+<!ENTITY feedSubscriptions.label "Subscrições de fontes">
+<!ENTITY learnMore.label "Saber mais sobre fontes">
+
+<!ENTITY feedTitle.label "Título:">
+<!ENTITY feedTitle.accesskey "T">
+
+<!ENTITY feedLocation.label "URL da fonte:">
+<!ENTITY feedLocation.accesskey "U">
+<!ENTITY feedLocation2.placeholder "Introduza um url de fonte válido">
+<!ENTITY locationValidate.label "Validar">
+<!ENTITY validateText.label "Verificar a validação e obter um url válido.">
+
+<!ENTITY feedFolder.label "Guardar artigos em:">
+<!ENTITY feedFolder.accesskey "G">
+
+<!-- Account Settings and Subscription Dialog -->
+<!ENTITY biffStart.label "Procurar novos artigos a cada ">
+<!ENTITY biffStart.accesskey "P">
+<!ENTITY biffMinutes.label "minutos">
+<!ENTITY biffMinutes.accesskey "n">
+<!ENTITY biffDays.label "dias">
+<!ENTITY biffDays.accesskey "d">
+<!ENTITY recommendedUnits.label "O publicador recomenda:">
+
+<!ENTITY quickMode.label "Mostrar o sumário do artigo em vez de carregar a página web">
+<!ENTITY quickMode.accesskey "M">
+
+<!ENTITY autotagEnable.label "Criar etiquetas automaticamente de nomes de &lt;categorias&gt; da fonte">
+<!ENTITY autotagEnable.accesskey "c">
+<!ENTITY autotagUsePrefix.label "Prefixar etiquetas com:">
+<!ENTITY autotagUsePrefix.accesskey "P">
+<!ENTITY autoTagPrefix.placeholder "Introduza um prefixo de etiqueta">
+
+<!-- Subscription Dialog -->
+<!ENTITY button.addFeed.label "Adicionar">
+<!ENTITY button.addFeed.accesskey "A">
+<!ENTITY button.verifyFeed.label "Verificar">
+<!ENTITY button.verifyFeed.accesskey "V">
+<!ENTITY button.updateFeed.label "Atualizar">
+<!ENTITY button.updateFeed.accesskey "u">
+<!ENTITY button.removeFeed.label "Remover">
+<!ENTITY button.removeFeed.accesskey "R">
+<!ENTITY button.importOPML.label "Importar">
+<!ENTITY button.importOPML.accesskey "I">
+<!ENTITY button.exportOPML.label "Exportar">
+<!ENTITY button.exportOPML.accesskey "x">
+<!ENTITY button.exportOPML.tooltip "Exportar fontes com a estrutura da pasta. Ctrl+clique ou Ctrl+enter para exportar fontes como lista">
+
+<!ENTITY cmd.close.commandKey "W">
+<!ENTITY button.close.label "Fechar">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-newsblog/newsblog.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-newsblog/newsblog.properties
new file mode 100644
index 0000000000..eea73abf60
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-newsblog/newsblog.properties
@@ -0,0 +1,93 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+subscribe-validating-feed=A verificar a fonte…
+subscribe-cancelSubscription=Tem a certeza que pretende cancelar a subscrição na fonte atual?
+subscribe-cancelSubscriptionTitle=A subscrever fonte…
+subscribe-feedAlreadySubscribed=Já existe uma subscrição para esta fonte.
+subscribe-errorOpeningFile=Não foi possível abrir o ficheiro.
+subscribe-feedAdded=Fonte adicionada.
+subscribe-feedUpdated=Fonte atualizada.
+subscribe-feedMoved=Subscrição de fonte movida.
+subscribe-feedCopied=Subscrição de fonte cancelada.
+subscribe-feedRemoved=Subscrição de fonte removida.
+subscribe-feedNotValid=O URL da fonte não é válido.
+subscribe-feedVerified=O URL da fonte foi verificado.
+subscribe-networkError=O URL da fonte não foi encontrado. Verifique o nome e tente novamente.
+subscribe-noAuthError=O URL da fonte não é autorizado.
+subscribe-loading=A carregar. Por favor aguarde…
+
+subscribe-OPMLImportTitle=Selecione o ficheiro OPML a importar
+## LOCALIZATION NOTE(subscribe-OPMLExportTitleList):
+## %S is the name of the feed account folder name.
+subscribe-OPMLExportTitleList=Exportar %S como ficheiro OPML (lista de fontes)
+## LOCALIZATION NOTE(subscribe-OPMLExportTitleStruct):
+## %S is the name of the feed account folder name.
+subscribe-OPMLExportTitleStruct=Exportar %S como ficheiro OPML (fontes com uma pasta estruturada)
+## LOCALIZATION NOTE(subscribe-OPMLExportFileDialogTitle):
+## %1$S is the brandShortName, %2$S is the name of the feed account folder name.
+subscribe-OPMLExportFileDialogTitle=Exportação OPML do %1$S - %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=FontesDo%1$S-%2$S.opml
+## LOCALIZATION NOTE(subscribe-OPMLImportInvalidFile): %S is the name of the OPML file the user tried to import.
+subscribe-OPMLImportInvalidFile=O ficheiro %S não parece ser um ficheiro OPML válido.
+## 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=Importada #1 nova fonte.;Importadas #1 novas fontes.
+## LOCALIZATION NOTE(subscribe-OPMLImportUniqueFeeds): Semi-colon list of plural forms.
+## #1 is the count of new imported entries
+subscribe-OPMLImportUniqueFeeds=Importada #1 nova fonte para a qual não existe subscrição;Importadas #1 novas fonte para as quais não existe subscrição
+## LOCALIZATION NOTE(subscribe-OPMLImportFoundFeeds):
+## #1 is total number of elements found in the file
+subscribe-OPMLImportFoundFeeds=(#1 entrada encontrada);(#1 entradas encontradas)
+## LOCALIZATION NOTE(subscribe-OPMLImportStatus):
+## This is the concatenation of the two strings defined above to compose 1 sentence.
+## %1$S = subscribe-OPMLImportUniqueFeeds
+## %2$S = subscribe-OPMLImportFoundFeeds
+subscribe-OPMLImportStatus=%1$S %2$S.
+
+subscribe-OPMLExportOPMLFilesFilterText=Ficheiros OPML
+## LOCALIZATION NOTE(subscribe-OPMLExportDone): %S is the export file name.
+subscribe-OPMLExportDone=As fontes desta conta foram exportadas para %S.
+
+subscribe-confirmFeedDeletionTitle=Remover fonte
+## LOCALIZATION NOTE(subscribe-confirmFeedDeletion): %S is the name of the feed the user wants to unsubscribe from.
+subscribe-confirmFeedDeletion=Tem a certeza que pretende cancelar a subscrição na fonte: \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=A descarregar artigos da fonte (%S de %S)…
+
+newsblog-noNewArticlesForFeed=Não existem novos artigos para esta fonte.
+## LOCALIZATION NOTE(newsblog-networkError): %S is the feed URL
+newsblog-networkError=%S não foi encontrada. Verifique o nome e tente novamente.
+## LOCALIZATION NOTE(newsblog-feedNotValid): %S is the feed URL
+newsblog-feedNotValid=%S não é uma fonte válida.
+## LOCALIZATION NOTE(newsblog-badCertError): %S is the feed URL host
+newsblog-badCertError=%S utiliza um certificado de segurança inválido.
+## LOCALIZATION NOTE(newsblog-noAuthError): %S is the feed URL
+newsblog-noAuthError=%S não está autorizado.
+newsblog-getNewMsgsCheck=A procurar novos artigos das fontes…
+
+## LOCALIZATION NOTE(feeds-accountname): This string should be the same as feeds.accountName in am-newsblog.dtd
+feeds-accountname=Fontes de notícias e blogues
+
+## LOCALIZATION NOTE(externalAttachmentMsg): Content in the MIME part for external link attachments.
+externalAttachmentMsg=Este anexo MIME será guardado separadamente da mensagem.
+
+## Import wizard.
+ImportFeedsCreateNewListItem=* Nova conta *
+ImportFeedsNewAccount=Criar e importar para uma nova conta de fontes
+ImportFeedsExistingAccount=Importar para uma conta de fontes existente
+## 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=nova
+ImportFeedsExisting=existente
+ImportFeedsDone=A importação de subscrições de fontes do ficheiro %1$S para a conta %2$S '%3$S' foi concluída.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-region/region.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-region/region.properties
new file mode 100644
index 0000000000..59b7d0b3ab
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-region/region.properties
@@ -0,0 +1,29 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# To make mapit buttons to disappear in the addressbook, specify empty string. For example:
+# mail.addr_book.mapit_url.format=
+# The mail.addr_book.mapit_url.format should start with the URL of the mapping
+# service and then the query part with placeholders to be subsituted from values
+# from the addressbook contact's address.
+# Available placeholders are:
+# @A1 == address, part 1
+# @A2 == address, part 2
+# @CI == city
+# @ST == state
+# @ZI == zip code
+# @CO == country
+# Default map service:
+mail.addr_book.mapit_url.format=http://maps.google.com/maps?q=@A1%20@A2%20@CI%20@ST%20@ZI%20@CO
+# List of available map services (up to 5 can be defined here):
+mail.addr_book.mapit_url.1.name=Google Maps
+mail.addr_book.mapit_url.1.format=http://maps.google.com/maps?q=@A1%20@A2%20@CI%20@ST%20@ZI%20@CO
+mail.addr_book.mapit_url.2.name=OpenStreetMap
+mail.addr_book.mapit_url.2.format=http://nominatim.openstreetmap.org/search.php?polygon=1&q=@A1%2C@A2%2C@CI%2C@ST%2C@ZI%2C@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/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/certFetchingStatus.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/certFetchingStatus.dtd
new file mode 100644
index 0000000000..6fcc77e4f4
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/certFetchingStatus.dtd
@@ -0,0 +1,9 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE shown while obtaining certificates from a directory -->
+
+<!ENTITY title.label "A descarregar certificados">
+<!ENTITY info.message "A pesquisar diretório dos certificados dos destinatários. Pode demorar alguns minutos.">
+<!ENTITY stop.label "Parar pesquisa">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgCompSMIMEOverlay.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgCompSMIMEOverlay.dtd
new file mode 100644
index 0000000000..020a713182
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgCompSMIMEOverlay.dtd
@@ -0,0 +1,16 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgCompSMIMEOverlay.dtd UI for s/mime hooks in message composition -->
+
+<!-- not yet used
+<!ENTITY menu_securityEncryptOptional.label "Allow Encryption">
+<!ENTITY menu_securityEncryptOptional.accesskey "w">
+-->
+
+<!ENTITY menu_techPGP.label "OpenPGP">
+<!ENTITY menu_techPGP.accesskey "O">
+<!ENTITY menu_techSMIME.label "S/MIME">
+<!ENTITY menu_techSMIME.accesskey "S">
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgCompSecurityInfo.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgCompSecurityInfo.dtd
new file mode 100644
index 0000000000..0abd5cbde2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Segurança da mensagem">
+<!ENTITY subject.plaintextWarning "Nota: as linhas de assunto das mensagens eletrónicas nunca são encriptadas.">
+<!ENTITY status.heading "O conteúdo da sua mensagem será enviado da seguinte forma:">
+<!ENTITY status.signed "Assinatura digital:">
+<!ENTITY status.encrypted "Encriptada:">
+<!ENTITY status.certificates "Certificados:">
+<!ENTITY view.label "Ver">
+<!ENTITY view.accesskey "V">
+<!ENTITY tree.recipient "Destinatário">
+<!ENTITY tree.status "Estado">
+<!ENTITY tree.issuedDate "Emitido">
+<!ENTITY tree.expiresDate "Expira">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgCompSecurityInfo.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgCompSecurityInfo.properties
new file mode 100644
index 0000000000..0b0e798feb
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Não encontrado
+StatusValid=Válido
+StatusExpired=Expirado
+StatusUntrusted=Não fidedigno
+StatusRevoked=Revogado
+StatusInvalid=Inválido
+StatusYes=Sim
+StatusNo=Não
+StatusNotPossible=Não é possível
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgReadSMIMEOverlay.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgReadSMIMEOverlay.properties
new file mode 100644
index 0000000000..29e9932634
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=A mensagem foi assinada digitalmente, mas nem todos os seus anexos foram descarregados. Portanto, a assinatura não pode ser validada. Clique OK para descarregar toda a mensagem e validar a assinatura.
+#
+#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=O %brand% não consegue desencriptar esta mensagem
+CantDecryptBody=O remetente encriptou esta mensagem para si, usando um dos seus certificados digitais. No entanto o %brand% não conseguiu encontrar este certificado e a correspondente chave privada. <br> Soluções possíveis: <br><ul><li>Se tiver um smartcard, por favor insira-o agora. <li>Se está a usar uma nova máquina, ou se está a usar um novo perfil do %brand%, terá que restaurar o seu certificado e chave privada a partir de um backup. Os backups de certificados normalmente terminam em".p12".</ul>\u0020
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgReadSecurityInfo.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgReadSecurityInfo.dtd
new file mode 100644
index 0000000000..967f587f24
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgReadSecurityInfo.dtd
@@ -0,0 +1,17 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgReadSecurityInfo.dtd UI for viewing security status when reading a received message -->
+
+<!ENTITY status.label "Segurança da mensagem">
+<!ENTITY signatureCert.label "Ver certificado da assinatura">
+<!ENTITY encryptionCert.label "Ver certificado da encriptação">
+
+<!ENTITY signer.name "Assinado por:">
+<!ENTITY recipient.name "Encriptada por:">
+<!ENTITY email.address "Endereço de e-mail:">
+<!ENTITY issuer.name "Emitido por:">
+
+<!-- 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/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgSecurityInfo.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgSecurityInfo.properties
new file mode 100644
index 0000000000..196d5d3485
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger-smime/msgSecurityInfo.properties
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Signature Information strings
+SINoneLabel=A mensagem não tem uma assinatura digital
+SINone=Esta mensagem não inclui a assinatura digital do remetente. A ausência de uma assinatura digital significa que a mensagem pode ter sido enviada por alguém que pretende dar a entender que tem este endereço de e-mail. É também possível que a mensagem tenha sido alterada ao transitar pela rede. No entanto, é improvável que tal evento tenha acontecido.
+SIValidLabel=A mensagem está assinada
+SIValid=Esta mensagem inclui uma assinatura digital válida. A mensagem não foi alterada desde que foi enviada.
+SIInvalidLabel=A assinatura digital não é válida
+SIInvalidHeader=Esta mensagem contém uma assinatura digital mas esta é inválida.
+SIContentAltered=A assinatura não corresponde corretamente ao conteúdo. A mensagem parece ter sido alterada depois do remetente a ter assinado. Não deve confiar na validade desta mensagem até confirmar o conteúdo com o remetente.
+SIExpired=O certificado utilizado para assinar a mensagem parece ter expirado. Verifique se o relógio do seu computador está certo.
+SIRevoked=O certificado utilizado para assinar a mensagem foi revogado. Não deve confiar na validade desta mensagem até verificar o conteúdo com o remetente.
+SINotYetValid=O certificado utilizado para assinar a mensagem parece não ser ainda válido. Verifique se o relógio do seu computador está certo.
+SIUnknownCA=O certificado utilizado para assinar a mensagem foi emitido por uma autoridade certificada desconhecida.
+SIUntrustedCA=O certificado utilizado para assinar a mensagem foi emitido por uma autoridade certificada em que você não confia para este tipo de certificado.
+SIExpiredCA=O certificado utilizado para assinar a mensagem foi emitido por uma autoridade certificada em que o próprio certificado expirou. Verifique se o relógio do seu computador está certo.
+SIRevokedCA=O certificado utilizado para assinar a mensagem foi emitido por uma autoridade certificada em que o próprio certificado foi revogado. Não deve confiar na validade desta mensagem até verificar o seu conteúdo com o remetente.
+SINotYetValidCA=O certificado utilizado para assinar a mensagem foi emitido por uma autoridade certificada em que o próprio certificado ainda não é válido. Verifique se o relógio do seu computador está certo.
+SIInvalidCipher=A mensagem foi assinada usando uma força de encriptação que esta versão do seu software não suporta.
+SIClueless=Existem problemas desconhecidos com esta assinatura digital. Não deve confiar na validade desta mensagem até confirmar o conteúdo com o remetente.
+SIPartiallyValidLabel=A mensagem está assinada
+SIPartiallyValidHeader=Apesar da assinatura digital ser válida, não se sabe se o remetente e o assinante são a mesma pessoa.
+SIHeaderMismatch=O endereço de email descrito no certificado do assinante é diferente do endereço utilizado para enviar a mensagem. Verifique os detalhes do certificado da assinatura para saber quem assinou a mensagem.
+SICertWithoutAddress=O certificado utilizado para assinar a mensagem não contém um endereço de e-mail. Verifique os detalhes do certificado da assinatura para saber quem assinou a mensagem.
+
+## Encryption Information strings
+EINoneLabel2=A mensagem não está encriptada
+EINone=Esta mensagem não foi encriptada antes de ser enviada. A informação enviada através da Internet sem encriptação pode ser vista por outras pessoas enquanto está em trânsito.
+EIValidLabel=A mensagem está encriptada
+EIValid=Esta mensagem foi encriptada antes de ser enviada para si. A encriptação torna muito difícil para outras pessoas ver a informação enquanto ela viaja pela rede.
+EIInvalidLabel=A mensagem não pode ser desencriptada
+EIInvalidHeader=Esta mensagem foi encriptada antes de ser enviada para si, mas não pode ser desencriptada.
+EIContentAltered=O conteúdo da mensagem parece ter sido alterado durante a transmissão.
+EIClueless=Existem problemas desconhecidos com esta mensagem encriptada.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/AccountManager.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/AccountManager.dtd
new file mode 100644
index 0000000000..e22ab6447a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/AccountManager.dtd
@@ -0,0 +1,25 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from AccountManager.xhtml -->
+
+<!ENTITY accountManagerTitle.label "Definições da conta">
+<!ENTITY accountManagerCloseButton.label "Fechar">
+
+<!ENTITY accountActionsButton.label "Ações da conta">
+<!ENTITY accountActionsButton.accesskey "A">
+<!ENTITY addMailAccountButton.label "Adicionar conta de correio…">
+<!ENTITY addMailAccountButton.accesskey "A">
+<!ENTITY addIMAccountButton.label "Adicionar conta de chat…">
+<!ENTITY addIMAccountButton.accesskey "c">
+<!ENTITY addFeedAccountButton.label "Adicionar conta de fontes…">
+<!ENTITY addFeedAccountButton.accesskey "f">
+<!ENTITY setDefaultButton.label "Utilizar como predefinida">
+<!ENTITY setDefaultButton.accesskey "U">
+<!ENTITY removeButton.label "Remover conta">
+<!ENTITY removeButton.accesskey "R">
+
+<!ENTITY addonsButton.label "Extensões e temas">
+
+<!-- AccountManager.xhtml -->
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/AccountWizard.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/AccountWizard.dtd
new file mode 100644
index 0000000000..2c685200eb
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/AccountWizard.dtd
@@ -0,0 +1,50 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Entities for AccountWizard -->
+
+<!ENTITY windowTitle.label "Assistente de contas">
+
+<!-- Entities for Identity page -->
+
+<!ENTITY identityTitle.label "Identidade">
+<!ENTITY identityDesc.label "Cada conta tem uma identidade, que é o seu identificador perante terceiros quando estes recebem as suas mensagens.">
+
+<!-- LOCALIZATION NOTE (fullnameDesc.label) : do not translate two of "&quot;" in below line -->
+<!ENTITY fullnameDesc.label "Introduza o nome que gostaria de mostrar no campo &quot;De&quot;, ao enviar mensagens">
+<!-- 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 "(exemplo: &quot;Seu nome&quot;).">
+<!ENTITY fullnameLabel.label "O seu nome:">
+<!ENTITY fullnameLabel.accesskey "n">
+
+<!ENTITY emailLabel.label "Endereço de e-mail:">
+<!ENTITY emailLabel.accesskey "E">
+
+<!-- Entities for Incoming Server page -->
+
+<!ENTITY incomingTitle.label "Informações do servidor de receção">
+<!ENTITY incomingUsername.label "Nome de utilizador:">
+<!-- LOCALIZATION NOTE (newsServerNameDesc.label) : Do not translate "NNTP" or the "&quot;" entities in below line -->
+<!ENTITY newsServerNameDesc.label "Introduza o nome do servidor de notícias (NNTP) (por exemplo, &quot;news.example.net&quot;).">
+<!ENTITY newsServerLabel.label "Servidor do grupo de notícias:">
+<!ENTITY newsServerLabel.accesskey "S">
+
+<!-- Entities for Account name page -->
+
+<!ENTITY accnameTitle.label "Nome da conta">
+<!-- LOCALIZATION NOTE (accnameDesc.label) : do not translate any "&quot;" in below line -->
+<!ENTITY accnameDesc.label "Introduza o nome que identifica esta conta (por exemplo: &quot;Conta profissional&quot;, &quot;Conta pessoal&quot; ou &quot;Conta de notícias&quot;).">
+<!ENTITY accnameLabel.label "Nome da conta:">
+<!ENTITY accnameLabel.accesskey "a">
+
+<!-- Entities for Done (Congratulations) page -->
+
+<!ENTITY completionTitle.label "Parabéns!">
+<!ENTITY completionText.label "Verifique se a informações estão corretas.">
+<!ENTITY newsServerNamePrefix.label "Nome do servidor de notícias (NNTP):">
+<!ENTITY clickFinish.label "Clique em Concluir para guardar estas definições e sair do assistente.">
+<!ENTITY clickFinish.labelMac "Clique em Terminar para guardar estas definições e sair do assistente da conta.">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/CustomHeaders.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/CustomHeaders.dtd
new file mode 100644
index 0000000000..df66cd3bcf
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Personalizar cabeçalho">
+<!ENTITY addButton.label "Adicionar">
+<!ENTITY addButton.accesskey "A">
+<!ENTITY removeButton.label "Remover">
+<!ENTITY removeButton.accesskey "R">
+<!ENTITY newMsgHeader.label "Cabeçalho da nova mensagens:">
+<!ENTITY newMsgHeader.accesskey "C">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/FilterEditor.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/FilterEditor.dtd
new file mode 100644
index 0000000000..a4fa2e5b6d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/FilterEditor.dtd
@@ -0,0 +1,67 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY window.title "Regras de filtros">
+<!ENTITY filterName.label "Nome do filtro:">
+<!ENTITY filterName.accesskey "N">
+
+<!ENTITY junk.label "Lixo eletrónico">
+<!ENTITY notJunk.label "Não é lixo eletrónico">
+
+<!ENTITY lowestPriorityCmd.label "Muito baixa">
+<!ENTITY lowPriorityCmd.label "Baixa">
+<!ENTITY normalPriorityCmd.label "Normal">
+<!ENTITY highPriorityCmd.label "Alta">
+<!ENTITY highestPriorityCmd.label "Muito alta">
+
+<!ENTITY contextDesc.label "Aplicar filtro:">
+<!ENTITY contextIncomingMail.label "Ao obter novo correio:">
+<!ENTITY contextIncomingMail.accesskey "b">
+<!ENTITY contextManual.label "Ao verificar manualmente">
+<!ENTITY contextManual.accesskey "f">
+<!ENTITY contextBeforeCls.label "Filtrar antes da classificação de lixo eletrónico">
+<!ENTITY contextAfterCls.label "Filtrar depois da classificação de lixo eletrónico">
+<!ENTITY contextOutgoing.label "Após enviar">
+<!ENTITY contextOutgoing.accesskey "s">
+<!ENTITY contextArchive.label "Ao arquivar">
+<!ENTITY contextArchive.accesskey "A">
+
+<!ENTITY contextPeriodic.accesskey "o">
+
+<!ENTITY filterActionDesc.label "Realizar estas ações:">
+<!ENTITY filterActionDesc.accesskey "E">
+
+<!ENTITY filterActionOrderWarning.label "Nota: as ações serão excutadas por uma ordem diferente.">
+<!ENTITY filterActionOrder.label "Veja a ordem de execução">
+
+<!-- New Style Filter Rule Actions -->
+<!ENTITY moveMessage.label "Mover mensagem para">
+<!ENTITY copyMessage.label "Copiar mensagem para">
+<!ENTITY forwardTo.label "Reencaminhar mensagem para">
+<!ENTITY replyWithTemplate.label "Responder com modelo">
+<!ENTITY markMessageRead.label "Marcar como lida">
+<!ENTITY markMessageUnread.label "Marcar como não lida">
+<!ENTITY markMessageStarred.label "Adicionar estrela">
+<!ENTITY setPriority.label "Definir prioridade para">
+<!ENTITY addTag.label "Etiquetar mensagem">
+<!ENTITY setJunkScore.label "Definir estado de lixo eletrónico para">
+<!ENTITY deleteMessage.label "Apagar mensagem">
+<!ENTITY deleteFromPOP.label "Apagar do servidor POP">
+<!ENTITY fetchFromPOP.label "Obter a partir de servidor POP">
+<!ENTITY ignoreThread.label "Ignorar tópico">
+<!ENTITY ignoreSubthread.label "Ignorar subtópico">
+<!ENTITY watchThread.label "Ver tópico">
+<!ENTITY stopExecution.label "Parar execução de filtro">
+
+<!ENTITY addAction.tooltip "Adicionar uma nova ação">
+<!ENTITY removeAction.tooltip "Remover esta ação">
+
+<!-- LOCALIZATION NOTE
+ The values below are used to control the widths of the filter action widgets.
+ Change the values only when the localized strings in the popup menus
+ are truncated in the widgets.
+ -->
+<!-- Flex Attribute: https://developer.mozilla.org/docs/XUL/Attribute/flex -->
+<!ENTITY filterActionTypeFlexValue "1">
+<!ENTITY filterActionTargetFlexValue "4">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/FilterListDialog.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/FilterListDialog.dtd
new file mode 100644
index 0000000000..8671ccd93e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/FilterListDialog.dtd
@@ -0,0 +1,40 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY window.title "Filtros de mensagens">
+<!ENTITY nameColumn.label "Nome do filtro">
+<!ENTITY activeColumn.label "Ativo">
+<!ENTITY newButton.label "Novo...">
+<!ENTITY newButton.accesskey "N">
+<!ENTITY newButton.popupCopy.label "Copiar…">
+<!ENTITY newButton.popupCopy.accesskey "C">
+<!ENTITY editButton.label "Editar...">
+<!ENTITY editButton.accesskey "E">
+<!ENTITY deleteButton.label "Apagar">
+<!ENTITY deleteButton.accesskey "A">
+<!ENTITY reorderTopButton "Mover para o topo">
+<!ENTITY reorderTopButton.accessKey "o">
+<!ENTITY reorderTopButton.toolTip "Arranjar filtro para que seja executado antes de todos os outros">
+<!ENTITY reorderUpButton.label "Mover para cima">
+<!ENTITY reorderUpButton.accesskey "c">
+<!ENTITY reorderDownButton.label "Mover para baixo">
+<!ENTITY reorderDownButton.accesskey "b">
+<!ENTITY reorderBottomButton "Mover para o fim">
+<!ENTITY reorderBottomButton.accessKey "M">
+<!ENTITY reorderBottomButton.toolTip "Arranjar filtro para que seja executado depois de todos os outros">
+<!ENTITY filterHeader.label "Os filtros ativos são executados automaticamente pela ordem mostrada abaixo.">
+<!ENTITY filtersForPrefix.label "Filtros para:">
+<!ENTITY filtersForPrefix.accesskey "F">
+<!ENTITY viewLogButton.label "Registo do filtro">
+<!ENTITY viewLogButton.accesskey "g">
+<!ENTITY runFilters.label "Executar agora">
+<!ENTITY runFilters.accesskey "E">
+<!ENTITY stopFilters.label "Parar">
+<!ENTITY stopFilters.accesskey "P">
+<!ENTITY folderPickerPrefix.label "Executar o(s) filtro(s) selecionado(s) em:">
+<!ENTITY folderPickerPrefix.accesskey "c">
+<!ENTITY helpButton.label "Ajuda">
+<!ENTITY helpButton.accesskey "u">
+<!ENTITY closeCmd.key "W">
+<!ENTITY searchBox.emptyText "Pesquisar filtros por nome…">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/SearchDialog.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/SearchDialog.dtd
new file mode 100644
index 0000000000..412b6a00ab
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/SearchDialog.dtd
@@ -0,0 +1,41 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!-- for SearchDialog.xul -->
+
+<!ENTITY searchHeading.label "Procurar mensagens em:">
+<!ENTITY searchHeading.accesskey "n">
+<!ENTITY searchSubfolders.label "Procurar em subpastas">
+<!ENTITY searchSubfolders.accesskey "e">
+<!ENTITY searchOnServer.label "Executar pesquisa no servidor">
+<!ENTITY searchOnServer.accesskey "u">
+<!ENTITY resetButton.label "Limpar">
+<!ENTITY resetButton.accesskey "L">
+<!ENTITY openButton.label "Abrir">
+<!ENTITY openButton.accesskey "A">
+<!ENTITY deleteButton.label "Apagar">
+<!ENTITY deleteButton.accesskey "A">
+<!ENTITY searchDialogTitle.label "Pesquisar mensagens">
+<!ENTITY results.label "Resultados">
+<!ENTITY moveButton.label "Mover para">
+<!ENTITY moveButton.accesskey "v">
+<!ENTITY closeCmd.key "W">
+<!ENTITY openInFolder.label "Abrir na pasta">
+<!ENTITY openInFolder.accesskey "r">
+<!ENTITY saveAsVFButton.label "Guardar como pasta de pesquisa">
+<!ENTITY saveAsVFButton.accesskey "c">
+<!-- for ABSearchDialog.xul -->
+
+<!ENTITY abSearchHeading.label "Procurar em:">
+<!ENTITY abSearchHeading.accesskey "u">
+<!ENTITY propertiesButton.label "Propriedades">
+<!ENTITY propertiesButton.accesskey "P">
+<!ENTITY composeButton.label "Escrever">
+<!ENTITY composeButton.accesskey "s">
+<!ENTITY deleteCardButton.label "Apagar">
+<!ENTITY deleteCardButton.accesskey "A">
+<!ENTITY abSearchDialogTitle.label "Pesquisa avançada no livro de endereços">
+<!-- Thread Pane -->
+
+<!-- Thread Pane Tooltips -->
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/aboutDownloads.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/aboutDownloads.dtd
new file mode 100644
index 0000000000..788fc15212
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/aboutDownloads.dtd
@@ -0,0 +1,23 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY aboutDownloads.title "Ficheiros guardados">
+<!-- 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 "Abrir pasta do ficheiro">
+<!ENTITY cmd.show.accesskey "b">
+<!ENTITY cmd.showMac.label "Mostrar no Finder">
+<!ENTITY cmd.showMac.accesskey "F">
+<!ENTITY cmd.open.label "Abrir">
+<!ENTITY cmd.open.accesskey "A">
+<!ENTITY cmd.removeFromHistory.label "Remover do histórico">
+<!ENTITY cmd.removeFromHistory.accesskey "e">
+<!ENTITY cmd.clearList.label "Limpar lista">
+<!ENTITY cmd.clearList.accesskey "L">
+<!ENTITY cmd.clearList.tooltip "Remover todas as entradas de ficheiros guardados, exceto as descargas em curso.">
+<!ENTITY cmd.searchDownloads.label "Pesquisar…">
+<!ENTITY cmd.searchDownloads.key "F">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/aboutRights.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/aboutRights.properties
new file mode 100644
index 0000000000..7703e70a33
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Conheça os seus direitos
+buttonAccessKey=S
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/aboutSupportMail.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/aboutSupportMail.properties
new file mode 100644
index 0000000000..2183788537
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=AVISO:
+# LOCALIZATION NOTE (warningText): Warning text that shows up when private data is included
+warningText=Contém informação confidencial que não deve ser reencaminhada nem publicada sem permissão.
+
+# LOCALIZATION NOTE (fsType.local): Indicator that the displayed directory is on a local drive
+fsType.local = (Unidade local)
+# LOCALIZATION NOTE (fsType.network): Indicator that the displayed directory is on the network
+fsType.network = (Unidade de rede)
+# LOCALIZATION NOTE (fsType.unknown): Indicator that we couldn't figure out whether the directory is local or on a network
+fsType.unknown = (Localização desconhecida)
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/accountCreationModel.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/accountCreationModel.properties
new file mode 100644
index 0000000000..82131da074
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/accountCreationModel.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/.
+
+# 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=O ficheiro de configuração XML não possui uma configuração de conta de correio.
+outgoing_not_smtp.error=O servidor de envio tem que ser do tipo SMTP
+
+# verifyConfig.js
+cannot_login.error=Não foi possível iniciar a sessão no servidor. Provavelmente uma configuração, nome de utilizador ou palavra-passe inválida.
+
+
+# guessConfig.js
+cannot_find_server.error=Servidor não encontrado
+
+# exchangeAutoDiscover.js
+no_autodiscover.error=O XML AutoDiscover do Exchange é inválido.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/accountCreationUtil.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/accountCreationUtil.properties
new file mode 100644
index 0000000000..39b6b3536c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/accountCreationUtil.properties
@@ -0,0 +1,34 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This file has the strings, mostly error strings, for the logic / JS backend / model
+# files: sanitizeDatatypes.js, fetchhttp.js, util.js
+
+
+# sanitizeDatatypes.js
+hostname_syntax.error=O nome do servidor está vazio ou tem caracteres proibidos. Apenas letras, números, - e . são permitidos.
+alphanumdash.error=A linha possui caracteres não suportados. Apenas letras, números, - e _ são permitidos.
+allowed_value.error=O valor indicado não está na lista de permissões
+url_scheme.error=Esquema URL não permitido
+url_parsing.error=URL não reconhecido
+string_empty.error=Tem de introduzir um valor para esta linha
+boolean.error=Não é booleano
+no_number.error=Não é um número
+number_too_large.error=Número muito grande
+number_too_small.error=Número muito pequeno
+
+
+# fetchhttp.js
+cannot_contact_server.error=Não foi possível contactar o servidor
+bad_response_content.error=Resposta com conteúdo incorreto
+
+# 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=Falha ao iniciar sessão. O nome de utilizador/endereço de correio e palavra-passe estão corretos?
+# 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=Início de sessão falhou. O servidor %1$S respondeu: %2$S
+# LOCALIZATION NOTE(verification_failed.error): We had some other error, not during authentication with the server, but at earlier points, e.g. locally or we entirely failed to contact the given server, and we unfortunately have no detailed error message.
+verification_failed.error=Falha ao iniciar sessão devido a uma razão desconhecida.
+# 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=Falha ao iniciar sessão com a mensagem: %1$S
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/activity.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/activity.dtd
new file mode 100644
index 0000000000..f3bc2753cb
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/activity.dtd
@@ -0,0 +1,19 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE (window.width2, window.height): These values should be
+close to the golden ratio (1.618:1) while making sure it's wide enough for long
+file names and tall enough to hint that there are more activities in the list -->
+<!ENTITY window.width2 "485">
+<!ENTITY window.height "300">
+
+<!ENTITY activity.title "Gestor de atividades">
+
+<!ENTITY cmd.close.commandkey "w">
+<!ENTITY cmd.close2.commandkey "j">
+<!ENTITY cmd.close2Unix.commandkey "y">
+<!ENTITY cmd.clearList.label "Limpar lista">
+<!ENTITY cmd.clearList.tooltip "Remover os itens concluídos, cancelados e falhados da lista">
+<!ENTITY cmd.clearList.accesskey "L">
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/activity.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/activity.properties
new file mode 100644
index 0000000000..2e141c7857
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/activity.properties
@@ -0,0 +1,99 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Status Text
+paused2=Pausado
+processing=A processar
+notStarted=Não iniciado
+failed=Falha
+waitingForInput=A aguardar por dados
+waitingForRetry=A aguardar nova tentativa
+completed=Concluído
+canceled=Cancelado
+
+# LOCALIZATION NOTE (sendingMessages): this is used as a title for grouping processes in the activity manager when sending email.
+sendingMessages=A enviar mensagens
+sendingMessage=A enviar mensagem
+# LOCALIZATION NOTE (sendingMessageWithSubject): %S will be replaced by the subject of the message being sent.
+sendingMessageWithSubject=A enviar mensagem: %S
+copyMessage=A copiar mensagem para a pasta "Enviadas"
+sentMessage=Mensagem enviada
+# LOCALIZATION NOTE (sentMessageWithSubject): %S will be replaced by the subject of the message being sent.
+sentMessageWithSubject=Mensagem enviada: %S
+failedToSendMessage=Falha ao enviar a mensagem
+failedToCopyMessage=Falha ao copiar a mensagem
+# LOCALIZATION NOTE (failedToSendMessageWithSubject): %S will be replaced by the subject of the message being sent.
+failedToSendMessageWithSubject=Falha ao enviar a mensagem: %S
+# LOCALIZATION NOTE (failedToCopyMessageWithSubject): %S will be replaced by the subject of the message being sent.
+failedToCopyMessageWithSubject=Falha ao copiar a mensagem: %S
+
+# LOCALIZATION NOTE (autosyncProcessProgress2): Do not translate the words "%1$S", "%2$S", "%3$S" and "%4$S" below.
+# Place the word %1$S in your translation where the number of the message being downloaded should appear.
+# Place the word %2$S in your translation where the total number of messages to be downloaded should appear.
+# Place the word %3$S in your translation where the name of the folder being processed should appear.
+# Place the word %4$S in your translation where the name of account being processed should appear.
+# EXAMPLE: Ted's account: Downloading message 334 of 1008 in Inbox…
+autosyncProcessProgress2=%4$S: A descarregar mensagem %1$S de %2$S em %3$S…
+# LOCALIZATION NOTE (autosyncProcessDisplayText): %S will be replaced by the folder name
+autosyncProcessDisplayText=A atualizar a pasta %S
+# LOCALIZATION NOTE (autosyncEventDisplayText): %S will be replaced by the account name
+autosyncEventDisplayText=%S está atualizada
+# LOCALIZATION NOTE (autosyncEventStatusText): %S will be replaced by total number of downloaded messages
+autosyncEventStatusText=Número de mensagens transferidas: %S
+autosyncEventStatusTextNoMsgs=Nenhuma mensagem transferida
+# LOCALIZATION NOTE (autosyncContextDisplayText): %S will be replaced by the account name
+autosyncContextDisplayText=A sincronizar: %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: A verificar %2$S por novas mensagens…
+# LOCALIZATION NOTE (pop3EventDisplayText): %S will be replaced by the account name
+pop3EventDisplayText=%S está atualizada
+# LOCALIZATION NOTE (pop3EventStatusText): #1 will be replaced by total number of downloaded messages
+pop3EventStatusText=#1 mensagem transferida;#1 mensagens transferidas
+pop3EventStatusTextNoMsgs=Sem mensagens para transferir
+
+# Message actions that show up in activity manager
+# LOCALIZATION NOTE (deletedMessages2): #1 number of messages, #2 folder name
+deletedMessages2=#1 mensagem apagada de #2;#1 mensagens apagadas de #2
+# LOCALIZATION NOTE (movedMessages): #1 number of messages, #2 and #3: folder names
+movedMessages=#1 mensagem movida de #2 para #3;#1 mensagens movidas de #2 para #3
+# LOCALIZATION NOTE (copiedMessages): #1 number of messages, #2 and #3: folder names
+copiedMessages=#1 mensagem copiada de #2 para #3;#1 mensagens copiadas de #2 para #3
+# LOCALIZATION NOTE (fromServerToServer): #1 source server, #2 destination server
+fromServerToServer=de #1 para #2
+# LOCALIZATION NOTE (deletedFolder): #1 folder name
+deletedFolder=Pasta #1 apagada
+emptiedTrash=Lixo esvaziado
+# LOCALIZATION NOTE (movedFolder): #1 and #2 are folder names
+movedFolder=Pasta #1 movida para a pasta #2
+# LOCALIZATION NOTE (movedFolderToTrash): #1 is the folder name
+movedFolderToTrash=Pasta #1 movida para o lixo
+# LOCALIZATION NOTE (copiedFolder): #1 and #2 are folder names
+copiedFolder=Pasta #1 copiada para a pasta #2
+# LOCALIZATION NOTE (renamedFolder): #1 and #2 are folder names
+renamedFolder=Pasta #1 renomeada para #2
+indexing=A indexar mensagens
+# LOCALIZATION NOTE (indexingFolder): #1 is a folder name
+indexingFolder=A indexar mensagens de #1
+indexingStatusVague=A determinar mensagens a indexar
+# LOCALIZATION NOTE (indexingFolderStatusVague): #1 is a folder name
+indexingFolderStatusVague=A determinar mensagens a indexar em #1
+# LOCALIZATION NOTE (indexingStatusExact):
+# #1 is the number of the message currently being indexed
+# #2 is the total number of messages being indexed
+# #3 is the percentage of indexing that is complete
+indexingStatusExact=A indexar #1 de #2 mensagem;A indexar #1 de #2 mensagens (#3% concluído)
+# 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=A indexar #1 de #2 mensagem em #4;A indexar #1 de #2 mensagens #4 (#3% concluído)
+# LOCALIZATION NOTE (indexedFolder): #1 number of messages; #2 folder name
+indexedFolder=#1 mensagem indexada em #2;#1 mensagens indexadas em #2
+# LOCALIZATION NOTE (indexedFolderStatus): #1 number of seconds spent indexing
+indexedFolderStatus=Decorrido #1 segundo;Decorridos #1 segundos
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addbuddy.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addbuddy.dtd
new file mode 100644
index 0000000000..6cd4ac23c7
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addbuddy.dtd
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY addBuddyWindow.title "Adicionar contacto">
+<!ENTITY name.label "Nome de utilizador">
+<!ENTITY account.label "Conta">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abAddressBookNameDialog.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abAddressBookNameDialog.dtd
new file mode 100644
index 0000000000..0e5397bc9a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Nome do livro de endereços:">
+<!ENTITY name.accesskey "N">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abContactsPanel.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abContactsPanel.dtd
new file mode 100644
index 0000000000..aba29598ab
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abContactsPanel.dtd
@@ -0,0 +1,49 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY propertiesMenu.label "Propriedades">
+<!ENTITY propertiesMenu.accesskey "i">
+<!ENTITY propertiesCmd.key "i">
+<!ENTITY abPropertiesMenu.label "Propriedades do livro de endereços">
+<!ENTITY abPropertiesMenu.accesskey "i">
+<!ENTITY contactPropertiesMenu.label "Propriedades do contacto">
+<!ENTITY contactPropertiesMenu.accesskey "i">
+<!ENTITY mailingListPropertiesMenu.label "Propriedades da lista de correio">
+<!ENTITY mailingListPropertiesMenu.accesskey "i">
+
+<!ENTITY abContextMenuButton.tooltip "Mostrar menu de contexto do livro de endereços">
+<!ENTITY addressbookPicker.label "Livro de endereços:">
+<!ENTITY addressbookPicker.accesskey "d">
+<!ENTITY searchContacts.label "Pesquisar contactos:">
+<!ENTITY searchContacts.accesskey "n">
+<!ENTITY SearchNameOrEmail.label "Nome ou e-mail">
+
+<!ENTITY addtoToFieldMenu.label "Adicionar ao campo Para">
+<!ENTITY addtoToFieldMenu.accesskey "A">
+<!ENTITY addtoCcFieldMenu.label "Adicionar ao campo Cc">
+<!ENTITY addtoCcFieldMenu.accesskey "C">
+<!ENTITY addtoBccFieldMenu.label "Adicionar ao campo Bcc">
+<!ENTITY addtoBccFieldMenu.accesskey "B">
+<!ENTITY deleteAddrBookCard.label "Apagar">
+<!ENTITY deleteAddrBookCard.accesskey "A">
+<!ENTITY propertiesContext.label "Propriedades">
+<!ENTITY propertiesContext.accesskey "i">
+<!ENTITY abPropertiesContext.label "Propriedades">
+<!ENTITY abPropertiesContext.accesskey "i">
+<!ENTITY editContactContext.label "Editar contacto">
+<!ENTITY editContactContext.accesskey "E">
+<!ENTITY editMailingListContext.label "Editar lista">
+<!ENTITY editMailingListContext.accesskey "E">
+
+<!ENTITY newContactAbContext.label "Novo contacto">
+<!ENTITY newContactAbContext.accesskey "c">
+<!ENTITY newListAbContext.label "Nova lista">
+<!ENTITY newListAbContext.accesskey "l">
+
+<!ENTITY toButton.label "Adicionar a Para:">
+<!ENTITY toButton.accesskey "A">
+<!ENTITY ccButton.label "Adicionar a Cc:">
+<!ENTITY ccButton.accesskey "C">
+<!ENTITY bccButton.label "Adicionar a Bcc:">
+<!ENTITY bccButton.accesskey "B">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abMailListDialog.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abMailListDialog.dtd
new file mode 100644
index 0000000000..854fdba615
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abMailListDialog.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/. -->
+<!-- Title -->
+
+<!ENTITY mailListWindowAdd.title "Nova lista de correio">
+<!-- Labels and Access Keys -->
+
+<!ENTITY addToAddressBook.label "Adicionar a: ">
+<!ENTITY addToAddressBook.accesskey "A">
+<!ENTITY ListName.label "Nome da lista: ">
+<!ENTITY ListName.accesskey "l">
+<!ENTITY ListNickName.label "Nick da lista: ">
+<!ENTITY ListNickName.accesskey "N">
+<!ENTITY ListDescription.label "Descrição: ">
+<!ENTITY ListDescription.accesskey "D">
+<!-- See bug 58485, when we implement drag and drop, add 'or drag addresses' back in -->
+<!ENTITY AddressTitle.label "Digite os endereços de email para os adicionar à lista de correio:">
+<!ENTITY AddressTitle.accesskey "m">
+<!ENTITY UpButton.label "Mover para cima">
+<!ENTITY DownButton.label "Mover para baixo">
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abMainWindow.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abMainWindow.dtd
new file mode 100644
index 0000000000..7ac6e2c210
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abMainWindow.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 showAsDefault.label "Diretório de inicialização predefinido">
+<!ENTITY showAsDefault.accesskey "a">
+
+<!-- Search Bar -->
+<!ENTITY SearchNameOrEmail.label "Nome ou e-mail">
+
+<!-- Results Pane -->
+<!ENTITY Addrbook.label "Livro de endereços">
+<!ENTITY GeneratedName.label "Nome">
+<!ENTITY PrimaryEmail.label "Email">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abResultsPane.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/abResultsPane.dtd
new file mode 100644
index 0000000000..95a7f650ce
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Livro de endereços">
+<!ENTITY Addrbook.accesskey "L">
+<!ENTITY GeneratedName.label "Nome">
+<!ENTITY GeneratedName.accesskey "N">
+<!ENTITY PrimaryEmail.label "Email">
+<!ENTITY PrimaryEmail.accesskey "E">
+<!ENTITY Company.label "Organização">
+<!ENTITY Company.accesskey "z">
+<!ENTITY _PhoneticName.label "Nome fonético">
+<!ENTITY _PhoneticName.accesskey "o">
+<!ENTITY NickName.label "Nome de utilizador">
+<!ENTITY NickName.accesskey "i">
+<!ENTITY SecondEmail.label "Email adicional">
+<!ENTITY SecondEmail.accesskey "I">
+<!ENTITY Department.label "Departamento">
+<!ENTITY Department.accesskey "r">
+<!ENTITY JobTitle.label "Título">
+<!ENTITY JobTitle.accesskey "T">
+<!ENTITY CellularNumber.label "Telemóvel">
+<!ENTITY CellularNumber.accesskey "m">
+<!ENTITY PagerNumber.label "Pager">
+<!ENTITY PagerNumber.accesskey "P">
+<!ENTITY FaxNumber.label "Fax">
+<!ENTITY FaxNumber.accesskey "F">
+<!ENTITY HomePhone.label "Telefone de casa">
+<!ENTITY HomePhone.accesskey "c">
+<!ENTITY WorkPhone.label "Telefone do trabalho">
+<!ENTITY WorkPhone.accesskey "T">
+<!ENTITY ChatName.label "Nome do chat">
+<!ENTITY ChatName.accesskey "c">
+<!ENTITY sortAscending.label "Ascendente">
+<!ENTITY sortAscending.accesskey "A">
+<!ENTITY sortDescending.label "Descendente">
+<!ENTITY sortDescending.accesskey "D">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/addressBook.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/addressBook.properties
new file mode 100644
index 0000000000..fab7828d1e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/addressBook.properties
@@ -0,0 +1,179 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The following are used by the Mailing list dialog.
+# LOCALIZATION NOTE (mailingListTitleEdit): %S will be replaced by the Mailing List's display name.
+mailingListTitleEdit=Editar %S
+emptyListName=Tem que dar um nome à lista.
+badListNameCharacters=Um nome de lista não pode conter nenhum dos seguintes carateres: < > ; , "
+badListNameSpaces=Um nome de lista não pode conter vários espaços adjacentes.
+lastFirstFormat=%S, %S
+firstLastFormat=%S %S
+
+allAddressBooks=Todos os livros de endereços
+
+newContactTitle=Novo contacto
+# %S will be the contact's display name
+newContactTitleWithDisplayName=Novo contacto para %S
+editContactTitle=Editar contacto
+# %S will be the contact's display name
+editContactTitleWithDisplayName=Editar contacto de %S
+# don't translate vCard
+editVCardTitle=Editar vCard
+# %S will be the card's display name, don't translate vCard
+editVCardTitleWithDisplayName=Editar vCard para %S
+
+## LOCALIZATION NOTE (cardRequiredDataMissingMessage): do not localize \n
+cardRequiredDataMissingMessage=Tem de introduzir, pelo menos, um dos seguintes itens:\nendereço de e-mail, nome, apelido, nome exibido, organização.
+cardRequiredDataMissingTitle=Informação necessária em falta
+incorrectEmailAddressFormatMessage=O endereço de e-mail primário tem de estar no formato utilizador@servidor.
+incorrectEmailAddressFormatTitle=Formato de endereço de e-mail incorreto
+
+viewListTitle=Lista de correio: %S
+mailListNameExistsTitle=Lista de correio já existente
+mailListNameExistsMessage=Já existe uma lista de correio com este nome. Por favor escolha um nome diferente.
+
+propertyPrimaryEmail=Email
+propertyListName=Nome da lista
+propertySecondaryEmail=E-mail alternativo
+propertyNickname=Nickname
+propertyDisplayName=Nome exibido
+propertyWork=Trabalho
+propertyHome=Casa
+propertyFax=Fax
+propertyCellular=Telemóvel
+propertyPager=Pager
+propertyBirthday=Data de nascimento
+propertyCustom1=Personalizado 1
+propertyCustom2=Personalizado 2
+propertyCustom3=Personalizado 3
+propertyCustom4=Personalizado 4
+
+propertyGtalk=Google Talk
+propertyAIM=AIM
+propertyYahoo=Yahoo!
+propertySkype=Skype
+propertyQQ=QQ
+propertyMSN=MSN
+propertyICQ=ICQ
+propertyXMPP=Jabber ID
+propertyIRC=Nick do IRC
+
+## LOCALIZATION NOTE (cityAndStateAndZip):
+## %1$S is city, %2$S is state, %3$S is zip
+cityAndStateAndZip=%3$S %1$S, %2$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=%2$S %1$S
+
+stateZipSeparator=
+
+prefixTo=Para
+prefixCc=Cc
+prefixBcc=Bcc
+addressBook=Livro de endereços
+
+# Contact photo management
+browsePhoto=Fotografia do contacto
+stateImageSave=A guardar a imagem…
+errorInvalidUri=Erro: Fonte de imagem inválida.
+errorNotAvailable=Erro: O ficheiro não está acessível.
+errorInvalidImage=Erro: Apenas tipos de imagem JPG, PNG e GIF são suportados.
+errorSaveOperation=Erro: Não foi possível guardar a imagem.
+
+# mailnews.js
+ldap_2.servers.pab.description=Livro pessoal de endereços
+ldap_2.servers.history.description=Outros endereços
+## LOCALIZATION NOTE (ldap_2.servers.osx.description is only used on Mac OS X)
+ldap_2.servers.osx.description=Livro de endereços do Mac OS X
+
+## LOCALIZATION NOTE (ldap_2.servers.outlook.description is only used on Windows)
+ldap_2.servers.outlook.description=Livro de endereços do Outlook
+
+# status bar stuff
+## LOCALIZATION NOTE (totalContactStatus):
+## %1$S is address book name, %2$S is contact count
+totalContactStatus=Total de contactos em %1$S: %2$S
+noMatchFound=Nenhuma ocorrência
+## 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 correspondência encontrada;#1 correspondências encontradas
+
+## 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 contacto copiado;%1$S contactos copiados
+
+## 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 contacto movido;%1$S contactos movidos
+
+# LDAP directory stuff
+invalidName=Por favor introduza um nome válido.
+invalidHostname=Por favor introduza um nome de servidor válido.
+invalidPortNumber=Por favor introduza um número de porta válido.
+invalidResults=Por favor introduza um número válido no campo de resultados.
+abReplicationOfflineWarning=Tem de estar online para realizar uma replicação LDAP.
+abReplicationSaveSettings=As definições devem ser guardadas antes de transferir um diretório.
+
+# For importing / exporting
+## LOCALIZATION NOTE (ExportAddressBookNameTitle): %S is the name of exported addressbook
+ExportAddressBookNameTitle=Exportar livro de endereços - %S
+LDIFFiles=LDIF
+CSVFiles=Separado por vírgulas
+CSVFilesSysCharset=Separado por vírgula (codificação do sistema)
+CSVFilesUTF8=Separado por vírgula (UTF-8)
+TABFiles=Tabulações delimitadas
+TABFilesSysCharset=Delimitado por tabulações (codificação do sistema)
+TABFilesUTF8=Delimitado por tabulações (UTF-8)
+VCFFiles=vCard
+SupportedABFiles=Ficheiros do livro de endereços suportados
+failedToExportTitle=Falha ao exportar
+failedToExportMessageNoDeviceSpace=A exportação do livro de endereços falhou porque não existe espaço suficiente no dispositivo.
+failedToExportMessageFileAccessDenied=Falha ao exportar o livro de endereços, acesso ao ficheiro negado.
+
+# For getting authDN for replication using dlg box
+AuthDlgTitle=Replicação LDAP do livro de endereços
+AuthDlgDesc=Para aceder ao diretório do servidor, introduza o seu nome e a palavra-passe.
+
+# LOCALIZATION NOTE(joinMeInThisChat)
+# use + for spaces
+joinMeInThisChat=Entrar+neste+chat.
+
+# For printing
+headingHome=Casa
+headingWork=Trabalho
+headingOther=Outro
+headingChat=Chat
+headingPhone=Telefone
+headingDescription=Descrição
+headingAddresses=Endereços
+
+## For address books
+addressBookTitleNew=Novo livro de endereços
+# LOCALIZATION NOTE (addressBookTitleEdit):
+# %S is the current name of the address book.
+# Example: My Custom AB Properties
+addressBookTitleEdit=Propriedades de %S
+duplicateNameTitle=Nome de livro de endereços duplicado
+# 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=Um livro de endereços com este nome já existe:\n• %S
+
+# For corrupt .mab files
+corruptMabFileTitle=Ficheiro do livro de endereços danificado
+corruptMabFileAlert=Um dos livros de endereços (%1$S) não pode ser lido. Um novo ficheiro %2$S será criado e a cópia de segurança do ficheiro antigo, chamado %3$S, será criado no mesmo diretório.
+
+# For locked .mab files
+lockedMabFileTitle=Incapaz de carregar o ficheiro do livro de endereços
+lockedMabFileAlert=Incapaz de carregar o ficheiro do livro de endereços %S. Pode estar protegido contra escrita ou bloqueado por outra aplicação. Tente mais tarde.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/ldapAutoCompErrs.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/ldapAutoCompErrs.properties
new file mode 100644
index 0000000000..ce0ea08129
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Problema de inicialização LDAP
+
+## @name ERR_STATE_INITIALIZING
+## @loc none
+1=Falha na ligação ao servidor LDAP
+
+## @name ERR_STATE_BINDING
+## @loc none
+2=Falha na ligação ao servidor LDAP
+
+## @name ERR_STATE_BOUND
+## @loc none
+3=Problema de comunicação com o servidor LDAP
+
+## @name ERR_STATE_SEARCHING
+## @loc none
+4=Problema de pesquisa no servidor LDAP
+
+
+# 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=Código de erro %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=Servidor não encontrado
+
+## @name GENERIC_ERROR
+## @loc none
+9999=Erro desconhecido
+
+
+# Hints to for the user, associated with specific error codes (ie error code
+# + 10000)
+
+
+## @name TIMELIMIT_EXCEEDED_HINT
+## @loc none
+10003=Por favor tente mais tarde ou contacte o administrador de sistemas.
+
+## @name STRONGAUTH_REQUIRED_HINT
+## @loc none
+10008=Atualmente, a autenticação segura não é suportada.
+
+## @name INVALID_SYNTAX_HINT
+## @loc none
+10021=Verifique se o filtro de pesquisa está correto e tente novamente. Em alternativa, contacte o administrador de sistemas. Para verificar se o filtro de pesquisa está correto, aceda ao menu Editar, escolha Preferências -> Correio e grupos de notícias -> Endereço. Clique Editar diretórios e escolha o servidor LDAP. Clique Editar -> Avançado para mostrar o filtro de pesquisa.
+
+## @name NO_SUCH_OBJECT_HINT
+## @loc none
+10032=Verifique se a Base DN está correta e tente novamente. Em alternativa, contacte o administrador de sistemas. Para verificar que a Base DN está correta, aceda ao menu Editar, escolha Preferências -> Correio e grupos de notícias -> Endereço. Clique Editar diretórios e escolha o servidor LDAP. Clique Editar para mostrar a base DN.
+
+## @name BUSY_HINT
+## @loc none
+10051=Por favor tente mais tarde.
+
+## @name SERVER_DOWN_HINT
+## @loc none
+10081=Verifique se o nome do servidor e o número da porta estão corretos e tente novamente. Em alternativa, contacte o administrador de sistemas. Para verificar se o servidor e o número da porta estão corretos, aceda ao menu Editar, escolha Preferências -> Correio e grupos de notícias -> Endereço. Clique Editar diretórios e escolha o servidor LDAP. Clique Editar para mostrar o nome do servidor. Clique Avançado para ver o número da porta.
+
+## @name TIMEOUT_HINT
+## @loc none
+10085=Por favor tente mais tarde.
+
+## @name FILTER_ERROR_HINT
+## @loc none
+10087=Verifique se o filtro de pesquisa está correto e tente novamente. Em alternativa, contacte o administrador de sistemas. Para verificar se o filtro de pesquisa está correto, aceda ao menu Editar, escolha Preferências -> Correio e grupos de notícias -> Endereço. Clique Editar diretórios e escolha o servidor LDAP. Clique Editar -> Avançado para mostrar o filtro de pesquisa.
+
+## @name NO_MEMORY_HINT
+## @loc none
+10090=Por favor feche as outras janelas e/ou aplicações e tente novamente.
+
+## @name CONNECT_ERROR_HINT
+## @loc none
+10091=Verifique se o nome do servidor e o número da porta estão corretos e tente novamente. Em alternativa, contacte o administrador de sistemas. Para verificar que a Base DN está correta, aceda ao menu Editar, escolha Preferências -> Correio e grupos de notícias -> Endereço. Clique Editar diretórios e escolha o servidor LDAP. Clique Editar para mostrar o nome do servidor. Clique Avançado para ver o número da porta.
+
+## @name HOST_NOT_FOUND_HINT
+## @loc none
+15000=Verifique se o nome do servidor está correto e tente novamente. Em alternativa, contacte o administrador de sistemas. Para verificar se o nome do servidor está correto, aceda ao menu Editar, escolha Preferências -> Correio e grupos de notícias -> Endereço. Clique Editar diretórios e escolha o servidor LDAP. Clique Editar para mostrar o nome do servidor.
+
+## @name GENERIC_HINT
+## @loc none
+19999=Por favor contacte o administrador de sistemas.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/pref-directory-add.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/pref-directory-add.dtd
new file mode 100644
index 0000000000..0615b42ecf
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Nome: ">
+<!ENTITY directoryName.accesskey "N">
+<!ENTITY directoryHostname.label "Nome do servidor: ">
+<!ENTITY directoryHostname.accesskey "o">
+<!ENTITY directoryBaseDN.label "Base DN: ">
+<!ENTITY directoryBaseDN.accesskey "B">
+<!ENTITY findButton.label "Localizar">
+<!ENTITY findButton.accesskey "L">
+<!ENTITY directorySecure.label "Utilizar ligação segura (SSL)">
+<!ENTITY directorySecure.accesskey "U">
+<!ENTITY directoryLogin.label "Associar DN: ">
+<!ENTITY directoryLogin.accesskey "i">
+<!ENTITY General.tab "Geral">
+<!ENTITY Offline.tab "Offline">
+<!ENTITY Advanced.tab "Avançadas">
+<!ENTITY portNumber.label "Porta: ">
+<!ENTITY portNumber.accesskey "P">
+<!ENTITY searchFilter.label "Filtro de pesquisa: ">
+<!ENTITY searchFilter.accesskey "F">
+<!ENTITY scope.label "Âmbito: ">
+<!ENTITY scope.accesskey "b">
+<!ENTITY scopeOneLevel.label "Um nível">
+<!ENTITY scopeOneLevel.accesskey "v">
+<!ENTITY scopeSubtree.label "Subdiretório">
+<!ENTITY scopeSubtree.accesskey "S">
+<!ENTITY return.label "Não devolver mais do que">
+<!ENTITY return.accesskey "r">
+<!ENTITY results.label "resultados">
+<!ENTITY offlineText.label "Pode transferir uma cópia deste diretório para que esta fique disponível para utilizar quando está no modo offline.">
+<!ENTITY saslMechanism.label "Método de início de sessão: ">
+<!ENTITY saslMechanism.accesskey "M">
+<!ENTITY saslOff.label "Simples">
+<!ENTITY saslOff.accesskey "l">
+<!ENTITY saslGSSAPI.label "Kerberos (GSSAPI)">
+<!ENTITY saslGSSAPI.accesskey "K">
+
+<!-- Localization note: this is here because the width of the dialog
+ is determined by the width of the base DN box; and that is likely
+ to vary somewhat with the language.
+-->
+<!ENTITY newDirectoryWidth "40em">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/pref-directory.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/pref-directory.dtd
new file mode 100644
index 0000000000..3eeed18c15
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Servidores de diretório LDAP">
+<!-- LOCALIZATION NOTE (directories.label) : do not translate "LDAP" in below line -->
+<!ENTITY directories.label "Servidor de diretório LDAP:">
+<!-- LOCALIZATION NOTE (directoriesText.label) : do not translate "LDAP" in below line -->
+<!ENTITY directoriesText.label "Selecione um servidor de diretórios LDAP:">
+<!ENTITY directoriesText.accesskey "S">
+<!ENTITY addDirectory.label "Adicionar">
+<!ENTITY addDirectory.accesskey "A">
+<!ENTITY editDirectory.label "Editar">
+<!ENTITY editDirectory.accesskey "E">
+<!ENTITY deleteDirectory.label "Apagar">
+<!ENTITY deleteDirectory.accesskey "A">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/replicationProgress.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/replicationProgress.properties
new file mode 100644
index 0000000000..869e0d383b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/addressbook/replicationProgress.properties
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+replicationStarted=Replicação iniciada...
+changesStarted=A procurar alterações para replicação...
+replicationSucceeded=Replicação efetuada
+replicationFailed=Replicação falhada
+replicationCancelled=Replicação cancelada
+# LOCALIZATION NOTE
+# do not localize %S. %S is the current entry number (an integer)
+currentCount=A replicar entrada do diretório: %S
+
+downloadButton=Transferir agora
+downloadButton.accesskey=D
+cancelDownloadButton=Cancelar descarga
+cancelDownloadButton.accesskey=C
+
+directoryTitleNew=Novo diretório LDAP
+## LOCALIZATION NOTE (directoryTitleEdit): %S will be replaced by the LDAP directory's display name
+directoryTitleEdit=Propriedades de %S
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-addressing.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-addressing.dtd
new file mode 100644
index 0000000000..00fb9379a8
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-addressing.dtd
@@ -0,0 +1,51 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-addressing.xul -->
+
+<!-- extracted from am-addressing.xhtml -->
+
+<!ENTITY addressing.label "Endereçamento e composição">
+<!ENTITY addressingGroupTitle.label "Endereçamento">
+<!ENTITY addressingText.label "Ao localizar endereços:">
+<!-- LOCALIZATION NOTE (override.label) : do not translate "LDAP" in below line -->
+<!ENTITY useGlobal.label "Utilizar preferências do meu servidor global LDAP para esta conta">
+<!ENTITY useGlobal.accesskey "U">
+<!ENTITY editDirectories.label "Editar diretórios…">
+<!ENTITY editDirectories.accesskey "E">
+<!-- LOCALIZATION NOTE (directories.label) : do not translate "LDAP" in below line -->
+<!ENTITY directories.label "Utilizar outro servidor LDAP:">
+<!ENTITY directories.accesskey "t">
+<!ENTITY directoriesNone.label "Nenhum">
+
+<!-- am-addressing.xul -->
+
+<!-- am-addressing.xhtml -->
+
+<!ENTITY compositionGroupTitle.label "Composição">
+<!-- LOCALIZATION NOTE (useHtml.label) : do not translate "html" in below line -->
+<!ENTITY useHtml.label "Escrever mensagens no formato HTML">
+<!ENTITY useHtml.accesskey "E">
+<!ENTITY autoQuote.label "Ao responder, citar automaticamente a mensagem original">
+<!ENTITY autoQuote.accesskey "A">
+<!-- LOCALIZATION NOTE (quoting.label): This will concatenate with the 4 strings that follow. -->
+<!ENTITY quoting.label "Ao citar,">
+<!ENTITY quoting.accesskey "c">
+<!ENTITY aboveQuote.label "iniciar a minha resposta acima da citação">
+<!ENTITY belowQuote.label "iniciar a minha resposta abaixo da citação">
+<!ENTITY selectAndQuote.label "selecionar a citação">
+<!ENTITY place.label "e colocar a minha assinatura">
+<!ENTITY place.accesskey "s">
+<!ENTITY belowText.label "abaixo da citação (recomendado)">
+<!ENTITY aboveText.label "abaixo da resposta (acima da citação)">
+<!ENTITY includeSigOnReply.label "Incluir assinatura nas respostas">
+<!ENTITY includeSigOnReply.accesskey "I">
+<!ENTITY includeSigOnForward.label "Incluir assinatura nos reencaminhamentos">
+<!ENTITY includeSigOnForward.accesskey "u">
+
+<!ENTITY globalComposingPrefs.label "Preferências gerais de composição…">
+<!ENTITY globalComposingPrefs.accesskey "g">
+
+<!ENTITY globalAddressingPrefs.label "Preferências gerais de endereçamento…">
+<!ENTITY globalAddressingPrefs.accesskey "P">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-advanced.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-advanced.dtd
new file mode 100644
index 0000000000..07e5aab1de
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-advanced.dtd
@@ -0,0 +1,31 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-advanced.xul -->
+<!-- LOCALIZATION NOTE (smtpServer.label): do not translate "SMTP" in below line -->
+
+
+<!-- extracted from am-advanced.xhtml -->
+
+<!ENTITY smtpServer.label "Definições do servidor de envio (SMTP)">
+<!-- LOCALIZATION NOTE (smtpDescription.label): do not translate "SMTP" in below line -->
+
+<!ENTITY smtpDescription.label "Ao gerir as suas identidades pode utilizar um servidor desta lista selecionando-o como o servidor de envio (SMTP) ou pode utilizar o servidor pré-definido indicado nesta lista selecionando &quot;Utilizar servidor pré-definido&quot;.">
+
+<!ENTITY smtpListAdd.label "Adicionar...">
+<!ENTITY smtpListAdd.accesskey "d">
+<!ENTITY smtpListEdit.label "Editar...">
+<!ENTITY smtpListEdit.accesskey "E">
+<!ENTITY smtpListDelete.label "Remover">
+<!ENTITY smtpListDelete.accesskey "R">
+<!ENTITY smtpListSetDefault.label "Pré-definido">
+<!ENTITY smtpListSetDefault.accesskey "P">
+
+<!ENTITY serverDetails.label "Detalhes do servidor selecionado:">
+<!ENTITY serverDescription.label "Descrição: ">
+<!ENTITY serverName.label "Nome do servidor: ">
+<!ENTITY serverPort.label "Porta: ">
+<!ENTITY userName.label "Nome de utilizador: ">
+<!ENTITY connectionSecurity.label "Segurança da ligação: ">
+<!ENTITY authMethod.label "Método de autenticação: ">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-archiveoptions.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-archiveoptions.dtd
new file mode 100644
index 0000000000..f23d78fa49
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-archiveoptions.dtd
@@ -0,0 +1,26 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-archiveoptions.xul -->
+
+
+<!-- extracted from am-archiveoptions.xhtml -->
+
+<!ENTITY dialogTitle.label "Opções de arquivo">
+<!ENTITY archiveGranularityPrefix.label "Ao arquivar mensagens, colocá-las em:">
+<!ENTITY archiveFlat.label "Uma única pasta">
+<!ENTITY archiveFlat.accesskey "s">
+<!ENTITY archiveYearly.label "Pastas arquivadas por ano">
+<!ENTITY archiveYearly.accesskey "n">
+<!ENTITY archiveMonthly.label "Pastas arquivadas por mês">
+<!ENTITY archiveMonthly.accesskey "m">
+<!ENTITY keepFolderStructure.label "Manter estrutura atual da pasta de mensagens arquivadas">
+<!ENTITY keepFolderStructure.accesskey "e">
+<!ENTITY archiveExample.label "Exemplo">
+<!-- LOCALIZATION NOTE (archiveFolderName.label): this should match the default
+ name for the "Archives" folder -->
+<!ENTITY archiveFolderName.label "Arquivos">
+<!-- LOCALIZATION NOTE (inboxFolderName.label): this should match the default
+ name for the "Inbox" folder -->
+<!ENTITY inboxFolderName.label "Caixa de entrada">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-copies.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-copies.dtd
new file mode 100644
index 0000000000..08af4cdb7c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-copies.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/. -->
+
+<!-- extracted from am-copies.xul -->
+
+
+<!-- extracted from am-copies.xhtml -->
+
+<!ENTITY copyAndFolderTitle.label "Cópias e pastas">
+<!ENTITY sendingPrefix.label "Ao enviar mensagens, automaticamente: ">
+<!ENTITY fccMailFolder.label "Guardar cópia em:">
+<!ENTITY fccMailFolder.accesskey "G">
+<!ENTITY fccReplyFollowsParent.label "Guardar respostas na pasta da mensagem que é respondida">
+<!ENTITY fccReplyFollowsParent.accesskey "d">
+<!-- LOCALIZATION NOTE (ccAddress.label): do not translate "Cc" in below line -->
+<!ENTITY ccAddress.label "Cc para estes endereços de e-mail:">
+<!ENTITY ccAddress.accesskey "C">
+<!ENTITY ccAddressList.placeholder "Separar endereços com vírgulas">
+<!-- LOCALIZATION NOTE (bccAddress.label): do not translate "Bcc" in below line -->
+<!ENTITY bccAddress.label "Bcc para estes endereços de e-mail:">
+<!ENTITY bccAddress.accesskey "B">
+<!ENTITY bccAddressList.placeholder "Separar endereços com vírgulas">
+<!ENTITY saveMessageDlg.label "Mostrar janela de confirmação ao guardar as mensagens">
+<!ENTITY saveMessageDlg.accesskey "s">
+<!-- LOCALIZATION NOTE (sentFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY sentFolderOn.label "Pasta &quot;Enviadas&quot; em:">
+<!ENTITY sentFolderOn.accesskey "E">
+<!ENTITY sentInOtherFolder.label "Outra:">
+<!ENTITY sentInOtherFolder.accesskey "O">
+<!-- LOCALIZATION NOTE (archivesFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY archivesTitle.label "Arquivos de mensagens">
+<!ENTITY keepArchives.label "Manter arquivos de mensagens em:">
+<!ENTITY keepArchives.accesskey "e">
+<!ENTITY archiveHierarchyButton.label "Opções de arquivo…">
+<!ENTITY archiveHierarchyButton.accesskey "a">
+<!ENTITY archivesFolderOn.label "Pasta de &quot;Arquivos&quot; em:">
+<!ENTITY archivesFolderOn.accesskey "u">
+<!ENTITY archiveInOtherFolder.label "Outra:">
+<!ENTITY archiveInOtherFolder.accesskey "r">
+<!ENTITY specialFolders.label "Rascunhos e modelos">
+<!ENTITY keepDrafts2.label "Manter mensagens de rascunho em:">
+<!-- LOCALIZATION NOTE (draftsFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY draftsFolderOn.label "Pasta &quot;Rascunhos&quot; em:">
+<!ENTITY draftsFolderOn.accesskey "c">
+<!ENTITY draftInOtherFolder.label "Outra:">
+<!ENTITY draftInOtherFolder.accesskey "t">
+<!ENTITY keepTemplates.label "Guardar modelos em:">
+<!-- LOCALIZATION NOTE (templatesFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY templatesFolderOn.label "Pasta &quot;Modelos&quot; em:">
+<!ENTITY templatesFolderOn.accesskey "m">
+<!ENTITY templateInOtherFolder.label "Outra:">
+<!ENTITY templateInOtherFolder.accesskey "O">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-e2e.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-e2e.properties
new file mode 100644
index 0000000000..aff5415323
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Criptografia de ponta a ponta
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-identities-list.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-identities-list.dtd
new file mode 100644
index 0000000000..92e8555c5d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-identities-list.dtd
@@ -0,0 +1,15 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY identitiesListManageDesc.label "Gerir identidades para esta conta. A primeira identidade é utilizada como predefinida.">
+<!ENTITY identitiesListAdd.label "Adicionar...">
+<!ENTITY identitiesListAdd.accesskey "A">
+<!ENTITY identitiesListEdit.label "Editar...">
+<!ENTITY identitiesListEdit.accesskey "E">
+<!ENTITY identitiesListDefault.label "Predefinida">
+<!ENTITY identitiesListDefault.accesskey "P">
+<!ENTITY identitiesListDelete.label "Apagar">
+<!ENTITY identitiesListDelete.accesskey "A">
+<!ENTITY identitiesListClose.label "Fechar">
+<!ENTITY identitiesListClose.accesskey "c">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-identity-edit.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-identity-edit.dtd
new file mode 100644
index 0000000000..6e17044d88
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-identity-edit.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 (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 "Ajustar definições para esta identidade:">
+
+<!ENTITY settingsTab.label "Definições">
+<!ENTITY copiesFoldersTab.label "Cópias e pastas">
+<!ENTITY addressingTab.label "Endereçamento e composição">
+
+<!ENTITY publicData.label "Dados públicos">
+<!ENTITY privateData.label "Dados privados">
+<!ENTITY identityAlias.label "Etiqueta da identidade:">
+<!ENTITY identityAlias.accesskey "t">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-im.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-im.dtd
new file mode 100644
index 0000000000..cafcf28489
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-im.dtd
@@ -0,0 +1,16 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY accountWindow.title "Propriedades da conta">
+<!ENTITY accountWindow.width "300">
+<!ENTITY account.general "Geral">
+<!ENTITY account.advanced "Opções avançadas">
+<!ENTITY account.name "Nome de utilizador:">
+<!ENTITY account.password "Palavra-passe:">
+<!ENTITY account.alias "Alcunha:">
+<!ENTITY account.newMailNotification "Notificar ao receber mensagens">
+<!ENTITY account.autojoin "Entrada automática nos canais:">
+<!ENTITY account.proxySettings.caption "Definições de proxy:">
+<!ENTITY account.proxySettings.change.label "Alterar…">
+<!ENTITY account.proxySettings.change.accessKey "A">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-junk.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-junk.dtd
new file mode 100644
index 0000000000..6729de88c1
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-junk.dtd
@@ -0,0 +1,31 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY junkSettings.label "Definições do lixo eletrónico">
+<!ENTITY trainingDescription.label "Se ativa, tem que teinar o &brandShortName; para identificar o lixo eletrónico utilizando o botão Lixo na barra de ferramentas. Tem de identificar as mensagens que são lixo e as que não são. Posteriormente, o &brandShortName; será capaz de assinalar o lixo automaticamente">
+<!ENTITY level.label "Ativar controlos de lixo para esta conta">
+<!ENTITY level.accesskey "e">
+
+<!ENTITY move.label "Mover lixo eletrónico para:">
+<!ENTITY move.accesskey "M">
+<!ENTITY junkFolderOn.label "Pasta &quot;Lixo eletrónico&quot; em:">
+<!ENTITY junkFolderOn.accesskey "x">
+<!ENTITY otherFolder.label "Outra:">
+<!ENTITY otherFolder.accesskey "r">
+<!ENTITY purge1.label "Apagar automaticamente o correio indesejado com mais de">
+<!ENTITY purge1.accesskey "u">
+<!ENTITY purge2.label "dias">
+
+<!ENTITY whitelistHeader.label "Não marcar mensagem como lixo eletrónico se o remetente estiver no: ">
+<!ENTITY whitelistHeader.accesskey "N">
+
+<!ENTITY ispHeadersWarning.label "Se ativa, o &brandShortName; vai considerar automaticamente as mensagens marcadas por este classificador externo como lixo.">
+<!ENTITY ispHeaders.label "Confiar nos dados de lixo eletrónico definidos em: ">
+<!ENTITY ispHeaders.accesskey "C">
+
+<!ENTITY junkClassification.label "Seleção">
+<!ENTITY junkActions.label "Destino e retenção">
+
+<!ENTITY globalJunkPrefs.label "Preferências gerais de lixo eletrónico…">
+<!ENTITY globalJunkPrefs.accesskey "P">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-main.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-main.dtd
new file mode 100644
index 0000000000..d737ef3cb7
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-main.dtd
@@ -0,0 +1,49 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-main.xul -->
+
+<!-- extracted from am-main.xhtml -->
+
+<!ENTITY accountTitle.label "Definições da conta">
+<!ENTITY accountName.label "Nome da conta:">
+<!ENTITY accountName.accesskey "N">
+<!ENTITY identityTitle.label "Identidade predefinida">
+<!ENTITY identityDesc.label "Cada conta tem uma identidade, que é a informação enviada a terceiros leem as suas mensagens.">
+<!ENTITY name.label "O seu nome:">
+<!ENTITY name.accesskey "O">
+<!ENTITY email.label "Endereço de e-mail:">
+<!ENTITY email.accesskey "E">
+<!ENTITY catchAll.label "Resposta desta identidade quando os cabeçalhos de entrega correspondem:">
+<!ENTITY catchAll.accesskey "d">
+<!ENTITY replyTo.label "Endereço de resposta:">
+<!ENTITY replyTo.accesskey "r">
+<!ENTITY replyTo.placeholder "Os destinatários respondem para este outro endereço">
+<!ENTITY organization.label "Organização:">
+<!ENTITY organization.accesskey "O">
+<!ENTITY signatureText.label "Texto da assinatura:">
+<!ENTITY signatureText.accesskey "x">
+<!ENTITY signatureHtml.label "Utilizar HTML (ex:, &lt;b&gt;negrito&lt;/b&gt;)">
+<!ENTITY signatureHtml.accesskey "l">
+<!ENTITY signatureFile.label "Anexar assinatura de um ficheiro (texto, HTML ou imagem):">
+<!ENTITY signatureFile.accesskey "t">
+<!ENTITY edit.label "Editar...">
+<!ENTITY choose.label "Escolher...">
+<!ENTITY choose.accesskey "h">
+<!ENTITY editVCard.label "Editar cartão...">
+<!ENTITY editVCard.accesskey "d">
+<!-- LOCALIZATION NOTE (attachVCard.label) : do not translate "vCard" in below line -->
+<!ENTITY attachVCard.label "Anexar o meu vCard à mensagem">
+<!ENTITY attachVCard.accesskey "v">
+
+<!ENTITY manageIdentities.label "Gerir identidades...">
+<!ENTITY manageIdentities.accesskey "i">
+
+<!-- LOCALIZATION NOTE (smtpName.label) : do not translate "SMTP" in below line -->
+<!ENTITY smtpName.label "Servidor de envio (SMTP):">
+<!ENTITY smtpName.accesskey "S">
+<!ENTITY smtpDefaultServer.label "Usar servidor predefinido">
+
+<!ENTITY smtpServerEdit.label "Editar servidor SMTP…">
+<!ENTITY smtpServerEdit.accesskey "P">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-mdn.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-mdn.dtd
new file mode 100644
index 0000000000..00a67cc47f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-mdn.dtd
@@ -0,0 +1,33 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY pane.title "Recibos de leitura">
+<!ENTITY useGlobalPrefs.label "Utilizar preferências gerais dos recibos de leitura para esta conta">
+<!ENTITY useGlobalPrefs.accesskey "U">
+<!ENTITY globalReceipts.label "Preferências globais…">
+<!ENTITY globalReceipts.accesskey "g">
+<!ENTITY useCustomPrefs.label "Personalizar recibos de leitura para esta conta">
+<!ENTITY useCustomPrefs.accesskey "P">
+<!ENTITY requestReceipt.label "Ao enviar mensagens, pedir sempre um recibo de leitura">
+<!ENTITY requestReceipt.accesskey "A">
+<!ENTITY receiptArrive.label "Ao receber um recibo:">
+<!ENTITY leaveIt.label "Manter na minha caixa de entrada">
+<!ENTITY leaveIt.accesskey "M">
+<!-- LOCALIZATION NOTE moveToSent.label Translate: 'Sent' according to Netscape glossary -->
+<!ENTITY moveToSent.label "Mover para a pasta de &quot;Enviadas&quot;">
+<!ENTITY moveToSent.accesskey "v">
+<!ENTITY requestMDN.label "Ao receber um pedido de um recibo de leitura:">
+<!ENTITY returnSome.label "Permitir recibos de leitura para algumas mensagens">
+<!ENTITY returnSome.accesskey "r">
+<!ENTITY never.label "Nunca enviar um recibo de leitura">
+<!ENTITY never.accesskey "N">
+<!ENTITY notInToCc.label "Se eu não estiver no campo Para ou Cc da mensagem:">
+<!ENTITY notInToCc.accesskey "S">
+<!ENTITY outsideDomain.label "Se o remetente não estiver no meu domínio:">
+<!ENTITY outsideDomain.accesskey "e">
+<!ENTITY otherCases.label "Nos outros casos:">
+<!ENTITY otherCases.accesskey "o">
+<!ENTITY askMe.label "Perguntar">
+<!ENTITY alwaysSend.label "Enviar sempre">
+<!ENTITY neverSend.label "Nunca enviar">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-mdn.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-mdn.properties
new file mode 100644
index 0000000000..07cf673196
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Recibos de leitura
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-offline.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-offline.dtd
new file mode 100644
index 0000000000..58ad9b2bc3
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-offline.dtd
@@ -0,0 +1,57 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY doNotDownloadPop3Movemail.label "Para poupar espaço em disco, não descarregar:">
+<!ENTITY doNotDownloadNntp.label "Para poupar espaço em disco, não descarregar para utilização offline:">
+<!ENTITY doNotDownloadImap.label "Para poupar espaço em disco, a descarga e manutenção de cópias locais de mensagens do servidor pode ser restringida por idade ou tamanho.">
+<!ENTITY allFoldersOffline2.label "Manter as mensagens em todas as pastas para esta conta neste computador.">
+<!ENTITY allFoldersOffline2.accesskey "o">
+<!ENTITY allFoldersOfflineNote.label "Nota: Alterar isto afeta todas as pastas nesta conta. Para definir pastas individuais, utilize o botão Avançadas…">
+<!ENTITY offlineNotDownload.label "Mensagens superiores a">
+<!ENTITY offlineNotDownload.accesskey "M">
+<!ENTITY autosyncNotDownload.label "Não descarregar mensagens superiores a">
+<!ENTITY autosyncNotDownload.accesskey "m">
+<!ENTITY kb.label "KB">
+<!ENTITY daysOld.label "dias de idade">
+<!ENTITY message.label "mensagens">
+<!ENTITY nntpNotDownloadRead.label "Ler mensagens">
+<!ENTITY nntpNotDownloadRead.accesskey "L">
+<!ENTITY nntpDownloadMsg.label "Mais mensagens que">
+<!ENTITY nntpDownloadMsg.accesskey "u">
+<!ENTITY retentionCleanup.label "Para ganhar espaço em disco, as mensagens antigas podem ser apagadas permanentemente">
+<!ENTITY retentionCleanupImap.label "Para ganhar espaço em disco, as mensagens antigas podem ser apagadas permanentemente, tanto as cópias locais como os originais no servidor remoto.">
+<!ENTITY retentionCleanupPop.label "Para ganhar espaço em disco, as mensagens antigas podem ser apagadas permanentemente, incluindo as originais no servidor remoto.">
+<!ENTITY retentionKeepMsg.label "Apagar mensagens com mais de">
+<!ENTITY retentionKeepMsg.accesskey "e">
+<!ENTITY retentionKeepAll.label "Não apagar quaisquer mensagens">
+<!ENTITY retentionKeepAll.accesskey "N">
+<!ENTITY retentionKeepRecent.label "Apagar todas, exceto as mais recentes">
+<!ENTITY retentionKeepRecent.accesskey "r">
+<!ENTITY retentionApplyToFlagged.label "Manter sempre as mensagens com estrela">
+<!ENTITY retentionApplyToFlagged.accesskey "e">
+<!ENTITY nntpRemoveMsgBody.label "Remover corpo das mensagens maiores que">
+<!ENTITY nntpRemoveMsgBody.accesskey "p">
+<!ENTITY offlineSelectNntp.label "Selecionar grupos de notícias para utilização offline...">
+<!ENTITY offlineSelectNntp.accesskey "S">
+<!ENTITY offlineImapAdvancedOffline.label "Avançadas…">
+<!ENTITY offlineImapAdvancedOffline.accesskey "A">
+<!ENTITY syncGroupTitle.label "Sincronização de mensagens">
+<!ENTITY diskspaceGroupTitle.label "Espaço em disco">
+
+<!-- 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 "Sincronizar localmente todas as mensagens ignorando a idade">
+<!ENTITY allAutosync.accesskey "c">
+<!ENTITY ageAutosyncBefore.label "Sincronizar as mais recentes">
+<!ENTITY ageAutosync.accesskey "z">
+<!ENTITY ageAutosyncMiddle.label "">
+<!ENTITY dayAgeInterval.label "Dias">
+<!ENTITY weekAgeInterval.label "Semanas">
+<!ENTITY monthAgeInterval.label "Meses">
+<!ENTITY yearAgeInterval.label "Anos">
+<!ENTITY ageAutosyncAfter.label "">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-server-advanced.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-server-advanced.dtd
new file mode 100644
index 0000000000..c5e0cfbefa
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-server-advanced.dtd
@@ -0,0 +1,31 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY serverAdvanced.label "Definições avançadas da conta">
+<!-- LOCALIZATION NOTE (serverDirectory.label): Do not translate "IMAP" -->
+<!ENTITY serverDirectory.label "Diretório do servidor IMAP:">
+<!ENTITY serverDirectory.accesskey "D">
+<!ENTITY usingSubscription.label "Mostrar apenas pastas subscritas">
+<!ENTITY usingSubscription.accesskey "M">
+<!ENTITY dualUseFolders.label "O servidor suporta pastas que possuam subpastas e mensagens">
+<!ENTITY dualUseFolders.accesskey "O">
+<!ENTITY maximumConnectionsNumber.label "Número máximo de ligações ao servidor para colocar em cache">
+<!ENTITY maximumConnectionsNumber.accesskey "x">
+<!-- LOCALIZATION NOTE (namespaceDesc.label): Do not translate "IMAP" -->
+<!ENTITY namespaceDesc.label "As preferências que especificam os 'namespaces' do seu servidor IMAP">
+<!ENTITY personalNamespace.label "'Namespace' pessoal:">
+<!ENTITY personalNamespace.accesskey "p">
+<!ENTITY publicNamespace.label "Público (partilhado):">
+<!ENTITY publicNamespace.accesskey "h">
+<!ENTITY otherUsersNamespace.label "Outros utilizadores:">
+<!ENTITY otherUsersNamespace.accesskey "t">
+<!ENTITY overrideNamespaces.label "Permitir ao servidor sobrepor estes namespaces">
+<!ENTITY overrideNamespaces.accesskey "a">
+<!ENTITY pop3DeferringDesc.label "Ao descarregar correio desta conta de servidor, utilizar a seguinte pasta para guardar as mensagens:">
+<!ENTITY accountInbox.label "Caixa de entrada para esta conta">
+<!ENTITY accountInbox.accesskey "s">
+<!ENTITY deferToServer.label "Caixa de entrada de outra conta">
+<!ENTITY deferToServer.accesskey "d">
+<!ENTITY deferGetNewMail.label "Incluir este servidor na receção de correio">
+<!ENTITY deferGetNewMail.accesskey "u">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-server-top.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-server-top.dtd
new file mode 100644
index 0000000000..edb1b9a8d5
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-server-top.dtd
@@ -0,0 +1,89 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY messageStorage.label "Armazenamento de mensagens">
+<!ENTITY securitySettings.label "Definições de segurança">
+<!ENTITY serverSettings.label "Definições do servidor">
+<!ENTITY serverType.label "Tipo de servidor:">
+<!ENTITY serverName.label "Nome do servidor:">
+<!ENTITY serverName.accesskey "s">
+<!ENTITY userName.label "Nome de utilizador:">
+<!ENTITY userName.accesskey "u">
+<!ENTITY port.label "Porta:">
+<!ENTITY port.accesskey "P">
+<!ENTITY serverPortDefault.label "Predefinida:">
+<!-- LOCALIZATION NOTE (biffStart.label) : translate below 2 line with grammar dependency
+ For example, in Japanese cases:
+ biffStart.label "every"
+ biffEnd.label "minutes for new messages Check"
+-->
+<!ENTITY biffStart.label "Procurar novas mensagens a cada ">
+<!ENTITY biffStart.accesskey "n">
+<!ENTITY biffEnd.label "minutos">
+<!ENTITY useIdleNotifications.label "Permitir notificações imediatas do servidor quando chegam novas mensagens">
+<!ENTITY useIdleNotifications.accesskey "a">
+<!ENTITY connectionSecurity.label "Segurança da ligação:">
+<!ENTITY connectionSecurity.accesskey "u">
+<!ENTITY connectionSecurityType-0.label "Nenhuma">
+<!ENTITY connectionSecurityType-1.label "STARTTLS, se disponível">
+<!ENTITY connectionSecurityType-2.label "STARTTLS">
+<!ENTITY connectionSecurityType-3.label "SSL/TLS">
+<!ENTITY authMethod.label "Método de autenticação">
+<!ENTITY authMethod.accesskey "i">
+<!ENTITY leaveOnServer.label "Manter mensagens no servidor">
+<!ENTITY leaveOnServer.accesskey "v">
+<!ENTITY headersOnly.label "Obter apenas os cabeçalhos">
+<!ENTITY headersOnly.accesskey "e">
+<!ENTITY deleteByAgeFromServer.label "Durante">
+<!ENTITY deleteByAgeFromServer.accesskey "D">
+<!ENTITY daysEnd.label "dias">
+<!ENTITY deleteOnServer2.label "Até eu as apagar">
+<!ENTITY deleteOnServer2.accesskey "A">
+<!ENTITY downloadOnBiff.label "Descarregar novas mensagens automaticamente">
+<!ENTITY downloadOnBiff.accesskey "m">
+<!ENTITY deleteMessagePrefix.label "Se eu apagar uma mensagem:">
+<!ENTITY modelMoveToTrash.label "Mover para esta pasta:">
+<!ENTITY modelMoveToTrash.accesskey "o">
+<!ENTITY modelMarkDeleted.label "Marcar como apagada">
+<!ENTITY modelMarkDeleted.accesskey "a">
+<!ENTITY modelDeleteImmediately.label "Remover imediatamente">
+<!ENTITY modelDeleteImmediately.accesskey "d">
+<!-- LOCALIZATION NOTE (expungeOnExit.label) : do not translate two of "&quot;" in below line -->
+<!ENTITY expungeOnExit.label "Limpar mensagens (&quot;eliminadas&quot;) da caixa de entrada ao sair">
+<!ENTITY expungeOnExit.accesskey "e">
+<!ENTITY emptyTrashOnExit.label "Esvaziar lixo ao sair">
+<!ENTITY emptyTrashOnExit.accesskey "x">
+<!ENTITY loginAtStartup.label "Procurar novas mensagens ao iniciar">
+<!ENTITY loginAtStartup.accesskey "c">
+<!-- LOCALIZATION NOTE (maxMessagesStart.label) : translate below 2 lines with grammar dependency
+ maxMessengerStart.label will be followed by maxMessagesEnd.label with the number
+ of messages between them
+-->
+<!ENTITY maxMessagesStart.label "Perguntar antes de descarregar mais do que">
+<!ENTITY maxMessagesStart.accesskey "t">
+<!-- LOCALIZATION NOTE (maxMessagesEnd.label) : see note for maxMessagesStart.label -->
+<!ENTITY maxMessagesEnd.label "mensagens">
+<!ENTITY alwaysAuthenticate.label "Pedir sempre autenticação ao ligar a este servidor">
+<!ENTITY alwaysAuthenticate.accesskey "u">
+<!ENTITY newsrcFilePath1.label "Ficheiro News.rc:">
+<!ENTITY newsrcPicker1.label "Selecione o ficheiro News.rc">
+<!ENTITY abbreviate.label "Mostrar nome dos grupos de notícias no painel de correio como:">
+<!ENTITY abbreviateOn.label "Nome completo (por exemplo: netscape.public.mozilla.mail-news)">
+<!ENTITY abbreviateOff.label "Nome abreviado (por exemplo: n.p.m.mail-news)">
+<!ENTITY advancedButton.label "Avançado...">
+<!ENTITY advancedButton.accesskey "a">
+<!ENTITY serverDefaultCharset2.label "Codificação predefinida:">
+<!ENTITY localPath1.label "Diretório local:">
+<!ENTITY localFolderPicker.label "Selecione o diretório local">
+<!ENTITY browseFolder.label "Procurar...">
+<!ENTITY browseFolder.accesskey "P">
+<!ENTITY browseNewsrc.label "Procurar...">
+<!ENTITY browseNewsrc.accesskey "r">
+
+<!ENTITY accountTitle.label "Definições da conta">
+<!ENTITY accountSettingsDesc.label "O seguinte é uma conta especial. Não existem quaisquer identidades associadas com a mesma.">
+<!ENTITY storeType.label "Tipo de armazenamento das mensagens:">
+<!ENTITY storeType.accesskey "T">
+<!ENTITY mboxStore2.label "Um ficheiro por pasta (mbox)">
+<!ENTITY maildirStore.label "Um ficheiro por mensagem (maildir)">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-serverwithnoidentities.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-serverwithnoidentities.dtd
new file mode 100644
index 0000000000..5390a6c81b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Nome da conta:">
+<!ENTITY accountName.accesskey "N">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-smime.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-smime.dtd
new file mode 100644
index 0000000000..df1fa214e8
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-smime.dtd
@@ -0,0 +1,47 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY e2eTitle.label "Criptografia de ponta a ponta">
+<!ENTITY e2eLearnMore.label "Saber mais">
+
+<!ENTITY e2eEnc.description "Sem encriptação de ponta-a-ponta, os conteúdos das mensagens são facilmente expostos ao seu provedor de e-mail e à vigilância em massa.">
+
+<!ENTITY e2eTechPref.description "Tecnologia de encriptação preferida:">
+
+<!ENTITY encryptionCert2.message "Certificado pessoal para encriptação:">
+<!ENTITY digitalSign.certificate.button "Selecionar...">
+<!ENTITY digitalSign.certificate.accesskey "S">
+<!ENTITY digitalSign.certificate_clear.button "Limpar">
+<!ENTITY digitalSign.certificate_clear.accesskey "L">
+<!ENTITY encryption.certificate.button "Selecionar…">
+<!ENTITY encryption.certificate.accesskey "c">
+<!ENTITY encryption.certificate_clear.button "Limpar">
+<!ENTITY encryption.certificate_clear.accesskey "i">
+<!ENTITY signingGroupTitle.label "Assinatura digital">
+
+<!ENTITY signingCert2.message "Certificado pessoal para a assinatura digital:">
+
+<!ENTITY sendingDefaults.label "Definições predefinidas para o envio de mensagens">
+
+<!ENTITY technologyAutomatic.label "Selecionar automaticamente com base nas chaves ou certificados disponíveis">
+
+<!ENTITY certificates2.label "S/MIME">
+<!ENTITY manageCerts3.label "Gerir certificados S/MIME">
+<!ENTITY manageCerts3.accesskey "G">
+<!ENTITY manageDevices2.label "Dispositivos de segurança S/MIME">
+<!ENTITY manageDevices2.accesskey "g">
+
+<!ENTITY technologySMIME.label "Preferir S/MIME">
+<!ENTITY technologyOpenPGP.label "Preferir OpenPGP">
+
+<!ENTITY openpgpKeys.label "OpenPGP">
+
+<!-- Strings for the cert picker dialog -->
+<!ENTITY certPicker.title "Selecionar certificado">
+<!ENTITY certPicker.info "Certificado:">
+<!ENTITY certPicker.detailsLabel "Detalhes do certificado selecionado:">
+
+<!ENTITY openpgpKey.message "Chave pessoal para encriptação e assinatura digital:">
+<!ENTITY openpgpKey.button "Definir chave pessoal…">
+<!ENTITY openpgpKey.accesskey "o">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-smime.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-smime.properties
new file mode 100644
index 0000000000..ff7fa3ece2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/am-smime.properties
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## S/MIME error strings.
+## Note to localization: %S is a placeholder
+NoSenderSigningCert=Você especificou que esta mensagem deveria ser assinada digitalmente, mas a aplicação não encontrou o certificado especificado nas definições das contas de correio e grupos de notícias ou então o certificado expirou.
+NoSenderEncryptionCert=Você especificou que esta mensagem deve ser encriptada, mas ou a aplicação não encontrou o certificado especificado nas definições da conta de correio e grupos de notícias, ou o certificado expirou.
+MissingRecipientEncryptionCert=Você especificou que esta mensagem deve ser encriptada, mas a aplicação falhou a procura de um certificado de encriptação para %S.
+ErrorEncryptMail=Não foi possível encriptar a mensagem. Verifique se tem um um certificado de correio válido para cada destinatário. Verifique nas definições da conta de correio e grupos de notícias se o certificado especificado para esta conta de correio é válido e seguro.
+ErrorCanNotSignMail=Não foi possível assinar a mensagem. Verifique se os certificados especificados nas definições das contas de correio e grupos de notícias desta conta estão válido e que são fiáveis.
+
+NoSigningCert=O gestor de certificados não conseguiu localizar um certificado válido que possa ser utilizado para assinar digitalmente as mensagens.
+NoSigningCertForThisAddress=O gestor de certificados não consegue localizar um certificado válido que possa ser utilizado para assinar as suas mensagens com um endereço <%S>.
+NoEncryptionCert=O gestor de certificados não consegue localizar um certificado válido para que outras pessoas lhe possam enviar mensagens de correio encriptadas.
+NoEncryptionCertForThisAddress=O gestor de certificados não consegue localizar um certificado válido para que outras pessoas possam enviar-lhe mensagens encriptadas para o endereço <%S>.
+
+encryption_needCertWantSame=Deve também especificar um certificado para outras pessoas usarem quando lhe enviam mensagens encriptadas. Deseja usar o mesmo certificado para encriptar e desencriptar as mensagens enviadas para si?
+encryption_wantSame=Deseja usar o mesmo certificado para encriptar e desencriptar as mensagens enviadas para si?
+encryption_needCertWantToSelect=Deve também especificar um certificado para outras pessoas usarem quando lhe enviam mensagens encriptadas. Deseja configurar agora um certificado de encriptação?
+signing_needCertWantSame=Deve também especificar um certificado para assinar digitalmente as suas mensagens. Deseja usar o mesmo certificado para assinar digitalmente as suas mensagens?
+signing_wantSame=Deseja utilizar o mesmo certificado para assinar digitalmente as suas mensagens?
+signing_needCertWantToSelect=Deve também especificar um certificado para usar como assinatura digital nas suas mensagens. Deseja configurar agora um certificado para assinar digitalmente as suas mensagens?
+
+## Strings used by nsMsgComposeSecure
+mime_smimeEncryptedContentDesc=Mensagem encriptada S/MIME
+mime_smimeSignatureContentDesc=Assinatura criptográfica S/MIME
+
+## Strings used by the cert picker.
+CertInfoIssuedFor=Emitido para:
+CertInfoIssuedBy=Emitido por:
+CertInfoValid=Válido
+CertInfoFrom=de
+CertInfoTo=para
+CertInfoPurposes=Objetivos
+CertInfoEmail=Email
+CertInfoStoredIn=Guardado em:
+NicknameExpired=(expirado)
+NicknameNotYetValid=(ainda não válido)
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/appUpdate.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/appUpdate.properties
new file mode 100644
index 0000000000..f7d4f98068
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Uma nova atualização do %S está disponível.
+# LOCALIZATION NOTE (updateAvailableMessage): %S will be replaced with brandShortName
+updateAvailableMessage=Atualize o seu %S para o mais recente em velocidade e privacidade.
+updateAvailablePrimaryButtonLabel=Transferir atualização
+updateAvailablePrimaryButtonAccessKey=T
+updateAvailableSecondaryButtonLabel=Agora não
+updateAvailableSecondaryButtonAccessKey=n
+
+# LOCALIZATION NOTE (updateManualTitle): %S will be replaced with brandShortName
+updateManualTitle=O %S não pode atualizar para a versão mais recente.
+# LOCALIZATION NOTE (updateManualMessage): %S will be replaced with brandShortName
+updateManualMessage=Transfira uma nova cópia do %S e iremos ajudar-lhe a instalá-lo.
+# LOCALIZATION NOTE (updateManualPrimaryButtonLabel): %S will be replaced with brandShortName
+updateManualPrimaryButtonLabel=Transferir o %S
+updateManualPrimaryButtonAccessKey=T
+updateManualSecondaryButtonLabel=Agora não
+updateManualSecondaryButtonAccessKey=n
+
+# LOCALIZATION NOTE (updateUnsupportedTitle): %S will be replaced with brandShortName
+updateUnsupportedTitle=O %S não consegue atualizar para a versão mais recente.
+# LOCALIZATION NOTE (updateUnsupportedMessage): %S will be replaced with brandShortName
+updateUnsupportedMessage=A versão mais recente do %S não é suportada no seu sistema.
+updateUnsupportedPrimaryButtonLabel=Saber mais
+updateUnsupportedPrimaryButtonAccessKey=S
+updateUnsupportedSecondaryButtonLabel=Fechar
+updateUnsupportedSecondaryButtonAccessKey=c
+
+# LOCALIZATION NOTE (updateRestartTitle): %S will be replaced with brandShortName
+updateRestartTitle=Reinicie para atualizar o %S.
+# LOCALIZATION NOTE (updateRestartMessage): %S will be replaced with brandShortName
+updateRestartMessage=Após um rápido reinício, o %S irá restaurar todos os seus separadores e janelas abertas.
+updateRestartPrimaryButtonLabel=Reiniciar
+updateRestartPrimaryButtonAccessKey=R
+updateRestartSecondaryButtonLabel=Agora não
+updateRestartSecondaryButtonAccessKey=n
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/appleMailImportMsgs.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/appleMailImportMsgs.properties
new file mode 100644
index 0000000000..6d6ccb9bae
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/appleMailImportMsgs.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/.
+
+# Short name of import module
+ApplemailImportName=Correio Apple
+
+# Description of import module
+ApplemailImportDescription=Importar correio local do Mac OS X Mail
+
+# Success Message
+# LOCALIZATION NOTE(ApplemailImportMailboxSuccess): Do not translate the word "%S" below.
+ApplemailImportMailboxSuccess=As mensagens locais do %S foram importadas com sucesso.
+
+# Error Message
+ApplemailImportMailboxBadparam=Ocorreu um erro interno. A importação falhou. Tente novamente a importação.
+
+# Error message
+# LOCALIZATION NOTE(ApplemailImportMailboxConverterror): Do not translate the word "%S" below.
+ApplemailImportMailboxConverterror=Ocorreu um erro ao importar as mensagens do %S. As mensagens não foram importadas.
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/baseMenuOverlay.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/baseMenuOverlay.dtd
new file mode 100644
index 0000000000..7c9a2b307a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/baseMenuOverlay.dtd
@@ -0,0 +1,34 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Help Menu -->
+<!ENTITY helpMenu.label "Ajuda">
+<!ENTITY helpMenu.accesskey "A">
+<!-- LOCALIZATION NOTE some localizations of Windows use "?"
+ for the help button in the menubar but Gnome does not. -->
+<!ENTITY helpMenuWin.label "Ajuda">
+<!ENTITY helpMenuWin.accesskey "A">
+<!ENTITY aboutProduct2.label "Sobre &brandShorterName;">
+<!ENTITY aboutProduct2.accesskey "S">
+<!ENTITY productHelp.label "Ajuda do &brandShortName;">
+<!ENTITY productHelp.accesskey "j">
+
+<!ENTITY productHelp.commandkey "VK_F1">
+<!ENTITY productHelpMac.commandkey "?">
+<!ENTITY productHelpMac.modifiers "accel">
+
+<!ENTITY helpKeyboardShortcuts.label "Atalhos de teclado">
+<!ENTITY helpKeyboardShortcuts.accesskey "t">
+
+<!ENTITY helpFeedbackPage.label "Enviar comentários…">
+<!ENTITY helpFeedbackPage.accesskey "E">
+
+<!ENTITY helpShowTour2.label "Apresentação do &brandShorterName;">
+<!ENTITY helpShowTour2.accesskey "p">
+
+<!ENTITY helpGetInvolvedPage.label "Participe">
+<!ENTITY helpGetInvolvedPage.accesskey "i">
+
+<!ENTITY helpDonationsPage.label "Faça um donativo">
+<!ENTITY helpDonationsPage.accesskey "F">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/beckyImportMsgs.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/beckyImportMsgs.properties
new file mode 100644
index 0000000000..6a1135cf82
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Importar correio local de 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=As mensagens locais do %S foram importadas com sucesso.
+
+BeckyImportAddressSuccess=Livro de endereços importado
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/charsetTitles.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/charsetTitles.properties
new file mode 100644
index 0000000000..c7d3bcf3e3
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/charsetTitles.properties
@@ -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/.
+
+## 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
+
+iso-8859-1.title = Ocidental (ISO-8859-1)
+iso-8859-2.title = Europa Central (ISO-8859-2)
+iso-8859-3.title = Europa do Sul (ISO-8859-3)
+iso-8859-4.title = Báltico (ISO-8859-4)
+iso-8859-10.title = Nórdico (ISO-8859-10)
+iso-8859-13.title = Báltico (ISO-8859-13)
+iso-8859-14.title = Celta (ISO-8859-14)
+iso-8859-15.title = Ocidental (ISO-8859-15)
+iso-8859-16.title = Romeno (ISO-8859-16)
+windows-1250.title = Europa Central (Windows-1250)
+windows-1252.title = Ocidental (Windows-1252)
+windows-1254.title = Turco (Windows-1254)
+windows-1257.title = Báltico (Windows-1257)
+macintosh.title = Ocidental (MacRoman)
+x-mac-ce.title = Europa Central (MacCE)
+x-mac-turkish.title = Turco (MacTurkish)
+x-mac-croatian.title = Croata (MacCroatian)
+x-mac-romanian.title = Romeno (MacRomanian)
+x-mac-icelandic.title = Islandês (MacIcelandic)
+iso-2022-jp.title = Japonês (ISO-2022-JP)
+shift_jis.title = Japonês (Shift_JIS)
+euc-jp.title = Japonês (EUC-JP)
+big5.title = Mandarim Tradicional (Big5)
+big5-hkscs.title = Mandarim Tradicional (Big5-HKSCS)
+gb2312.title = Mandarim Simplificado (GB2312)
+gbk.title = Mandarim Simplificado (GBK)
+euc-kr.title = Coreano (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 = Cirílico (ISO-8859-5)
+windows-1251.title = Cirílico (Windows-1251)
+x-mac-cyrillic.title = Cirílico (MacCyrillic)
+x-mac-ukrainian.title = Cirílico/Ucraniano (MacUkrainian)
+koi8-r.title = Cirílico (KOI8-R)
+koi8-u.title = Cirílico/Ucraniano (KOI8-U)
+iso-8859-7.title = Grego (ISO-8859-7)
+windows-1253.title = Grego (Windows-1253)
+x-mac-greek.title = Grego (MacGreek)
+windows-1258.title = Vietnamita (Windows-1258)
+windows-874.title = Tailandês (Windows-874)
+iso-8859-6.title = Árabe (ISO-8859-6)
+iso-8859-8.title = Hebraico Visual (ISO-8859-8)
+iso-8859-8-i.title = Hebraico (ISO-8859-8-I)
+windows-1255.title = Hebraico (Windows-1255)
+windows-1256.title = Árabe (Windows-1256)
+x-user-defined.title = Definido pelo utilizador
+ibm866.title = Cirílico/Russo (CP-866)
+gb18030.title = Mandarim Simplificado (GB18030)
+x-mac-arabic.title = Árabe (MacArabic)
+x-mac-farsi.title = Persa (MacFarsi)
+x-mac-hebrew.title = Hebraico (MacHebrew)
+x-mac-devanagari.title = Hindi (MacDevanagari)
+x-mac-gujarati.title = Gujarati (MacGujarati)
+x-mac-gurmukhi.title = Gurmukhi (MacGurmukhi)
+
+chardet.off.title = (Desligada)
+chardet.universal_charset_detector.title = Universal
+chardet.ja_parallel_state_machine.title = Japonês
+chardet.ko_parallel_state_machine.title = Coreano
+chardet.zhtw_parallel_state_machine.title = Chinês Tradicional
+chardet.zhcn_parallel_state_machine.title = Mandarim Simplificado
+chardet.zh_parallel_state_machine.title = Mandarim
+chardet.cjk_parallel_state_machine.title = Ásia Oriental
+chardet.ruprob.title = Russo
+chardet.ukprob.title = Ucraniano
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/chat.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/chat.dtd
new file mode 100644
index 0000000000..7558d69f2c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/chat.dtd
@@ -0,0 +1,44 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY onlineContactsHeader.label "Contactos online">
+<!ENTITY offlineContactsHeader.label "Contactos offline">
+<!ENTITY conversationsHeader.label "Conversas">
+<!ENTITY searchResultConversation.label "Resultado da pesquisa">
+<!ENTITY chat.noConv.title "As conversas serão mostradas aqui.">
+<!ENTITY chat.noConv.description "Utilize a lista de contactos no painel da esquerda para iniciar uma conversa.">
+<!ENTITY chat.noPreviousConv.description "Atualmente, o &brandShortName; não tem qualquer conversa guardada para este contacto.">
+<!ENTITY chat.noAccount.title "Ainda não configurou uma conta de chat.">
+<!ENTITY chat.noAccount.description "Deixar que o &brandShortName; o ajude no processo de configuração da conta de chat.">
+<!ENTITY chat.accountWizard.button "Começar">
+<!ENTITY chat.noConnectedAccount.title "As suas contas de chat não estão ligadas.">
+<!ENTITY chat.noConnectedAccount.description "Pode ligar as contas no diálogo 'Estado do chat':">
+<!ENTITY chat.showAccountManager.button "Mostrar estado do chat">
+
+<!ENTITY chat.participants "Participantes:">
+<!ENTITY chat.previousConversations "Conversas anteriores:">
+<!ENTITY chat.ongoingConversation "Conversas atuais">
+
+<!ENTITY openConversationCmd.label "Iniciar uma conversa">
+<!ENTITY openConversationCmd.accesskey "c">
+<!ENTITY closeConversationCmd.label "Fechar conversa">
+<!ENTITY closeConversationCmd.accesskey "c">
+<!ENTITY aliasCmd.label "Renomear">
+<!ENTITY aliasCmd.accesskey "R">
+<!ENTITY deleteCmd.label "Remover contacto">
+<!ENTITY deleteCmd.accesskey "R">
+
+<!ENTITY openConversationButton.tooltip "Iniciar uma conversa">
+<!ENTITY closeConversationButton.tooltip "Fechar conversa">
+
+<!ENTITY addBuddyButton.label "Adicionar contacto">
+<!ENTITY joinChatButton.label "Entrar no chat">
+<!ENTITY chatAccountsButton.label "Mostrar contas">
+
+<!ENTITY status.available "Disponível">
+<!ENTITY status.unavailable "Indisponível">
+<!ENTITY status.offline "Offline">
+
+<!ENTITY openLinkCmd.label "Abrir ligação…">
+<!ENTITY openLinkCmd.accesskey "A">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/chat.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/chat.properties
new file mode 100644
index 0000000000..c4e3445d99
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/chat.properties
@@ -0,0 +1,110 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+chatTabTitle=Chat
+goBackToCurrentConversation.button=Voltar à conversa atual
+# LOCALIZATION NOTE (startAConversationWith.button):
+# %S is replaced with the display name of a contact.
+startAConversationWith.button=Iniciar conversa com %S
+
+# LOCALIZATION NOTE (defaultGroup):
+# this is used in the addBuddies dialog if the list of existing groups is empty
+defaultGroup=Contactos
+
+# 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 quer conversar consigo
+buddy.authRequest.allow.label=Permitir
+buddy.authRequest.allow.accesskey=P
+buddy.authRequest.deny.label=Recusar
+buddy.authRequest.deny.accesskey=R
+
+## 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 quer verificar as identidades uns dos outros
+buddy.verificationRequest.allow.label=Iniciar verificação
+buddy.verificationRequest.allow.accesskey=S
+buddy.verificationRequest.deny.label=Recusar
+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=Apagar %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=Se continuar, %1$S será removido permanentemente da sua lista de amigos do %2$S.
+
+# LOCALIZATION NOTE (buddy.deletePrompt.displayName):
+# This is used to format the display name inserted in buddy.deletePrompt.message
+# %1$S is the alias, %2$S is the username.
+buddy.deletePrompt.displayName=%1$S (%2$S)
+
+# LOCALIZATION NOTE (buddy.deletePrompt.button):
+# the & symbol indicates the position of the character that should be
+# used as the accesskey for this button.
+buddy.deletePrompt.button=&Apagar
+
+displayNameEmptyText=Nome exibido
+userIconFilePickerTitle=Selecione um novo ícone...
+
+# 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=está a escrever.
+chat.hasStoppedTyping=parou de escrever.
+# 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 está a escrever.
+chat.contactHasStoppedTyping=%S parou de escrever.
+
+# LOCALIZATION NOTE (unknownCommand):
+# This is shown when an unknown command (/foo) is attempted. %S is the command.
+unknownCommand=%S não é um comando suportado. Escreva /help para ver a lista de comandos disponíveis.
+
+#LOCALIZATION NOTE
+# These are special entries in the log tree for the corresponding days.
+log.today=Hoje
+log.yesterday=Ontem
+
+#LOCALIZATION NOTE
+# These are special groups in the log tree for the last 3-7 days and
+# the last 8-14 days.
+log.currentWeek=Esta semana
+log.previousWeek=Semana passada
+
+# 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=Nova mensagem de chat
+
+#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... (e mais #1 mensagem);%1$S... (e mais #1 mensagens)
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/configEditorOverlay.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/configEditorOverlay.dtd
new file mode 100644
index 0000000000..3d78799d68
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/converterDialog.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/converterDialog.dtd
new file mode 100644
index 0000000000..6822a02dae
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/converterDialog.dtd
@@ -0,0 +1,11 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY converterDialog.title "Conversor do tipo de armazenamento de mensagens">
+<!ENTITY converterDialog.continueButton "Continuar">
+<!ENTITY converterDialog.cancelButton "Cancelar">
+<!ENTITY converterDialog.finishButton "Concluir">
+<!ENTITY converterDialog.complete "A conversão está completa. O &brandShortName; irá agora reiniciar.">
+<!ENTITY converterDialog.error "A conversão falhou">
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/converterDialog.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/converterDialog.properties
new file mode 100644
index 0000000000..936706b3fb
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=As mensagens na conta %1$S serão agora convertidas para o formato %2$S. O %3$S irá reiniciar depois da conversão estar completa.
+
+# 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=A converter a conta %1$S para %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 está a delegar para %2$S. Contas delegadas para %3$S: %4$S. As mensagens nas contas %5$S serão agora convertidas para o formato %6$S. O %7$S irá reiniciar depois da conversão estar concluída.
+
+# 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=Contas delegadas para %1$S: %2$S. As mensagens nas contas %3$S serão agora convertidas para o formato %4$S. O %5$S irá reiniciar depois da conversão estar concluída.
+
+# 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=A converter as contas %1$S para %2$S…
+
+# LOCALIZATION NOTE (converterDialog.percentDone):
+# %1$S will be replaced by the percentage of conversion that is complete.
+converterDialog.percentDone=%1$S%% feito
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/custom.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/custom.properties
new file mode 100644
index 0000000000..eb53805ecc
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=O cabeçalho introduzido contém uma letra inválida, tal como':', uma letra não impressa, uma letra não ASCII ou uma letra ASCII de oito bit. Remova o caractere inválido e tente novamente.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/customizeToolbar.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/customizeToolbar.dtd
new file mode 100644
index 0000000000..78282833a9
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/customizeToolbar.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY dialog.title "Personalizar barra de ferramentas">
+<!ENTITY dialog.dimensions "width: 92ch; height: 36em;">
+<!ENTITY instructions.description "Pode adicionar ou remover itens arrastando-os para ou das barras de ferramentas.">
+<!ENTITY show.label "Mostrar:">
+<!ENTITY iconsAndText.label "Ícones e texto">
+<!ENTITY icons.label "Ícones">
+<!ENTITY text.label "Texto">
+<!ENTITY iconsBesideText.label "Ícones ao lado do texto">
+<!ENTITY useSmallIcons.label "Utilizar ícones pequenos">
+<!ENTITY restoreDefaultSet.label "Restaurar conjunto predefinido">
+<!ENTITY showTitlebar2.label "Barra de título">
+<!ENTITY extraDragSpace2.label "Espaço de arrastamento">
+<!ENTITY saveChanges.label "Feito">
+<!ENTITY undoChanges.label "Desfazer alterações">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/customizeToolbar.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/customizeToolbar.properties
new file mode 100644
index 0000000000..642ccc59d1
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Nova barra de ferramentas
+enterToolbarName=Digite um nome para esta barra de ferramentas:
+enterToolbarDup=Já existe uma barra de ferramentas com o nome "%S". Por favor introduza um nome diferente.
+enterToolbarBlank=Tem que introduzir um nome para criar uma nova barra de ferramentas.
+separatorTitle=Separador
+springTitle=Espaço flexível
+spacerTitle=Espaço
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/downloadheaders.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/downloadheaders.dtd
new file mode 100644
index 0000000000..1a739fc7ae
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Descarregar todos os cabeçalhos">
+<!ENTITY all.accesskey "D">
+<!--LOCALIZATION NOTE (download.label):
+ consider the download.label and headers.label as a single sentence
+ with the number of headers to be downloaded inserted between them:
+ EXAMPLE: "Download" <some number> "headers"
+ Either label could be set to null ("") if required grammatically.
+-->
+
+<!--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 "Descarregar">
+<!ENTITY download.accesskey "e">
+<!--LOCALIZATION NOTE (headers.label): see note for download.label -->
+<!ENTITY headers.label "cabeçalhos">
+<!ENTITY headers.accesskey "h">
+<!ENTITY mark.label "Marcar cabeçalhos restantes como lidos">
+<!ENTITY mark.accesskey "M">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/editContactOverlay.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/editContactOverlay.dtd
new file mode 100644
index 0000000000..240e7bb243
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/editContactOverlay.dtd
@@ -0,0 +1,20 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY editContactPanelDeleteContact.label "Apagar">
+<!ENTITY editContactPanelDeleteContact.accesskey "A">
+
+<!ENTITY editContactName.label "Nome:">
+<!ENTITY editContactName.accesskey "N">
+
+<!ENTITY editContactEmail.label "E-mail:">
+<!ENTITY editContactEmail.accesskey "E">
+
+<!ENTITY editContactAddressBook.label "Livro de endereços:">
+<!ENTITY editContactAddressBook.accesskey "L">
+
+<!ENTITY editContactPanelDone.label "Feito">
+<!ENTITY editContactPanelDone.accesskey "F">
+
+<!ENTITY contactMoveDisabledWarning.description "Não pode alterar o livro de endereços porque o contacto pertence a uma lista de correio.">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/editContactOverlay.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/editContactOverlay.properties
new file mode 100644
index 0000000000..5850ec0501
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Editar contacto
+viewTitle=Ver contacto
+
+editDetailsLabel=Editar detalhes
+editDetailsAccessKey=t
+viewDetailsLabel=Ver detalhes
+viewDetailsAccessKey=e
+
+deleteContactTitle=Apagar contacto
+deleteContactMessage=Tem a certeza que pretende eliminar este contacto?
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/fieldMapImport.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/fieldMapImport.dtd
new file mode 100644
index 0000000000..7654294b12
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Seguinte">
+<!ENTITY fieldMapImport.next.accesskey "S">
+<!ENTITY fieldMapImport.previous.label "Anterior">
+<!ENTITY fieldMapImport.previous.accesskey "A">
+<!ENTITY fieldMapImport.text "Utilize Mover para cima e Mover para baixo para criar a correspondência entre os campos do livro de endereços à esquerda e da direita. Desmarque os itens que não quer importar.">
+<!ENTITY fieldMapImport.up.label "Mover para cima">
+<!ENTITY fieldMapImport.up.accesskey "c">
+<!ENTITY fieldMapImport.down.label "Mover para baixo">
+<!ENTITY fieldMapImport.down.accesskey "b">
+<!ENTITY fieldMapImport.fieldListTitle "Campos do livro de endereços">
+<!ENTITY fieldMapImport.dataTitle "Dados a importar">
+<!ENTITY fieldMapImport.skipFirstRecord.label "O primeiro registo contém o nome dos campos">
+<!ENTITY fieldMapImport.skipFirstRecord.accessKey "O">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/filter.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/filter.properties
new file mode 100644
index 0000000000..5795febb1d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/filter.properties
@@ -0,0 +1,109 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+mustSelectFolder=Tem de escolher uma pasta de destino.
+enterValidEmailAddress=Introduza um endereço de e-mail para reencaminhamento.
+pickTemplateToReplyWith=Escolha o modelo a incluir na resposta.
+mustEnterName=Tem de dar um nome ao filtro.
+cannotHaveDuplicateFilterTitle=Nome de filtro duplicado
+cannotHaveDuplicateFilterMessage=O nome do filtro já existe. Introduza um nome diferente para o filtro.
+mustHaveFilterTypeTitle=Nenhum evento de filtragem selecionado
+mustHaveFilterTypeMessage=Tem de selecionar, pleo menos, um evento quando este filtro é aplicado. Se, temporariamente, não quiser que o filtro seja executado em todos os eventos, desmarque seu estado no diálogo dos filtros de mensagens.
+deleteFilterConfirmation=Tem a certeza que pretende eliminar o(s) filtro(s) selecionado(s)?
+matchAllFilterName=Corresponder todas as mensagens
+filterListBackUpMsg=Os seus filtros não funcionam porque o ficheiro msgFilterRules.dat , que contém os seus filtros, não pode ser lido. Um novo ficheiro msgFilterRules.dat será criado, assim como uma cópia de segurança do ficheiro antigo, com o nome rulesbackup.dat.
+customHeaderOverflow=Excedeu o limite de 50 cabeçalhos personalizados. Por favor elimine um ou mais filtros personalizados e tente novamente.
+filterCustomHeaderOverflow=Os seus filtros excederam o limite de 50 cabeçalhos personalizados. Por favor edite o ficheiro msgFilterRules.dat , que contém os seus filtros, para usar menos cabeçalhos personalizados.
+invalidCustomHeader=Um ou mais filtros utilizam um cabeçalho personalizado que contém um caractere inválido, tal como ':', um caractere não impresso, um caractere não-ascii, ou caracteres de oito-bit ascii. Por favor edite o ficheiro msgFilterRules.dat, que contém os seus filtros, para remover caracteres inválidos dos seus cabeçalhos personalizados.
+continueFilterExecution=Erro ao aplicar o filtro %S. Continuar a aplicar os filtros?
+promptTitle=Filtros em funcionamento
+promptMsg=Atualmente, está no processo de filtrar mensagens.\nDeseja continuar a aplicar filtros?
+stopButtonLabel=Parar
+continueButtonLabel=Continuar
+# LOCALIZATION NOTE(cannotEnableIncompatFilter)
+# %S=the name of the application
+cannotEnableIncompatFilter=Este filtro provavelmente foi criado por uma versão mais recente ou incompatível do %S. Não pode ativar este filtro porque não sabemos como o aplicar o mesmo.
+dontWarnAboutDeleteCheckbox=Não perguntar novamente
+# LOCALIZATION NOTE(copyToNewFilterName)
+# %S=the name of the filter that is being copied
+copyToNewFilterName=Copiar de %S
+# LOCALIZATION NOTE(contextPeriodic.label): Semi-colon list of plural forms.
+# #1=the number of minutes
+contextPeriodic.label=Periodicamente, a cada minuto;Periodicamente, a cada #1 minutos
+
+# LOCALIZATION NOTE(filterFailureWarningPrefix)
+# %1$S=filter error action
+# %2$S=error code as hexadecimal string.
+filterFailureWarningPrefix=Falha de ação de filtro: "%1$S" com o código de erro %2$S ao tentar:
+filterFailureSendingReplyError=Erro ao enviar resposta
+filterFailureSendingReplyAborted=Envio de resposta abortado
+filterFailureMoveFailed=A moção falhou
+filterFailureCopyFailed=A cópia falhou
+
+filterFailureAction=Não foi possível aplicar a ação de filtro
+
+searchTermsInvalidTitle=Termos da pesquisa inválidos
+# LOCALIZATION NOTE(searchTermsInvalidRule)
+# %1$S=search attribute name from the invalid rule
+# %2$S=search operator from the bad rule
+searchTermsInvalidRule=Este filtro não pode ser guardado porque o termo de pesquisa "%1$S %2$S" é inválido no contexto atual.
+# LOCALIZATION NOTE(filterActionOrderExplanation)
+# Keep the \n\n that mean 2 linebreaks.
+filterActionOrderExplanation=Quando uma mensagem corresponde com este filtro, as ações serão executadas por esta ordem:\n\n
+filterActionOrderTitle=Ordem de ações
+## 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 de %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 itens
+# for junk mail logging / mail filter logging
+# LOCALIZATION NOTE(junkLogDetectStr)
+# %1$S=author, %2$S=subject, %3$S=date
+junkLogDetectStr=Detetado lixo eletrónico de %1$S - %2$S em %3$S
+# LOCALIZATION NOTE(logMoveStr)
+# %1$S=message id, %2$S=folder URI
+logMoveStr=mensagem movida = %1$S para %2$S
+# LOCALIZATION NOTE(logCopyStr)
+# %1$S=message id, %2$S=folder URI
+logCopyStr=mensagem copiada = %1$S para %2$S
+# LOCALIZATION NOTE(filterLogLine):
+# %1$S=timestamp, %2$S=log message
+filterLogLine=[%1$S] %2$S
+# LOCALIZATION NOTE(filterMessage):
+# %1$S=filter name, %1$S=log message
+filterMessage=Mensagem do filtro "%1$S": %2$S
+# LOCALIZATION NOTE(filterLogDetectStr)
+# %1$S=filter name %2$S=author, %3$S=subject, %4$S=date
+filterLogDetectStr=Filtro "%1$S" aplicado à mensagem de %2$S - %3$S em %4$S
+filterMissingCustomAction=Ação personalizada em falta
+filterAction2=prioridade alterada
+filterAction3=apagado
+filterAction4=marcada como lida
+filterAction5=tópico encerrado
+filterAction6=tópico observado
+filterAction7=com estrela
+filterAction8=com etiqueta
+filterAction9=respondida
+filterAction10=reencaminhada
+filterAction11=execução parada
+filterAction12=apagado do servidor POP3
+filterAction13=mantida no servidor POP3
+filterAction14=avaliação do lixo
+filterAction15=corpo obtido do servidor POP3
+filterAction16=copiada para a pasta
+filterAction17=com etiqueta
+filterAction18=subtópico ignorado
+filterAction19=marcada como não lida
+# LOCALIZATION NOTE(filterAutoNameStr)
+# %1$S=Header or item to match, e.g. "From", "Tag", "Age in days", etc.
+# %2$S=Operator, e.g. "Contains", "is", "is greater than", etc.
+# %3$S=Value, e.g. "Steve Jobs", "Important", "42", etc.
+filterAutoNameStr=%1$S %2$S: %3$S
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/folderProps.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/folderProps.dtd
new file mode 100644
index 0000000000..383d027495
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/folderProps.dtd
@@ -0,0 +1,70 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY folderProps.windowtitle.label "Propriedades">
+
+<!ENTITY generalInfo.label "Informações gerais">
+<!ENTITY folderRebuildSummaryFileTip2.label "Reconstruir índice de ficheiros de sumário">
+<!ENTITY folderRebuildSummaryFile2.label "Reparar pasta">
+<!ENTITY folderRebuildSummaryFile2.accesskey "R">
+<!ENTITY folderRebuildSummaryFile.explanation "Às vezes, o índice da pasta (.msf) fica danificado e algumas mensagens podem desaparecer ou mensagens apagadas continuam a aparecer; a reparação da pasta pode corrigir estes problemas.">
+<!ENTITY folderIncludeInGlobalSearch.label "Incluir mensagens desta pasta nos resultados de pesquisa global">
+<!ENTITY folderIncludeInGlobalSearch.accesskey "g">
+
+<!ENTITY retention.label "Política de retenção">
+<!ENTITY retentionUseAccount.label "Utilizar as definições da minha conta">
+<!ENTITY retentionUseAccount.accesskey "d">
+<!ENTITY daysOld.label "dias de antiguidade">
+<!ENTITY message.label "mensagens">
+<!ENTITY retentionCleanup.label "Para ganhar espaço em disco, as mensagens antigas podem ser permanentemente apagadas.">
+<!ENTITY retentionCleanupImap.label "Para ganhar espaço em disco, as mensagens antigas podem ser permanentemente apagadas, tanto as cópias locais como os originais no servidor remoto.">
+<!ENTITY retentionCleanupPop.label "Para ganhar espaço em disco, as mensagens antigas podem ser permanentemente apagadas, incluindo os originais no servidor remoto.">
+<!ENTITY retentionDeleteMsg.label "Apagar mensagens maiores que">
+<!ENTITY retentionDeleteMsg.accesskey "m">
+<!ENTITY retentionKeepAll.label "Não apagar quaisquer mensagens">
+<!ENTITY retentionKeepAll.accesskey "a">
+<!ENTITY retentionKeepRecent.label "Apagar todas menos as mais recentes">
+<!ENTITY retentionKeepRecent.accesskey "t">
+<!ENTITY retentionApplyToFlagged.label "Manter sempre as mensagens com estrela">
+<!ENTITY retentionApplyToFlagged.accesskey "e">
+
+<!ENTITY folderSynchronizationTab.label "Sincronização">
+<!ENTITY folderCheckForNewMessages2.label "Ao receber novas mensagens nesta conta, analisar sempre esta pasta">
+<!ENTITY folderCheckForNewMessages2.accesskey "n">
+
+<!ENTITY offlineFolder.check.label "Selecionar esta pasta para utilização offline">
+<!ENTITY offlineFolder.check.accesskey "S">
+<!ENTITY offlineFolder.button.label "Descarregar agora">
+<!ENTITY offlineFolder.button.accesskey "D">
+
+<!ENTITY selectofflineNewsgroup.check.label "Selecionar este grupo de notícias para utilização offline">
+<!ENTITY selectofflineNewsgroup.check.accesskey "o">
+<!ENTITY offlineNewsgroup.button.label "Descarregar agora">
+<!ENTITY offlineNewsgroup.button.accesskey "D">
+
+<!ENTITY folderProps.name.label "Nome:">
+<!ENTITY folderProps.name.accesskey "N">
+<!ENTITY folderProps.color.label "Cor do ícone:">
+<!ENTITY folderProps.color.accesskey "o">
+<!ENTITY folderProps.reset.tooltip "Restaurar cor predefinida">
+<!ENTITY folderProps.location.label "Localização:">
+<!ENTITY folderProps.location.accesskey "L">
+
+<!ENTITY folderSharingTab.label "Partilha">
+<!ENTITY privileges.button.label "Privilégios...">
+<!ENTITY privileges.button.accesskey "P">
+<!ENTITY permissionsDesc.label "Tem estas permissões:">
+<!ENTITY folderOtherUsers.label "Outros com acesso a esta pasta:">
+<!ENTITY folderType.label "Tipo de pasta:">
+
+<!ENTITY folderQuotaTab.label "Cota">
+<!ENTITY folderQuotaUsage.label "Utilização:">
+<!ENTITY folderQuotaStatus.label "Estado:">
+
+<!ENTITY numberOfMessages.label "Número de mensagens:">
+<!-- LOCALIZATION NOTE: When the number of messages can't be determined, this string is displayed as the number -->
+<!ENTITY numberUnknown.label "desconhecido">
+<!ENTITY sizeOnDisk.label "Tamanho em disco:">
+<!-- LOCALIZATION NOTE: When the size can't be determined, this string is displayed as the size -->
+<!ENTITY sizeUnknown.label "desconhecido">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/folderWidgets.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/folderWidgets.properties
new file mode 100644
index 0000000000..ab53852017
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/folderWidgets.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE(globalInbox)
+# %S=name of the Local folders account
+globalInbox=Caixa de entrada global (%S)
+# LOCALIZATION NOTE(verboseFolderFormat): %1$S is folder name, %2$S is server name
+verboseFolderFormat=%1$S em %2$S
+chooseFolder=Escolher pasta
+chooseAccount=Escolha a conta…
+noFolders=Pastas não disponíveis
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/folderpane.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/folderpane.dtd
new file mode 100644
index 0000000000..f11dcad5b1
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Nome">
+<!ENTITY unreadColumn.label "Não lidas">
+<!ENTITY totalColumn.label "Total">
+<!ENTITY folderSizeColumn.label "Tamanho">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/gloda.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/gloda.properties
new file mode 100644
index 0000000000..5bb3f1fe29
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/gloda.properties
@@ -0,0 +1,175 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (*.facetNameLabel): These are the labels used to label the facet
+# displays in the global search facet display mechanism. They should be
+# compact descriptions of the facet type (e.g. "Folder", and don't need to
+# refer to the objects being faceted (e.g. "Message" or "Mail").
+
+# LOCALIZATION NOTE (*.includeLabel): The label to use for the included group
+# in the facet display. If not provided, we will fall back to
+# "glodaFacetView.facets.included.fallbackLabel".
+
+# LOCALIZATION NOTE (*.excludeLabel): The label to use for the excluded group
+# in the facet display. If not provided, we will fall back to
+# "glodaFacetView.facets.excluded.fallbackLabel".
+
+# LOCALIZATION NOTE (*.remainderLabel): The label to use for the remaining items
+# that are neither part of the included group or the excluded group in the
+# facet display. If not provided, we will fall back to
+# "glodaFacetView.facets.remainder.fallbackLabel".
+
+# LOCALIZATION NOTE (*.mustMatchLabel): The label to use for the popup menu
+# to indicate that the results should be restricted to messages which match
+# a particular value. If not provided, we will fall back to
+# "glodaFacetView.facets.mustMatch.fallbackLabel". #1, if present, is
+# replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.cantMatchLabel): The label to use for the popup menu
+# to indicate that the results should be restricted to messages which match
+# a particular value. If not provided, we will fall back to
+# "glodaFacetView.facets.cantMatch.fallbackLabel". #1, if present, is
+# replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.mayMatchLabel): The label to use for the popup menu
+# to indicate that the results should no longer be restricted relative to
+# this particular facet value. If not provided, we will fall back to
+# "glodaFacetView.facets.mayMatch.fallbackLabel". #1, if present, is
+# replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.mustMatchSomeLabel): The label to use for the popup menu
+# to indicate that the results should be restricted to messages which have
+# _some_ value (e.g. at least one tag is set). If not provided, we will fall
+# back to "glodaFacetView.facets.mustMatchSome.fallbackLabel". #1, if present,
+# is replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.mustMatchNoneLabel): The label to use for the popup menu
+# to indicate that the results should be restricted to messages which have _no_
+# value (e.g. no tags are set). If not provided, we will fall back to
+# "glodaFacetView.facets.mustMatchNoneLabel.fallbackLabel". #1, if present, is
+# replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.mayMatchAnyLabel): The label to use for the popup menu
+# to indicate that the results should not be restricted to messages which have
+# any or no value (e.g. no requirements on any tags are set). If not provided,
+# we will fall back to "glodaFacetView.facets.mayMatchAnyLabel.fallbackLabel".
+# #1, if present, is replaced by the value of the facet (name, folder, mailing
+# list, etc.)
+
+# LOCALIZATION NOTE (gloda.message.attr.account.*): Stores the account in which
+# a message's folder is located.
+gloda.message.attr.account.facetNameLabel=Conta
+gloda.message.attr.account.includeLabel=armazenado em qualquer um dos:
+gloda.message.attr.account.excludeLabel=não armazenado em:
+gloda.message.attr.account.remainderLabel=outras contas:
+gloda.message.attr.account.mustMatchLabel=tem de estar em #1
+gloda.message.attr.account.cantMatchLabel=não pode estar em #1
+
+# LOCALIZATION NOTE (gloda.message.attr.folder.*): Stores the message folder in
+# which the message is stored.
+gloda.message.attr.folder.facetNameLabel=Pasta
+gloda.message.attr.folder.includeLabel=armazenado em qualquer um dos:
+gloda.message.attr.folder.excludeLabel=não armazenado em:
+gloda.message.attr.folder.remainderLabel=outras pastas:
+gloda.message.attr.folder.mustMatchLabel=tem de estar em #1
+gloda.message.attr.folder.cantMatchLabel=não pode estar em #1
+
+# LOCALIZATION NOTE (gloda.message.attr.fromMe.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.fromMe.facetNameLabel=De mim
+
+# LOCALIZATION NOTE (gloda.message.attr.toMe.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.toMe.facetNameLabel=Para mim
+
+# LOCALIZATION NOTE (gloda.message.attr.involves.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.involves.facetNameLabel=Pessoas
+gloda.message.attr.involves.includeLabel=envolvendo qualquer um dos:
+gloda.message.attr.involves.excludeLabel=não envolve:
+gloda.message.attr.involves.remainderLabel=outros participantes:
+gloda.message.attr.involves.mustMatchLabel=tem de envolver #1
+gloda.message.attr.involves.cantMatchLabel=não pode envolver #1
+
+# LOCALIZATION NOTE (gloda.message.attr.date.*): Stores the date of the message.
+# Thunderbird normally stores the date the message claims it was composed
+# according to the "Date" header. This is not the same as when the message
+# was sent or when it was eventually received by the user. In the future we
+# may change this to be one of the other dates, but not anytime soon.
+gloda.message.attr.date.facetNameLabel=Data
+
+# 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=Anexos
+
+# 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=Lista de correio
+gloda.message.attr.mailing-list.noneLabel=Nenhum
+gloda.message.attr.mailing-list.includeLabel=recebido em qualquer um dos:
+gloda.message.attr.mailing-list.excludeLabel=não recebido em nenhum de:
+gloda.message.attr.mailing-list.remainderLabel=outras listas de correio:
+gloda.message.attr.mailing-list.mustMatchLabel=tem de estar em #1
+gloda.message.attr.mailing-list.cantMatchLabel=não pode estar em #1
+gloda.message.attr.mailing-list.mustMatchSomeLabel=tem que estar numa lista de correio
+gloda.message.attr.mailing-list.mustMatchNoneLabel=não pode estar numa lista de correio
+
+# LOCALIZATION NOTE (gloda.message.attr.tag.*): Stores the tags applied to the
+# message. Notably, gmail's labels are not currently exposed via IMAP and we
+# do not do anything clever with gmail, so this is independent of gmail labels
+# This may change in the future, but it's a safe bet it's not happening on
+# Thunderbird's side prior to 3.0.
+gloda.message.attr.tag.facetNameLabel=Etiquetas
+gloda.message.attr.tag.noneLabel=Nenhum
+gloda.message.attr.tag.includeLabel=etiquetado com qualquer uma de:
+gloda.message.attr.tag.excludeLabel=não etiquetado:
+gloda.message.attr.tag.remainderLabel=outras etiquetas:
+gloda.message.attr.tag.mustMatchLabel=tem de ter a etiqueta #1
+gloda.message.attr.tag.cantMatchLabel=não pode ter a etiqueta #1
+gloda.message.attr.tag.mustMatchSomeLabel=tem de ter etiqueta
+gloda.message.attr.tag.mustMatchNoneLabel=não pode ter etiqueta
+
+# 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=Com estrela
+
+# LOCALIZATION NOTE (gloda.message.attr.read.*): Stores whether the user has
+# read the message or not.
+gloda.message.attr.read.facetNameLabel=Lida
+
+# 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=Resposta a
+
+# 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=Reencaminhada
+
+# LOCALIZATION NOTE (gloda.mimetype.category.*.label): Map categories of MIME
+# types defined in MimeTypeCategories.jsm to labels.
+# LOCALIZATION NOTE (gloda.mimetype.category.archives.label): Archive is
+# referring to things like zip files, tar files, tar.gz files, etc.
+gloda.mimetype.category.archives.label=Arquivos
+gloda.mimetype.category.documents.label=Documentos
+gloda.mimetype.category.images.label=Imagens
+# 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=Multimédia (áudio, vídeo)
+gloda.mimetype.category.pdf.label=Ficheiros PDF
+# 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=Outra
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/glodaComplete.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/glodaComplete.properties
new file mode 100644
index 0000000000..13e4d113af
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Mensagens com a etiqueta: #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=Mensagens com a menção: #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=Mensagens com a menção: #1
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/glodaFacetView.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/glodaFacetView.dtd
new file mode 100644
index 0000000000..28b1f81f8f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/glodaFacetView.dtd
@@ -0,0 +1,29 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE (glodaFacetView.filters.label): Label at the top of the
+ faceting sidebar. Serves as a header both for the checkboxes under it as
+ well for labeled facets with multiple options. -->
+<!ENTITY glodaFacetView.filters.label "Filtrar por:">
+
+<!-- LOCALIZATION NOTE (glodaFacetView.loading.label): Label that appears when
+ the search results take a long time to appear. -->
+<!ENTITY glodaFacetView.loading.label "A pesquisar&#8230;">
+
+<!-- LOCALIZATION NOTE (glodaFacetView.empty.label): Label that appears when
+ there are no results that match the search query. -->
+<!ENTITY glodaFacetView.empty.label "Nenhuma mensagem coincidente com a pesquisa">
+
+<!-- LOCALIZATION NOTE (glodaFacetView.pageMore.label): Label at the bottom
+ of the results list to show more hits. -->
+<!ENTITY glodaFacetView.pageMore.label "Mais &#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 "Mostrar resultados como lista">
+
+<!-- LOCALIZATION NOTE(glodaFacetView.results.message.openEmailAsList.tooltip):
+ The tooltip to display when hovering over the openEmailAsList label. -->
+<!ENTITY glodaFacetView.openEmailAsList.tooltip "Mostrar todas as mensagens de e-mail do conjunto ativo num novo separador">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/glodaFacetView.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/glodaFacetView.properties
new file mode 100644
index 0000000000..a72182bb1e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/glodaFacetView.properties
@@ -0,0 +1,171 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (glodaFacetView.tab.query.label):
+# The tab title to display for tabs that are based on a gloda (global database)
+# query or collection rather than a user search. At some point we might try
+# and explain what the query/collection is in automatic fashion, but not today.
+glodaFacetView.tab.query.label=Pesquisar
+
+# 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=Pesquisa
+
+# 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=Resultados para:
+
+# 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=A pesquisar por #1
+glodaFacetView.constraints.query.fulltext.andJoinWord=e
+glodaFacetView.constraints.query.fulltext.orJoinWord=ou
+
+# 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=A pesquisar mensagens
+
+# 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=envolvendo #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=etiquetado:
+
+
+# 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=Listar #1;Listar todos os #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=incluindo qualquer um dos:
+# 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=excluindo:
+# 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=outra:
+
+# 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=tem de corresponder a #1
+glodaFacetView.facets.mustMatchNoneLabel.fallbackLabel=não pode ter um valor
+
+# 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=não pode corresponder a #1
+glodaFacetView.facets.mustMatchSomeLabel.fallbackLabel=tem de ter um valor
+
+# 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=remover restrição
+glodaFacetView.facets.mayMatchAnyLabel.fallbackLabel=remover restrição
+
+# 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=Nenhum
+
+# LOCALIZATION NOTE (glodaFacetView.facets.filter.attachmentTypes.allLabel):
+# The label to use when all types of attachments are being displayed.
+glodaFacetView.facets.filter.attachmentTypes.allLabel=Qualquer tipo
+
+# 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=de:
+
+# 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=para:
+
+# 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=(sem assunto)
+
+# 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=de #1;de #1
+# LOCALIZATION NOTE(glodaFacetView.results.header.countLabel.grouping):
+# Combines the pluralized
+# "glodaFacetView.results.header.countLabel.NMessages" string (as #1) with
+# the pluralized "glodaFacetView.results.header.countLabel.ofN" (as #2)
+# to make a single label.
+glodaFacetView.results.header.countLabel.grouping=#1 #2
+
+glodaFacetView.results.message.timeline.label=Alternar linha temporal
+# 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=Ordenar por relevância
+# 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=Ordenar por data
+
+# 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=e #1 outro;e #1 outros
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/imAccountWizard.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/imAccountWizard.dtd
new file mode 100644
index 0000000000..c823064737
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/imAccountWizard.dtd
@@ -0,0 +1,32 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY windowTitle.label "Assistente da conta de chat">
+
+<!ENTITY accountProtocolTitle.label "Rede de chat">
+<!ENTITY accountProtocolInfo.label "Por favor escolha a rede da conta de chat.">
+<!ENTITY accountProtocolField.label "Rede:">
+<!ENTITY accountProtocolGetMore.label "Obter mais…">
+
+<!ENTITY accountUsernameTitle.label "Nome de utilizador">
+<!ENTITY accountUsernameDuplicate.label "Esta conta já está configurada!">
+
+<!ENTITY accountPasswordTitle.label "Palavra-passe">
+<!ENTITY accountPasswordInfo.label "Por favor introduza a palavra-passe na caixa abaixo.">
+<!ENTITY accountPasswordField.label "Palavra-passe:">
+<!ENTITY accountPasswordManager.label "A palavra-passe aqui introduzida será guardada no gestor de palavras-passe. Deixe esta caixa vazia se quiser que seja pedida a sua palavra-passe sempre que se ligar a esta conta.">
+
+<!ENTITY accountAdvancedTitle.label "Opções avançadas">
+<!ENTITY accountAdvancedInfo.label "Se quiser, pode ignorar esta etapa.">
+<!ENTITY accountAdvanced.newMailNotification.label "Notificar ao receber mensagens">
+<!ENTITY accountAliasGroupbox.caption "Alcunha local">
+<!ENTITY accountAliasField.label "Alcuha:">
+<!ENTITY accountAliasInfo.label "Isto só será exibido nas conversas efetuadas. Os contactos remotos não o vêem.">
+<!ENTITY accountProxySettings.caption "Definições de proxy">
+<!ENTITY accountProxySettings.change.label "Alterar…">
+<!ENTITY accountProxySettings.change.accessKey "t">
+
+<!ENTITY accountSummaryTitle.label "Sumário">
+<!ENTITY accountSummaryInfo.label "Um sumário da informação que introduziu está mostrado abaixo. Por favor verifique-o da conta ser criada.">
+<!ENTITY accountSummary.connectNow.label "Ligar esta conta agora.">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/imAccounts.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/imAccounts.properties
new file mode 100644
index 0000000000..c9f8a76b62
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/imAccounts.properties
@@ -0,0 +1,63 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (protoOptions):
+# %S is replaced by the name of a protocol
+protoOptions=Opções do %S
+accountUsername=Nome de utilizador:
+# 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=Por favor introduza o nome de utilizador para a conta %S.
+# LOCALIZATION NOTE (accountUsernameInfoWithDescription):
+# %1$S is a hint for the expected format of the username
+# %2$S is the name of a protocol
+accountUsernameInfoWithDescription=Por favor introduza o nome de utilizador (%1$S) para a conta %2$S.
+
+# LOCALIZATION NOTE (account.connection.error):
+# %S is the error message.
+account.connection.error=Erro: %S
+# LOCALIZATION NOTE (account.connection.errorUnknownPrpl)
+# %S is the id (not very user friendly; hence the quotes) of the missing plugin.
+account.connection.errorUnknownPrpl=Nenhum extra para o protocolo '%S'.
+account.connection.errorEnteringPasswordRequired=Para se ligar a esta conta, tem que introduzir uma palavra-passe.
+account.connection.errorCrashedAccount=Ocorreu uma falha ao ligar a esta conta.
+# LOCALIZATION NOTE (account.connection.progress):
+# %S is a message indicating progress of the connection process
+account.connection.progress=A ligar: %S…
+account.connecting=A ligar…
+account.connectedForSeconds=Ligado durante alguns segundos.
+# 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=Ligado por %1$S %2$S e %3$S %4$S.
+account.connectedForSingle=Ligado durante %1$S %2$S.
+account.reconnectInDouble=Nova ligação em %1$S %2$S e %3$S %4$S.
+account.reconnectInSingle=Nova ligação em %1$S %2$S.
+
+requestAuthorizeTitle=Pedido de autorização
+# LOCALIZATION NOTE (requestAuthorizeAllow, requestAuthorizeDeny):
+# the & symbol indicates the position of the character that should be
+# used as the accesskey for this button.
+requestAuthorizeAllow=&Permitir
+requestAuthorizeDeny=&Recusar
+# LOCALIZATION NOTE (requestAuthorizeText):
+# %S is a contact username.
+requestAuthorizeText=%S adicionou-lhe à lista de amigos, deseja permitir que lhe veja a si?
+
+accountsManager.notification.button.accessKey=L
+accountsManager.notification.button.label=Ligar agora
+accountsManager.notification.userDisabled.label=Desativou as ligações automáticas.
+accountsManager.notification.safeMode.label=As definições de ligação automática foram ignoradas porque a aplicação está atualmente no modo de segurança.
+accountsManager.notification.startOffline.label=As ligações automáticas foram ignoradas porque a aplicação foi iniciada no modo offline.
+accountsManager.notification.crash.label=A última execução terminou abruptamente ao ligar. As ligações automáticas foram desativadas para lhe dar a oportunidade de editar as definições.
+# 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 última execução terminou abruptamente ao ligar a uma conta nova ou editada. Ligação não estabelecida para que possa editar as definições.;A última execução terminou abruptamente ao ligar a #1 novas contas ou editadas. Ligação não estabelecida para que possa editar as definições.
+accountsManager.notification.other.label=A ligação automática foi desativada.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/imapMsgs.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/imapMsgs.properties
new file mode 100644
index 0000000000..e9f3411fcf
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/imapMsgs.properties
@@ -0,0 +1,268 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the imap code to display progress/status/error messages
+#
+
+#LOCALIZATION NOTE(imapAlertDialogTile): Do not translate the word "%S"
+# below. Place the word %S where the account name should appear.
+imapAlertDialogTitle=Alerta para a conta %S
+
+# Status - opening folder
+imapStatusSelectingMailbox=A abrir a pasta %S...
+
+# Status - create folder
+imapStatusCreatingMailbox=A criar pasta…
+
+# 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=A apagar a pasta %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=A renomear a pasta %S…
+
+# Status - looking for mailboxes
+imapStatusLookingForMailbox=A procurar pastas…
+
+# 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=A subscrever a pasta %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=A cancelar a subscrição da pasta %S…
+
+# Status - searching imap folder
+imapStatusSearchMailbox=A pesquisar pasta…
+
+# Status - closing a folder
+imapStatusCloseMailbox=A fechar pasta…
+
+# Status - compacting a folder
+imapStatusExpungingMailbox=A compactar pasta...
+
+# Status - logging out
+imapStatusLoggingOut=A terminar sessão...
+
+# Status - checking server capabilities
+imapStatusCheckCompat=A verificar capacidades do servidor…
+
+# Status - logging on
+imapStatusSendingLogin=A enviar informações de início de sessão...
+
+# Status - auth logon
+imapStatusSendingAuthLogin=A enviar informações de início de sessão...
+
+imapDownloadingMessage=A descarregar mensagem…
+
+# LOCALIZATION NOTE (imapGettingACLForFolder): Do not translate the word "ACL" below.
+imapGettingACLForFolder=A obter ACL da pasta...
+
+imapGettingServerInfo=A obter informações da configuração do servidor...
+
+imapGettingMailboxInfo=A obter informações de configuração da caixa de correio…
+
+imapEmptyMimePart=Esta parte do corpo será transferida a pedido.
+
+# 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=A descarregar cabeçalho de mensagem %1$S de %2$S em %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=A descarregar etiqueta de mensagem %1$S de %2$S em %3$S…
+
+imapDeletingMessages=A apagar mensagens...
+
+imapDeletingMessage=A apagar mensagem...
+
+# 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=A mover mensagens para %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=A mover mensagem para %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=A copiar mensagens para %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=A copiar mensagem para %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=A descarregar mensagem %1$S de %2$S em %3$S…
+
+# LOCALIZATION NOTE (imapDiscoveringMailbox): Do not translate the word "%S" below.
+# Place the word %S in your translation where the name of the folder should appear.
+imapDiscoveringMailbox=Pasta encontrada: %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=Introduza a palavra-passe para %1$S em %2$S:
+
+# LOCALIZATION NOTE (imapServerNotImap4): Do not translate the word "IMAP4" below.
+imapServerNotImap4=O servidor de correio %S não é um servidor IMAP4.
+
+# This is intentionally left blank.
+imapDone=
+
+# LOCALIZATION NOTE (imapEnterPasswordPromptTitleWithUsername): Do not translate the
+# word %1$S. Place the word %1$S where the user name should appear.
+imapEnterPasswordPromptTitleWithUsername=Insira a sua palavra-passe para %1$S
+
+imapUnknownHostError=Falha ao ligar ao servidor %S.
+imapOAuth2Error=Falha de autenticação ao ligar-se ao servidor %S.
+
+imapConnectionRefusedError=Não foi possível estabelecer ligação ao servidor %S. A ligação foi recusada.
+
+imapNetTimeoutError=A ligação ao servidor %S expirou.
+
+imapTlsError=Ocorreu um erro incontornável de TLS. Erro de handshake ou provavelmente a versão TLS ou o certificado utilizado pelo servidor %S não é compatível.
+
+# Status - no messages to download
+imapNoNewMessages=Não existem novas mensagens no servidor.
+
+imapDefaultAccountName=Correio para %S
+
+imapSpecialChar2=O caractere %S está reservado neste servidor imap. Por favor escolha outro nome.
+
+imapPersonalSharedFolderTypeName=Pasta pessoal
+
+imapPublicFolderTypeName=Pasta pública
+
+imapOtherUsersFolderTypeName=Pastas de outros utilizadores
+
+imapPersonalFolderTypeDescription=Esta é uma pasta de correio pessoal. Não é partilhada.
+
+imapPersonalSharedFolderTypeDescription=Esta é uma pasta de correio pessoal. Foi partilhada.
+
+imapPublicFolderTypeDescription=Esta é uma pasta pública.
+
+imapOtherUsersFolderTypeDescription=Esta é uma pasta de correio partilhada pelo utilizador %S.
+
+imapAclFullRights=Controlo total
+
+imapAclLookupRight=Procurar
+
+imapAclReadRight=Lida
+
+imapAclSeenRight=Definir estado lida/não lida
+
+imapAclWriteRight=Escrever
+
+imapAclInsertRight=Inserir (copiar para)
+
+imapAclPostRight=Publicar
+
+imapAclCreateRight=Criar subpasta
+
+imapAclDeleteRight=Apagar mensagens
+
+imapAclAdministerRight=Pasta de administração
+
+imapServerDoesntSupportAcl=Este servidor não tem suporte a pastas partilhadas.
+
+imapAclExpungeRight=Apagar
+
+imapServerDisconnected= O servidor %S terminou a ligação. Pode ter sido encerrado ou pode existir um problema de rede.
+
+# LOCALIZATION NOTE (autoSubscribeText): %1$S is the imap folder.
+imapSubscribePrompt=Gostaria de subscrever a pasta %1$S?
+
+imapServerDroppedConnection=Não foi possível ligar ao seu servidor IMAP. Pode ter excedido o número máximo \
+de ligações para este servidor. Se sim, utilize a janela das definições avançadas do servidor IMAP \
+para reduzir o número de ligações em cache.
+
+# This will occur when a folder that has never been imap selected or opened
+# (left-clicked) is first right-clicked to access quota properties.
+imapQuotaStatusFolderNotOpen=A informação de quotas não está disponível porque a pasta não está aberta.
+
+# The imap capability response reports that QUOTA is not supported.
+imapQuotaStatusNotSupported=Este servidor não suporta quotas.
+
+# The getqutaroot command succeeded but reported no quota information.
+imapQuotaStatusNoQuota2=Esta pasta não reporta informações de quota.
+
+# Folder properties were requested by the user (right-click) before the getquotaroot
+# command was sent.
+imapQuotaStatusInProgress=Ainda não estão disponíveis informações sobre a quota.
+
+# Out of memory
+imapOutOfMemory=A aplicação está sem memória.
+
+# 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=A copiar mensagem %1$S de %2$S para %3$S
+
+# LOCALIZATION NOTE (imapMoveFolderToTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+imapMoveFolderToTrash=Tem a certeza que pretende eliminar a pasta %S?
+
+# LOCALIZATION NOTE (imapDeleteNoTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+imapDeleteNoTrash=Se eliminar esta pasta, não a poderá recuperar e todas as respetivas mensagens e sub-pastas, serão perdidas. Tem a certeza que pretende eliminar a pasta '%S'?
+
+imapDeleteFolderDialogTitle=Apagar pasta
+
+imapDeleteFolderButtonLabel=&Apagar pasta
+
+# LOCALIZATION NOTE (imapAuthChangeEncryptToPlainSSL): %S is the server hostname
+imapAuthChangeEncryptToPlainSSL=Parece que o servidor IMAP %S não tem suporte a palavras-passe encriptadas. Se acabou de configurar a conta, tente mudar para 'Palavra-passe normal' como 'Método de autenticação' em 'Definições de contas -> Definições do servidor'. Se este método funcionava anteriormente, contacte o fornecedor do serviço de correio.
+
+# LOCALIZATION NOTE (imapAuthChangePlainToEncrypt): %S is the server hostname
+imapAuthChangePlainToEncrypt=O servidor IMAP %S não permite palavras-passe em texto simples. Por favor tente alterar para 'Palavra-passe encriptada' como' Método de autenticação' em 'Definições de contas -> Definições do servidor'.
+
+# LOCALIZATION NOTE (imapAuthChangeEncryptToPlainNoSSL): %S is the server hostname
+imapAuthChangeEncryptToPlainNoSSL=Parece que o servidor IMAP %S não tem suporte a palavras-passe encriptadas. Se acabou de configurar a conta, tente mudar para 'Palavra-passe, enviada sem segurança' como 'Método de autenticação' nas 'Definições de contas -> Definições do servidor'. Se este método funcionava anteriormente, é possível que alguém tenha obtido a sua palavra-passe.
+
+# LOCALIZATION NOTE (imapAuthMechNotSupported): %S is the server hostname
+imapAuthMechNotSupported=Parece que o servidor IMAP %S não tem suporte ao método de autenticação selecionado. Por favor altere o Método de autenticação nas Definições de conta -> Definições do servidor.
+
+# LOCALIZATION NOTE (imapAuthGssapiFailed): %S is the server hostname
+imapAuthGssapiFailed=O método Kerberos/GSSAPI não foi aceite pelo servidor IMAP %S. Por favor verifique se iniciou a sessão no armazenamento Kerberos/GSSAPI.
+
+# 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=O comando não foi bem sucedido. O servidor de correio da conta %1$S devolveu: %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=A operação atual em %2$S não foi bem sucedida. O servidor de correio da conta %1$S devolveu: %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=Alerta da conta %1$S: %2$S
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/importDialog.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/importDialog.dtd
new file mode 100644
index 0000000000..65f9105d69
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/importDialog.dtd
@@ -0,0 +1,48 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--
+LOCALIZATION NOTE : 'Communicator 4.x' is the used for previous versions of
+Netscape Communicator, Please translate using the brandname in respective
+languages for Netscape Communicator 4 releases.
+LOCALIZATION NOTE : Do not translate any of the occurrences of the word
+"&brandShortName;" below.
+-->
+
+<!ENTITY importDialog.windowTitle "Importar">
+<!ENTITY importAll.label "Importar tudo">
+<!ENTITY importAll.accesskey "t">
+<!ENTITY importMail.label "Correio">
+<!ENTITY importMail.accesskey "C">
+<!ENTITY importFeeds.label "Fontes subscritas">
+<!ENTITY importFeeds.accesskey "o">
+<!ENTITY importAddressbook.label "Livros de endereços">
+<!ENTITY importAddressbook.accesskey "v">
+<!ENTITY importSettings.label "Definições">
+<!ENTITY importSettings.accesskey "D">
+<!ENTITY importFilters.label "Filtros">
+<!ENTITY importFilters.accesskey "F">
+
+<!ENTITY importTitle.label "Assistente de importação do &brandShortName;">
+<!ENTITY importShortDesc.label "Importar correio, livros de endereços, definições e filtros de outros programas">
+
+<!ENTITY importDescription1.label "Este assistente irá importar as mensagens, livros de endereços, fontes, preferências e filtros de outros programas para o &brandShortName;.">
+<!ENTITY importDescription2.label "Ao terminar a importação, os dados importados estarão disponíveis no &brandShortName;.">
+
+<!ENTITY selectDescription.label "Por favor selecione o tipo de ficheiro que deseja importar:">
+<!ENTITY selectDescriptionB.label "Por favor selecione uma conta existente ou crie uma nova:">
+<!ENTITY selectDescription.accesskey "P">
+<!ENTITY acctName.label "Nome:">
+<!ENTITY acctName.accesskey "N">
+<!ENTITY noModulesFound.label "Não foi encontrada uma aplicação ou ficheiro para importar os dados.">
+
+<!ENTITY back.label "&lt; Recuar">
+<!ENTITY forward.label "Seguinte &gt;">
+<!ENTITY finish.label "Concluir">
+<!ENTITY cancel.label "Cancelar">
+
+<!ENTITY select.label "ou selecione o tipo de dados a importar:">
+
+<!ENTITY title.label "Título">
+<!ENTITY processing.label "A importar...">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/importMsgs.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/importMsgs.properties
new file mode 100644
index 0000000000..f2be9a0730
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/importMsgs.properties
@@ -0,0 +1,304 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The following are used by the import code to display status/error
+# and informational messages
+
+# Success message when no address books are found to import
+## @name IMPORT_NO_ADDRBOOKS
+## @loc None
+2000=Não foi encontrado qualquer livro de endereços para importar.
+
+# Error: Address book import not initialized
+## @name IMPORT_ERROR_AB_NOTINITIALIZED
+## @loc None
+2001=Não foi possível importar o livro de endereços. Erro de inicialização.
+
+# Error: Unable to create the import thread
+## @name IMPORT_ERROR_AB_NOTHREAD
+## @loc None
+2002=Não foi possível importar o livro de endereços. Processo de importação não iniciado.
+
+# 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=Erro ao importar %S. Não foi possível criar o livro de endereços.
+
+# Success message when no mailboxes are found to import
+## @name IMPORT_NO_MAILBOXES
+## @loc None
+2004=Não foi encontrada qualquer caixa de correio para importar.
+
+# Error: Mailbox import not initialized
+## @name IMPORT_ERROR_MB_NOTINITIALIZED
+## @loc None
+2005=Não foi possível importar as caixas de correio. Erro de inicialização.
+
+# Error: Unable to create the import thread
+## @name IMPORT_ERROR_MB_NOTHREAD
+## @loc None
+2006=Não foi possível importar as caixas de correio. Processo de importação não iniciado.
+
+# Error: Unable to create the proxy object for importing mailboxes
+## @name IMPORT_ERROR_MB_NOPROXY
+## @loc None
+2007=Não foi possível importar as caixas de correio. Não foi possível criar o proxy para o destino das caixas de correio.
+
+# 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=Erro ao criar o destino das caixas de correio. Não foi possível localizar a caixa de correio %S.
+
+# Error: Error creating destination mailboxes
+## @name IMPORT_ERROR_MB_CREATE
+## @loc None
+# LOCALIZATION NOTE (Error 2009): Do not translate the word "%S" below.
+# Place %S in your translation where the name of the mailbox should appear.
+2009=Erro ao importar a caixa de correio %S. Não foi possível criar a caixa de correio de destino.
+
+# Error: No destination folder to import mailboxes
+## @name IMPORT_ERROR_MB_NODESTFOLDER
+## @loc None
+2010=Não foi possível criar a pasta de destino da importação.
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC_START
+## @loc None
+2100=Nome
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2101=Apelido
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2102=Nome exibido
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2103=Nickname
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2104=Email primário
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2105=E-mail secundário
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2106=Telefone profissional
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2107=Telefone de casa
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2108=Número de fax
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2109=Número de pager
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2110=Número de telemóvel
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2111=Endereço pessoal
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2112=Endereço pessoal 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2113=Naturalidade
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2114=Distrito
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2115=Código postal
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2116=Nacionalidade
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2117=Endereço profissional
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2118=Endereço profissional 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2119=Local de trabalho
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2120=Distrito do local de trabalho
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2121=Código postal do local de trabalho
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2122=País do local de trabalho
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2123=Profissão
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2124=Departamento
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2125=Organização
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2126=Página web 1
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2127=Página web 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2128=Ano de nascimento
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2129=Mês de nascimento
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2130=Dia de nascimento
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2131=Personalizado 1
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2132=Personalizado 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2133=Personalizado 3
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2134=Personalizado 4
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2135=Notas
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC_END
+## @loc None
+2136=Nome a mostrar
+
+#Error strings
+ImportAlreadyInProgress=Já está a decorrer uma operação importante. Tente novamente depois de concluir a importação.
+
+#Error strings for settings import
+ImportSettingsBadModule=Não foi possível carregar o módulo de definições.
+ImportSettingsNotFound=Não foi possível encontrar as definições. Confirme se a aplicação está instalada no seu computador.
+ImportSettingsFailed=Ocorreu um erro ao importar as definições. Todas, ou algumas das definições não foram importadas.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+ImportSettingsSuccess=As definições foram importadas do %S.
+
+#Error string for mail import
+ImportMailBadModule=Não foi possível carregar o módulo de importação de correio.
+ImportMailNotFound=Não foi possível encontrar correio para importar. Confirme se a aplicação está corretamente instalada no seu computador.
+ImportEmptyAddressBook=Não foi possível importar o livro de endereços %S.
+# LOCALIZATION NOTE: Do not translate the word "%S" below.
+ImportMailFailed=Ocorreu um erro ao importar o correio de %S.
+# LOCALIZATION NOTE: Do not translate the word "%S" below.
+ImportMailSuccess=O correio de %S foi importado com sucesso.
+
+# Error string for address import
+ImportAddressBadModule=Não foi possível carregar o módulo do livro de endereços para importar.
+ImportAddressNotFound=Não foi possível encontrar qualquer livro de endereços para importar. Confirme se a aplicação selecionada ou o formato está corretamente instalado no seu computador.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+ImportAddressFailed=Ocorreu um erro ao importar os endereços de %S.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+ImportAddressSuccess=Endereços de %S importados com sucesso.
+
+# Error string for filters import
+ImportFiltersBadModule=Não foi possível carregar o módulo de importação dos filtros.
+# LOCALIZATION NOTE : The %S will get replaced by the name of the import module.
+ImportFiltersFailed=Ocorreu um erro ao importar os filtros de %S.
+# LOCALIZATION NOTE : The %S will get replaced by the name of the import module.
+ImportFiltersSuccess=Filtros importados com sucesso a partir de %S.
+# LOCALIZATION NOTE : The %S will get replaced by the name of the import module.
+ImportFiltersPartial=Filtros parcialmente importados de %S. Avisos abaixo:
+
+#Progress strings
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+MailProgressMeterText=A converter caixas de correio de %S
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+AddrProgressMeterText=A converter livro de endereços de %S
+
+#Import file dialog strings
+ImportSelectSettings=Selecione o ficheiro de definições
+ImportSelectMailDir=Selecione o diretório de correio
+ImportSelectAddrDir=Selecione o diretório do livro de endereços
+ImportSelectAddrFile=Selecione o ficheiro do livro de endereços
+
+# Folder Names for imported Mail
+DefaultFolderName=Correio importado
+# LOCALIZATION NOTE: Do not translate the word "%S" below.
+ImportModuleFolderName=Importar %S
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/joinChat.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/joinChat.dtd
new file mode 100644
index 0000000000..0eff446e90
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/joinChat.dtd
@@ -0,0 +1,10 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY joinChatWindow.title "Entrar no chat">
+<!ENTITY name.label "Sala">
+<!ENTITY optional.label "(opcional)">
+<!ENTITY account.label "Conta">
+<!ENTITY autojoin.label "Entrar automaticamente neste chat">
+<!ENTITY autojoin.accesskey "a">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/junkLog.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/junkLog.dtd
new file mode 100644
index 0000000000..92ffb0d698
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/junkLog.dtd
@@ -0,0 +1,10 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY adaptiveJunkLog.title "Registo inteligente de lixo eletrónico">
+<!ENTITY adaptiveJunkLogInfo.label "Registo inteligente de atividade do lixo eletrónico.">
+<!ENTITY clearLog.label "Limpar registo">
+<!ENTITY clearLog.accesskey "L">
+<!ENTITY closeLog.label "Fechar">
+<!ENTITY closeLog.accesskey "F">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/localMsgs.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/localMsgs.properties
new file mode 100644
index 0000000000..c7ec7f97c7
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/localMsgs.properties
@@ -0,0 +1,140 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the local mail code to display progress/status/error messages
+#
+
+# LOCALIZATION NOTE(pop3ErrorDialogTitle): Do not translate the word "%S"
+# below. Place the word %S where the account name should appear.
+pop3ErrorDialogTitle=Erro na conta %S
+
+# LOCALIZATION NOTE (pop3EnterPasswordPromptTitleWithUsername): Do not translate the
+# word %1$S. Place the word %1$S where the user name should appear.
+pop3EnterPasswordPromptTitleWithUsername=Insira a sua palavra-passe para %1$S
+
+# LOCALIZATION NOTE(pop3EnterPasswordPrompt): Do not translate the words "%1$S"
+# and "%2$S" below. Place the word %1$S where the user name should appear, and
+# %2$S where the host name should appear.
+pop3EnterPasswordPrompt=Introduza a palavra-passe para %1$S em %2$S:
+
+# LOCALIZATION NOTE(pop3PreviouslyEnteredPasswordIsInvalidPrompt): Do not
+# translate the words "%1$S" and "%2$S" below. Place the word %1$S where the
+# user name should appear, and %2$S where the host name should appear.
+pop3PreviouslyEnteredPasswordIsInvalidPrompt=Introduza uma nova palavra-passe para o utilizador %1$S em %2$S:
+
+# Status - Downloading message n of m
+# LOCALIZATION NOTE (receivingMessages): Do not translate %1$S or %2$S in the following lines.
+# Place the word %1$S where the number of messages downloaded so far should appear.
+# Place the word %2$S where the total number of messages to receive should appear;
+receivingMessages=A descarregar mensagem %1$S de %2$S…
+
+# Status - connecting to host
+hostContact=Servidor contactado, a enviar informação de início de sessão…
+
+# Status - no messages to download
+noNewMessages=Não existem novas mensagens.
+
+# 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=Recebidas %1$S de %2$S mensagens
+
+# 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=A criar ficheiro de sumário para %S…
+
+# Status - parsing folder
+localStatusDocumentDone=Feito
+
+# Status - pop3 server error
+#LOCALIZATION NOTE (pop3ServerError): Do not translate POP3 in the following line.
+pop3ServerError=Ocorreu um erro com o servidor de correio POP3.
+
+# Status - pop3 user name failed
+pop3UsernameFailure=O envio do nome de utilizador não foi bem sucedido.
+
+# Status - password failed
+#LOCALIZATION NOTE (pop3PasswordFailed): Do not translate "%1$S" below.
+# Place the word %1$S where the user name should appear.
+pop3PasswordFailed=O envio da palavra-passe do utilizador %1$S não foi bem sucedido.
+
+# Status - write error occurred
+pop3MessageWriteError=Não foi possível guardar a mensagem na caixa de correio. Verifique se tem acesso de escrita ao sistema de ficheiros ou se possui espaço suficiente para copiar a caixa de correio.
+
+# Status - retr failure from the server
+pop3RetrFailure=O comando RETR não foi bem sucedido. Erro ao obter a mensagem.
+
+# Status - password undefined
+pop3PasswordUndefined=Erro ao obter a palavra-passe do correio.
+
+# Status - username undefined
+pop3UsernameUndefined=Não forneceu o nome de utilizador para este servidor. Por favor forneça um no menu de configuração da conta e tente novamente.
+
+# Status - list failure
+pop3ListFailure=O comando LIST não foi bem sucedido. Erro ao obter a ID e o tamanho da mensagem.
+
+# Status - delete error
+pop3DeleFailure=O comando DELE não teve sucesso. Erro ao marcar a mensagem como apagada.
+
+# Status - stat failed
+pop3StatFail=O comando STAT não foi bem sucedido. Erro ao obter o número e tamanho das mensagens.
+
+#LOCALIZATION NOTE (pop3ServerSaid): Do not remove the leading space during translation.
+pop3ServerSaid= O servidor de correio %S devolveu:\u0020
+
+#LOCALIZATION NOTE (pop3TempServerError): %S is where the POP3 server name will appear.
+pop3TempServerError=Erro temporário de %S ao obter novas mensagens. \
+A operação será repetida na próxima tentativa de obtenção de novas mensagens.
+
+copyingMessagesStatus=A copiar %S de %S mensagens para %S
+
+movingMessagesStatus=A mover %S de %S mensagens para %S
+
+# Status - pop3 server or folder busy
+# LOCALIZATION NOTE (pop3ServerBusy): Do not translate the word "%S" below.
+# Place %S where the account name should appear.
+pop3ServerBusy=A conta %S está a ser processada. Por favor aguarde pelo final do processamento para obter as mensagens.
+
+pop3TmpDownloadError=Ocorreu um erro ao descarregar a seguinte mensagem: \nDe: %S\n Assunto: %S\n Esta mensagem pode conter um vírus ou não existe espaço suficiente em disco. Ignorar esta mensagem?
+
+# 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=O servidor de correio POP3 (%S) não suporta UIDL ou XTND XLST, que são necessárias para implementar as opções ``Manter no servidor”, ``Tamanho máximo da mensagem” ou ``Obter apenas os cabeçalhos”. Para descarregar o seu correio, aceda às definições da conta e desative estas opções nas definições do seu servidor de correio.
+
+# 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=O servidor de correio POP3 (%S) não suporta o comando TOP. Sem suporte do servidor para esta opção, as opções ``Tamanho máximo da mensagem'' e ``Obter apenas os cabeçalhos'' não estão disponíveis. Esta opção foi desativada e as mensagens serão transferidas, independentemente do seu tamanho.
+
+nsErrorCouldNotConnectViaTls=Não foi possível estabelecer a ligação TLS ao servidor POP3. O servidor pode estar desligado ou estar incorretamente configurado. Verifique se as definições do servidor estão corretas e tente novamente.
+
+# LOCALIZATION NOTE (pop3MoveFolderToTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+pop3MoveFolderToTrash=Tem a certeza que pretende eliminar a pasta '%S'?
+
+pop3DeleteFolderDialogTitle=Apagar pasta
+
+pop3DeleteFolderButtonLabel=&Apagar pasta
+
+pop3AuthInternalError=Erro interno durante a autenticação do servidor POP3. Este é um erro interno e inesperado da aplicação. Por favor reporte-o.
+
+pop3AuthChangeEncryptToPlainNoSSL=Parece que este servidor POP3 não tem suporte a palavras-passe encriptadas. Se acabou de configurar a conta, tente alterar as definições para 'Palavra-passe, enviada sem segurança' como 'Método de autenticação' nas 'Definições de contas -> Definições do servidor'. Se este método funcionava anteriormente, é possível que alguém tenha obtido a sua palavra-passe.
+
+pop3AuthChangeEncryptToPlainSSL=Parece que este servidor POP3 não tem suporte a palavras-passe encriptadas. Se acabou de configurar a conta, tente alterar as definições para 'Palavra-passe, enviada sem segurança' como 'Método de autenticação' nas definições da conta. Se o acesso à conta funcionava anteriormente e agora não, contacte o fornecedor de correio ou o administrador de sistemas.
+
+pop3AuthChangePlainToEncrypt=Parece que este servidor POP3 não permite palavras-passe em texto simples. Tente alterar as definições para 'Palavra-passe encriptada' como 'Método de autenticação' nas definições da conta.
+
+# Authentication server caps and pref don't match
+pop3AuthMechNotSupported=Parece que este servidor não tem suporte ao método de autenticação escolhido. Por favor altere o método de autenticação nas definições da conta.
+
+# Status - Could not log in to GSSAPI, and it was the only method
+pop3GssapiFailure=Os dados Kerberos/GSSAPI não foram aceites pelo servidor POP. Por favor verifique se está ligado ao Kerberos/GSSAPI.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mailEditorOverlay.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mailEditorOverlay.dtd
new file mode 100644
index 0000000000..1168660808
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Enviar página...">
+<!ENTITY sendPage.accesskey "E">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mailOverlay.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mailOverlay.dtd
new file mode 100644
index 0000000000..7cbbde7aa2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Mensagem">
+<!ENTITY newMessageCmd.accesskey "m">
+
+<!ENTITY newContactCmd.label "Contacto do livro de endereços...">
+<!ENTITY newContactCmd.accesskey "C">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mailViewList.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mailViewList.dtd
new file mode 100644
index 0000000000..d9b795ad49
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Modos de visualização">
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mailViewSetup.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mailViewSetup.dtd
new file mode 100644
index 0000000000..ecc91a1358
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Configurar visualização de mensagens">
+<!ENTITY mailViewHeading.label "Nome do modo de visualização:">
+<!ENTITY mailViewHeading.accesskey "N">
+<!ENTITY searchTermCaption.label "Ao escolher esta visualização, mostrar apenas as mensagens que:">
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mailviews.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mailviews.properties
new file mode 100644
index 0000000000..f206e322f2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Pessoas conhecidas
+mailViewRecentMail=Correio recente
+mailViewLastFiveDays=Últimos 5 dias
+mailViewNotJunk=Não é lixo eletrónico
+mailViewHasAttachments=Tem anexos
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/markByDate.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/markByDate.dtd
new file mode 100644
index 0000000000..a767bc5901
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Marcar como lidas por data">
+<!ENTITY markByDateLower.label "Marcar como lidas de:">
+<!ENTITY markByDateLower.accesskey "M">
+<!ENTITY markByDateUpper.label "Até">
+<!ENTITY markByDateUpper.accesskey "A">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messenger.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messenger.dtd
new file mode 100644
index 0000000000..aa9aa0ce10
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messenger.dtd
@@ -0,0 +1,945 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY titledefault.label "&brandFullName;">
+<!ENTITY titleSeparator.label " - ">
+
+<!-- File Menu -->
+<!ENTITY newFolderCmd.label "Pasta...">
+<!ENTITY newFolderCmd.accesskey "P">
+<!ENTITY closeTabCmd2.label "Fechar separador">
+<!ENTITY closeTabCmd2.accesskey "c">
+<!ENTITY closeOtherTabsCmd2.label "Fechar outros separadores">
+<!ENTITY closeOtherTabsCmd2.accesskey "o">
+<!ENTITY recentlyClosedTabsCmd.label "Separadores fechados recentemente">
+<!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 "Mover para nova janela">
+<!ENTITY moveToNewWindow.accesskey "j">
+<!ENTITY newVirtualFolderCmd.label "Pesquisa guardada…">
+<!ENTITY newVirtualFolderCmd.accesskey "s">
+<!ENTITY newCreateEmailAccountCmd.label "Obter nova conta de e-mail…">
+<!ENTITY newCreateEmailAccountCmd.accesskey "O">
+<!ENTITY newExistingEmailAccountCmd.label "Conta de e-mail existente…">
+<!ENTITY newExistingEmailAccountCmd.accesskey "e">
+<!ENTITY newIMAccountCmd.label "Conta de chat…">
+<!ENTITY newIMAccountCmd.accesskey "C">
+<!ENTITY newFeedAccountCmd.label "Conta de fontes...">
+<!ENTITY newFeedAccountCmd.accesskey "d">
+<!ENTITY newIMContactCmd.label "Contacto de chat…">
+<!ENTITY newIMContactCmd.accesskey "h">
+<!ENTITY newMessageCmd2.key "N">
+<!ENTITY newMessageCmd.key "M">
+<!ENTITY newMessageCmd.label "Mensagem">
+<!ENTITY newMessageCmd.accesskey "m">
+<!ENTITY newContactCmd.label "Contacto do livro de endereços…">
+<!ENTITY newContactCmd.accesskey "C">
+<!ENTITY openMenuCmd.label "Abrir">
+<!ENTITY openMenuCmd.accesskey "A">
+<!ENTITY openMessageFileCmd.label "Abrir mensagem guardada...">
+<!ENTITY openMessageFileCmd.accesskey "A">
+<!ENTITY saveAsMenu.label "Guardar como">
+<!ENTITY saveAsMenu.accesskey "d">
+<!ENTITY saveAsFileCmd.key "s">
+<!ENTITY saveAsTemplateCmd.label "Modelo">
+<!ENTITY saveAsTemplateCmd.accesskey "M">
+<!ENTITY getNewMsgForCmd.label "Obter novas mensagens para">
+<!ENTITY getNewMsgForCmd.accesskey "n">
+<!ENTITY getAllNewMsgCmdPopupMenu.label "Todas as contas">
+<!ENTITY getAllNewMsgCmdPopupMenu.accesskey "T">
+<!ENTITY getNewMsgCurrentAccountCmdPopupMenu.label "Conta atual">
+<!ENTITY getNewMsgCurrentAccountCmdPopupMenu.accesskey "C">
+<!ENTITY getNextNMsgCmd2.label "Obter as próximas mensagens de notícias">
+<!ENTITY getNextNMsgCmd2.accesskey "t">
+<!ENTITY sendUnsentCmd.label "Enviar mensagens não enviadas">
+<!ENTITY sendUnsentCmd.accesskey "e">
+<!ENTITY subscribeCmd.label "Subscrever...">
+<!ENTITY subscribeCmd.accesskey "b">
+<!ENTITY deleteFolder.label "Apagar pasta">
+<!ENTITY deleteFolder.accesskey "A">
+<!ENTITY renameFolder.label "Renomear pasta…">
+<!ENTITY renameFolder.accesskey "R">
+<!ENTITY renameFolder.key "VK_F2">
+<!ENTITY compactFolders.label "Compactar pastas">
+<!ENTITY compactFolders.accesskey "t">
+<!ENTITY emptyTrashCmd.label "Esvaziar lixo">
+<!ENTITY emptyTrashCmd.accesskey "x">
+<!ENTITY offlineMenu.label "Offline">
+<!ENTITY offlineMenu.accesskey "l">
+<!ENTITY offlineGoOfflineCmd.label "Trabalhar offline">
+<!ENTITY offlineGoOfflineCmd.accesskey "T">
+<!ENTITY synchronizeOfflineCmd.label "Descarregar ou sincronizar agora…">
+<!ENTITY synchronizeOfflineCmd.accesskey "s">
+<!ENTITY settingsOfflineCmd2.label "Definições do modo offline">
+<!ENTITY settingsOfflineCmd2.accesskey "d">
+<!ENTITY downloadSelectedCmd.label "Obter mensagens selecionadas">
+<!ENTITY downloadSelectedCmd.accesskey "l">
+<!ENTITY downloadStarredCmd.label "Obter mensagens com estrela">
+<!ENTITY downloadStarredCmd.accesskey "a">
+<!ENTITY printCmd.label "Imprimir...">
+<!ENTITY printCmd.accesskey "p">
+<!ENTITY printCmd.key "p">
+
+<!-- Edit Menu -->
+<!ENTITY deleteMsgCmd.label "Apagar mensagem">
+<!ENTITY deleteMsgCmd.accesskey "A">
+<!ENTITY undeleteMsgCmd.label "Recuperar mensagem">
+<!ENTITY undeleteMsgCmd.accesskey "u">
+<!ENTITY deleteMsgsCmd.label "Apagar mensagens selecionadas">
+<!ENTITY deleteMsgsCmd.accesskey "d">
+<!ENTITY undeleteMsgsCmd.label "Recuperar mensagens selecionadas">
+<!ENTITY undeleteMsgsCmd.accesskey "d">
+<!ENTITY deleteFolderCmd.label "Apagar pasta">
+<!ENTITY deleteFolderCmd.accesskey "A">
+<!ENTITY unsubscribeNewsgroupCmd.label "Cancelar subscrição">
+<!ENTITY unsubscribeNewsgroupCmd.accesskey "c">
+<!ENTITY selectMenu.label "Selecionar">
+<!ENTITY selectMenu.accesskey "S">
+<!ENTITY all.label "Tudo">
+<!ENTITY all.accesskey "T">
+<!ENTITY selectThreadCmd.label "Tópico">
+<!ENTITY selectThreadCmd.accesskey "T">
+<!ENTITY selectThreadCmd.key "a">
+<!ENTITY selectFlaggedCmd.label "Mensagens com estrela">
+<!ENTITY selectFlaggedCmd.accesskey "s">
+<!ENTITY menuFavoriteFolder.label "Pasta de favoritos">
+<!ENTITY menuFavoriteFolder.accesskey "v">
+<!ENTITY folderPropsCmd2.label "Propriedades">
+<!ENTITY folderPropsFolderCmd2.label "Propriedades da pasta">
+<!ENTITY folderPropsNewsgroupCmd2.label "Propriedades do grupo de notícias">
+<!ENTITY folderPropsCmd.accesskey "e">
+<!ENTITY undoDeleteMsgCmd.label "Anular (apagar mensagem)">
+<!ENTITY redoDeleteMsgCmd.label "Refazer (apagar mensagem)">
+<!ENTITY undoMoveMsgCmd.label "Anular (mover mensagem)">
+<!ENTITY redoMoveMsgCmd.label "Refazer (mover mensagem)">
+<!ENTITY undoCopyMsgCmd.label "Anular (copiar mensagem)">
+<!ENTITY redoCopyMsgCmd.label "Refazer (copiar mensagem)">
+<!ENTITY undoMarkAllCmd.label "Anular (marcar todas como lidas)">
+<!ENTITY redoMarkAllCmd.label "Refazer (marcar todas como lidas)">
+<!ENTITY undoDefaultCmd.label "Desfazer">
+<!ENTITY undoDefaultCmd.accesskey "u">
+<!ENTITY redoDefaultCmd.label "Refazer">
+<!ENTITY redoDefaultCmd.accesskey "R">
+
+<!-- View Menu -->
+<!ENTITY menubarCmd.label "Barra de menu">
+<!ENTITY menubarCmd.accesskey "m">
+<!ENTITY showMessengerToolbarCmd.label "Barra de correio">
+<!ENTITY showMessengerToolbarCmd.accesskey "c">
+<!ENTITY customizeToolbar.label "Personalizar...">
+<!ENTITY customizeToolbar.accesskey "P">
+
+<!ENTITY messagePaneLayoutStyle.label "Esquema">
+<!ENTITY messagePaneLayoutStyle.accesskey "E">
+<!ENTITY messagePaneClassic.label "Clássico">
+<!ENTITY messagePaneClassic.accesskey "C">
+<!ENTITY messagePaneWide.label "Grande">
+<!ENTITY messagePaneWide.accesskey "G">
+<!ENTITY messagePaneVertical.label "Vertical">
+<!ENTITY messagePaneVertical.accesskey "V">
+<!ENTITY showFolderPaneCmd.label "Painel de pastas">
+<!ENTITY showFolderPaneCmd.accesskey "s">
+<!ENTITY showFolderPaneColsCmd.label "Colunas do painel de pastas">
+<!ENTITY showFolderPaneColsCmd.accesskey "p">
+<!ENTITY showMessageCmd.label "Painel de mensagens">
+<!ENTITY showMessageCmd.accesskey "m">
+
+<!ENTITY folderView.label "Pastas">
+<!ENTITY folderView.accesskey "a">
+<!ENTITY unifiedFolders.label "Unificadas">
+<!ENTITY unifiedFolders.accesskey "i">
+<!ENTITY allFolders.label "Todas">
+<!ENTITY allFolders.accesskey "T">
+<!ENTITY unreadFolders.label "Não lidas">
+<!ENTITY unreadFolders.accesskey "N">
+<!ENTITY favoriteFolders.label "Favoritas">
+<!ENTITY favoriteFolders.accesskey "F">
+<!ENTITY recentFolders.label "Recente">
+<!ENTITY recentFolders.accesskey "R">
+<!ENTITY compactVersion.label "Visão compactada">
+<!ENTITY compactVersion.accesskey "c">
+
+<!-- Sort Menu -->
+<!ENTITY sortMenu.label "Ordenar por">
+<!ENTITY sortMenu.accesskey "O">
+<!ENTITY sortByDateCmd.label "Data">
+<!ENTITY sortByDateCmd.accesskey "D">
+<!ENTITY sortByReceivedCmd.label "Recebida">
+<!ENTITY sortByReceivedCmd.accesskey "R">
+<!ENTITY sortByStarCmd.label "Estrela">
+<!ENTITY sortByStarCmd.accesskey "E">
+<!ENTITY sortByAttachmentsCmd.label "Anexos">
+<!ENTITY sortByAttachmentsCmd.accesskey "x">
+<!ENTITY sortByPriorityCmd.label "Prioridade">
+<!ENTITY sortByPriorityCmd.accesskey "P">
+<!ENTITY sortBySizeCmd.label "Tamanho">
+<!ENTITY sortBySizeCmd.accesskey "T">
+<!ENTITY sortByStatusCmd.label "Estado">
+<!ENTITY sortByStatusCmd.accesskey "a">
+<!ENTITY sortByTagsCmd.label "Etiquetas">
+<!ENTITY sortByTagsCmd.accesskey "q">
+<!ENTITY sortByJunkStatusCmd.label "Estado de lixo eletrónico">
+<!ENTITY sortByJunkStatusCmd.accesskey "l">
+<!ENTITY sortBySubjectCmd.label "Assunto">
+<!ENTITY sortBySubjectCmd.accesskey "n">
+<!ENTITY sortByFromCmd.label "De">
+<!ENTITY sortByFromCmd.accesskey "D">
+<!ENTITY sortByRecipientCmd.label "Destinatário">
+<!ENTITY sortByRecipientCmd.accesskey "i">
+<!ENTITY sortByCorrespondentCmd.label "Correspondentes">
+<!ENTITY sortByCorrespondentCmd.accesskey "n">
+<!ENTITY sortByUnreadCmd.label "Lida">
+<!ENTITY sortByUnreadCmd.accesskey "i">
+<!ENTITY sortByOrderReceivedCmd.label "Ordem de receção">
+<!ENTITY sortByOrderReceivedCmd.accesskey "O">
+<!ENTITY sortAscending.label "Ascendente">
+<!ENTITY sortAscending.accesskey "c">
+<!ENTITY sortDescending.label "Descendente">
+<!ENTITY sortDescending.accesskey "d">
+<!ENTITY sortThreaded.label "Agrupar por tópicos">
+<!ENTITY sortThreaded.accesskey "t">
+<!ENTITY sortUnthreaded.label "Não agrupar">
+<!ENTITY sortUnthreaded.accesskey "N">
+<!ENTITY groupBySort.label "Agrupar pela ordem">
+<!ENTITY groupBySort.accesskey "g">
+<!ENTITY msgsMenu.label "Mensagens">
+<!ENTITY msgsMenu.accesskey "M">
+<!ENTITY threads.label "Tópicos">
+<!ENTITY threads.accesskey "T">
+<!ENTITY allMsgsCmd.label "Todos">
+<!ENTITY allMsgsCmd.accesskey "T">
+<!ENTITY expandAllThreadsCmd.label "Expandir todos os tópicos">
+<!ENTITY expandAllThreadsCmd.accesskey "E">
+<!ENTITY expandAllThreadsCmd.key "*">
+<!ENTITY collapseAllThreadsCmd.label "Colapsar todos os tópicos">
+<!ENTITY collapseAllThreadsCmd.accesskey "C">
+<!ENTITY collapseAllThreadsCmd.key "\">
+<!ENTITY unreadMsgsCmd.label "Não lidas">
+<!ENTITY unreadMsgsCmd.accesskey "N">
+<!ENTITY threadsWithUnreadCmd.label "Tópicos não lidos">
+<!ENTITY threadsWithUnreadCmd.accesskey "T">
+<!ENTITY watchedThreadsWithUnreadCmd.label "Tópicos monitorizados não lidos">
+<!ENTITY watchedThreadsWithUnreadCmd.accesskey "m">
+<!ENTITY ignoredThreadsCmd.label "Tópicos ignorados">
+<!ENTITY ignoredThreadsCmd.accesskey "i">
+
+<!ENTITY headersMenu.label "Cabeçalhos">
+<!ENTITY headersMenu.accesskey "h">
+<!ENTITY headersAllCmd.label "Todos">
+<!ENTITY headersAllCmd.accesskey "T">
+<!ENTITY headersNormalCmd.label "Normal">
+<!ENTITY headersNormalCmd.accesskey "N">
+<!ENTITY bodyMenu.label "Corpo da mensagem como">
+<!ENTITY bodyMenu.accesskey "m">
+<!ENTITY bodyAllowHTML.label "HTML original">
+<!ENTITY bodyAllowHTML.accesskey "H">
+<!ENTITY bodySanitized.label "HTML simples">
+<!ENTITY bodySanitized.accesskey "L">
+<!ENTITY bodyAsPlaintext.label "Sem formatação">
+<!ENTITY bodyAsPlaintext.accesskey "S">
+<!ENTITY bodyAllParts.label "Todas as partes do corpo">
+<!ENTITY bodyAllParts.accesskey "a">
+
+<!ENTITY bodyMenuFeed.label "Corpo da mensagem de fonte como">
+<!ENTITY bodyMenuFeed.accesskey "f">
+<!ENTITY viewFeedWebPage.label "Página web">
+<!ENTITY viewFeedWebPage.accesskey "w">
+<!ENTITY viewFeedSummary.label "Sumário">
+<!ENTITY viewFeedSummary.accesskey "m">
+<!ENTITY viewFeedSummaryFeedPropsPref.label "Formato pré-definido">
+<!ENTITY viewFeedSummaryFeedPropsPref.accesskey "d">
+
+<!ENTITY viewAttachmentsInlineCmd.label "Mostrar anexos na mensagem">
+<!ENTITY viewAttachmentsInlineCmd.accesskey "a">
+
+<!ENTITY pageSourceCmd.label "Código fonte da mensagem">
+<!ENTITY pageSourceCmd.accesskey "o">
+<!ENTITY pageSourceCmd.key "u">
+<!ENTITY getNewMessagesCmd.key "y">
+<!ENTITY getAllNewMessagesCmd.key "Y">
+
+<!-- Search Menu -->
+<!ENTITY findMenu.label "Localizar">
+<!ENTITY findMenu.accesskey "o">
+<!ENTITY findCmd.label "Localizar nesta mensagem...">
+<!ENTITY findCmd.accesskey "o">
+<!ENTITY findCmd.key "f">
+<!ENTITY findAgainCmd.label "Localizar novamente">
+<!ENTITY findAgainCmd.accesskey "L">
+<!ENTITY findAgainCmd.key "g">
+<!ENTITY findAgainCmd.key2 "VK_F3">
+<!ENTITY findPrevCmd.key "g">
+<!ENTITY findPrevCmd.key2 "VK_F3">
+<!ENTITY searchMailCmd.label "Pesquisar mensagens…">
+<!ENTITY searchMailCmd.accesskey "m">
+<!ENTITY searchMailCmd.key "f">
+<!ENTITY glodaSearchCmd.label "Pesquisa global…">
+<!ENTITY glodaSearchCmd.accesskey "g">
+<!ENTITY searchAddressesCmd.label "Pesquisar endereços…">
+<!ENTITY searchAddressesCmd.accesskey "s">
+
+<!-- Go Menu -->
+<!ENTITY goMenu.label "Ir">
+<!ENTITY goMenu.accesskey "I">
+<!ENTITY nextMenu.label "Seguinte">
+<!ENTITY nextMenu.accesskey "S">
+<!ENTITY nextMsgCmd.label "Mensagem">
+<!ENTITY nextMsgCmd.accesskey "M">
+<!ENTITY nextMsgCmd.key "F">
+<!ENTITY nextUnreadMsgCmd.label "Mensagem não lida">
+<!ENTITY nextUnreadMsgCmd.accesskey "l">
+<!ENTITY nextUnreadMsgCmd.key "n">
+<!ENTITY nextStarredMsgCmd.label "Mensagem com estrela">
+<!ENTITY nextStarredMsgCmd.accesskey "s">
+<!ENTITY nextUnreadThread.label "Tópico não lido">
+<!ENTITY nextUnreadThread.accesskey "T">
+<!ENTITY nextUnreadThread.key "t">
+<!ENTITY prevMenu.label "Anterior">
+<!ENTITY prevMenu.accesskey "A">
+<!ENTITY prevMsgCmd.label "Mensagem">
+<!ENTITY prevMsgCmd.accesskey "M">
+<!ENTITY prevMsgCmd.key "b">
+<!ENTITY prevUnreadMsgCmd.label "Mensagem não lida">
+<!ENTITY prevUnreadMsgCmd.accesskey "l">
+<!ENTITY prevUnreadMsgCmd.key "P">
+<!ENTITY goForwardCmd.label "Avançar">
+<!ENTITY goForwardCmd.accesskey "n">
+<!ENTITY goForwardCmd.commandKey "]">
+<!ENTITY goBackCmd.label "Recuar">
+<!ENTITY goBackCmd.accesskey "R">
+<!ENTITY goBackCmd.commandKey "[">
+<!ENTITY goChatCmd.label "Chat">
+<!ENTITY goChatCmd.accesskey "C">
+<!ENTITY prevStarredMsgCmd.label "Mensagem com estrela">
+<!ENTITY prevStarredMsgCmd.accesskey "s">
+<!ENTITY folderMenu.label "Pasta">
+<!ENTITY folderMenu.accesskey "P">
+<!ENTITY goRecentlyClosedTabs.label "Separadores fechados recentemente">
+<!ENTITY goRecentlyClosedTabs.accesskey "r">
+<!ENTITY startPageCmd.label "Página inicial">
+<!ENTITY startPageCmd.accesskey "c">
+
+<!-- Message Menu -->
+<!ENTITY msgMenu.label "Mensagem">
+<!ENTITY msgMenu.accesskey "M">
+<!ENTITY newMsgCmd.label "Nova mensagem">
+<!ENTITY newMsgCmd.accesskey "N">
+<!ENTITY newNewMsgCmd.label "Mensagem">
+<!ENTITY newNewMsgCmd.accesskey "M">
+<!ENTITY archiveMsgCmd.label "Arquivar">
+<!ENTITY archiveMsgCmd.accesskey "A">
+<!ENTITY archiveMsgCmd.key "a">
+<!ENTITY cancelNewsMsgCmd.label "Cancelar mensagem">
+<!ENTITY cancelNewsMsgCmd.accesskey "C">
+<!ENTITY replyMsgCmd.label "Responder">
+<!ENTITY replyMsgCmd.accesskey "R">
+<!ENTITY replyMsgCmd.key "r">
+<!ENTITY replySenderCmd.label "Responder apenas ao remetente">
+<!ENTITY replySenderCmd.accesskey "R">
+<!ENTITY replyNewsgroupCmd2.label "Responder ao grupo de notícias">
+<!ENTITY replyNewsgroupCmd2.accesskey "s">
+<!ENTITY replyToAllMsgCmd.label "Responder a todos">
+<!ENTITY replyToAllMsgCmd.accesskey "t">
+<!ENTITY replyToAllMsgCmd.key "r">
+<!ENTITY replyToListMsgCmd.label "Responder à lista">
+<!ENTITY replyToListMsgCmd.accesskey "l">
+<!ENTITY replyToListMsgCmd.key "l">
+<!ENTITY forwardMsgCmd.label "Reencaminhar">
+<!ENTITY forwardMsgCmd.accesskey "e">
+<!ENTITY forwardMsgCmd.key "l">
+<!ENTITY forwardAsMenu.label "Reencaminhar como">
+<!ENTITY forwardAsMenu.accesskey "m">
+<!ENTITY forwardAsInline.label "Inline">
+<!ENTITY forwardAsInline.accesskey "I">
+<!ENTITY forwardAsAttachmentCmd.label "Anexo">
+<!ENTITY forwardAsAttachmentCmd.accesskey "x">
+<!ENTITY editAsNewMsgCmd.label "Editar como nova">
+<!ENTITY editAsNewMsgCmd.accesskey "d">
+<!ENTITY editAsNewMsgCmd.key "e">
+<!ENTITY editDraftMsgCmd.label "Editar mensagem de rascunho">
+<!ENTITY editDraftMsgCmd.accesskey "r">
+<!ENTITY editTemplateMsgCmd.label "Editar modelo">
+<!ENTITY editTemplateMsgCmd.accesskey "m">
+<!ENTITY newMsgFromTemplateCmd.label "Nova mensagem de modelo">
+<!ENTITY newMsgFromTemplateCmd.keycode "VK_RETURN"><!-- do not change "VK_RETURN" -->
+<!ENTITY createFilter.label "Criar filtro a partir da mensagem...">
+<!ENTITY createFilter.accesskey "f">
+<!ENTITY moveMsgToMenu.label "Mover para">
+<!ENTITY moveMsgToMenu.accesskey "M">
+<!ENTITY moveCopyMsgRecentMenu.label "Recentes">
+<!ENTITY moveCopyMsgRecentMenu.accesskey "e">
+<!ENTITY copyMessageLocation.label "Copiar localização da mensagem">
+<!ENTITY copyMessageLocation.accesskey "m">
+<!ENTITY copyMsgToMenu.label "Copiar para">
+<!ENTITY copyMsgToMenu.accesskey "C">
+<!ENTITY moveToFolderAgain.label "Mover novamente">
+<!ENTITY moveToFolderAgain.accesskey "v">
+<!ENTITY moveToFolderAgainCmd.key "m">
+<!ENTITY killThreadMenu.label "Ignorar tópico">
+<!ENTITY killThreadMenu.accesskey "I">
+<!ENTITY killThreadMenu.key "k">
+<!ENTITY killSubthreadMenu.label "Ignorar subtópico">
+<!ENTITY killSubthreadMenu.accesskey "s">
+<!ENTITY killSubthreadMenu.key "k">
+<!ENTITY watchThreadMenu.label "Monitorizar tópico">
+<!ENTITY watchThreadMenu.accesskey "p">
+<!ENTITY watchThreadMenu.key "W">
+<!ENTITY tagMenu.label "Etiqueta">
+<!ENTITY tagMenu.accesskey "q">
+<!ENTITY tagCmd0.key "0">
+<!ENTITY tagCmd1.key "1">
+<!ENTITY tagCmd2.key "2">
+<!ENTITY tagCmd3.key "3">
+<!ENTITY tagCmd4.key "4">
+<!ENTITY tagCmd5.key "5">
+<!ENTITY tagCmd6.key "6">
+<!ENTITY tagCmd7.key "7">
+<!ENTITY tagCmd8.key "8">
+<!ENTITY tagCmd9.key "9">
+<!ENTITY markMenu.label "Marcar">
+<!ENTITY markMenu.accesskey "c">
+<!ENTITY toggleReadCmd.key "m">
+<!ENTITY markAsReadCmd.label "Como lida">
+<!ENTITY markAsReadCmd.accesskey "m">
+<!ENTITY markAsUnreadCmd.label "Como não lida">
+<!ENTITY markAsUnreadCmd.accesskey "n">
+<!ENTITY markThreadAsReadCmd.label "Tópico como lido">
+<!ENTITY markThreadAsReadCmd.accesskey "c">
+<!ENTITY markThreadAsReadCmd.key "r">
+<!ENTITY markReadByDateCmd.label "Como lida por data...">
+<!ENTITY markReadByDateCmd.accesskey "o">
+<!ENTITY markReadByDateCmd.key "c">
+<!ENTITY markAllReadCmd.label "Tudo como lido">
+<!ENTITY markAllReadCmd.accesskey "T">
+<!ENTITY markAllReadCmd.key "c">
+<!ENTITY markStarredCmd.label "Adicionar estrela">
+<!ENTITY markStarredCmd.accesskey "e">
+<!ENTITY markStarredCmd.key "S">
+<!ENTITY markAsJunkCmd.label "Como lixo eletrónico">
+<!ENTITY markAsJunkCmd.accesskey "r">
+<!ENTITY markAsJunkCmd.key "j">
+<!ENTITY markAsNotJunkCmd.label "Não é lixo eletrónico">
+<!ENTITY markAsNotJunkCmd.accesskey "N">
+<!ENTITY markAsNotJunkCmd.key "j">
+<!ENTITY recalculateJunkScoreCmd.label "Executar controlos de lixo eletrónico">
+<!ENTITY recalculateJunkScoreCmd.accesskey "c">
+<!ENTITY openMessageWindowCmd.label "Abrir mensagem">
+<!ENTITY openMessageWindowCmd.accesskey "A">
+<!ENTITY openMessageWindowCmd.key "o">
+<!ENTITY openInConversationCmd.label "Abrir na conversa">
+<!ENTITY openInConversationCmd.accesskey "s">
+<!ENTITY openInConversationCmd.key "a">
+<!ENTITY openAttachmentListCmd.label "Anexos">
+<!ENTITY openAttachmentListCmd.accesskey "x">
+<!ENTITY openFeedMessage1.label "Ao abrir mensagens de fontes">
+<!ENTITY openFeedMessage1.accesskey "o">
+<!ENTITY openFeedWebPage.label "Abrir como página web">
+<!ENTITY openFeedWebPage.accesskey "w">
+<!ENTITY openFeedSummary.label "Abrir como sumário">
+<!ENTITY openFeedSummary.accesskey "s">
+<!ENTITY openFeedWebPageInMP.label "Alternar página web e sumário no painel de mensagens">
+<!ENTITY openFeedWebPageInMP.accesskey "t">
+
+<!-- Windows Menu -->
+<!ENTITY windowMenu.label "Janela">
+
+<!-- Tools Menu -->
+<!ENTITY tasksMenu.label "Ferramentas">
+<!ENTITY tasksMenu.accesskey "t">
+<!ENTITY messengerCmd.label "Correio e grupos de notícias">
+<!ENTITY messengerCmd.accesskey "n">
+<!ENTITY addressBookCmd.label "Livro de endereços">
+<!ENTITY addressBookCmd.accesskey "i">
+<!ENTITY addressBookCmd.key "B">
+<!ENTITY addonNoPrefs.label "Não foram encontradas definições de extras.">
+<!ENTITY activitymanager.label "Gestor de atividade">
+<!ENTITY activitymanager.accesskey "v">
+<!ENTITY imAccountsStatus.label "Estado do chat">
+<!ENTITY imAccountsStatus.accesskey "c">
+<!ENTITY imStatus.available "Disponível">
+<!ENTITY imStatus.unavailable "Indisponível">
+<!ENTITY imStatus.offline "Offline">
+<!ENTITY imStatus.showAccounts "Mostrar contas...">
+<!ENTITY joinChatCmd.label "Entrar no chat…">
+<!ENTITY joinChatCmd.accesskey "t">
+<!ENTITY savedFiles.label "Ficheiros guardados">
+<!ENTITY savedFiles.accesskey "g">
+<!ENTITY savedFiles.key "j">
+<!ENTITY filtersCmd2.label "Filtros de mensagens">
+<!ENTITY filtersCmd2.accesskey "F">
+<!ENTITY filtersApply.label "Executar filtros na pasta">
+<!ENTITY filtersApply.accesskey "c">
+<!ENTITY filtersApplyToSelection.label "Executar filtros nas mensagens selecionadas">
+<!ENTITY filtersApplyToSelection.accesskey "s">
+<!ENTITY filtersApplyToMessage.label "Executar filtros na mensagem">
+<!ENTITY filtersApplyToMessage.accesskey "r">
+<!ENTITY runJunkControls.label "Executar controlos de lixo eletrónico na pasta">
+<!ENTITY runJunkControls.accesskey "r">
+<!ENTITY deleteJunk.label "Apagar correio marcado como lixo na pasta">
+<!ENTITY deleteJunk.accesskey "e">
+<!ENTITY importCmd.label "Importar...">
+<!ENTITY importCmd.accesskey "m">
+<!ENTITY exportCmd.label "Exportar…">
+<!ENTITY exportCmd.accesskey "x">
+<!ENTITY clearRecentHistory.label "Limpar histórico recente...">
+<!ENTITY clearRecentHistory.accesskey "h">
+<!ENTITY accountManagerCmd2.label "Definições da conta">
+<!ENTITY accountManagerCmd2.accesskey "c">
+<!-- LOCALIZATION NOTE (accountManagerCmdUnix.accesskey):
+ Belongs to accountManagerCmd.label, which is placed under the Edit menu
+ on Unix systems
+ -->
+<!ENTITY accountManagerCmdUnix2.accesskey "n">
+
+<!-- Developer Tools Submenu -->
+<!ENTITY devtoolsMenu.label "Ferramentas de desenvolvimento">
+<!ENTITY devtoolsMenu.accesskey "o">
+<!ENTITY devToolboxCmd.label "Caixa de ferramentas do programador">
+<!ENTITY devToolboxCmd.accesskey "t">
+<!ENTITY devToolboxCmd.commandkey "i">
+<!ENTITY debugAddonsCmd.label "Depurar extras">
+<!ENTITY debugAddonsCmd.accesskey "e">
+<!ENTITY errorConsoleCmd.label "Consola de erros">
+<!ENTITY errorConsoleCmd.accesskey "n">
+<!ENTITY errorConsoleCmd.commandkey "j">
+
+<!-- Mail Toolbar -->
+<!ENTITY getMsgButton1.label "Obter mensagens">
+<!ENTITY newMsgButton.label "Escrever">
+<!ENTITY replyButton.label "Responder">
+<!ENTITY replyAllButton.label "Responder a todos">
+<!ENTITY replyListButton.label "Responder à lista">
+<!ENTITY forwardButton.label "Reencaminhar">
+<!ENTITY fileButton.label "Ficheiro">
+<!ENTITY archiveButton.label "Arquivar">
+<!ENTITY openConversationButton.label "Conversa">
+<!ENTITY nextButton.label "Seguinte">
+<!ENTITY nextButtonToolbarItem.label "Seguinte não lida">
+<!ENTITY nextMsgButton.label "Seguinte">
+<!ENTITY previousButton.label "Anterior">
+<!ENTITY previousButtonToolbarItem.label "Anterior não lida">
+<!ENTITY previousMsgButton.label "Anterior">
+<!ENTITY backButton1.label "Recuar">
+<!ENTITY goForwardButton1.label "Avançar">
+<!ENTITY deleteItem.title "Apagar">
+<!ENTITY markButton.label "Marcar">
+<!ENTITY printButton.label "Imprimir">
+<!ENTITY stopButton.label "Parar">
+<!ENTITY throbberItem.title "Indicador de atividade">
+<!ENTITY junkItem.title "Lixo eletrónico">
+<!ENTITY addressBookButton.label "Livro de endereços">
+<!ENTITY chatButton.label "Chat">
+<!ENTITY glodaSearch.title "Pesquisa global">
+<!ENTITY searchItem.title "Pesquisa rápida">
+<!ENTITY mailViewsToolbarItem.title "Visões do correio">
+<!ENTITY folderLocationToolbarItem.title "Localização da pasta">
+<!ENTITY tagButton.label "Etiqueta">
+<!ENTITY compactButton.label "Compactar">
+<!ENTITY appmenuButton.label "Menu de aplicações">
+
+<!-- Mail Toolbar Tooltips-->
+<!ENTITY advancedButton.tooltip "Pesquisa avançada de mensagens">
+<!ENTITY getMsgButton.tooltip "Obter novas mensagens">
+<!ENTITY getAllNewMsgCmd.label "Obter todas as novas mensagens">
+<!ENTITY getAllNewMsgCmd.accesskey "g">
+<!ENTITY newMsgButton.tooltip "Criar nova mensagem">
+<!ENTITY replyButton.tooltip "Responder à mensagem">
+<!ENTITY replyAllButton.tooltip "Responder ao remetente e a todos os destinatários">
+<!ENTITY replyListButton.tooltip "Responder à lista de correio">
+<!ENTITY forwardButton.tooltip "Reencaminhar mensagem selecionada">
+<!ENTITY forwardAsInline.tooltip "Reencaminhar mensagem selecionada como texto inline">
+<!ENTITY forwardAsAttachment.tooltip "Reencaminhar mensagem selecionada como anexo">
+<!ENTITY fileButton.tooltip "Selecione a mensagem">
+<!ENTITY archiveButton.tooltip "Arquivar mensagens selecionadas">
+<!ENTITY openMsgConversationButton.tooltip "Mostrar a conversação da mensagem selecionada">
+<!ENTITY nextButton.tooltip "Ir para a mensagem seguinte não lida">
+<!ENTITY nextMsgButton.tooltip "Ir para a mensagem seguinte">
+<!ENTITY previousButton.tooltip "Ir para a mensagem anterior não lida">
+<!ENTITY previousMsgButton.tooltip "Ir para a mensagem anterior">
+<!ENTITY goForwardButton.tooltip "Avançar uma mensagem">
+<!ENTITY goBackButton.tooltip "Recuar uma mensagem">
+<!ENTITY markButton.tooltip "Marcar mensagens">
+<!ENTITY printButton.tooltip "Imprimir esta mensagem">
+<!ENTITY stopButton.tooltip "Parar descarga em curso">
+<!ENTITY addressBookButton.tooltip "Ir para o livro de endereços">
+<!ENTITY chatButton.tooltip "Mostrar o separador de chat">
+<!ENTITY tagButton.tooltip "Classificar mensagens">
+<!ENTITY compactButton.tooltip "Remover mensagens apagadas da pasta selecionada">
+<!ENTITY appmenuButton1.tooltip "Mostrar menu do &brandShortName;">
+
+<!-- Toolbar Button Popup -->
+<!ENTITY buttonMenuForwardAsInline.label "Reencaminhar inline">
+<!ENTITY buttonMenuForwardAsAttachment.label "Reencaminhar como anexo">
+
+<!-- Remote Content Button Popup -->
+<!ENTITY remoteContentOptionsAllowForMsg.label "Mostrar conteúdo remoto desta mensagem">
+<!ENTITY remoteContentOptionsAllowForMsg.accesskey "s">
+<!ENTITY editRemoteContentSettings.label "Editar opções de conteúdo remoto…">
+<!ENTITY editRemoteContentSettings.accesskey "E">
+<!ENTITY editRemoteContentSettingsUnix.label "Editar preferências de conteúdo remoto...">
+<!ENTITY editRemoteContentSettingsUnix.accesskey "E">
+
+<!-- Phishing Button Popup -->
+<!ENTITY phishingOptionIgnore.label "Ignorar aviso para esta mensagem">
+<!ENTITY phishingOptionIgnore.accesskey "n">
+<!ENTITY phishingOptionSettings.label "Editar opções da deteção de fraudes…">
+<!ENTITY phishingOptionSettings.accesskey "d">
+<!ENTITY phishingOptionSettingsUnix.label "Editar preferências da deteção de fraudes...">
+<!ENTITY phishingOptionSettingsUnix.accesskey "d">
+
+<!-- AppMenu Popup -->
+<!ENTITY appmenuNewMsgCmd.label "Nova mensagem">
+<!ENTITY appmenuNewContactCmd.label "Contacto do livro de endereços...">
+<!ENTITY appmenuEditMenu.label "Editar">
+<!ENTITY appmenuToolbarLayout.label "Esquema da barra de ferramentas…">
+<!ENTITY appmenuSelectThread.label "Selecionar tópico">
+<!ENTITY appmenuSelectFlagged.label "Selecionar mensagens com estrela">
+
+<!-- Tags Menu Popup -->
+<!ENTITY addNewTag.label "Nova etiqueta...">
+<!ENTITY addNewTag.accesskey "N">
+<!ENTITY manageTags.label "Gerir etiquetas...">
+<!ENTITY manageTags.accesskey "G">
+
+<!-- Folder Pane -->
+<!ENTITY folderNameColumn.label "Nome">
+<!ENTITY folderUnreadColumn.label "Não lida">
+<!ENTITY folderTotalColumn.label "Total">
+<!ENTITY folderSizeColumn.label "Tamanho">
+
+<!-- Folder Pane Context Menu -->
+<!ENTITY folderContextGetMessages.label "Obter mensagens">
+<!ENTITY folderContextGetMessages.accesskey "O">
+<!ENTITY folderContextMarkAllFoldersRead.label "Marcar todas as pastas como lidas">
+<!ENTITY folderContextPauseAllUpdates.label "Pausar todas as atualizações">
+<!ENTITY folderContextPauseUpdates.label "Pausar atualizações">
+<!ENTITY folderContextPauseUpdates.accesskey "u">
+<!ENTITY folderContextOpenInNewWindow.label "Abrir">
+<!ENTITY folderContextOpenInNewWindow.accesskey "A">
+<!ENTITY folderContextOpenNewTab.label "Abrir num novo separador">
+<!ENTITY folderContextOpenNewTab.accesskey "s">
+<!ENTITY folderContextNew.label "Nova subpasta...">
+<!ENTITY folderContextNew.accesskey "N">
+<!ENTITY folderContextRename.label "Renomear">
+<!ENTITY folderContextRename.accesskey "R">
+<!ENTITY folderContextRemove.label "Apagar">
+<!ENTITY folderContextRemove.accesskey "A">
+<!ENTITY folderContextCompact.label "Compactar">
+<!ENTITY folderContextCompact.accesskey "C">
+<!ENTITY folderContextEmptyTrash.label "Esvaziar lixo">
+<!ENTITY folderContextEmptyTrash.accesskey "x">
+<!ENTITY folderContextEmptyJunk.label "Esvaziar lixo eletrónico">
+<!ENTITY folderContextEmptyJunk.accesskey "z">
+<!ENTITY folderContextSendUnsentMessages.label "Enviar mensagens não enviadas">
+<!ENTITY folderContextSendUnsentMessages.accesskey "d">
+<!ENTITY folderContextUnsubscribe.label "Cancelar subscrição">
+<!ENTITY folderContextUnsubscribe.accesskey "u">
+<!ENTITY folderContextMarkNewsgroupRead.label "Marcar grupo de notícias como lido">
+<!ENTITY folderContextMarkNewsgroupRead.accesskey "c">
+<!ENTITY folderContextMarkMailFolderRead.label "Marcar pasta como lida">
+<!ENTITY folderContextMarkMailFolderRead.accesskey "c">
+<!ENTITY folderContextSubscribe.label "Subscrever...">
+<!ENTITY folderContextSubscribe.accesskey "b">
+<!ENTITY folderContextSearchForMessages.label "Pesquisar mensagens…">
+<!ENTITY folderContextSearchForMessages.accesskey "s">
+<!ENTITY folderContextProperties2.label "Propriedades">
+<!ENTITY folderContextProperties2.accesskey "P">
+<!ENTITY folderContextFavoriteFolder.label "Pasta de favoritos">
+<!ENTITY folderContextFavoriteFolder.accesskey "a">
+<!ENTITY folderContextSettings2.label "Definições">
+<!ENTITY folderContextSettings2.accesskey "e">
+
+<!-- Search Bar -->
+<!ENTITY SearchNameOrEmail.label "O nome ou e-mail contém:">
+<!ENTITY SearchNameOrEmail.accesskey "n">
+
+<!-- Gloda Search Bar -->
+<!ENTITY glodaSearchBar.placeholder "Pesquisar mensagens…">
+
+<!-- Quick Search Menu Bar -->
+<!ENTITY searchSubjectMenu.label "Assunto">
+<!ENTITY searchFromMenu.label "De">
+<!ENTITY searchSubjectOrFromMenu.label "Assunto ou remetente">
+<!ENTITY searchRecipient.label "Para ou Cc">
+<!ENTITY searchSubjectOrRecipientMenu.label "Assunto, Para ou Cc">
+<!ENTITY searchMessageBody.label "Mensagem completa">
+<!ENTITY saveAsVirtualFolderMenu.label "Guardar pesquisa como pasta…">
+
+<!-- Thread Pane -->
+<!ENTITY selectColumn.label "Selecionar mensagens">
+<!ENTITY threadColumn.label "Tópico">
+<!ENTITY fromColumn.label "De">
+<!ENTITY recipientColumn.label "Destinatário">
+<!ENTITY correspondentColumn.label "Correspondentes">
+<!ENTITY subjectColumn.label "Assunto">
+<!ENTITY dateColumn.label "Data">
+<!ENTITY priorityColumn.label "Prioridade">
+<!ENTITY tagsColumn.label "Etiqueta">
+<!ENTITY accountColumn.label "Conta">
+<!ENTITY statusColumn.label "Estado">
+<!ENTITY sizeColumn.label "Tamanho">
+<!ENTITY junkStatusColumn.label "Estado do lixo eletrónico">
+<!ENTITY unreadColumn.label "Não lido">
+<!ENTITY totalColumn.label "Total">
+<!ENTITY readColumn.label "Lido">
+<!ENTITY receivedColumn.label "Recebido">
+<!ENTITY starredColumn.label "Com estrela">
+<!ENTITY locationColumn.label "Localização">
+<!ENTITY idColumn.label "Ordem de receção">
+<!ENTITY attachmentColumn.label "Anexos">
+<!ENTITY deleteColumn.label "Eliminar">
+
+<!-- Thread Pane Tooltips -->
+<!ENTITY columnChooser2.tooltip "Selecione as colunas a mostrar">
+<!ENTITY selectColumn.tooltip "Alternar selecionar todas as mensagens">
+<!ENTITY threadColumn2.tooltip "Mostrar tópicos da mensagem">
+<!ENTITY fromColumn2.tooltip "Ordenar por remetente">
+<!ENTITY recipientColumn2.tooltip "Ordenar por destinatário">
+<!ENTITY correspondentColumn2.tooltip "Ordenar por correspondentes">
+<!ENTITY subjectColumn2.tooltip "Ordenar por assunto">
+<!ENTITY dateColumn2.tooltip "Ordenar por data">
+<!ENTITY priorityColumn2.tooltip "Ordenar por prioridade">
+<!ENTITY tagsColumn2.tooltip "Ordenar por etiquetas">
+<!ENTITY accountColumn2.tooltip "Ordenar por conta">
+<!ENTITY statusColumn2.tooltip "Ordenar por estado">
+<!ENTITY sizeColumn2.tooltip "Ordenar por tamanho">
+<!ENTITY junkStatusColumn2.tooltip "Ordenar por estado do lixo eletrónico">
+<!ENTITY unreadColumn2.tooltip "Número de mensagens não lidas no tópico">
+<!ENTITY totalColumn2.tooltip "Número total de mensagens no tópico">
+<!ENTITY readColumn2.tooltip "Ordenar por lidas">
+<!ENTITY receivedColumn2.tooltip "Ordenar por data de receção">
+<!ENTITY starredColumn2.tooltip "Ordenar por estrela">
+<!ENTITY locationColumn2.tooltip "Ordenar por localização">
+<!ENTITY idColumn2.tooltip "Ordenar por ordem de receção">
+<!ENTITY attachmentColumn2.tooltip "Ordenar por anexos">
+<!ENTITY deleteColumn.tooltip "Eliminar uma mensagem">
+
+<!-- Thread Pane Context Menu -->
+<!ENTITY contextNewMsgFromTemplate.label "Nova mensagem de modelo">
+<!ENTITY contextOpenNewWindow.label "Abrir mensagem numa nova janela">
+<!ENTITY contextOpenNewWindow.accesskey "j">
+<!-- The contextOpenNewTab.accesskey ("T") potentially conflicts with
+ cutCmd.accessKey which is defined in textcontext.dtd from toolkit. Right
+ now, both menu items can't be visible at the same time, but should someone
+ enable copy/paste of message, this key would probably need to be changed. -->
+<!ENTITY contextOpenNewTab.label "Abrir mensagem num novo separador">
+<!ENTITY contextOpenNewTab.accesskey "s">
+<!ENTITY contextOpenConversation.label "Abrir mensagem na conversa">
+<!ENTITY contextOpenConversation.accesskey "n">
+<!ENTITY contextOpenContainingFolder.label "Abrir mensagem na pasta">
+<!ENTITY contextOpenContainingFolder.accesskey "n">
+<!ENTITY contextEditMsgAsNew.label "Editar como nova">
+<!ENTITY contextEditMsgAsNew.accesskey "E">
+<!ENTITY contextEditDraftMsg.label "Editar mensagem de rascunho">
+<!ENTITY contextEditTemplate.label "Editar modelo">
+<!ENTITY contextEditTemplate.accesskey "m">
+<!ENTITY contextArchive.label "Arquivar">
+<!ENTITY contextArchive.accesskey "q">
+<!ENTITY contextReplySender.label "Responder apenas ao remetente">
+<!ENTITY contextReplySender.accesskey "R">
+<!ENTITY contextReplyNewsgroup2.label "Reencaminhar ao grupo de notícias">
+<!ENTITY contextReplyNewsgroup2.accesskey "p">
+<!ENTITY contextReplyAll.label "Responder a todos">
+<!ENTITY contextReplyAll.accesskey "t">
+<!ENTITY contextReplyList.label "Responder à lista">
+<!ENTITY contextReplyList.accesskey "l">
+<!ENTITY contextForward.label "Reencaminhar">
+<!ENTITY contextForward.accesskey "e">
+<!ENTITY contextForwardAsMenu.label "Reencaminhar como">
+<!ENTITY contextForwardAsMenu.accesskey "o">
+<!ENTITY contextForwardAsInline.label "Inline">
+<!ENTITY contextForwardAsInline.accesskey "I">
+<!ENTITY contextForwardAsAttachmentItem.label "Anexo">
+<!ENTITY contextForwardAsAttachmentItem.accesskey "A">
+<!ENTITY contextMultiForwardAsAttachment.label "Reencaminhar como anexos">
+<!ENTITY contextMultiForwardAsAttachment.accesskey "o">
+<!ENTITY contextMoveMsgMenu.label "Mover para">
+<!ENTITY contextMoveMsgMenu.accesskey "M">
+<!ENTITY contextMoveCopyMsgRecentMenu.label "Recente">
+<!ENTITY contextMoveCopyMsgRecentMenu.accesskey "c">
+<!ENTITY contextMoveCopyMsgFavoritesMenu.label "Favoritos">
+<!ENTITY contextMoveCopyMsgFavoritesMenu.accesskey "F">
+<!ENTITY contextCopyMsgMenu.label "Copiar para">
+<!ENTITY contextCopyMsgMenu.accesskey "C">
+<!ENTITY contextKillThreadMenu.label "Ignorar tópico">
+<!ENTITY contextKillSubthreadMenu.accesskey "b">
+<!ENTITY contextKillThreadMenu.accesskey "I">
+<!ENTITY contextKillSubthreadMenu.label "Ignorar subtópico">
+<!ENTITY contextWatchThreadMenu.label "Monitorizar tópico">
+<!-- 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 "Guardar como…">
+<!ENTITY contextSaveAs.accesskey "u">
+<!ENTITY contextPrint.label "Imprimir...">
+<!ENTITY contextPrint.accesskey "p">
+<!ENTITY contextPrintPreview.label "Pré-visualizar impressão">
+<!ENTITY contextPrintPreview.accesskey "v">
+
+<!-- LOCALIZATION NOTE (columnPicker.applyTo.label):
+ This option in the thread pane column picker pops up a sub-menu containing
+ the "columnPicker.applyToFolder.label" and
+ "columnPicker.applyToFolderAndChildren.label" options. This item indicates
+ a desire to apply the currently displayed set of columns to some other
+ folder(s). The sub-menu items indicate whether we want to apply it to just
+ a folder or also its children.
+ -->
+<!ENTITY columnPicker.applyTo.label "Aplicar colunas a...">
+<!-- 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 "Pasta...">
+<!-- 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 "Pasta e os seus filhos...">
+<!-- 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 "Esta pasta">
+
+<!-- Media (video/audio) controls -->
+<!ENTITY contextPlay.label "Reproduzir">
+<!ENTITY contextPlay.accesskey "R">
+<!ENTITY contextPause.label "Pausa">
+<!ENTITY contextPause.accesskey "P">
+<!ENTITY contextMute.label "Sem som">
+<!ENTITY contextMute.accesskey "S">
+<!ENTITY contextUnmute.label "Repor som">
+<!ENTITY contextUnmute.accesskey "m">
+
+<!-- Quick Search Bar -->
+<!-- LOCALIZATION NOTE (quickSearchCmd.key):
+ This is actually the key used for the global message search box; we have
+ not changed
+ -->
+<!ENTITY quickSearchCmd.key "k">
+<!-- LOCALIZATION NOTE (search.label.base1):
+ This is the base of the empty text for the global search box. We replace
+ #1 with the contents of the appropriate search.keyLabel.* value for the
+ platform.
+ The goal is to convey to the user that typing in the box will allow them
+ to search for messages globally and that there is a hotkey they can press
+ to get to the box faster. If the global indexer is disabled, the search
+ box will be collapsed and the user will never see this message.
+ -->
+<!ENTITY search.label.base1 "Pesquisa #1">
+<!-- LOCALIZATION NOTE (search.keyLabel.nonmac):
+ The description of the key-binding to get into the global search box on
+ windows and linux (which use the control key). We use the key defined in
+ the quickSearchCmd.key entity defined above, the letter should match it.
+ -->
+<!ENTITY search.keyLabel.nonmac "&lt;Ctrl+K&gt;">
+<!-- LOCALIZATION NOTE (search.keyLabel.mac):
+ The description of the key-binding to get into the global search box on mac
+ systems. We use the key defined in the quickSearchCmd.key entity defined
+ above, the letter should match it.
+ -->
+<!ENTITY search.keyLabel.mac "&lt;&#x2318;K&gt;">
+
+<!-- Message Header Context Menu -->
+<!ENTITY AddToAddressBook.label "Adicionar ao livro de endereços...">
+<!ENTITY AddToAddressBook.accesskey "A">
+<!ENTITY AddDirectlyToAddressBook.label "Adicionar ao livro de endereços">
+<!ENTITY AddDirectlyToAddressBook.accesskey "v">
+<!ENTITY EditContact1.label "Editar contacto">
+<!ENTITY EditContact1.accesskey "E">
+<!ENTITY ViewContact.label "Ver contacto">
+<!ENTITY ViewContact.accesskey "V">
+<!ENTITY SubscribeToNewsgroup.label "Subscrever grupo de notícias">
+<!ENTITY SubscribeToNewsgroup.accesskey "n">
+<!ENTITY SendMessageTo.label "Escrever mensagem para">
+<!ENTITY SendMessageTo.accesskey "s">
+<!ENTITY CopyEmailAddress.label "Copiar endereço de e-mail">
+<!ENTITY CopyEmailAddress.accesskey "C">
+<!ENTITY CopyNameAndEmailAddress.label "Copiar nome e endereço de e-mail">
+<!ENTITY CopyNameAndEmailAddress.accesskey "n">
+<!ENTITY CopyNewsgroupName.label "Copiar nome do grupo de notícias">
+<!ENTITY CopyNewsgroupName.accesskey "C">
+<!ENTITY CopyNewsgroupURL.label "Copiar URL do grupo de notícias">
+<!ENTITY CopyNewsgroupURL.accesskey "U">
+<!ENTITY CreateFilterFrom.label "Criar filtro de…">
+<!ENTITY CreateFilterFrom.accesskey "f">
+<!ENTITY reportPhishingURL.label "Reportar tentativa de fraude">
+<!ENTITY reportPhishingURL.accesskey "d">
+
+<!-- Spell checker context menu items -->
+<!ENTITY spellAddDictionaries.label "Adicionar dicionários...">
+<!ENTITY spellAddDictionaries.accesskey "A">
+
+<!-- Content Pane Context Menu -->
+<!ENTITY saveLinkAsCmd.label "Guardar ligação como…">
+<!ENTITY saveLinkAsCmd.accesskey "G">
+<!ENTITY saveImageAsCmd.label "Guardar imagem como...">
+<!ENTITY saveImageAsCmd.accesskey "u">
+<!ENTITY copyLinkCmd.label "Copiar localização da ligação">
+<!ENTITY copyLinkCmd.accesskey "l">
+<!ENTITY copyImageAllCmd.label "Copiar imagem">
+<!ENTITY copyImageAllCmd.accesskey "o">
+<!ENTITY copyEmailCmd.label "Copiar endereço de e-mail">
+<!ENTITY copyEmailCmd.accesskey "e">
+<!ENTITY stopCmd.label "Parar">
+<!ENTITY stopCmd.accesskey "P">
+<!ENTITY reloadCmd.label "Recarregar">
+<!ENTITY reloadCmd.accesskey "R">
+<!ENTITY openInBrowser.label "Abrir no navegador">
+<!ENTITY openInBrowser.accesskey "o">
+<!ENTITY openLinkInBrowser.label "Abrir ligação no navegador">
+<!ENTITY openLinkInBrowser.accesskey "o">
+
+<!-- Statusbar -->
+<!ENTITY statusText.label "Feito">
+
+<!-- Mac OS X Window Menu -->
+<!ENTITY minimizeWindow.label "Minimizar">
+<!ENTITY minimizeWindow.key "m">
+<!ENTITY bringAllToFront.label "Trazer tudo para frente">
+<!ENTITY zoomWindow.label "Zoom">
+
+<!-- Mac OS X Application Menu (Cocoa widgets) -->
+<!ENTITY preferencesCmdMac2.label "Preferências">
+<!ENTITY preferencesCmdMac.commandkey ",">
+<!ENTITY preferencesCmdMac.modifiers "accel">
+<!ENTITY servicesMenuMac.label "Serviços">
+<!ENTITY hideThisAppCmdMac.label "Ocultar o &brandShortName;">
+<!ENTITY hideThisAppCmdMac.commandkey "H">
+<!ENTITY hideThisAppCmdMac.modifiers "accel">
+<!ENTITY hideOtherAppsCmdMac.label "Ocultar outras">
+<!ENTITY hideOtherAppsCmdMac.commandkey "H">
+<!ENTITY hideOtherAppsCmdMac.modifiers "accel,alt">
+<!ENTITY showAllAppsCmdMac.label "Mostrar tudo">
+
+<!-- Mac OS X Dock Icon pop-up menu -->
+<!ENTITY dockOptions.label "Opções do ícone da aplicação…">
+<!ENTITY writeNewMessageDock.label "Escrever nova mensagem">
+<!ENTITY openAddressBookDock.label "Abrir livro de endereços">
+
+<!-- Content tab Navigation buttons -->
+<!ENTITY browseBackButton.tooltip "Retroceder uma página">
+<!ENTITY browseForwardButton.tooltip "Avançar uma página">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messenger.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messenger.properties
new file mode 100644
index 0000000000..f58313079b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messenger.properties
@@ -0,0 +1,769 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The following are used by the messenger application
+#
+
+# LOCALIZATION NOTE(statusMessage):
+# Do not translate the words %1$S and %2$S below. Place the word %1$S where the
+# account name should appear and %2$S where the status message should appear.
+# EXAMPLE: Jim's Account: Downloading messages...
+statusMessage=%1$S: %2$S
+
+removeAccount=Apagar conta…
+newFolderMenuItem=Pasta...
+newSubfolderMenuItem=Subpasta...
+newFolder=Nova pasta…
+newSubfolder=Nova subpasta…
+markFolderRead=Marcar pasta como lida;Marcar pastas como lidas
+markNewsgroupRead=Marcar grupo de notícias como lido;Marcar grupos de notícias como lidos
+folderProperties=Propriedades da pasta
+newTag=Nova etiqueta…
+# LOCALIZATION NOTE (getNextNewsMessages): Semi-colon list of plural forms.
+# #1 is the number of news messages to get.
+getNextNewsMessages=Obter #1 mensagem de notícias;Obter as próximas #1 mensagens de notícias
+advanceNextPrompt=Avançar para a próxima mensagem não lida em %S?
+titleNewsPreHost=em
+replyToSender=Responder ao remetente
+reply=Responder
+EMLFiles=Ficheiros de correio
+OpenEMLFiles=Abrir mensagem
+# LOCALIZATION NOTE(defaultSaveMessageAsFileName): Do not translate ".eml"
+# in the line below. Also, the complete file name should be 8.3.
+defaultSaveMessageAsFileName=mensagem.eml
+# LOCALIZATION NOTE(longMsgSubjectTruncator): A suffix string appended to the filename
+# (created from message subject) if it needed to be truncated due to length.
+longMsgSubjectTruncator=...
+SaveMailAs=Guardar mensagem como
+SaveAttachment=Guardar anexo
+SaveAllAttachments=Guardar todos os anexos
+DetachAttachment=Retirar o anexo
+DetachAllAttachments=Retirar todos os anexos
+ChooseFolder=Escolher pasta
+MessageLoaded=Mensagem carregada…
+PreviewTitle=%S - %S
+saveAttachmentFailed=Não foi possível guardar o anexo. Verifique o nome do ficheiro e tente novamente.
+saveMessageFailed=Não foi possível guardar a mensagem. Verifique o nome do ficheiro e tente novamente.
+fileExists=%S já existe. Substituir?
+# LOCALIZATION NOTE(failedToReadFile): %1$S is replaced by the file name, %2$S is replaced by the reason the file load failed.
+failedToReadFile=Ocorreu um erro ao ler o ficheiro: %1$S. Motivo: %2$S
+
+downloadingNewsgroups=A descarregar grupos de notícias para utilização offline
+downloadingMail=A descarregar e-mail para utilização offline
+sendingUnsent=A enviar mensagens não enviadas
+
+folderExists=Já existe uma pasta com este nome. Por favor introduza um nome diferente.
+# 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=Uma subpasta com o nome '%1$S' já existe na pasta '%2$S'. Deseja mover esta pasta usando o novo nome '%3$S'?
+folderCreationFailed=A pasta não foi criada porque o nome especificado contém uma letra desconhecida. Por favor introduza um nome diferente e tente novamente.
+
+compactingFolder=A compactar a pasta %S...
+# LOCALIZATION NOTE(compactingDone): %1$S is the compaction gain.
+compactingDone=Compactação feita (aprox. %1$S recuperados).
+
+confirmFolderDeletionForFilter=Se eliminar a pasta '%S', desativa o(s) respetivo(s) filtro(s) associado(s). Tem a certeza que pretende eliminar a pasta?
+alertFilterChanged=Os filtros associados a esta pasta vão ser atualizados.
+filterDisabled=A pasta %S não foi encontrada e os filtros associados à pasta serão desativados. Verifique se a pasta existe e que os filtros indicam para um destino válido.
+filterFolderDeniedLocked=As mensagens não foram filtradas para a pasta '%S' porque outra operação já está em progresso.
+parsingFolderFailed=Não foi possível abrir a pasta %S, uma vez está a ser usada por outra aplicação. Aguarde pela conclusão da operação e selecione-a novamente.
+deletingMsgsFailed=A pasta %S não pode ser apagada, porque está a ser utilizada por outra operação. Aguarde pela conclusão da operação e selecione-a novamente.
+alertFilterCheckbox=Não avisar novamente.
+compactFolderDeniedLock=A pasta '%S' não pode ser compactada porque outra operação já está em progresso. Tente novamente mais tarde.
+compactFolderWriteFailed=A pasta %S não pode ser compactada porque a escrita nesta pasta falhou. Verifique se tem espaço suficiente em disco e se tem privilégios de escrita nos ficheiros de sistema e tente novamente.
+compactFolderInsufficientSpace=Algumas pastas (por exemplo, '%S') não podem ser compactadas porque não existe espaço suficiente em disco. Por favor apague alguns ficheiros e tente novamente.
+filterFolderHdrAddFailed=As mensagens não foram filtradas para a pasta %S porque a adição de uma mensagem à pasta falhou. Verifique se a pasta está a ser mostrada corretamente ou tente repara a pasta através das suas propriedades.
+filterFolderWriteFailed=As mensagens não foram filtradas para a pasta %S porque a escrita nesta pasta falhou. Verifique se tem espaço suficiente em disco e se tem privilégios de escrita nos ficheiros de sistema e tente novamente.
+copyMsgWriteFailed=As mensagens não foram copiadas ou movidas para a pasta %S porque a escrita nesta a pasta falhou. Para ganhar espaço em disco aceda ao menu Ficheiro, escolha Esvaziar Lixo, Compactar pastas e tente novamente.
+cantMoveMsgWOBodyOffline=Se estiver no modo offline, não pode mover ou copiar mensagens que não tenham sido transferidas. Na janela de correio, abra o menu Ficheiro, escolha Offline, desmarque Trabalhar offline e tente novamente.
+operationFailedFolderBusy=A operação falhou porque uma outra operação está a usar a pasta. Aguarde que a operação conclua e tente novamente.
+folderRenameFailed=A pasta não pôde ser renomeada. Talvez a pasta esteja a ser reanalisada, ou o novo nome não é um nome válido de pasta.
+# LOCALIZATION NOTE(verboseFolderFormat): %1$S is folder name, %2$S is server name
+verboseFolderFormat=%1$S em %2$S
+# LOCALIZATION NOTE(filterFolderTruncateFailed): %1$S is replaced by the folder name, %2$S is replaced by the brandShortName
+filterFolderTruncateFailed=Ocorreu um erro ao truncar a caixa de entrada após filtrar a mensagem para a pasta '%1$S'. Pode ser necessário fechar o %2$S e apagar o ficheiro INBOX.msf.
+
+mailboxTooLarge=A pasta %S está cheia e não pode guardar mais mensagens. Para libertar espaço na pasta, apague mensagens antigas ou desnecessárias e compacte a pasta.
+outOfDiskSpace=Não existe espaço livre em disco para descarregar mais mensagens. Experimente apagar e-mails antigos, esvaziar o Lixo ou compactar as pastas e tente novamente.
+errorGettingDB=Não é possível abrir o ficheiro de resumo para %S. Talvez tenha ocorrido um erro no disco, ou o caminho completo é muito extenso.
+defaultServerTag=(Pré-definido)
+
+# Used in message database list view to provide a text value for graphic based cells.
+messageUnread=Não lida
+messageHasFlag=Com estrela
+messageHasAttachment=Tem anexo
+messageJunk=Lixo eletrónico
+messageExpanded=Expandido
+messageCollapsed=Colapsado
+
+# Used in the SMTP Account Settings panel when a server value has no properties
+smtpServerList-NotSpecified=<não especificado>
+smtpServer-ConnectionSecurityType-0=Nenhuma
+smtpServer-ConnectionSecurityType-1=STARTTLS, se disponível
+smtpServer-ConnectionSecurityType-2=STARTTLS
+smtpServer-ConnectionSecurityType-3=SSL/TLS
+smtpServers-confirmServerDeletionTitle=Apagar servidor
+smtpServers-confirmServerDeletion=Tem a certeza que pretende eliminar o servidor:\n %S?
+
+# Account Settings - Both Incoming and SMTP server
+authNo=Sem autenticação
+authOld=Palavra-passe, método original (inseguro)
+authPasswordCleartextInsecurely=Palavra-passe, enviada sem segurança
+authPasswordCleartextViaSSL=Palavra-passe normal
+authPasswordEncrypted=Palavra-passe encriptada
+authKerberos=Kerberos/GSSAPI
+authExternal=Certificado TLS
+authNTLM=NTLM
+authOAuth2=OAuth2
+authAnySecure=Qualquer método seguro (descontinuado)
+authAny=Qualquer método (inseguro)
+
+# 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=Introduza as credenciais de %1$S em %2$S
+
+# LOCALIZATION NOTE(serverType-nntp): Do not translate "NNTP" in the line below
+serverType-nntp=Servidor de notícias (NNTP)
+# LOCALIZATION NOTE(serverType-pop3): Do not translate "POP" in the line below
+serverType-pop3=Servidor de correio POP
+# LOCALIZATION NOTE(serverType-imap): Do not translate "IMAP" in the line below
+serverType-imap=Servidor de correio IMAP
+serverType-none=Servidor local
+
+sizeColumnTooltip2=Ordenar por tamanho
+sizeColumnHeader=Tamanho
+linesColumnTooltip2=Ordenar por linhas
+linesColumnHeader=Linhas
+
+# 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=Obter novas mensagens de %S
+# Used to separate email addresses in a list. Note the trailing space ', '
+getMsgButtonTooltip.listSeparator=,\u0020
+
+# status feedback stuff
+documentDone=
+documentLoading=A carregar mensagem...
+
+# 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=A sincronizar mensagens em %1$S de %2$S…
+
+unreadMsgStatus=Não lidas: %S
+selectedMsgStatus=Selecionadas: %S
+totalMsgStatus=Total: %S
+
+# localized folder names
+
+localFolders=Pastas locais
+
+# LOCALIZATION NOTE (inboxFolderName): OK to translate all foldernames, bugzilla #57440 & bugzilla #23625 fixed
+inboxFolderName=Caixa de entrada
+trashFolderName=Lixo
+sentFolderName=Enviadas
+draftsFolderName=Rascunhos
+templatesFolderName=Modelos
+outboxFolderName=Caixa de saída
+junkFolderName=Lixo eletrónico
+archivesFolderName=Arquivo
+
+# "Normal" priority is often blank,
+# depending on the consumers of these strings
+priorityLowest=Muito baixa
+priorityLow=Baixa
+priorityNormal=Normal
+priorityHigh=Alta
+priorityHighest=Muito alta
+
+#Group by date thread pane titles
+today=Hoje
+yesterday=Ontem
+lastWeek=A semana passada
+last7Days=Últimos 7 dias
+twoWeeksAgo=2 semanas atrás
+last14Days=Últimos 14 dias
+older=Correio antigo
+futureDate=Futuro
+
+#Grouped By Tags
+untaggedMessages=Mensagens sem etiqueta
+
+# Grouped by status
+messagesWithNoStatus=Sem estado
+
+#Grouped by priority
+noPriority=Sem prioridade
+
+#Grouped by has attachments
+noAttachments=Sem anexos
+attachments=Anexos
+
+#Grouped by starred
+notFlagged=Sem estrela
+groupFlagged=Com estrela
+
+# defaults descriptions for tag prefs listed in mailnews.js
+# (we keep the .labels. names for backwards compatibility)
+mailnews.tags.remove=Remover todas as etiquetas
+mailnews.labels.description.1=Importante
+mailnews.labels.description.2=Trabalho
+mailnews.labels.description.3=Pessoal
+mailnews.labels.description.4=Pendente
+mailnews.labels.description.5=Mais tarde
+
+# 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=Respondida
+forwarded=Reencaminhada
+redirected=Redirecionado
+new=Nova
+read=Lida
+flagged=Com estrela
+
+# for junk status picker in search and mail views
+junk=Lixo eletrónico
+
+# for junk score origin picker in search and mail views
+junkScoreOriginPlugin=Plugin
+junkScoreOriginFilter=Filtro
+junkScoreOriginWhitelist=Lista de permissões
+junkScoreOriginUser=Utilizador
+junkScoreOriginImapFlag=Etiqueta IMAP
+
+# for the has attachment picker in search and mail views
+hasAttachments=Tem anexos
+
+# for the Tag picker in search and mail views.
+tag=Etiquetas
+
+# LOCALIZATION NOTE(andOthers):
+# for multiple authors, add this abbreviation to the first author to indicate
+# there are more; for the From column in the threadpane message list.
+andOthers=et al.
+
+# whether to also show phonetic fields in the addressbook
+# LOCALIZATION NOTE(mail.addr_book.show_phonetic_fields):
+# the only valid values are: true OR false (choose from the untranslated English words)
+mail.addr_book.show_phonetic_fields=false
+
+# valid format options are:
+# 1: yyyy/mm/dd
+# 2: yyyy/dd/mm
+# 3: mm/dd/yyyy
+# 4: mm/yyyy/dd
+# 5: dd/mm/yyyy
+# 6: dd/yyyy/mm
+#
+# 0: auto-detect the current locale format
+# a separator has to be either '/', '-', '.' and the year in Christian year
+# otherwise mm/dd/yyyy (option 3) is used
+#
+mailnews.search_date_format=0
+# separator for search date (e.g. "/", "-"), or empty when search_date_format is zero
+mailnews.search_date_separator=
+# leading zeros for day and month values, not used if mailnews.search_date_format is not zero
+mailnews.search_date_leading_zeros=true
+
+# offline msg
+nocachedbodybody2=O corpo desta mensagem não foi descarregado a partir \
+do servidor para utilização no modo offline. Para ler esta mensagem, \
+tem de se ligar novamente à rede, escolher Offline a partir \
+do menu Ficheiro e desmarcar a opção Trabalhar offline. \
+No futuro, poderá selecionar as mensagens ou pastas para leitura no modo offline. Para o fazer, \
+selecione Offline no menu Ficheiro e selecione Transferir/Sincronizar agora. \
+Pode ajustar o espaço em disco para impedir a transferência de mensagens \
+grandes.
+
+# 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=Correio
+newsAcctType=Notícias
+feedsAcctType=Fontes
+
+# LOCALIZATION NOTE(nocachedbodytitle): Do not translate "<TITLE>" or "</TITLE>" in the line below
+nocachedbodytitle=<TITLE>Ative o modo online para ver esta mensagem</TITLE>\n
+
+# mailWindowOverlay.js
+confirmUnsubscribeTitle=Confirmação
+confirmUnsubscribeText=Tem a certeza que quer cancelar a subscrição de %S?
+confirmUnsubscribeManyText=Tem a certeza que quer cancelar a subscrição destes grupos de notícias?
+restoreAllTabs=Restaurar todos os separadores
+
+confirmMarkAllFoldersReadTitle=Marcar todas as pastas como lidas
+confirmMarkAllFoldersReadMessage=Tem a certeza que pretende marcar todas as mensagens em todas as pastas desta conta como lidas?
+
+# LOCALIZATION NOTE(junkBarMessage): %S is brand
+junkBarMessage=O %S acha que esta mensagem é lixo eletrónico.
+junkBarButton=Não é lixo eletrónico
+junkBarButtonKey=N
+junkBarInfoButton=Saber mais
+junkBarInfoButtonKey=S
+
+# LOCALIZATION NOTE(remoteContentBarMessage): %S is brand
+remoteContentBarMessage=Para sua segurança, o %S bloqueou o conteúdo remoto desta mensagem.
+remoteContentPrefLabel=Opções
+remoteContentPrefAccesskey=O
+remoteContentPrefLabelUnix=Preferências
+remoteContentPrefAccesskeyUnix=P
+
+# LOCALIZATION NOTE(remoteAllowResource): %S is origin
+remoteAllowResource=Permitir conteúdo remoto de %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=Permitir conteúdo remoto de #1 origem acima listada;Permitir conteúdo remoto de #1 origens acima listadas
+
+phishingBarMessage=Esta mensagem pode ser uma fraude.
+phishingBarPrefLabel=Opções
+phishingBarPrefAccesskey=O
+phishingBarPrefLabelUnix=Preferências
+phishingBarPrefAccesskeyUnix=P
+
+mdnBarIgnoreButton=Ignorar pedido
+mdnBarIgnoreButtonKey=n
+mdnBarSendReqButton=Enviar recibo
+mdnBarSendReqButtonKey=b
+
+draftMessageMsg=Esta é uma mensagem de rascunho.
+draftMessageButton=Editar
+draftMessageButtonKey=E
+
+# msgHdrViewOverlay.js
+openLabel=Abrir
+openLabelAccesskey=A
+saveLabel=Guardar como...
+saveLabelAccesskey=G
+detachLabel=Separar...
+detachLabelAccesskey=S
+deleteLabel=Apagar
+deleteLabelAccesskey=l
+openFolderLabel=Abrir pasta de destino
+openFolderLabelAccesskey=p
+deleteAttachments=Estes anexos serão removidos permanentemente desta mensagem:\n%S\nEsta ação não pode ser desfeita. Deseja continuar?
+detachAttachments=Os anexos seguintes foram guardados com sucesso e serão apagados permanentemente desta mensagem:\n%S\nEsta ação não pode ser desfeita. Deseja continuar?
+deleteAttachmentFailure=Falha ao apagar os anexos selecionados.
+emptyAttachment=Este anexo parece estar vazio.\nContacte a pessoa que o enviou.\nNormalmente programas de anti-vírus e firewalls das empresas destroem os anexos.
+externalAttachmentNotFound=Este ficheiro desanexado ou anexo de ligação não foi encontrado ou não está mais acessível neste local.
+
+# LOCALIZATION NOTE (attachmentCount): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# #1 number of attachments
+attachmentCount=#1 anexo;#1 anexos
+
+# 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 anexo:
+
+# LOCALIZATION NOTE (attachmentSizeUnknown): The string to show for the total
+# size of all attachments when none of the attachments' sizes can be detected.
+attachmentSizeUnknown=tamanho desconhecido
+
+# 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=pelo menos %1$S
+
+# This is the format for prepending accesskeys to the
+# each of the attachments in the file|attachments menu:
+# ie: 1 file.txt
+# 2 another file.txt
+attachmentDisplayNameFormat=%S %S
+
+# This is the heading for the attachment summary when printing an email
+attachmentsPrintHeader=Anexos:
+
+# Connection Error Messages
+# LOCALIZATION NOTE(unknownHostError): %S is the server name
+unknownHostError=A ligação ao servidor %S falhou.
+# LOCALIZATION NOTE(connectionRefusedError): %S is the server name
+connectionRefusedError=A ligação ao servidor %S falhou. A ligação foi recusada.
+# LOCALIZATION NOTE(netTimeoutError): %S is the server name
+netTimeoutError=A ligação ao servidor %S expirou.
+# LOCALIZATION NOTE(netResetError): %S is the server name
+netResetError=A ligação ao servidor %S foi reposta.
+# LOCALIZATION NOTE(netInterruptError): %S is the server name
+netInterruptError=A ligação ao servidor %S foi interrompida.
+
+recipientSearchCriteria=Assunto ou destinatário contém:
+fromSearchCriteria=Assunto ou remetente contém:
+
+# LOCALIZATION NOTE(biffNotification): %1$S is the number of new messages
+biffNotification_message=tem %1$S nova mensagem
+biffNotification_messages=tem %1$S novas mensagens
+
+# LOCALIZATION NOTE(newMailNotification_message): %1$S is the name of the account %2$S is the number of new messages
+newMailNotification_message=%1$S recebeu %2$S nova mensagem
+
+# LOCALIZATION NOTE(newMailNotification_messages): %1$S is the name of the account %2$S is the number of new messages
+newMailNotification_messages=%1$S recebeu %2$S novas mensagens
+
+# 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 de %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 recebeu #2 nova mensagem;#1 recebeu #2 novas mensagens
+
+# For the Quota tab in the mail folder properties dialog
+quotaPercentUsed=%S%% cheio
+# for quota in main window (commandglue.js)
+percent=%S%%
+quotaTooltip2=Quota IMAP: utilizados %S de um total de %S. Clique para detalhes.
+
+# for message views
+confirmViewDeleteTitle=Confirmação
+confirmViewDeleteMessage=Tem a certeza que pretende eliminar esta vista?
+
+# for virtual folders
+confirmSavedSearchTitle=Confirmação de eliminação
+confirmSavedSearchDeleteMessage=Tem a certeza que pretende eliminar esta pesquisa guardada?
+
+## @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=Introduza a palavra-passe para %1$S em %2$S:
+
+## @name ENTER_PASSWORD_PROMPT_TITLE
+## @loc None
+passwordTitle=Requer palavra-passe do servidor de correio
+
+# for checking if the user really wants to open lots of messages in separate windows.
+openWindowWarningTitle=Confirmação
+# LOCALIZATION NOTE (openWindowWarningConfirmation): Semi-colon list of plural forms.
+# #1 is the number of messages the user is attempting to open.
+openWindowWarningConfirmation=A abertura de #1 mensagem pode ser demorada. Continuar?;A abertura de #1 mensagens pode ser demorada. Continuar?
+
+# for checking if the user really wants to open lots of messages in tabs.
+openTabWarningTitle=Confirmação
+# LOCALIZATION NOTE (openTabWarningConfirmation): Semi-colon list of plural forms.
+# #1 is the number of messages the user is attempting to open.
+openTabWarningConfirmation=A abertura de #1 mensagem pode ser demorada. Continuar?;A abertura de #1 mensagens pode ser demorada. Continuar?
+
+# for warning the user that a tag they're trying to create already exists
+tagExists=Já existe uma etiqueta com este nome.
+
+# title of the edit tag dialog
+editTagTitle=Editar etiqueta
+
+# for the virtual folder list dialog title
+# %S is the name of the saved search folder
+editVirtualFolderPropertiesTitle=Editar propriedades da pesquisa guardada para %S
+# LOCALIZATION NOTE (foldersChosen): #1 number of chosen folders
+virtualFolderSourcesChosen=#1 pasta escolhida;#1 pastas escolhidas
+
+#alert to inform the user to choose one or more folders to search for a saved search folder
+alertNoSearchFoldersSelected=Tem de escolher, pelo menos, uma pasta para pesquisar as pesquisas guardadas.
+
+# 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 nesta pasta, %2$S nas subpastas
+
+# Error message if message for a message id wasn't found
+errorOpenMessageForMessageIdTitle=Erro ao abrir message-id
+errorOpenMessageForMessageIdMessage=Mensagem com a ID %S não encontrada
+
+# Warnings to alert users about phishing urls
+confirmPhishingTitle=Alerta de tentativa de engodo
+linkMismatchTitle=Disparidade detetada na ligação
+#LOCALIZATION NOTE %1$S is the brand name, %2$S is the host name of the url being visited
+confirmPhishingUrl=O %1$S acha que esta é uma mensagem de engodo. As ligações nesta mensagem podem estar a fingir ser páginas web que deseja visitar. Tem a certeza que quer visitar %2$S?
+#LOCALIZATION NOTE %1$S is the host name of indicated host, %2$S is the host name of the actual host.
+confirmPhishingUrlAlternate=A ligação em que acabou de clicar parece encaminhar para outro site que não o mesmo que é indicado pelo texto da ligação. Por vezes isto é utilizado para confirmar se clicou na ligação, mas também pode ser um esquema fraudulento.\n\nO texto da ligação indicou que a ligação deveria encaminhar para %1$S mas, em vez disso, a mesma encaminha para %2$S.
+#LOCALIZATION NOTE $1$S is the host name of the indicated host.
+confirmPhishingGoAhead=Ir para %1$S mesmo assim
+#LOCALIZATION NOTE %1$S is the host name that was displayed to the user.
+confirmPhishingGoDirect=Ir para %1$S
+
+# Check for Updates
+# LOCALIZATION NOTE (updatesItem_*): these are alternative labels for Check for Update item in Help menu.
+# Which one is used depends on Update process state.
+updatesItem_default=Procurar atualizações…
+updatesItem_defaultFallback=Procurar atualizações…
+updatesItem_default.accesskey=c
+updatesItem_downloading=A descarregar %S…
+updatesItem_downloadingFallback=A descarregar atualização…
+updatesItem_downloading.accesskey=d
+updatesItem_resume=Retomar descarga de %S…
+updatesItem_resumeFallback=Retomar descarga da atualização…
+updatesItem_resume.accesskey=t
+updatesItem_pending=Aplicar atualização transferida agora…
+updatesItem_pendingFallback=Aplicar atualização transferida agora…
+updatesItem_pending.accesskey=t
+
+# Folder Pane Header Title Strings
+folderPaneModeHeader_all=Todas as pastas
+folderPaneModeHeader_unread=Pastas não lidas
+folderPaneModeHeader_favorite=Pastas favoritas
+folderPaneModeHeader_recent=Pastas recentes
+folderPaneModeHeader_smart=Pastas unificadas
+unifiedAccountName=Pastas unificadas
+
+# 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=Mover novamente para "%1$S"
+moveToFolderAgainAccessKey=t
+#LOCALIZATION NOTE %1$S is the name of the folder we will copy to
+# copyToFolderAgainAccessKey
+# should have the same value as moveToFolderAgainAccessKey as they are the same menu item in the UI
+# copyToFolderAgainAccessKey should also be a letter that occurs before %1$S
+copyToFolderAgain=Copiar novamente para "%1$S"
+copyToFolderAgainAccessKey=t
+
+#LOCALIZATION NOTE(mdnBarMessageNormal) %1$S is the name of the sender
+mdnBarMessageNormal=%1$S pediu para ser notificado quando tiver lido esta mensagem.
+#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 pediu para ser notificado (para %2$S) quando tiver lido esta mensagem.
+
+# mailCommands.js
+emptyJunkFolderTitle=Esvaziar "%S"
+emptyJunkFolderMessage=Apagar todas as mensagens e subpastas da pasta Lixo eletrónico?
+emptyJunkDontAsk=Não perguntar novamente.
+emptyTrashFolderTitle=Esvaziar "%S"
+emptyTrashFolderMessage=Apagar todas as mensagens e subpastas da pasta Lixo?
+emptyTrashDontAsk=Não perguntar novamente.
+
+# junkCommands.js
+junkAnalysisPercentComplete=Análise de lixo eletronico %S terminada
+processingJunkMessages=A processar mensagens de lixo eletrónico
+
+# Messenger bootstrapping messages
+fileNotFoundTitle = Ficheiro não encontrado
+#LOCALIZATION NOTE(fileNotFoundMsg): %S is the filename
+fileNotFoundMsg = O ficheiro %S não existe.
+
+fileEmptyTitle = Ficheiro vazio
+#LOCALIZATION NOTE(fileEmptyMsg): %S is the filename
+fileEmptyMsg = O ficheiro %S está vazio.
+
+# LOCALIZATION NOTE (headerMoreAddrs): semicolon separated list of plural
+# forms of the word "more" as used after the number of addresses
+# currently hidden while displaying a header such as "to", "cc", or "bcc"
+# in the message header box. English has two identical forms here, so it will
+# construct strings that look like (for example) "1 more" or "20 more".
+# <https://developer.mozilla.org/en/Localization_and_Plurals> has details
+# on this mechanism.
+headerMoreAddrs=Mais #1;Mais #1
+
+# 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=, e mais #1 ;, e mais #1
+
+# 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=Eu
+
+# LOCALIZATION NOTE (headerfromFieldMe): first person prepositional object
+# pronoun used in the "from" header of the message header pane.
+headerfromFieldMe=Eu
+
+# LOCALIZATION NOTE (headerreply-toFieldMe): first person prepositional
+# object pronoun used in the "reply-to" header of the message header pane.
+headerreply-toFieldMe=Eu
+
+# LOCALIZATION NOTE (headerccFieldMe): first person prepositional object
+# pronoun used in the "cc" header of the message header pane.
+headerccFieldMe=Eu
+
+# LOCALIZATION NOTE (headerbccFieldMe): first person prepositional object
+# pronoun used in the "bcc" header of the message header pane.
+headerbccFieldMe=Eu
+
+expandAttachmentPaneTooltip=Mostrar painel de anexos
+collapseAttachmentPaneTooltip=Ocultar painel de anexos
+
+# Shown when content tabs are being loaded.
+loadingTab=A carregar...
+
+confirmMsgDelete.title=Confirmação de eliminação
+confirmMsgDelete.collapsed.desc=Isto irá eliminar as mensagens em tópicos colapsados. Tem a certeza que pretende continuar?
+confirmMsgDelete.deleteNoTrash.desc=Irá eliminar mensagens imediatamente, sem guardar uma cópia no lixo. Tem a certeza que pretende continuar?
+confirmMsgDelete.deleteFromTrash.desc=Irá apagar as mensagens no Lixo de forma permanente. Tem a certeza que pretende continuar?
+confirmMsgDelete.dontAsk.label=Não perguntar novamente.
+confirmMsgDelete.delete.label=Apagar
+
+mailServerLoginFailedTitle=Erro ao iniciar sessão
+# LOCALIZATION NOTE (mailServerLoginFailedTitleWithAccount):
+# "%S" is the account name.
+mailServerLoginFailedTitleWithAccount=Início de sessão para a conta "%S" falhou
+# LOCALIZATION NOTE (mailServerLoginFailed2):
+# %1$S is the host name of the server, %2$S is the user name.
+mailServerLoginFailed2=Início de sessão para o servidor %1$S com o nome de utilizador %2$S falhou
+mailServerLoginFailedRetryButton=Volta&r a tentar
+mailServerLoginFailedEnterNewPasswordButton=Introduza a nova palavra-pass&e
+
+# 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=Aplicar alterações?
+# 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=Aplicar colunas da pasta atual a %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=Aplicar alterações?
+# 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=Aplicar as colunas atuais da pasta a %S e seus filhos?
+
+# LOCALIZATION NOTE (lwthemeInstallRequest.message): %S will be replaced with
+# the host name of the site.
+lwthemeInstallRequest.message=Este site (%S) tentou instalar um tema.
+lwthemeInstallRequest.allowButton=Permitir
+lwthemeInstallRequest.allowButton.accesskey=i
+
+lwthemePostInstallNotification.message=Um novo tema foi instalado.
+lwthemePostInstallNotification.undoButton=Desfazer
+lwthemePostInstallNotification.undoButton.accesskey=D
+lwthemePostInstallNotification.manageButton=Gerir temas…
+lwthemePostInstallNotification.manageButton.accesskey=m
+
+# troubleshootModeRestart
+troubleshootModeRestartPromptTitle=Reiniciar no modo de diagnóstico
+troubleshootModeRestartPromptMessage=O modo de diagnóstico irá desativar todos os extras e irá utilizar temporariamente algumas preferências predefinidas.\nTem a certeza que pretende reiniciar?
+troubleshootModeRestartButton=Reiniciar
+
+# LOCALIZATION NOTE (downloadAndInstallButton.label): %S is replaced by the
+# version of the update: "Update to 28.0".
+update.downloadAndInstallButton.label=Atualizar para a versão %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=Limpar todo o histórico
+sanitizeButtonOK=Limpar agora
+# 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=Todo o histórico será limpo.
+# 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=Todos os itens selecionados serão limpos.
+
+learnMoreAboutIgnoreThread=Saber mais...
+learnMoreAboutIgnoreThreadAccessKey = m
+undoIgnoreThread=Anular Ignorar tópico
+undoIgnoreThreadAccessKey=u
+undoIgnoreSubthread=Anular Ignorar subtópico
+undoIgnoreSubthreadAccessKey=u
+# LOCALIZATION NOTE (ignoredThreadFeedback): #1 is the message thread title
+ignoredThreadFeedback=As respostas ao tópico "#1" não serão mostradas.
+# LOCALIZATION NOTE (ignoredSubthreadFeedback): #1 is the message subthread title
+ignoredSubthreadFeedback=As respostas ao subtópico "#1" não serão mostradas.
+# LOCALIZATION NOTE (ignoredThreadsFeedback): Semi-colon list of plural forms.
+# #1 is the number of threads
+ignoredThreadsFeedback=As respostas ao tópico selecionado não serão mostradas.;As respostas aos #1 tópicos selecionados não serão mostradas.
+# LOCALIZATION NOTE (ignoredSubthreadsFeedback): Semi-colon list of plural forms.
+# #1 is number of subthreads
+ignoredSubthreadsFeedback=As respostas ao subtópico selecionado não serão mostradas.;As respostas aos #1 subtópicos selecionados não serão mostradas.
+# LOCALIZATION NOTE (saveAsType): replace %S with the extension of the file to be saved.
+saveAsType=Ficheiro %S
+
+# 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=Pesquisar por "%2$S" em %1$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=Pesquisar por "%2$S" em %1$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 = Consola de erros
+
+# 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 = Anterior
+
+# LOCALIZATION NOTE (folderErrorAlertTitle):
+# %S is a pretty string to identify the folder and account.
+# EXAMPLE: Error - Inbox on bob@example.com
+folderErrorAlertTitle = Erro - %S
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdAdvancedEdit.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdAdvancedEdit.dtd
new file mode 100644
index 0000000000..a87affdb7e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Editor de propriedades avançadas">
+<!ENTITY AttName.label "Atributo: ">
+<!ENTITY AttValue.label "Valor: ">
+<!ENTITY PropertyName.label "Propriedade: ">
+<!ENTITY currentattributesfor.label "Atributos atuais para: ">
+<!ENTITY tree.attributeHeader.label "Atributo">
+<!ENTITY tree.propertyHeader.label "Propriedade">
+<!ENTITY tree.valueHeader.label "Valor">
+<!ENTITY tabHTML.label "Atributos de HTML">
+<!ENTITY tabCSS.label "Estilo inline">
+<!ENTITY tabJSE.label "Eventos JavaScript">
+
+<!ENTITY editAttribute.label "Clique num item acima para editar o seu valor">
+<!ENTITY removeAttribute.label "Remover">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdColorPicker.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdColorPicker.dtd
new file mode 100644
index 0000000000..cc4c62a666
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdColorPicker.dtd
@@ -0,0 +1,22 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY windowTitle.label "Cor">
+<!ENTITY lastPickedColor.label "Última cor escolhida">
+<!ENTITY lastPickedColor.accessKey "l">
+<!ENTITY chooseColor1.label "Escolha uma cor:">
+<!ENTITY chooseColor2.label "Introduzir um código de cor HTML">
+<!ENTITY chooseColor2.accessKey "H">
+<!ENTITY setColorExample.label "(ex.: &quot;#0000ff&quot; ou &quot;blue&quot;):">
+<!ENTITY default.label "Pré-definido">
+<!ENTITY default.accessKey "d">
+<!ENTITY palette.label "Paleta:">
+<!ENTITY standardPalette.label "Padrão">
+<!ENTITY webPalette.label "Todas as cores web">
+<!ENTITY background.label "Fundo para:">
+<!ENTITY background.accessKey "F">
+<!ENTITY table.label "Tabela">
+<!ENTITY table.accessKey "T">
+<!ENTITY cell.label "Célula(s)">
+<!ENTITY cell.accessKey "C">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdConvertToTable.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdConvertToTable.dtd
new file mode 100644
index 0000000000..2d61a790e2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Converter para tabela">
+<!ENTITY instructions1.label "O compositor cria uma nova tabela de linhas para cada parágrafo da seleção.">
+<!ENTITY instructions2.label "Escolha o caractere utilizado para separar a seleção em colunas:">
+<!ENTITY commaRadio.label "Vírgula">
+<!ENTITY spaceRadio.label "Espaço">
+<!ENTITY otherRadio.label "Outro:">
+<!ENTITY deleteCharCheck.label "Apagar caractere separador">
+<!ENTITY collapseSpaces.label "Ignorar espaços extra">
+<!ENTITY collapseSpaces.tooltip "Converter espaços adjacentes num separador">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdDialogOverlay.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdDialogOverlay.dtd
new file mode 100644
index 0000000000..9b417045f0
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdDialogOverlay.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY AdvancedEditButton.label "Edição avançada…">
+<!ENTITY AdvancedEditButton.accessKey "E">
+<!ENTITY AdvancedEditButton.tooltip "Adicionar ou modificar atributos HTML, atributos de estilo e atributos JavaScript">
+<!ENTITY chooseFileButton.label "Escolher ficheiro...">
+<!ENTITY chooseFileButton.accessKey "f">
+<!ENTITY chooseFileLinkButton.label "Escolher ficheiro...">
+<!ENTITY chooseFileLinkButton.accessKey "o">
+<!ENTITY makeUrlRelative.label "O URL é relativo à localização da página">
+<!ENTITY makeUrlRelative.accessKey "r">
+<!ENTITY makeUrlRelative.tooltip "Alterar entre URL relativo e absoluto. Tem de guardar a página para poder alterar.">
+
+<!-- Shared by Link and Image dialogs -->
+<!ENTITY LinkURLEditField2.label "Digite um endereço da página da Internet, um ficheiro local, ou selecione uma âncora ou cabeçalho do menu de contexto do campo:">
+<!ENTITY LinkURLEditField2.accessKey "w">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdNamedAnchorProperties.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EdNamedAnchorProperties.dtd
new file mode 100644
index 0000000000..9b9c8bdf30
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Propriedades da âncora nomeada">
+<!ENTITY anchorNameEditField.label "Nome da âncora:">
+<!ENTITY anchorNameEditField.accessKey "N">
+<!ENTITY nameInput.tooltip "Introduza um nome único para esta âncora (destino)">
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorColorProperties.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorColorProperties.dtd
new file mode 100644
index 0000000000..c4b7c286e4
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorColorProperties.dtd
@@ -0,0 +1,29 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!-- Window title -->
+
+<!ENTITY windowTitle.label "Cor e fundo da página">
+<!ENTITY pageColors.label "Cores da página">
+<!ENTITY defaultColorsRadio.label "Cores predefinidas do leitor (não aplica cores na página)">
+<!ENTITY defaultColorsRadio.accessKey "C">
+<!ENTITY defaultColorsRadio.tooltip "Utilizar definições de cor do navegador do visualizador (leitor)">
+<!ENTITY customColorsRadio.label "Cores personalizadas:">
+<!ENTITY customColorsRadio.accessKey "o">
+<!ENTITY customColorsRadio.tooltip "Estas definições de cor sobrepõem-se às definições do navegador do visualizador">
+
+<!ENTITY normalText.label "Texto normal">
+<!ENTITY normalText.accessKey "n">
+<!ENTITY linkText.label "Texto da ligação">
+<!ENTITY linkText.accessKey "l">
+<!ENTITY activeLinkText.label "Texto da ligação ativa">
+<!ENTITY activeLinkText.accessKey "a">
+<!ENTITY visitedLinkText.label "Texto da ligação visitada">
+<!ENTITY visitedLinkText.accessKey "v">
+<!ENTITY background.label "Fundo:">
+<!ENTITY background.accessKey "F">
+<!ENTITY colon.character ":">
+<!ENTITY backgroundImage.label "Imagem de fundo:">
+<!ENTITY backgroundImage.accessKey "m">
+<!ENTITY backgroundImage.tooltip "Utilizar ficheiro de imagem como fundo para esta página">
+<!ENTITY backgroundImage.shortenedDataURI "Dados URI reduzidos (ao copiar, colocará o URI completo na área de transferência)">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorHLineProperties.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorHLineProperties.dtd
new file mode 100644
index 0000000000..e05524dc82
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Propriedades da linha horizontal">
+
+<!ENTITY dimensionsBox.label "Dimensões">
+<!ENTITY heightEditField.label "Altura:">
+<!ENTITY heightEditField.accessKey "t">
+<!ENTITY widthEditField.label "Largura:">
+<!ENTITY widthEditField.accessKey "L">
+<!ENTITY pixelsPopup.value "pixeis">
+<!ENTITY alignmentBox.label "Alinhamento">
+<!ENTITY leftRadio.label "Esquerda">
+<!ENTITY leftRadio.accessKey "E">
+<!ENTITY centerRadio.label "Centro">
+<!ENTITY centerRadio.accessKey "C">
+<!ENTITY rightRadio.label "Direita">
+<!ENTITY rightRadio.accessKey "D">
+
+<!ENTITY threeDShading.label "Sombra 3D">
+<!ENTITY threeDShading.accessKey "S">
+<!ENTITY saveSettings.label "Utilizar como pré-definição">
+<!ENTITY saveSettings.accessKey "d">
+<!ENTITY saveSettings.tooltip "Guardar definições para as utilizar ao inserir novas linhas horizontais">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorImageProperties.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorImageProperties.dtd
new file mode 100644
index 0000000000..100662bb90
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorImageProperties.dtd
@@ -0,0 +1,79 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- These strings are for use specifically in the editor's image and form image dialogs. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Propriedades da imagem">
+
+<!ENTITY pixelsPopup.value "pixeis">
+
+<!-- These are in the Location tab panel -->
+<!ENTITY locationEditField.label "Localização da imagem:">
+<!ENTITY locationEditField.accessKey "L">
+<!ENTITY locationEditField.tooltip "Digite o nome ou a localização da imagem">
+<!ENTITY locationEditField.shortenedDataURI "URI reduzido (ao copiar, colocará o URI completo na área de transferência)">
+<!ENTITY title.label "Dica:">
+<!ENTITY title.accessKey "D">
+<!ENTITY title.tooltip "O atributo 'title' que será exibido como dica">
+<!ENTITY altText.label "Texto alternativo:">
+<!ENTITY altText.accessKey "a">
+<!ENTITY altTextEditField.tooltip "Digite o texto a mostrar no local da imagem">
+<!ENTITY noAltText.label "Não usar texto alternativo">
+<!ENTITY noAltText.accessKey "u">
+
+<!ENTITY previewBox.label "Pré-visualizar imagem">
+
+<!-- These controls are in the Dimensions tab panel -->
+<!-- actualSize.label should be same as actualSizeRadio.label + ":" -->
+<!ENTITY actualSize.label "Tamanho real:">
+<!ENTITY actualSizeRadio.label "Tamanho real">
+<!ENTITY actualSizeRadio.accessKey "a">
+<!ENTITY actualSizeRadio.tooltip "Reverter imagem para o tamanho real">
+<!ENTITY customSizeRadio.label "Tamanho personalizado">
+<!ENTITY customSizeRadio.accessKey "p">
+<!ENTITY customSizeRadio.tooltip "Alterar como o tamanho da imagem é mostrado na página">
+<!ENTITY heightEditField.label "Altura:">
+<!ENTITY heightEditField.accessKey "l">
+<!ENTITY widthEditField.label "Largura:">
+<!ENTITY widthEditField.accessKey "L">
+<!ENTITY constrainCheckbox.label "Contrair">
+<!ENTITY constrainCheckbox.accessKey "C">
+<!ENTITY constrainCheckbox.tooltip "Manter tamanho da imagem">
+
+<!-- These controls are in the Image Map box of the expanded area -->
+<!ENTITY imagemapBox.label "Mapa de imagem">
+<!ENTITY removeImageMapButton.label "Remover">
+<!ENTITY removeImageMapButton.accessKey "R">
+
+<!-- These are the options for image alignment -->
+<!ENTITY alignment.label "Alinhar o texto à imagem">
+<!ENTITY bottomPopup.value "No fim">
+<!ENTITY topPopup.value "No topo">
+<!ENTITY centerPopup.value "No centro">
+<!ENTITY wrapRightPopup.value "Encapsular à direita">
+<!ENTITY wrapLeftPopup.value "Encapsular à esquerda">
+
+<!-- These controls are in the Spacing Box -->
+<!ENTITY spacingBox.label "Espaçamento">
+<!ENTITY leftRightEditField.label "Esquerda e direita:">
+<!ENTITY leftRightEditField.accessKey "E">
+<!ENTITY topBottomEditField.label "Topo e fim:">
+<!ENTITY topBottomEditField.accessKey "T">
+<!ENTITY borderEditField.label "Limite sólido:">
+<!ENTITY borderEditField.accessKey "L">
+
+<!-- These controls are in the Link Box -->
+<!ENTITY showImageLinkBorder.label "Mostrar limite ao redor da ligação à imagem">
+<!ENTITY showImageLinkBorder.accessKey "M">
+<!ENTITY LinkAdvancedEditButton.label "Edição avançada de ligação…">
+<!ENTITY LinkAdvancedEditButton.accessKey "l">
+<!ENTITY LinkAdvancedEditButton.tooltip "Adicionar ou modificar atributos HTML, atributos de estilo e JavaScript">
+
+<!-- These tabs are currently used in the image input dialog -->
+<!ENTITY imageInputTab.label "Formulário">
+<!ENTITY imageLocationTab.label "Localização">
+<!ENTITY imageDimensionsTab.label "Dimensões">
+<!ENTITY imageAppearanceTab.label "Aparência">
+<!ENTITY imageLinkTab.label "Ligação">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorInsertChars.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorInsertChars.dtd
new file mode 100644
index 0000000000..1eeea13453
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Inserir caractere">
+<!ENTITY category.label "Categoria">
+<!ENTITY letter.label "Carta:">
+<!ENTITY letter.accessKey "a">
+<!ENTITY character.label "Caractere:">
+<!ENTITY character.accessKey "C">
+<!ENTITY accentUpper.label "Maiúsculas acentuadas">
+<!ENTITY accentLower.label "Minúsculas acentuadas">
+<!ENTITY otherUpper.label "Outras maiúsculas">
+<!ENTITY otherLower.label "Outras minúsculas">
+<!ENTITY commonSymbols.label "Símbolos comuns">
+<!ENTITY insertButton.label "Inserir">
+<!ENTITY closeButton.label "Fechar">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorInsertMath.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorInsertMath.dtd
new file mode 100644
index 0000000000..a0e2536028
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorInsertMath.dtd
@@ -0,0 +1,21 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!-- Window title -->
+
+<!ENTITY windowTitle.label "Inserir Math">
+
+<!ENTITY sourceEditField.label "Introduza o código fonte LaTeX:">
+
+<!ENTITY options.label "Opções">
+<!ENTITY optionInline.label "Modo em linha">
+<!ENTITY optionInline.accesskey "n">
+<!ENTITY optionDisplay.label "Modo de exibição">
+<!ENTITY optionDisplay.accesskey "d">
+<!ENTITY optionLTR.label "Da esquerda para a direita">
+<!ENTITY optionLTR.accesskey "e">
+<!ENTITY optionRTL.label "Da direita para a esquerda">
+<!ENTITY optionRTL.accesskey "d">
+
+<!ENTITY insertButton.label "Inserir">
+<!ENTITY insertButton.accesskey "I">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorInsertSource.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorInsertSource.dtd
new file mode 100644
index 0000000000..c6ca9b8794
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Inserir HTML">
+<!ENTITY sourceEditField.label "Introduza o texto e etiquetas HTML:">
+<!ENTITY example.label "Exemplo: ">
+<!-- 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 "Olá mundo!">
+<!ENTITY insertButton.label "Inserir">
+<!ENTITY insertButton.accesskey "I">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorInsertTOC.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorInsertTOC.dtd
new file mode 100644
index 0000000000..e4789f99a9
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Índice de conteúdo">
+<!ENTITY buildToc.label "Construir tabela de conteúdos a partir de:">
+<!ENTITY tag.label "Etiqueta:">
+<!ENTITY class.label "Classe:">
+<!ENTITY header1.label "Nível 1">
+<!ENTITY header2.label "Nível 2">
+<!ENTITY header3.label "Nível 3">
+<!ENTITY header4.label "Nível 4">
+<!ENTITY header5.label "Nível 5">
+<!ENTITY header6.label "Nível 6">
+<!ENTITY makeReadOnly.label "Tornar índice apenas de leitura">
+<!ENTITY orderedList.label "Numerar todas as entradas do índice de conteúdo">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorInsertTable.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorInsertTable.dtd
new file mode 100644
index 0000000000..642a2c4b48
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Inserir tabela">
+
+<!ENTITY size.label "Tamanho">
+<!ENTITY numRowsEditField.label "Linhas:">
+<!ENTITY numRowsEditField.accessKey "h">
+<!ENTITY numColumnsEditField.label "Colunas:">
+<!ENTITY numColumnsEditField.accessKey "C">
+<!ENTITY widthEditField.label "Largura:">
+<!ENTITY widthEditField.accessKey "L">
+<!ENTITY borderEditField.label "Contorno:">
+<!ENTITY borderEditField.accessKey "C">
+<!ENTITY borderEditField.tooltip "Escreva um número para o contorno da tabela ou zero (0) para nenhum contorno">
+<!ENTITY pixels.label "pixeis">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorLinkProperties.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorLinkProperties.dtd
new file mode 100644
index 0000000000..1e28830fed
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Propriedades da ligação">
+<!ENTITY LinkURLBox.label "Localização da ligação">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorListProperties.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorListProperties.dtd
new file mode 100644
index 0000000000..59d997e461
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Propriedades da lista">
+
+<!ENTITY ListType.label "Tipo de lista">
+<!ENTITY bulletStyle.label "Estilo de marcas:">
+<!ENTITY startingNumber.label "Iniciar a:">
+<!ENTITY startingNumber.accessKey "I">
+<!ENTITY none.value "Nenhum">
+<!ENTITY bulletList.value "Lista com marcas (não numerada)">
+<!ENTITY numberList.value "Lista numerada">
+<!ENTITY definitionList.value "Lista de definições">
+<!ENTITY changeEntireListRadio.label "Alterar toda a lista">
+<!ENTITY changeEntireListRadio.accessKey "A">
+<!ENTITY changeSelectedRadio.label "Alterar apenas os itens selecionados">
+<!ENTITY changeSelectedRadio.accessKey "i">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorPersonalDictionary.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorPersonalDictionary.dtd
new file mode 100644
index 0000000000..0f6af88809
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Dicionário pessoal">
+
+<!ENTITY wordEditField.label "Nova palavra:">
+<!ENTITY wordEditField.accessKey "N">
+<!ENTITY AddButton.label "Adicionar">
+<!ENTITY AddButton.accessKey "A">
+<!ENTITY DictionaryList.label "Palavras no dicionário:">
+<!ENTITY DictionaryList.accessKey "P">
+<!ENTITY RemoveButton.label "Remover">
+<!ENTITY RemoveButton.accessKey "R">
+
+<!ENTITY CloseButton.label "Fechar">
+<!ENTITY CloseButton.accessKey "F">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorReplace.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorReplace.dtd
new file mode 100644
index 0000000000..9058d7a88d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorReplace.dtd
@@ -0,0 +1,29 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!-- extracted from EdReplace.xul -->
+
+
+<!-- extracted from EdReplace.xhtml -->
+
+<!ENTITY replaceDialog.title "Localizar e substituir">
+<!ENTITY findField.label "Localizar texto:">
+<!ENTITY findField.accesskey "x">
+<!ENTITY replaceField.label "Substituir por:">
+<!ENTITY replaceField.accesskey "u">
+<!ENTITY caseSensitiveCheckbox.label "Correspondência exata">
+<!ENTITY caseSensitiveCheckbox.accesskey "C">
+<!ENTITY wrapCheckbox.label "Encapsular à volta">
+<!ENTITY wrapCheckbox.accesskey "E">
+<!ENTITY backwardsCheckbox.label "Pesquisar para trás">
+<!ENTITY backwardsCheckbox.accesskey "t">
+<!ENTITY findNextButton.label "Localizar seguinte">
+<!ENTITY findNextButton.accesskey "L">
+<!ENTITY replaceButton.label "Substituir">
+<!ENTITY replaceButton.accesskey "S">
+<!ENTITY replaceAndFindButton.label "Localizar e substituir">
+<!ENTITY replaceAndFindButton.accesskey "c">
+<!ENTITY replaceAllButton.label "Substituir tudo">
+<!ENTITY replaceAllButton.accesskey "b">
+<!ENTITY closeButton.label "Fechar">
+<!ENTITY closeButton.accesskey "c">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorSpellCheck.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorSpellCheck.dtd
new file mode 100644
index 0000000000..9d206347ce
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorSpellCheck.dtd
@@ -0,0 +1,38 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Verificar ortografia">
+
+<!ENTITY misspelledWord.label "Palavra errada:">
+<!ENTITY wordEditField.label "Substituir por:">
+<!ENTITY wordEditField.accessKey "S">
+<!ENTITY checkwordButton.label "Verificar palavra">
+<!ENTITY checkwordButton.accessKey "i">
+<!ENTITY suggestions.label "Sugestões:">
+<!ENTITY suggestions.accessKey "u">
+<!ENTITY ignoreButton.label "Ignorar">
+<!ENTITY ignoreButton.accessKey "I">
+<!ENTITY ignoreAllButton.label "Ignorar tudo">
+<!ENTITY ignoreAllButton.accessKey "n">
+<!ENTITY replaceButton.label "Substituir">
+<!ENTITY replaceButton.accessKey "S">
+<!ENTITY replaceAllButton.label "Substituir tudo">
+<!ENTITY replaceAllButton.accessKey "t">
+<!ENTITY stopButton.label "Parar">
+<!ENTITY stopButton.accessKey "P">
+<!ENTITY userDictionary.label "Dicionário pessoal:">
+<!ENTITY moreDictionaries.label "Descarregar mais dicionários…">
+<!ENTITY addToUserDictionaryButton.label "Adicionar palavra">
+<!ENTITY addToUserDictionaryButton.accessKey "d">
+<!ENTITY editUserDictionaryButton.label "Editar…">
+<!ENTITY editUserDictionaryButton.accessKey "E">
+<!ENTITY recheckButton2.label "Reverificar texto">
+<!ENTITY recheckButton2.accessKey "t">
+<!ENTITY closeButton.label "Fechar">
+<!ENTITY closeButton.accessKey "F">
+<!ENTITY sendButton.label "Enviar">
+<!ENTITY sendButton.accessKey "n">
+<!ENTITY languagePopup.label "Idioma:">
+<!ENTITY languagePopup.accessKey "I">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorTableProperties.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/EditorTableProperties.dtd
new file mode 100644
index 0000000000..07a5ca4a8c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Propriedades da tabela">
+<!ENTITY applyButton.label "Aplicar">
+<!ENTITY applyButton.accesskey "A">
+<!ENTITY closeButton.label "Fechar">
+<!ENTITY tableTab.label "Tabela">
+<!ENTITY cellTab.label "Células">
+<!ENTITY tableRows.label "Linhas:">
+<!ENTITY tableRows.accessKey "n">
+<!ENTITY tableColumns.label "Colunas:">
+<!ENTITY tableColumns.accessKey "C">
+<!ENTITY tableHeight.label "Altura:">
+<!ENTITY tableHeight.accessKey "A">
+<!ENTITY tableWidth.label "Largura:">
+<!ENTITY tableWidth.accessKey "L">
+<!ENTITY tableBorderSpacing.label "Contornos e espaçamento">
+<!ENTITY tableBorderWidth.label "Contorno:">
+<!ENTITY tableBorderWidth.accessKey "n">
+<!ENTITY tableSpacing.label "Espaçamento:">
+<!ENTITY tableSpacing.accessKey "E">
+<!ENTITY tablePadding.label "Padding:">
+<!ENTITY tablePadding.accessKey "d">
+<!ENTITY tablePxBetwCells.label "pixeis entre células">
+<!ENTITY tablePxBetwBrdrCellContent.label "pixeis entre o contorno e o conteúdo da célula">
+<!ENTITY tableAlignment.label "Alinhamento da tabela:">
+<!ENTITY tableAlignment.accessKey "t">
+<!ENTITY tableCaption.label "Legenda:">
+<!ENTITY tableCaption.accessKey "n">
+<!ENTITY tableCaptionAbove.label "Acima da tabela">
+<!ENTITY tableCaptionBelow.label "Abaixo da tabela">
+<!ENTITY tableCaptionLeft.label "Esquerda da tabela">
+<!ENTITY tableCaptionRight.label "Direita da tabela">
+<!ENTITY tableCaptionNone.label "Nenhuma">
+<!ENTITY tableInheritColor.label "(Mostrar cor da página através)">
+
+<!ENTITY cellSelection.label "Seleção">
+<!ENTITY cellSelectCell.label "Célula">
+<!ENTITY cellSelectRow.label "Linha">
+<!ENTITY cellSelectColumn.label "Coluna">
+<!ENTITY cellSelectNext.label "Seguinte">
+<!ENTITY cellSelectNext.accessKey "S">
+<!ENTITY cellSelectPrevious.label "Anterior">
+<!ENTITY cellSelectPrevious.accessKey "A">
+<!ENTITY applyBeforeChange.label "As modificações atuais serão aplicadas antes de alterar a seleção.">
+<!ENTITY cellContentAlignment.label "Alinhamento do conteúdo">
+<!ENTITY cellHorizontal.label "Horizontal:">
+<!ENTITY cellHorizontal.accessKey "z">
+<!ENTITY cellVertical.label "Vertical:">
+<!ENTITY cellVertical.accessKey "V">
+<!ENTITY cellStyle.label "Estilo da célula:">
+<!ENTITY cellStyle.accessKey "c">
+<!ENTITY cellNormal.label "Normal">
+<!ENTITY cellHeader.label "Cabeçalho">
+<!ENTITY cellTextWrap.label "Encapsulamento de texto:">
+<!ENTITY cellTextWrap.accessKey "E">
+<!ENTITY cellWrap.label "Encapsular">
+<!ENTITY cellNoWrap.label "Não encapsular">
+<!ENTITY cellAlignTop.label "Topo">
+<!ENTITY cellAlignMiddle.label "Meio">
+<!ENTITY cellAlignBottom.label "Fim">
+<!ENTITY cellAlignJustify.label "Justificar">
+<!ENTITY cellInheritColor.label "(Mostrar cor da tabela através)">
+<!ENTITY cellUseCheckboxHelp.label "Utilizar caixas de verificação para determinar as propriedades a aplicar a todas as células selecionadas">
+
+<!-- Used in both Table and Cell panels -->
+<!ENTITY size.label "Tamanho">
+<!ENTITY pixels.label "pixeis">
+<!ENTITY backgroundColor.label "Cor de fundo:">
+<!ENTITY backgroundColor.accessKey "u">
+<!ENTITY AlignLeft.label "Esquerda">
+<!ENTITY AlignCenter.label "Centro">
+<!ENTITY AlignRight.label "Direita">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/composeMsgs.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/composeMsgs.properties
new file mode 100644
index 0000000000..8143fdd7f7
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/composeMsgs.properties
@@ -0,0 +1,464 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the compose back end
+#
+## LOCALIZATION NOTE (unableToOpenFile, unableToOpenTmpFile):
+## %S will be replaced with the name of file that could not be opened
+unableToOpenFile=Não foi possível abrir o ficheiro %S.
+unableToOpenTmpFile=Não foi possível abrir o ficheiro %S. Verifique as definições do 'Diretório temporário'.
+unableToSaveTemplate=Não foi possível guardar a sua mensagem como modelo.
+unableToSaveDraft=Não foi possível guardar a sua mensagem como rascunho.
+couldntOpenFccFolder=Não foi possível abrir a pasta correio enviado. Por favor verifique se as preferências de correio estão corretas.
+noSender=Não especificou o remetente. Por favor introduza o seu endereço de e-mail nas definições da conta.
+noRecipients=Não especificou qualquer destinatário. Por favor introduza um destinatário ou grupo como destinatário.
+errorWritingFile=Erro ao escrever ficheiro temporário.
+
+## LOCALIZATION NOTE (errorSendingFromCommand): argument %s is the Outgoing server (SMTP) response
+errorSendingFromCommand=Ocorreu um erro ao enviar o correio. O servidor respondeu: %s. Por favor verifique se o seu endereço eletrónico está correto nas definições da conta e tente novamente.
+
+## LOCALIZATION NOTE (errorSendingDataCommand): argument %s is the Outgoing server (SMTP) response
+errorSendingDataCommand=Ocorreu um erro (SMTP) ao enviar o correio. O servidor respondeu: %s.
+
+## LOCALIZATION NOTE (errorSendingMessage): argument %s is the Outgoing server (SMTP) response
+errorSendingMessage=Ocorreu um erro ao enviar o correio. O servidor respondeu: %s. Por favor verifique a mensagem e tente novamente.
+postFailed=A mensagem não pode ser enviada porque a ligação ao servidor de notícias falhou. O servidor pode estar indisponível ou a recusar ligações. Por favor verifique se as definições do servidor de notícias estão corretas e tente de novo ou contacte o administrador de rede.
+errorQueuedDeliveryFailed=Ocorreu um erro ao entregar as mensagens.
+sendFailed=Falha ao enviar mensagem.
+
+## LOCALIZATION NOTE (sendFailedUnexpected): argument %X is a hex error code value
+sendFailedUnexpected=Falhou devido a erro inesperado %X. Nenhuma descrição está disponível.
+
+## LOCALIZATION NOTE (smtpSecurityIssue): argument %S is the Outgoing server (SMTP) response
+smtpSecurityIssue=A configuração relacionada com %S deve ser corrigida.
+
+## LOCALIZATION NOTE (smtpServerError): argument %s is the Outgoing server (SMTP) response
+smtpServerError=Ocorreu um erro ao enviar o correio: erro do servidor (SMTP). O servidor respondeu: %s.
+unableToSendLater=Desculpe mas não foi possível guardar a sua mensagem para envio posterior.
+
+## LOCALIZATION NOTE (communicationsError): argument %d is the error code
+communicationsError=Ocorreu um erro de comunicação: %d. Por favor tente novamente.
+dontShowAlert=ISTO É APENAS UM MARCADOR DE POSIÇÃO. NUNCA DEVE VER ESTA FRASE.
+
+couldNotGetUsersMailAddress2=Ocorreu um erro ao enviar correio: o endereço do remetente (De:) estava inválido. Por favor verifique que este endereço de email está correto e tente novamente.
+couldNotGetSendersIdentity=Ocorreu um erro ao enviar correio: a identidade do remetente estava inválida. Por favor verifique a configuração da sua identidade e tente novamente.
+
+mimeMpartAttachmentError=Erro no anexo.
+failedCopyOperation=A mensagem foi enviada com sucesso, mas não foi copiada para a sua pasta Enviadas.
+nntpNoCrossPosting=Apenas pode enviar uma mensagem a um servidor de notícias de cada vez.
+msgCancelling=A cancelar...
+sendFailedButNntpOk=A sua mensagem foi publicada no grupo de notícias, mas não foi enviada para outros destinatários.
+errorReadingFile=Erro ao ler ficheiro.
+followupToSenderMessage=O autor desta mensagem pediu que a resposta fosse enviada apenas para o autor. Se também desejar responder ao grupo, adicione uma nova linha na área do endereço, escolha Grupo de notícias na lista de destinatários e introduza o nome do grupo de notícias.
+
+## LOCALIZATION NOTE (errorAttachingFile): argument %S is the file name/URI of the object to be attached
+errorAttachingFile=Ocorreu um erro ao anexar %S. Verifique se tem acesso ao ficheiro.
+
+## LOCALIZATION NOTE (incorrectSmtpGreeting): argument %s is the Outgoing server (SMTP) greeting
+incorrectSmtpGreeting=Ocorreu um erro ao enviar o correio: o servidor de correio enviou um cumprimento incorreto: %s.
+
+## LOCALIZATION NOTE (errorSendingRcptCommand): argument %1$S is the Outgoing server (SMTP) response, argument %2$S is the intended message recipient.
+errorSendingRcptCommand=Ocorreu um erro ao enviar o correio. O servidor de correio respondeu: \n%1$S.\n Verifique o destinatário da mensagem "%2$S" e tente novamente.
+
+## LOCALIZATION NOTE (startTlsFailed): argument %S is the Outgoing server (SMTP)
+startTlsFailed=Ocorreu um erro ao enviar o correio: não foi possível estabelecer uma ligação segura com o servidor de envio (SMTP) %S usando STARTTLS, uma vez que ele não anuncia esta funcionalidade. Desligue o STARTTLS para esse servidor ou contacte o fornecedor de serviço.
+
+## LOCALIZATION NOTE (smtpPasswordUndefined): argument %S is the Outgoing server (SMTP) account
+smtpPasswordUndefined=Ocorreu um erro ao enviar o correio: não foi possível obter a palavra-passe para %S. A mensagem não foi enviada.
+
+## LOCALIZATION NOTE (smtpSendNotAllowed): argument %s is the Outgoing server (SMTP) response
+smtpSendNotAllowed=Ocorreu um erro ao enviar correio. O servidor de correio respondeu:\n%s.\nPor favor assegure-se de que está a utilizar a identidade correta para enviar e que o método de autenticação utilizado está correto. Verifique que tem permissão para enviar via este servidor SMTP com as suas credenciais atuais a partir da sua rede atual.
+
+## LOCALIZATION NOTE (smtpTempSizeExceeded): argument %s is the Outgoing server (SMTP) response
+smtpTempSizeExceeded=O tamanho da mensagem que está a tentar enviar, excede o limite de tamanho temporário do servidor. A mensagem não foi enviada. Tente reduzir o tamanho da mensagem ou aguarde um pouco e tente novamente. O servidor respondeu: %s.
+
+## LOCALIZATION NOTE (smtpClientid): argument %s is the Outgoing server (SMTP) response
+smtpClientid=O servidor de saída (SMTP) detetou um erro no comando CLIENTID. A mensagem não foi enviada. O servidor respondeu: %s
+
+## LOCALIZATION NOTE (smtpClientidPermission): argument %s is the Outgoing server (SMTP) response
+smtpClientidPermission=A resposta do servidor de saída (SMTP) para o comando CLIENTID indica que o dispositivo não tem permissão para enviar correio. O servidor respondeu: %s
+
+## LOCALIZATION NOTE (smtpPermSizeExceeded1): argument %d is the Outgoing server (SMTP) size limit
+smtpPermSizeExceeded1=O tamanho da mensagem que está a tentar enviar excede o limite global do servidor (%d bytes). A mensagem não foi enviada. Reduza o tamanho da mensagem e tente novamente.
+
+## LOCALIZATION NOTE (smtpPermSizeExceeded2): argument %s is the Outgoing server (SMTP) response
+smtpPermSizeExceeded2=O tamanho da mensagem que está a tentar enviar excede o limite global do servidor. A mensagem não foi enviada. Reduza o tamanho da mensagem e tente novamente. O servidor respondeu: %s.
+
+## LOCALIZATION NOTE (smtpSendFailedUnknownServer): argument %S is the Outgoing server (SMTP)
+smtpSendFailedUnknownServer=Ocorreu um erro ao enviar o correio. O servidor de envio (SMTP) %S não é conhecido. Pode ser que o servidor esteja mal configurado. Por favor verifique se as definições do servidor (SMTP) estão corretas e tente novamente.
+
+## LOCALIZATION NOTE (smtpSendRequestRefused): argument %S is the Outgoing server (SMTP)
+smtpSendRequestRefused=A mensagem não foi enviada porque a ligação ao servidor de envio (SMTP) %S falhou. O servidor pode estar indisponível ou a recusar ligações SMTP. Verifique se as definições do servidor (SMTP) estão corretas e tente novamente.
+
+## LOCALIZATION NOTE (smtpSendInterrupted): argument %S is the Outgoing server (SMTP)
+smtpSendInterrupted=A mensagem não foi enviada porque a ligação ao servidor de envio (SMTP) %S foi perdida no meio da transação. Tente novamente.
+
+## LOCALIZATION NOTE (smtpSendTimeout): argument %S is the Outgoing server (SMTP)
+smtpSendTimeout=A mensagem não foi enviada porque a ligação ao servidor de envio (SMTP) %S expirou. Tente novamente.
+
+## LOCALIZATION NOTE (smtpSendFailedUnknownReason): argument %S is the Outgoing server (SMTP)
+smtpSendFailedUnknownReason=A mensagem não foi enviada através do servidor de envio (SMTP) %S por uma razão desconhecida. Verifique se as definições do servidor (SMTP) estão corretas e tente novamente.
+
+# LOCALIZATION NOTE (smtpHintAuthEncryptToPlainNoSsl): %S is the server hostname
+smtpHintAuthEncryptToPlainNoSsl=Parece que o servidor de envio (SMTP) %S não tem suporte a palavras-passe encriptadas. Se acabou de configurar a conta, tente mudar para 'Palavra-passe, envio sem segurança' como 'Método de autenticação' nas 'Definições da conta | Servidor de envio (SMTP)'. Se este método funcionava anteriormente, é possível que alguém tenha obtido a sua palavra-passe.
+
+# LOCALIZATION NOTE (smtpHintAuthEncryptToPlainSsl): %S is the server hostname
+smtpHintAuthEncryptToPlainSsl=Parece que o servidor de envio (SMTP) %S não tem suporte a palavras-passe encriptadas. Se acabou de configurar a conta, tente mudar para 'Palavra-passe normal' como 'Método de autenticação' nas 'Definições da conta | Servidor de envio (SMTP)'.
+
+# LOCALIZATION NOTE (smtpHintAuthPlainToEncrypt): %S is the server hostname
+smtpHintAuthPlainToEncrypt=O servidor de envio (SMTP) %S não permite palavras-passe em texto simples. Por favor tente alterar para 'Palavra-passe encriptada' como 'Método de autenticação' em 'Definições da conta | Servidor de envio (SMTP)'.
+
+# LOCALIZATION NOTE (smtpAuthFailure): %S is the server hostname
+smtpAuthFailure=Não foi possível efetuar a autenticação no servidor de envio (SMTP) %S. Por favor verifique a palavra-passe e o 'Método de autenticação' nas 'Definições da conta | Servidor de envio (SMTP)'.
+
+# LOCALIZATION NOTE (smtpAuthGssapi): %S is the server hostname
+smtpAuthGssapi=Os dados Kerberos/GSSAPI não foram aceites pelo servidor de envio (SMTP) %S. Por favor verifique se tem acesso aos dados Kerberos/GSSAPI.
+
+# LOCALIZATION NOTE (smtpAuthMechNotSupported): %S is the server hostname
+smtpAuthMechNotSupported=O servidor de envio (SMTP) %S não tem suporte ao método de autenticação selecionado. Por favor mude o 'Método de autenticação' nas 'Definições da conta | Servidor de envio (SMTP)'.
+
+# LOCALIZATION NOTE (errorIllegalLocalPart2): %s is an email address with an illegal localpart
+errorIllegalLocalPart2=Existem caracteres não ASCII na parte local do endereço do destinatário %s e o seu servidor não suporta SMTPUTF8. Por favor, altere este endereço e tente novamente.
+
+## Strings used for the save message dialog shown when the user closes a message compose window
+saveDlogTitle=Guardar mensagem
+
+## 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=Guardar esta mensagem na sua pasta de rascunhos (%1$S) e fechar a janela de Composição?
+discardButtonLabel=&Descartar alterações
+
+## generics string
+defaultSubject=(sem assunto)
+chooseFileToAttach=Anexar ficheiro(s)
+genericFailureExplanation=Verifique se as suas definições de correio e grupos de discussão estão corretas e tente novamente.
+
+## LOCALIZATION NOTE (undisclosedRecipients): this string must use only US_ASCII characters
+undisclosedRecipients=destinatários não revelados
+
+# LOCALIZATION NOTE (chooseFileToAttachViaCloud): %1$S is the cloud
+# provider to save the file to.
+chooseFileToAttachViaCloud=Anexar ficheiro(s) através de %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=Escrever: %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=Pré-visualização da impressão: %1$S - %2$S
+
+## From field
+msgIdentityPlaceholder=Introduzir endereço 'De' personalizado em vez de utilizar %S
+customizeFromAddressTitle=Personalizar endereço 'De'
+customizeFromAddressWarning=Se o seu fornecedor de e-mail o suportar, a opção Personalizar endereço 'De' permite-lhe alterar o seu endereço de envio sem ter que criar uma nova identidade nas definições da conta. Por exemplo, se o seu endereço 'De' for John Doe <john@example.com>, pode querer alterar o endereço para John Doe <john+doe@example.com> ou John <john@example.com>.
+customizeFromAddressIgnore=Nunca mais voltar a notificar.
+
+## Strings used by the empty subject dialog
+subjectEmptyTitle=Lembrete de assunto
+subjectEmptyMessage=A sua mensagem não tem assunto.
+sendWithEmptySubjectButton=&Enviar sem assunto
+cancelSendingButton=&Cancelar envio
+
+## Strings used by the dialog that informs about the lack of newsgroup support.
+noNewsgroupSupportTitle=Grupos de notícias não suportados
+recipientDlogMessage=Esta conta só tem suporte a endereços eletrónicos. Se continuar, os grupos de notícias serão ignorados.
+
+## Strings used by the alert that tells the user that an e-mail address is invalid.
+addressInvalidTitle=Endereço de destinatário inválido
+addressInvalid=%1$S não é um endereço de e-mail válido pois não está no formato utilizador@servidor. Tem de o corrigir antes de enviar a mensagem.
+
+## String used by the dialog that asks the user to attach a web page
+attachPageDlogTitle=Por favor especifique a localização a anexar
+attachPageDlogMessage=Página web (URL):
+
+## String used for attachment pretty name, when the attachment is a message
+messageAttachmentSafeName=Mensagem anexada
+
+## String used for attachment pretty name, when the attachment is a message part
+partAttachmentSafeName=Parte da mensagem anexada
+
+# LOCALIZATION NOTE (attachmentBucketAttachFilesTooltip):
+# This tooltip should be same as attachFile.label in messengercompose.dtd,
+# but without ellipsis (…).
+attachmentBucketAttachFilesTooltip=Anexar ficheiro(s)
+attachmentBucketClearSelectionTooltip=Limpar seleção
+attachmentBucketHeaderShowTooltip=Mostrar painel de anexos
+attachmentBucketHeaderMinimizeTooltip=Minimizar painel de anexos
+attachmentBucketHeaderRestoreTooltip=Restaurar painel de anexos
+
+## String used by the Initialization Error dialog
+initErrorDlogTitle=Escrever mensagem
+initErrorDlgMessage=Ocorreu um erro ao criar a janela de composição da mensagem. Por favor tente novamente.
+
+## String used if a file to attach does not exist when passed as
+## a command line argument
+errorFileAttachTitle=Anexação de ficheiro
+
+## LOCALIZATION NOTE (errorFileAttachMessage): %1$S will be replaced by the non-existent file name.
+errorFileAttachMessage=O ficheiro %1$S não existe e, como tal, não foi anexado à mensagem.
+
+## 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=Ficheiro da mensagem
+
+## LOCALIZATION NOTE (errorFileMessageMessage): %1$S will be replaced by the non-existent file name.
+errorFileMessageMessage=O ficheiro %1$S não existe e, por isso, não pode ser utilizado como corpo da mensagem.
+
+## LOCALIZATION NOTE (errorLoadFileMessageMessage): %1$S will be replaced by the name of the file that can't be loaded.
+errorLoadFileMessageMessage=O ficheiro %1$S não pode ser carregado com corpo da mensagem.
+
+## Strings used by the Save as Draft/Template dialog
+SaveDialogTitle=Guardar mensagem
+
+## LOCALIZATION NOTE (SaveDialogMsg): %1$S is the folder name, %2$S is the host name
+SaveDialogMsg=A sua mensagem foi guardada na pasta %1$S em %2$S.
+CheckMsg=Não mostrar esta janela novamente.
+
+## Strings used by the prompt when Quitting while in progress
+quitComposeWindowTitle=A enviar mensagem
+
+## LOCALIZATION NOTE (quitComposeWindowMessage2): don't translate \n
+quitComposeWindowMessage2=O %1$S está atualmente no processo de enviar uma mensagem.\nPretende esperar até que a mensagem seja enviada antes de sair ou sair agora?
+quitComposeWindowQuitButtonLabel2=Sai&r
+quitComposeWindowWaitButtonLabel2=&Esperar
+quitComposeWindowSaveTitle=A guardar mensagem
+
+## LOCALIZATION NOTE (quitComposeWindowSaveMessage): don't translate \n
+quitComposeWindowSaveMessage=O %1$S está atualmente no processo de guardar uma mensagem.\nPretende esperar até que a mensagem seja guardada antes de sair ou sair agora?
+
+## Strings used by the prompt for Ctrl-Enter check before sending message
+sendMessageCheckWindowTitle=Enviar mensagem
+sendMessageCheckLabel=Tem a certeza que está pronto para enviar esta mensagem?
+sendMessageCheckSendButtonLabel=Enviar
+assemblingMessageDone=A construir mensagem…Feito
+assemblingMessage=A construir mensagem…
+smtpDeliveringMail=A entregar correio…
+smtpMailSent=Correio enviado com sucesso
+assemblingMailInformation=A construir informação do correio…
+
+## LOCALIZATION NOTE (gatheringAttachment): argument %S is the file name/URI of attachment
+gatheringAttachment=A anexar %S…
+creatingMailMessage=A criar mensagem de correio…
+
+## LOCALIZATION NOTE (copyMessageStart): argument %S is the folder name
+copyMessageStart=A copiar mensagem para a pasta %S...
+copyMessageComplete=Cópia terminada.
+copyMessageFailed=A cópia falhou.
+filterMessageComplete=Filtro terminado.
+filterMessageFailed=O filtro falhou.
+
+## LOCALIZATION NOTE (largeMessageSendWarning):
+## Do not translate %S. It is the size of the message in user-friendly notation.
+largeMessageSendWarning=Aviso! Vai enviar uma mensagem com um tamanho de %S. Tem a certeza que pretende fazer isto?
+sendingMessage=A enviar mensagem...
+sendMessageErrorTitle=Erro ao enviar mensagem
+postingMessage=A publicar mensagem...
+sendLaterErrorTitle=Erro ao guardar para enviar mais tarde
+saveDraftErrorTitle=Erro ao guardar rascunho
+saveTemplateErrorTitle=Erro ao guardar modelo
+
+## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSaving): argument %.200S is the file name/URI of object to be embedded
+failureOnObjectEmbeddingWhileSaving=Ocorreu um problema ao incluir o ficheiro %.200S na mensagem. Deseja continuar a guardar a mensagem sem este ficheiro?
+
+## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSending): argument %.200S is the file name/URI of object to be embedded
+failureOnObjectEmbeddingWhileSending=Ocorreu um problema ao incluir o ficheiro %.200S na mensagem. Deseja continuar a guardar a mensagem sem este ficheiro?
+returnToComposeWindowQuestion=Deseja voltar à janela de composição?
+
+## 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 escreveu:
+
+## LOCALIZATION NOTE (mailnews.reply_header_ondateauthorwrote): #1 is the author, #2 is the date, #3 is the time
+mailnews.reply_header_ondateauthorwrote=Às #3 de #2, #1 escreveu:
+
+## LOCALIZATION NOTE (mailnews.reply_header_authorwroteondate): #1 is the author, #2 is the date, #3 is the time
+mailnews.reply_header_authorwroteondate=#1 escreveu às #3 de #2:
+
+## reply header in composeMsg
+## user specified
+mailnews.reply_header_originalmessage=-------- Mensagem original --------
+
+## forwarded header in composeMsg
+## user specified
+mailnews.forward_header_originalmessage=-------- Mensagem reencaminhada --------
+
+## Strings used by the rename attachment dialog
+renameAttachmentTitle=Renomear anexo
+renameAttachmentMessage=Novo nome do anexo:
+
+## 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,anexo,anexar,anexado,cv
+
+remindLaterButton=Lembrar mais tarde
+remindLaterButton.accesskey=L
+disableAttachmentReminderButton=Desativar lembrete do anexo para a mensagem atual
+attachmentReminderTitle=Lembrete de anexos
+attachmentReminderMsg=Esqueceu-se de adicionar o anexo?
+
+# LOCALIZATION NOTE (attachmentReminderKeywordsMsgs): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# #1 number of keywords
+attachmentReminderKeywordsMsgs=Encontrada uma palavra-chave de anexo:;Encontradas #1 palavras-chave de anexo:
+attachmentReminderOptionsMsg=As palavras a servir como lembrete de anexo podem ser configuradas nas preferências
+attachmentReminderYesIForgot=Sim, esqueci-me!
+attachmentReminderFalseAlarm=Não, enviar agora!
+
+# Strings used by the Filelink offer notification bar.
+learnMore.label=Saber mais...
+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=Este ficheiro é muito grande. É capaz de ser melhor usar o Filelink.;Estes ficheiros são muito grandes. É capaz de ser melhor usar o Filelink.
+bigFileShare.label=Ligação
+bigFileShare.accesskey=L
+bigFileAttach.label=Ignorar
+bigFileAttach.accesskey=I
+bigFileChooseAccount.title=Escolher conta
+bigFileChooseAccount.text=Escolha a conta na nuvem para carregar o anexo
+bigFileHideNotification.title=Não carregar os meus ficheiros
+bigFileHideNotification.text=Não será novamente notificado se anexar outros ficheiros grandes a esta mensagem.
+bigFileHideNotification.check=Nunca mais voltar a notificar.
+
+# 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=A carregar para %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=Carregado para %S
+cloudFileUploadingNotification=O seu ficheiro está a ser ligado. Irá aparecer no corpo da mensagem ao terminar.;Os seus ficheiros estão a ser ligados. Irão aparecer no corpo da mensagem ao terminar.
+cloudFileUploadingCancel.label=Cancelar
+cloudFileUploadingCancel.accesskey=c
+cloudFilePrivacyNotification=A ligação foi concluída. Tenha em atenção que os anexos vinculados poderão estar acessíveis a terceiros que adivinhem ou vejam estas ligações.
+
+## LOCALIZATION NOTE(smtpEnterPasswordPrompt): Do not translate the
+## word %S. Place the word %S where the host name should appear.
+smtpEnterPasswordPrompt=Introduza a palavra-passe para %S:
+
+## LOCALIZATION NOTE(smtpEnterPasswordPromptWithUsername): Do not translate the
+## words %1$S and %2$S. Place the word %1$S where the host name should appear,
+## and %2$S where the user name should appear.
+smtpEnterPasswordPromptWithUsername=Introduza a palavra-passe para %2$S em %1$S:
+## LOCALIZATION NOTE(smtpEnterPasswordPromptTitleWithHostname): Do not translate the
+## word %1$S. Place the word %1$S where the server host name should appear.
+smtpEnterPasswordPromptTitleWithHostname=Palavra-passe necessária para o servidor (SMTP) de envio %1$S
+
+# LOCALIZATION NOTE (removeAttachmentMsgs): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+removeAttachmentMsgs=Remover anexo;Remover anexos
+
+## 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=A sua mensagem foi enviada, mas não foi guardada uma cópia na sua pasta de enviadas (%1$S) devido a erros de rede ou de acesso a ficheiros.\nPode tentar novamente ou guardar a mensagem localmente em %3$S/%1$S-%2$S.
+errorFilteringMsg=A sua mensagem foi enviada e guardada, mas ocorreu um erro ao executar os filtros de mensagens.
+errorCloudFileAuth.title=Erro de autenticação
+
+## 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=A sua mensagem de rascunho não foi copiada para a sua pasta de rascunhos (%1$S) devido a erros de rede ou de acesso a ficheiros.\nPode tentar novamente ou guardar o rascunho localmente em %3$S/%1$S-%2$S.
+buttonLabelRetry2=&Tentar novamente
+
+## 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=O seu modelo não foi copiado para a sua pasta de modelos (%1$S) devido a erros de rede ou de acesso a ficheiros.\nPode tentar novamente ou guardar o modelo localmente em %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=Não é possível guardar a mensagem nas pastas locais. Possivelmente não tem espaço de armazenamento de ficheiro.
+
+## LOCALIZATION NOTE(errorCloudFileAuth.message):
+## %1$S is the name of the online storage service against which the authentication failed.
+errorCloudFileAuth.message=Não foi possível autenticar com %1$S.
+errorCloudFileUpload.title=Erro ao carregar
+
+## 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=Não foi possível carregar %2$S para %1$S.
+errorCloudFileQuota.title=Erro de quota
+
+## 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=Se carregar %2$S para %1$S, excede a sua quota de espaço.
+
+errorCloudFileLimit.title=Erro no tamanho do ficheiro
+
+## 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 excede o tamanho máximo de %1$S.
+errorCloudFileOther.title=Erro desconhecido
+
+## LOCALIZATION NOTE(errorCloudFileOther.message):
+## %1$S is the name of the online storage service that cannot be communicated with.
+errorCloudFileOther.message=Ocorreu um erro desconhecido ao comunicar com %1$S.
+errorCloudFileDeletion.title=Erro ao apagar
+
+## 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=Ocorreu um problema ao apagar %2$S de %1$S.
+errorCloudFileUpgrade.label=Atualizar
+
+## 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=Não mostrar novamente
+replaceButton.label=Substituir…
+replaceButton.accesskey=x
+replaceButton.tooltip=Mostrar o diálogo Localizar e substituir
+
+## LOCALIZATION NOTE(blockedAllowResource): %S is the URL to load.
+blockedAllowResource=Desbloquear %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=O %S bloqueou o carregamento de um ficheiro para esta mensagem. Se desbloquear o ficheiro, este será incluído na mensagem enviada.;O %S bloqueou o carregamento de alguns ficheiro para esta mensagem. Se desbloquear os ficheiros, estes será incluídos na mensagem enviada.
+
+blockedContentPrefLabel=Opções
+blockedContentPrefAccesskey=O
+
+blockedContentPrefLabelUnix=Preferências
+blockedContentPrefAccesskeyUnix=P
+
+## Recipient pills fields.
+## LOCALIZATION NOTE(confirmRemoveRecipientRowTitle2): %S will be replaced with the field name.
+confirmRemoveRecipientRowTitle2=Remover %S endereços
+## LOCALIZATION NOTE(confirmRemoveRecipientRowBody2): %S will be replaced with the field name.
+confirmRemoveRecipientRowBody2=Tem a certeza que pretende remover %S endereços?
+confirmRemoveRecipientRowButton=Remover
+
+## LOCALIZATION NOTE headersSpaceStyle is for aligning label of a newly create recipient row.
+## It should be larger than the largest Header label and identical to &headersSpace2.style;
+headersSpaceStyle=width: 8em
+
+## LOCALIZATION NOTE (smtpTooManyRecipients): argument %s is the Outgoing server (SMTP) response
+smtpTooManyRecipients=The message was not sent due to exceeding the allowed number of recipients. The server responded: %s.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/editor.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/editor.properties
new file mode 100644
index 0000000000..1adf700650
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/editor.properties
@@ -0,0 +1,208 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE FILE: embedded "\n" represent HTML breaks (<br>)
+# Don't translate embedded "\n".
+# Don't translate strings like this: %variable%
+# as they will be replaced using JavaScript
+#
+No=Não
+Save=Guardar
+More=Mais
+Less=Menos
+MoreProperties=Mais propriedades
+FewerProperties=Menos propriedades
+PropertiesAccessKey=p
+None=Nenhum
+none=nenhum
+OpenHTMLFile=Abrir ficheiro HTML
+OpenTextFile=Abrir ficheiro de texto
+SelectImageFile=Selecionar ficheiro de imagem
+SaveDocument=Guardar página
+SaveDocumentAs=Guardar página como
+SaveTextAs=Guardar texto como
+EditMode=Modo de edição
+Preview=Pré-visualizar
+Publish=Publicar
+PublishPage=Publicar página
+DontPublish=Não publicar
+SavePassword=Utilizar gestor de palavras-passe para guardar esta palavra-passe
+CorrectSpelling=(ortografia correta)
+NoSuggestedWords=(sem sugestões)
+NoMisspelledWord=Sem erros ortográficos
+CheckSpellingDone=Verificação ortográfica concluída.
+CheckSpelling=Verificação ortográfica
+InputError=Erro
+Alert=Alerta
+CantEditFramesetMsg=O compositor não pode editar framesets HTML, nem páginas com frames inline. Para framesets, tente editar a página para cada frame separadamente. Para páginas com iframes, guarde uma cópia da página e remova a etiqueta <iframe>.
+CantEditMimeTypeMsg=Não pode editar este tipo de página.
+CantEditDocumentMsg=Não pode editar esta página por uma razão desconhecida.
+BeforeClosing=antes de fechar
+BeforePreview=antes de abrir no navegador
+BeforeValidate=antes de validar o documento
+# LOCALIZATION NOTE (SaveFilePrompt, PublishPrompt): Don't translate %title% and %reason% (this is the reason for asking user to close, such as "before closing")
+SaveFilePrompt=Guardar alterações a "%title%" %reason%?\u0020
+PublishPrompt=Guardar alterações a "%title%" %reason%?\u0020
+SaveFileFailed=Não foi possível guardar o ficheiro!
+
+# Publishing error strings:
+# LOCALIZATION NOTE Don't translate %dir% or %file% in the Publishing error strings:
+FileNotFound=%file% não encontrado.
+SubdirDoesNotExist=O subdiretório "%dir%" não existe neste local ou o ficheiro "%file%" está a ser usado por outro subdiretório.
+FilenameIsSubdir=O ficheiro "%file%" está a ser usado por outro subdiretório.
+ServerNotAvailable=O servidor não está disponível. Verifique a sua ligação e tente novamente.
+Offline=Atualmente, está no modo offline. Clique no ícone junto ao canto inferior direito de qualquer janela para o alternar.
+DiskFull=Não existe espaço em disco suficiente para guardar o ficheiro "%file%."
+NameTooLong=O nome do ficheiro ou subdiretório é muito longo.
+AccessDenied=Não tem permissão para publicar nesta localização.
+UnknownPublishError=Ocorreu um erro de publicação desconhecido.
+PublishFailed=Erro ao publicar.
+PublishCompleted=Publicação concluída.
+AllFilesPublished=Todos os ficheiros publicados
+# LOCALIZATION NOTE Don't translate %x% or %total%
+FailedFileMsg=%x% de %total% ficheiros não foram publicados.
+# End-Publishing error strings
+Prompt=Confirmação
+# LOCALIZATION NOTE (PromptFTPUsernamePassword): Don't translate %host%
+PromptFTPUsernamePassword=Introduza o nome de utilizador e a palavra-passe para o servidor FTP %host%
+RevertCaption=Reverter para último guardado
+Revert=Reverter
+SendPageReason=antes de enviar esta página
+Send=Enviar
+## LOCALIZATION NOTE (PublishProgressCaption, PublishToSite, AbandonChanges): Don't translate %title%
+PublishProgressCaption=A publicar: %title%
+PublishToSite=A publicar no site: %title%
+AbandonChanges=Ignorar alterações não guardadas em "%title%" e recarregar página?
+DocumentTitle=Título da página
+NeedDocTitle=Introduza um título para a página atual.
+DocTitleHelp=Isto identifica a página no título da janela e marcadores.
+CancelPublishTitle=Cancelar publicação?
+## LOCALIZATION NOTE: "Continue" in this sentence must match the text for
+## the CancelPublishContinue key below
+CancelPublishMessage=Se cancelar a publicação, podem ocorrer erros inesperados. Deseja continuar ou cancelar a operação?
+CancelPublishContinue=Continuar
+MissingImageError=Introduza ou escolha uma imagem do tipo gif, jpg, ou png.
+EmptyHREFError=Escolha o local para criar a nova ligação.
+LinkText=Texto da ligação
+LinkImage=Imagem da ligação
+MixedSelection=[Seleção mista]
+Mixed=(mista)
+# LOCALIZATION NOTE (NotInstalled): %S is the name of the font
+NotInstalled=%S (não instalado)
+EnterLinkText=Introduza o texto da ligação:
+EnterLinkTextAccessKey=t
+EmptyLinkTextError=Introduza o texto para esta ligação.
+EditTextWarning=Isto irá substituir o conteúdo atual.
+#LOCALIZATION NOTE (ValidateNumber):Don't translate: %n% %min% %max%
+ValidateRangeMsg=O número introduzido (%n%) está fora dos limites permitidos.
+ValidateNumberMsg=Por favor introduza um número entre %min% e %max%.
+MissingAnchorNameError=Por favor introduza um nome para esta ligação.
+#LOCALIZATION NOTE (DuplicateAnchorNameError): Don't translate %name%
+DuplicateAnchorNameError="%name%" já existe nesta página. Por favor introduza um nome diferente.
+BulletStyle=Estilo de marcas
+SolidCircle=Círculo sólido
+OpenCircle=Círculo aberto
+SolidSquare=Quadrado sólido
+NumberStyle=Estilo de numeração
+Automatic=Automático
+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=pixeis
+Percent=percentagem
+PercentOfCell=% da célula
+PercentOfWindow=% da janela
+PercentOfTable=% da tabela
+#LOCALIZATION NOTE (untitledTitle): %S is the window #. No plural handling needed.
+untitledTitle=sem nome-%S
+untitledDefaultFilename=sem título
+ShowToolbar=Mostrar barra de ferramentas
+HideToolbar=Ocultar barra de ferramentas
+ImapError=Não foi possível carregar a imagem\u0020
+ImapCheck=\nPor favor selecione um novo endereço (URL) e tente novamente.
+SaveToUseRelativeUrl=Os URL relativos só podem ser usados em páginas guardadas
+NoNamedAnchorsOrHeadings=(Não existem âncoras ou cabeçalhos nesta página)
+TextColor=Cor do texto
+HighlightColor=Cor de realce
+PageColor=Cor de fundo da página
+BlockColor=Cor de fundo do bloco
+TableColor=Cor de fundo da tabela
+CellColor=Cor de fundo da célula
+TableOrCellColor=Cor da tabela ou célula
+LinkColor=Cor do texto das ligações
+ActiveLinkColor=Cor da ligação ativa
+VisitedLinkColor=Cor de ligação visitada
+NoColorError=Clique sobre uma cor ou introduza uma cadeia de cor HTML válida
+Table=Tabela
+TableCell=Célula de tabela
+NestedTable=Tabela em cascata
+HLine=Linha horizontal
+Link=Ligação
+Image=Imagem
+ImageAndLink=Imagem e ligação
+NamedAnchor=Âncora com nome
+List=Lista
+ListItem=Item de lista
+Form=Formulário
+InputTag=Campo de formulário
+InputImage=Imagem de formulário
+TextArea=Área de texto
+Select=Lista de seleção
+Button=Botão
+Label=Etiqueta
+FieldSet=Conjunto de campos
+Tag=Etiqueta
+MissingSiteNameError=Por favor introduza um nome para este site de publicação.
+MissingPublishUrlError=Por favor Iitroduza um local para publicar esta página.
+MissingPublishFilename=Por favor introduza o nome de ficheiro da página atual.
+#LOCALIZATION NOTE (DuplicateSiteNameError): Don't translate %name%
+DuplicateSiteNameError="%name%" já existe. Por favor indique um nome de site diferente.
+AdvancedProperties=Propriedades avançadas…
+AdvancedEditForCellMsg=A edição avançada não está disponível quando tem várias células selecionadas
+# LOCALIZATION NOTE (ObjectProperties):Don't translate "%obj%" it will be replaced with one of above object nouns
+ObjectProperties=Propriedades de %obj%…
+# LOCALIZATION NOTE This character must be in the above string and not conflict with other accesskeys in Format menu
+ObjectPropertiesAccessKey=o
+# LOCALIZATION NOTE (JoinSelectedCells): This variable should contain the "tableJoinCells.accesskey"
+# letter as defined in editorOverlay.dtd
+JoinSelectedCells=Juntar células selecionadas
+# LOCALIZATION NOTE (JoinCellToRight): This variable should contain the "tableJoinCells.accesskey"
+# letter as defined in editorOverlay.dtd
+JoinCellToRight=Juntar com célula à direita
+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=Apagar
+DeleteCells=Apagar células
+DeleteTableTitle=Apagar linhas ou colunas
+DeleteTableMsg=Reduzir o número de linhas ou colunas elimina as células e os respetivos conteúdos. Tem a certeza que pretende continuar?
+Clear=Limpar
+#Mouse actions
+Click=Clique
+Drag=Arrasto
+Unknown=Desconhecido
+#
+# LOCALIZATION NOTE "RemoveTextStylesAccesskey" is used for both
+# menu items: "RemoveTextStyles" and "StopTextStyles"
+RemoveTextStylesAccesskey=x
+RemoveTextStyles=Remover todos os estilos de texto
+StopTextStyles=Descontinuar estilos de texto
+#
+# LOCALIZATION NOTE "RemoveLinksAccesskey" is used for both
+# menu items: "RemoveLinks" and "StopLinks"
+RemoveLinksAccesskey=i
+RemoveLinks=Remover ligações
+StopLinks=Descontinuar ligação
+#
+NoFormAction=Deve indicar uma ação para este formulário. Estes formulários são uma técnica avançada que pode não funcionar corretamente em todos os navegadores.
+NoAltText=Se a imagem é relevante para o conteúdo do documento, deve indicar um texto alternativo, que será mostrado em navegadores de texto, e que irá ser mostrada noutros navegadores enquanto a imagem é carregada ou quando o carregamento de imagens está inativo.
+#
+Malformed=A fonte não pode ser convertida para o documento porque não é um XHTML válido.
+NoLinksToCheck=Não existem elementos com ligações a verificar
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/editorOverlay.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/editorOverlay.dtd
new file mode 100644
index 0000000000..c7ee0f6bad
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/editorOverlay.dtd
@@ -0,0 +1,303 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Attn: Localization - some of the menus in this dialog directly affect mail also. -->
+
+<!-- Edit menu items -->
+<!ENTITY pasteNoFormatting.label "Colar sem formatação">
+<!ENTITY pasteNoFormatting.accesskey "o">
+<!ENTITY pasteNoFormatting.key "V">
+<!ENTITY pasteAsQuotationCmd.label "Colar como citação">
+<!ENTITY pasteAsQuotationCmd.accesskey "m">
+
+<!-- Insert menu items -->
+<!ENTITY insertMenu.label "Inserir">
+<!ENTITY insertMenu.accesskey "I">
+<!ENTITY insertLinkCmd2.label "Ligação…">
+<!ENTITY insertLinkCmd2.accesskey "L">
+<!ENTITY insertLinkCmd2.key "K">
+<!ENTITY insertAnchorCmd.label "Âncora com nome…">
+<!ENTITY insertAnchorCmd.accesskey "a">
+<!ENTITY insertImageCmd.label "Imagem…">
+<!ENTITY insertImageCmd.accesskey "I">
+<!ENTITY insertHLineCmd.label "Linha horizontal">
+<!ENTITY insertHLineCmd.accesskey "o">
+<!ENTITY insertTableCmd.label "Tabela…">
+<!ENTITY insertTableCmd.accesskey "T">
+<!ENTITY insertHTMLCmd.label "HTML…">
+<!ENTITY insertHTMLCmd.accesskey "H">
+<!ENTITY insertMathCmd.label "Math…">
+<!ENTITY insertMathCmd.accesskey "M">
+<!ENTITY insertCharsCmd.label "Caracteres e símbolos…">
+<!ENTITY insertCharsCmd.accesskey "C">
+<!ENTITY insertBreakAllCmd.label "Quebra abaixo da(s) imagem(s)">
+<!ENTITY insertBreakAllCmd.accesskey "Q">
+
+<!-- Used just in context popup. -->
+<!ENTITY createLinkCmd.label "Criar ligação…">
+<!ENTITY createLinkCmd.accesskey "C">
+<!ENTITY editLinkCmd.label "Editar ligação num novo compositor">
+<!ENTITY editLinkCmd.accesskey "i">
+
+<!-- Font Face SubMenu -->
+<!ENTITY FontFaceSelect.tooltip "Escolha um tipo de letra">
+<!ENTITY fontfaceMenu.label "Tipo de letra">
+<!ENTITY fontfaceMenu.accesskey "l">
+<!ENTITY fontVarWidth.label "Largura variável">
+<!ENTITY fontVarWidth.accesskey "v">
+<!ENTITY fontFixedWidth.label "Largura fixa">
+<!ENTITY fontFixedWidth.accesskey "f">
+<!ENTITY fontFixedWidth.key "t">
+<!ENTITY fontHelvetica.label "Helvética, Arial">
+<!ENTITY fontHelvetica.accesskey "l">
+<!ENTITY fontTimes.label "Times">
+<!ENTITY fontTimes.accesskey "T">
+<!ENTITY fontCourier.label "Courier">
+<!ENTITY fontCourier.accesskey "C">
+
+<!-- Font Size SubMenu -->
+<!ENTITY FontSizeSelect.tooltip "Escolha o tamanho do tipo de letra">
+<!ENTITY decreaseFontSize.label "Menor">
+<!ENTITY decreaseFontSize.accesskey "e">
+<!ENTITY decrementFontSize.key "&lt;">
+<!ENTITY decrementFontSize.key2 ","> <!-- < is above this key on many keyboards -->
+<!ENTITY increaseFontSize.label "Maior">
+<!ENTITY increaseFontSize.accesskey "a">
+<!ENTITY incrementFontSize.key "&gt;">
+<!ENTITY incrementFontSize.key2 "."> <!-- > is above this key on many keyboards -->
+
+<!ENTITY fontSizeMenu.label "Tamanho">
+<!ENTITY fontSizeMenu.accesskey "T">
+<!ENTITY size-tinyCmd.label "Minúscula">
+<!ENTITY size-tinyCmd.accesskey "M">
+<!ENTITY size-smallCmd.label "Pequena">
+<!ENTITY size-smallCmd.accesskey "P">
+<!ENTITY size-mediumCmd.label "Média">
+<!ENTITY size-mediumCmd.accesskey "M">
+<!ENTITY size-largeCmd.label "Grande">
+<!ENTITY size-largeCmd.accesskey "G">
+<!ENTITY size-extraLargeCmd.label "Extra grande">
+<!ENTITY size-extraLargeCmd.accesskey "x">
+<!ENTITY size-hugeCmd.label "Enorme">
+<!ENTITY size-hugeCmd.accesskey "E">
+
+<!-- Font Style SubMenu -->
+<!ENTITY fontStyleMenu.label "Estilo do texto">
+<!ENTITY fontStyleMenu.accesskey "s">
+<!ENTITY styleBoldCmd.label "Negrito">
+<!ENTITY styleBoldCmd.accesskey "N">
+<!ENTITY styleBoldCmd.key "B">
+<!ENTITY styleItalicCmd.label "Itálico">
+<!ENTITY styleItalicCmd.accesskey "I">
+<!ENTITY styleItalicCmd.key "i">
+<!ENTITY styleUnderlineCmd.label "Sublinhado">
+<!ENTITY styleUnderlineCmd.accesskey "u">
+<!ENTITY styleUnderlineCmd.key "u">
+<!ENTITY styleStrikeThruCmd.label "Rasurado">
+<!ENTITY styleStrikeThruCmd.accesskey "a">
+<!ENTITY styleSuperscriptCmd.label "Sobrescrito">
+<!ENTITY styleSuperscriptCmd.accesskey "b">
+<!ENTITY styleSubscriptCmd.label "Subscrito">
+<!ENTITY styleSubscriptCmd.accesskey "c">
+<!ENTITY styleNonbreakingCmd.label "Sem quebra">
+<!ENTITY styleNonbreakingCmd.accesskey "q">
+<!ENTITY styleEm.label "Ênfase">
+<!ENTITY styleEm.accesskey "e">
+<!ENTITY styleStrong.label "Ênfase forte">
+<!ENTITY styleStrong.accesskey "t">
+<!ENTITY styleCite.label "Citação">
+<!ENTITY styleCite.accesskey "C">
+<!ENTITY styleAbbr.label "Abreviatura">
+<!ENTITY styleAbbr.accesskey "A">
+<!ENTITY styleAcronym.label "Acrónimo">
+<!ENTITY styleAcronym.accesskey "r">
+<!ENTITY styleCode.label "Código">
+<!ENTITY styleCode.accesskey "g">
+<!ENTITY styleSamp.label "Amostra de saída">
+<!ENTITY styleSamp.accesskey "m">
+<!ENTITY styleVar.label "Variável">
+<!ENTITY styleVar.accesskey "v">
+
+<!ENTITY formatFontColor.label "Cor do texto…">
+<!ENTITY formatFontColor.accesskey "C">
+<!ENTITY tableOrCellColor.label "Cor de fundo da tabela ou célula…">
+<!ENTITY tableOrCellColor.accesskey "C">
+
+<!ENTITY formatRemoveStyles.key "y">
+<!ENTITY formatRemoveLinks.key "K">
+<!ENTITY formatRemoveNamedAnchors.label "Remover âncoras">
+<!ENTITY formatRemoveNamedAnchors.accesskey "R">
+<!ENTITY formatRemoveNamedAnchors2.key "R">
+
+<!ENTITY paragraphMenu.label "Parágrafo">
+<!ENTITY paragraphMenu.accesskey "P">
+<!ENTITY paragraphParagraphCmd.label "Parágrafo">
+<!ENTITY paragraphParagraphCmd.accesskey "P">
+<!ENTITY heading1Cmd.label "Título 1">
+<!ENTITY heading1Cmd.accesskey "1">
+<!ENTITY heading2Cmd.label "Título 2">
+<!ENTITY heading2Cmd.accesskey "2">
+<!ENTITY heading3Cmd.label "Título 3">
+<!ENTITY heading3Cmd.accesskey "3">
+<!ENTITY heading4Cmd.label "Título 4">
+<!ENTITY heading4Cmd.accesskey "4">
+<!ENTITY heading5Cmd.label "Título 5">
+<!ENTITY heading5Cmd.accesskey "5">
+<!ENTITY heading6Cmd.label "Título 6">
+<!ENTITY heading6Cmd.accesskey "6">
+<!ENTITY paragraphAddressCmd.label "Endereço">
+<!ENTITY paragraphAddressCmd.accesskey "E">
+<!ENTITY paragraphPreformatCmd.label "Pré-formatado">
+<!ENTITY paragraphPreformatCmd.accesskey "f">
+
+<!-- List menu items -->
+<!ENTITY formatlistMenu.label "Lista">
+<!ENTITY formatlistMenu.accesskey "L">
+<!ENTITY noneCmd.label "Nenhuma">
+<!ENTITY noneCmd.accesskey "N">
+<!ENTITY listBulletCmd.label "Marcas">
+<!ENTITY listBulletCmd.accesskey "a">
+<!ENTITY listNumberedCmd.label "Numerada">
+<!ENTITY listNumberedCmd.accesskey "m">
+<!ENTITY listTermCmd.label "Termo">
+<!ENTITY listTermCmd.accesskey "T">
+<!ENTITY listDefinitionCmd.label "Definição">
+<!ENTITY listDefinitionCmd.accesskey "D">
+<!ENTITY listPropsCmd.label "Propriedades da lista…">
+<!ENTITY listPropsCmd.accesskey "l">
+
+<!ENTITY ParagraphSelect.tooltip "Escolha um formato de parágrafo">
+<!-- Shared in Paragraph, and Toolbar menulist -->
+<!ENTITY bodyTextCmd.label "Corpo do texto">
+<!ENTITY bodyTextCmd.accesskey "t">
+
+<!-- Align menu items -->
+<!ENTITY alignMenu.label "Alinhar">
+<!ENTITY alignMenu.accesskey "a">
+<!ENTITY alignLeft.label "Esquerda">
+<!ENTITY alignLeft.accesskey "E">
+<!ENTITY alignLeft.tooltip "Alinhar à esquerda">
+<!ENTITY alignCenter.label "Centro">
+<!ENTITY alignCenter.accesskey "C">
+<!ENTITY alignCenter.tooltip "Alinhar ao centro">
+<!ENTITY alignRight.label "Direita">
+<!ENTITY alignRight.accesskey "D">
+<!ENTITY alignRight.tooltip "Alinhar à direita">
+<!ENTITY alignJustify.label "Justificar">
+<!ENTITY alignJustify.accesskey "J">
+<!ENTITY alignJustify.tooltip "Alinhar justificado">
+
+<!ENTITY increaseIndent.label "Aumentar avanço">
+<!ENTITY increaseIndent.accesskey "A">
+<!ENTITY increaseIndent.key "]">
+<!ENTITY decreaseIndent.label "Diminuir avanço">
+<!ENTITY decreaseIndent.accesskey "D">
+<!ENTITY decreaseIndent.key "[">
+
+<!ENTITY colorsAndBackground.label "Cores e fundo da página…">
+<!ENTITY colorsAndBackground.accesskey "u">
+
+<!-- Table Menu -->
+<!ENTITY tableMenu.label "Tabela">
+<!ENTITY tableMenu.accesskey "b">
+
+<!-- Select Submenu -->
+<!ENTITY tableSelectMenu.label "Selecionar">
+<!ENTITY tableSelectMenu.accesskey "S">
+
+<!ENTITY tableSelectMenu2.label "Selecionar tabela">
+<!ENTITY tableSelectMenu2.accesskey "S">
+<!ENTITY tableInsertMenu2.label "Inserir tabela">
+<!ENTITY tableInsertMenu2.accesskey "I">
+<!ENTITY tableDeleteMenu2.label "Apagar tabela">
+<!ENTITY tableDeleteMenu2.accesskey "A">
+
+<!-- Insert SubMenu -->
+<!ENTITY tableInsertMenu.label "Inserir">
+<!ENTITY tableInsertMenu.accesskey "i">
+<!ENTITY tableTable.label "Tabela">
+<!ENTITY tableTable.accesskey "T">
+<!ENTITY tableRow.label "Linha">
+<!ENTITY tableRows.label "Linha(s)">
+<!ENTITY tableRow.accesskey "L">
+<!ENTITY tableRowAbove.label "Linha acima">
+<!ENTITY tableRowAbove.accesskey "c">
+<!ENTITY tableRowBelow.label "Linha abaixo">
+<!ENTITY tableRowBelow.accesskey "b">
+<!ENTITY tableColumn.label "Coluna">
+<!ENTITY tableColumns.label "Coluna(s)">
+<!ENTITY tableColumn.accesskey "o">
+<!ENTITY tableColumnBefore.label "Coluna à esquerda">
+<!ENTITY tableColumnBefore.accesskey "a">
+<!ENTITY tableColumnAfter.label "Coluna à direita">
+<!ENTITY tableColumnAfter.accesskey "d">
+<!ENTITY tableCell.label "Célula">
+<!ENTITY tableCells.label "Célula(s)">
+<!ENTITY tableCell.accesskey "C">
+<!ENTITY tableCellContents.label "Conteúdo da célula">
+<!ENTITY tableCellContents.accesskey "n">
+<!ENTITY tableAllCells.label "Todas as células">
+<!ENTITY tableAllCells.accesskey "T">
+<!ENTITY tableCellBefore.label "Célula à esquerda">
+<!ENTITY tableCellBefore.accesskey "C">
+<!ENTITY tableCellAfter.label "Célula à direita">
+<!ENTITY tableCellAfter.accesskey "e">
+<!-- Delete SubMenu -->
+<!ENTITY tableDeleteMenu.label "Apagar">
+<!ENTITY tableDeleteMenu.accesskey "A">
+
+<!-- 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 "Dividir célula">
+<!ENTITY tableSplitCell.accesskey "c">
+<!ENTITY convertToTable.label "Criar tabela da seleção">
+<!ENTITY convertToTable.accesskey "r">
+<!ENTITY tableProperties.label "Propriedades da tabela…">
+<!ENTITY tableProperties.accesskey "o">
+
+<!ENTITY imageToolbarCmd.label "Imagem">
+<!ENTITY imageToolbarCmd.tooltip "Inserir nova imagem ou editar as propriedades das imagens selecionadas">
+<!ENTITY hruleToolbarCmd.label "Linha horizontal">
+<!ENTITY hruleToolbarCmd.tooltip "Inserir linha horizontal ou editar as propriedades da linhas selecionadas">
+<!ENTITY tableToolbarCmd.label "Tabela">
+<!ENTITY tableToolbarCmd.tooltip "Inserir nova tabela ou editar as propriedades das tabelas selecionadas">
+<!ENTITY linkToolbarCmd.label "Ligação">
+<!ENTITY linkToolbarCmd.tooltip "Inserir nova ligação ou editar as propriedades da ligação selecionada">
+<!ENTITY anchorToolbarCmd.label "Âncora">
+<!ENTITY anchorToolbarCmd.tooltip "Inserir nova âncora ou editar as propriedades das âncoras selecionadas">
+<!ENTITY TextColorButton.tooltip "Escolha a cor do texto">
+<!ENTITY BackgroundColorButton.tooltip "Escolha a cor para o fundo">
+
+<!-- Editor toolbar -->
+<!ENTITY absoluteFontSizeToolbarCmd.tooltip "Definir tamanho da letra">
+<!ENTITY decreaseFontSizeToolbarCmd.tooltip "Diminuir tamanho da letra">
+<!ENTITY increaseFontSizeToolbarCmd.tooltip "Aumentar tamanho da letra">
+<!ENTITY boldToolbarCmd.tooltip "Negrito">
+<!ENTITY italicToolbarCmd.tooltip "Itálico">
+<!ENTITY underlineToolbarCmd.tooltip "Sublinhado">
+<!ENTITY bulletListToolbarCmd.tooltip "Aplicar ou remover lista com marcas">
+<!ENTITY numberListToolbarCmd.tooltip "Aplicar ou remover lista numerada">
+<!ENTITY outdentToolbarCmd.tooltip "Recuar texto (mover para a esquerda)">
+<!ENTITY indentToolbarCmd.tooltip "Avançar texto (mover para a direita)">
+<!ENTITY AlignPopupButton.tooltip "Escolha o alinhamento do texto">
+<!ENTITY InsertPopupButton.tooltip "Inserir ligação, âncora, imagem, linha horizontal ou tabela">
+<!ENTITY alignLeftButton.tooltip "Alinhar o texto à margem esquerda">
+<!ENTITY alignCenterButton.tooltip "Alinhar o texto ao centro">
+<!ENTITY alignRightButton.tooltip "Alinhar o texto à margem direita">
+<!ENTITY alignJustifyButton.tooltip "Alinhar o texto à margem direita e esquerda">
+
+<!-- TOC manipulation -->
+<!ENTITY insertTOC.label "Inserir">
+<!ENTITY insertTOC.accesskey "i">
+<!ENTITY updateTOC.label "Atualizar">
+<!ENTITY updateTOC.accesskey "a">
+<!ENTITY removeTOC.label "Remover">
+<!ENTITY removeTOC.accesskey "r">
+<!ENTITY tocMenu.label "Índice…">
+<!ENTITY tocMenu.accesskey "n">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/mailComposeEditorOverlay.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/mailComposeEditorOverlay.dtd
new file mode 100644
index 0000000000..eedf17531f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Anexar esta imagem à mensagem">
+<!ENTITY attachImageSource.accesskey "s">
+
+<!ENTITY attachLinkSource.label "Anexar origem desta ligação à mensagem">
+<!ENTITY attachLinkSource.accesskey "a">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/messengercompose.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/messengercompose.dtd
new file mode 100644
index 0000000000..84b474e57a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/messengercompose.dtd
@@ -0,0 +1,306 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE messengercompose.dtd Main UI for message composition -->
+<!ENTITY msgComposeWindow.title "Escrever: (sem assunto)">
+
+<!-- File Menu -->
+<!ENTITY fileMenu.label "Ficheiro">
+<!ENTITY fileMenu.accesskey "F">
+<!ENTITY newMenu.label "Novo">
+<!ENTITY newMenu.accesskey "N">
+<!ENTITY newMessage.label "Mensagem">
+<!ENTITY newMessage.accesskey "M">
+<!ENTITY newMessageCmd2.key "N">
+<!ENTITY newContact.label "Contacto do livro de endereços...">
+<!ENTITY newContact.accesskey "C">
+<!ENTITY attachMenu.label "Anexar">
+<!ENTITY attachMenu.accesskey "x">
+<!ENTITY attachCloudCmd.label "Filelink">
+<!ENTITY attachCloudCmd.accesskey "i">
+<!ENTITY attachPageCmd.label "Página web…">
+<!ENTITY attachPageCmd.accesskey "w">
+<!ENTITY remindLater.label "Lembrar mais tarde">
+<!ENTITY remindLater.accesskey "L">
+<!ENTITY closeCmd.label "Fechar">
+<!ENTITY closeCmd.key "w">
+<!ENTITY closeCmd.accesskey "c">
+<!ENTITY saveCmd.label "Guardar">
+<!ENTITY saveCmd.key "S">
+<!ENTITY saveCmd.accesskey "G">
+<!ENTITY saveAsCmd.label "Guardar como">
+<!ENTITY saveAsCmd.accesskey "a">
+<!ENTITY saveAsFileCmd.label "Ficheiro...">
+<!ENTITY saveAsFileCmd.accesskey "F">
+<!ENTITY saveAsDraftCmd.label "Rascunho">
+<!ENTITY saveAsDraftCmd.accesskey "R">
+<!ENTITY saveAsTemplateCmd.label "Modelo">
+<!ENTITY saveAsTemplateCmd.accesskey "M">
+<!ENTITY sendNowCmd.label "Enviar agora">
+<!ENTITY sendCmd.keycode "VK_RETURN">
+<!ENTITY sendNowCmd.accesskey "v">
+<!ENTITY sendLaterCmd.label "Enviar mais tarde">
+<!ENTITY sendLaterCmd.keycode "VK_RETURN">
+<!ENTITY sendLaterCmd.accesskey "m">
+<!ENTITY printCmd.label "Imprimir...">
+<!ENTITY printCmd.key "p">
+<!ENTITY printCmd.accesskey "I">
+
+<!-- Edit Menu -->
+<!ENTITY editMenu.label "Editar">
+<!ENTITY editMenu.accesskey "E">
+<!ENTITY undoCmd.label "Desfazer">
+<!ENTITY undoCmd.key "z">
+<!ENTITY undoCmd.accesskey "u">
+<!ENTITY redoCmd.label "Refazer">
+<!ENTITY redoCmd.key "y">
+<!ENTITY redoCmd.accesskey "r">
+<!ENTITY cutCmd.key "X">
+<!ENTITY copyCmd.key "C">
+<!ENTITY pasteCmd.key "V">
+<!ENTITY pasteNoFormattingCmd.key "V">
+<!ENTITY pasteAsQuotationCmd.key "o">
+<!ENTITY editRewrapCmd.accesskey "n">
+<!ENTITY deleteCmd.label "Apagar">
+<!ENTITY deleteCmd.accesskey "A">
+<!ENTITY editRewrapCmd.label "Encapsular novamente">
+<!ENTITY editRewrapCmd.key "R">
+<!ENTITY renameAttachmentCmd.label "Mudar nome do anexo...">
+<!ENTITY renameAttachmentCmd.accesskey "e">
+<!ENTITY reorderAttachmentsCmd.label "Reordenar anexos…">
+<!ENTITY reorderAttachmentsCmd.accesskey "s">
+<!ENTITY reorderAttachmentsCmd.key "x">
+<!ENTITY selectAllCmd.accesskey "a">
+<!ENTITY findBarCmd.label "Localizar…">
+<!ENTITY findBarCmd.accesskey "z">
+<!ENTITY findBarCmd.key "F">
+<!ENTITY findReplaceCmd.label "Localizar e substituir…">
+<!ENTITY findReplaceCmd.accesskey "c">
+<!ENTITY findReplaceCmd.key "H">
+<!ENTITY findAgainCmd.label "Localizar novamente">
+<!ENTITY findAgainCmd.accesskey "n">
+<!ENTITY findAgainCmd.key "G">
+<!ENTITY findAgainCmd.key2 "VK_F3">
+<!ENTITY findPrevCmd.label "Localizar anterior">
+<!ENTITY findPrevCmd.accesskey "t">
+<!ENTITY findPrevCmd.key "G">
+<!ENTITY findPrevCmd.key2 "VK_F3">
+
+<!-- Reorder Attachment Panel -->
+<!ENTITY reorderAttachmentsPanel.label "Reordenar anexos">
+<!ENTITY moveAttachmentBundleUpPanelBtn.label "Mover junto">
+
+<!-- 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 "Ordenar: A - Z">
+<!ENTITY sortAttachmentsPanelBtn.Sort.ZA.label "Ordenar: 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 "Ordenar seleção: A - Z">
+<!ENTITY sortAttachmentsPanelBtn.SortSelection.ZA.label "Ordenar seleção: Z - A">
+<!ENTITY sortAttachmentsPanelBtn.key "y">
+
+<!-- View Menu -->
+<!ENTITY viewMenu.label "Ver">
+<!ENTITY viewMenu.accesskey "V">
+<!ENTITY viewToolbarsMenuNew.label "Barras de ferramentas">
+<!ENTITY viewToolbarsMenuNew.accesskey "t">
+<!ENTITY menubarCmd.label "Barra de menu">
+<!ENTITY menubarCmd.accesskey "m">
+<!ENTITY showCompositionToolbarCmd.label "Barra de composição">
+<!ENTITY showCompositionToolbarCmd.accesskey "o">
+<!ENTITY showFormattingBarCmd.label "Barra de formatação">
+<!ENTITY showFormattingBarCmd.accesskey "f">
+<!ENTITY showTaskbarCmd.label "Barra de estado">
+<!ENTITY showTaskbarCmd.accesskey "s">
+<!ENTITY customizeToolbar.label "Personalizar...">
+<!ENTITY customizeToolbar.accesskey "P">
+
+<!ENTITY addressSidebar.label "Painel de contactos">
+<!ENTITY addressSidebar.accesskey "o">
+
+<!-- Format Menu -->
+<!ENTITY formatMenu.label "Formatar">
+<!ENTITY formatMenu.accesskey "o">
+
+<!-- Options Menu -->
+<!ENTITY optionsMenu.label "Opções">
+<!ENTITY optionsMenu.accesskey "p">
+<!ENTITY checkSpellingCmd2.label "Verificar ortografia...">
+<!ENTITY checkSpellingCmd2.key "p">
+<!ENTITY checkSpellingCmd2.key2 "VK_F7">
+<!ENTITY checkSpellingCmd2.accesskey "o">
+<!ENTITY enableInlineSpellChecker.label "Verificar ortografia ao escrever">
+<!ENTITY enableInlineSpellChecker.accesskey "e">
+<!ENTITY quoteCmd.label "Citar mensagem">
+<!ENTITY quoteCmd.accesskey "C">
+
+<!--LOCALIZATION NOTE attachVCard.label Don't translate the term 'vCard' -->
+<!ENTITY attachVCard.label "Anexar vCard">
+<!ENTITY attachVCard.accesskey "v">
+
+<!ENTITY returnReceiptMenu.label "Recibo de leitura">
+<!ENTITY returnReceiptMenu.accesskey "t">
+<!ENTITY dsnMenu.label "Notificação de entrega">
+<!ENTITY dsnMenu.accesskey "N">
+<!ENTITY priorityMenu.label "Prioridade">
+<!ENTITY priorityMenu.accesskey "P">
+<!ENTITY priorityButton.title "Prioridade">
+<!ENTITY priorityButton.tooltiptext "Alterar prioridade da mensagem">
+<!ENTITY priorityButton.label "Prioridade:">
+<!ENTITY lowestPriorityCmd.label "Muito baixa">
+<!ENTITY lowestPriorityCmd.accesskey "x">
+<!ENTITY lowPriorityCmd.label "Baixa">
+<!ENTITY lowPriorityCmd.accesskey "B">
+<!ENTITY normalPriorityCmd.label "Normal">
+<!ENTITY normalPriorityCmd.accesskey "N">
+<!ENTITY highPriorityCmd.label "Alta">
+<!ENTITY highPriorityCmd.accesskey "A">
+<!ENTITY highestPriorityCmd.label "Muito alta">
+<!ENTITY highestPriorityCmd.accesskey "u">
+<!ENTITY fileCarbonCopyCmd.label "Enviar uma cópia para">
+<!ENTITY fileCarbonCopyCmd.accesskey "v">
+<!ENTITY fileHereMenu.label "Ficheiro aqui">
+
+<!-- Tools Menu -->
+<!ENTITY tasksMenu.label "Ferramentas">
+<!ENTITY tasksMenu.accesskey "t">
+<!ENTITY messengerCmd.label "Correio e grupos de notícias">
+<!ENTITY messengerCmd.accesskey "g">
+<!ENTITY messengerCmd.commandkey "1">
+<!ENTITY addressBookCmd.label "Livro de endereços">
+<!ENTITY addressBookCmd.accesskey "i">
+<!ENTITY addressBookCmd.key "B">
+<!ENTITY accountManagerCmd2.label "Definições da conta">
+<!ENTITY accountManagerCmd2.accesskey "s">
+<!ENTITY accountManagerCmdUnix2.accesskey "s">
+
+<!-- Mac OS X Window Menu -->
+<!ENTITY minimizeWindow.key "M">
+<!ENTITY minimizeWindow.label "Minimizar">
+<!ENTITY bringAllToFront.label "Trazer tudo para frente">
+<!ENTITY zoomWindow.label "Zoom">
+<!ENTITY windowMenu.label "Janela">
+
+<!-- Mail Toolbar -->
+<!ENTITY sendButton.label "Enviar">
+<!ENTITY quoteButton.label "Citar">
+<!ENTITY addressButton.label "Contactos">
+<!ENTITY spellingButton.label "Ortografia">
+<!ENTITY saveButton.label "Guardar">
+<!ENTITY printButton.label "Imprimir">
+
+<!-- Mail Toolbar Tooltips -->
+<!ENTITY sendButton.tooltip "Enviar esta mensagem agora">
+<!ENTITY sendlaterButton.tooltip "Enviar esta mensagem mais tarde">
+<!ENTITY quoteButton.tooltip "Citar mensagem anterior">
+<!ENTITY addressButton.tooltip "Selecionar um destinatário do livro de endereços">
+<!ENTITY spellingButton.tooltip "Verificar ortografia da seleção ou da mensagem">
+<!ENTITY saveButton.tooltip "Guardar esta mensagem">
+<!ENTITY cutButton.tooltip "Cortar">
+<!ENTITY copyButton.tooltip "Copiar">
+<!ENTITY pasteButton.tooltip "Colar">
+<!ENTITY printButton.tooltip "Imprimir esta mensagem">
+
+<!-- Headers -->
+<!--LOCALIZATION NOTE headersSpaces.style is for aligning the From:, To: and
+ Subject: rows. It should be larger than the largest Header label -->
+<!ENTITY headersSpace2.style "width: 8em;">
+<!ENTITY fromAddr2.label "De">
+<!ENTITY fromAddr.accesskey "D">
+<!ENTITY replyAddr2.label "Responder a">
+<!ENTITY newsgroupsAddr2.label "Grupo de notícias">
+<!ENTITY followupAddr2.label "No seguimento de">
+<!ENTITY subject2.label "Assunto">
+<!ENTITY subject.accesskey "A">
+<!ENTITY attachmentBucketCloseButton.tooltip "Ocultar painel de anexos">
+
+<!-- Format Toolbar, imported from editorAppShell.xhtml -->
+<!ENTITY SmileButton.tooltip "Inserir um ícone expressivo">
+<!ENTITY smiley1Cmd.label "Alegre">
+<!ENTITY smiley2Cmd.label "Triste">
+<!ENTITY smiley3Cmd.label "Piscadela">
+<!ENTITY smiley4Cmd.label "Língua de fora">
+<!ENTITY smiley5Cmd.label "Riso">
+<!ENTITY smiley6Cmd.label "Envergonhado">
+<!ENTITY smiley7Cmd.label "Indeciso">
+<!ENTITY smiley8Cmd.label "Surpreso">
+<!ENTITY smiley9Cmd.label "Beijos">
+<!ENTITY smiley10Cmd.label "Berro">
+<!ENTITY smiley11Cmd.label "Simpático">
+<!ENTITY smiley12Cmd.label "Dinheiro na boca">
+<!ENTITY smiley13Cmd.label "Pé na boca">
+<!ENTITY smiley14Cmd.label "Inocente">
+<!ENTITY smiley15Cmd.label "Choro">
+<!ENTITY smiley16Cmd.label "Boca fechada">
+
+<!-- Message Pane Context Menu -->
+<!ENTITY spellCheckNoSuggestions.label "Não existem sugestões">
+<!ENTITY spellCheckIgnoreWord.label "Ignorar palavra">
+<!ENTITY spellCheckIgnoreWord.accesskey "I">
+<!ENTITY spellCheckAddToDictionary.label "Adicionar ao dicionário">
+<!ENTITY spellCheckAddToDictionary.accesskey "n">
+<!ENTITY undo.label "Desfazer">
+<!ENTITY undo.accesskey "u">
+<!ENTITY cut.label "Cortar">
+<!ENTITY cut.accesskey "t">
+<!ENTITY copy.label "Copiar">
+<!ENTITY copy.accesskey "C">
+<!ENTITY paste.label "Colar">
+<!ENTITY paste.accesskey "l">
+<!ENTITY pasteQuote.label "Colar como citação">
+<!ENTITY pasteQuote.accesskey "i">
+
+<!-- Attachment Item and List Context Menus -->
+<!ENTITY openAttachment.label "Abrir">
+<!ENTITY openAttachment.accesskey "A">
+<!ENTITY delete.label "Apagar">
+<!ENTITY delete.accesskey "A">
+<!ENTITY removeAttachment.label "Remover anexo">
+<!ENTITY removeAttachment.accesskey "m">
+<!ENTITY renameAttachment.label "Renomear…">
+<!ENTITY renameAttachment.accesskey "R">
+<!ENTITY reorderAttachments.label "Reordenar anexos…">
+<!ENTITY reorderAttachments.accesskey "s">
+<!ENTITY removeAllAttachments.label "Remover todos os anexos">
+<!ENTITY removeAllAttachments.accesskey "v">
+<!ENTITY selectAll.label "Selecionar tudo">
+<!ENTITY selectAll.accesskey "a">
+<!ENTITY attachCloud.label "Filelink...">
+<!ENTITY attachCloud.accesskey "i">
+<!ENTITY convertCloud.label "Converter para...">
+<!ENTITY convertCloud.accesskey "C">
+<!ENTITY cancelUpload.label "Cancelar carregamento">
+<!ENTITY cancelUpload.accesskey "n">
+<!ENTITY convertRegularAttachment.label "Anexo normal">
+<!ENTITY convertRegularAttachment.accesskey "A">
+<!ENTITY attachPage.label "Anexar página web...">
+<!ENTITY attachPage.accesskey "w">
+
+<!-- Attachment Pane Header Bar Context Menu -->
+<!-- LOCALIZATION NOTE (initiallyShowAttachmentPane.label):
+ Should use the same wording as startExpandedCmd.label
+ in msgHdrViewOverlay.dtd. -->
+<!ENTITY initiallyShowAttachmentPane.label "Inicialmente, mostrar painel de anexos">
+<!ENTITY initiallyShowAttachmentPane.accesskey "s">
+
+<!-- Spell checker context menu items -->
+<!ENTITY spellAddDictionaries.label "Adicionar dicionários">
+<!ENTITY spellAddDictionaries.accesskey "A">
+
+<!-- Title for the address picker panel -->
+<!ENTITY addressesSidebarTitle.label "Contactos">
+
+<!-- Identity popup customize menuitem -->
+<!ENTITY customizeFromAddress.label "Personalizar endereço 'De'…">
+<!ENTITY customizeFromAddress.accesskey "a">
+
+<!-- Accessibility name for the document -->
+<!ENTITY aria.message.bodyName "Corpo da mensagem">
+
+<!-- Status Bar -->
+<!ENTITY languageStatusButton.tooltip "Idioma da verificação ortográfica">
+<!ENTITY encodingStatusPanel.tooltip "Codificação de texto">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/sendProgress.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/sendProgress.dtd
new file mode 100644
index 0000000000..5393d84915
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/sendProgress.dtd
@@ -0,0 +1,8 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!--LOCALIZATION NOTE sendProgress.dtd Main UI for Send Message Progress Dialog -->
+
+<!ENTITY sendDialog.title "A processar mensagem">
+<!ENTITY status.label "Estado:">
+<!ENTITY progress.label "Progresso:">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/sendProgress.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/sendProgress.properties
new file mode 100644
index 0000000000..df2c7f4486
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/messengercompose/sendProgress.properties
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (titleSendMsgSubject):
+# %S will be replaced by the message subject.
+titleSendMsgSubject=A enviar mensagem - %S
+titleSendMsg=A enviar mensagem
+# LOCALIZATION NOTE (titleSaveMsgSubject):
+# %S will be replaced by the message subject.
+titleSaveMsgSubject=A guardar mensagem - %S
+titleSaveMsg=A guardar mensagem
+
+# 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=A sua mensagem foi enviada.
+messageSaved=A sua mensagem foi guardada.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/migration/migration.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/migration/migration.dtd
new file mode 100644
index 0000000000..ee1eaddcf0
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/migration/migration.dtd
@@ -0,0 +1,30 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!ENTITY migrationWizard.title "Assistente de importação">
+
+<!ENTITY importFromWin.label "Opcões de importação, definições de contas, livros de endereços, filtros e outros dados a partir de:">
+<!ENTITY importFromNonWin.label "Importar preferências, definições de contas, livros de endereços, filtros e outros dados a partir de:">
+<!ENTITY importSourceNotFound.label "Não foi encontrada uma aplicação para importar os dados.">
+
+<!ENTITY importFromNothing.label "Não importar">
+<!ENTITY importFromNothing.accesskey "N">
+<!ENTITY importFromSeamonkey3.label "SeaMonkey 2 ou mais recente">
+<!ENTITY importFromSeamonkey3.accesskey "S">
+<!ENTITY importFromOutlook.label "Outlook">
+<!ENTITY importFromOutlook.accesskey "O">
+
+<!ENTITY importSource.title "Importar definições e pastas de correio">
+<!ENTITY importItems.title "Itens a importar">
+<!ENTITY importItems.label "Selecione os itens a importar:">
+
+<!ENTITY migrating.title "A importar...">
+<!ENTITY migrating.label "Os seguintes itens estão atualmente a ser importados…">
+
+<!ENTITY selectProfile.title "Selecione o perfil">
+<!ENTITY selectProfile.label "Estes perfis estão disponíveis para importação:">
+
+<!ENTITY done.title "Importação terminada">
+<!ENTITY done.label "Os seguintes itens foram importados com sucesso:">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/migration/migration.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/migration/migration.properties
new file mode 100644
index 0000000000..3d5785b7a4
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/migration/migration.properties
@@ -0,0 +1,32 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+profileName_format=%S %S
+
+# Import Sources
+1_seamonkey=Preferências
+
+1_thunderbird=Preferências
+
+2_seamonkey=Definições da conta
+2_thunderbird=Definições de contas
+2_outlook=Definições da conta
+
+4_seamonkey=Livros de endereços
+4_thunderbird=Livros de endereços
+4_outlook=Livros de endereços
+
+8_seamonkey=Dados de lixo eletrónico
+
+16_seamonkey=Palavras-passe guardadas
+
+32_seamonkey=Outros dados
+
+64_seamonkey=Pastas de grupos de notícias
+
+64_thunderbird=Pastas de grupos de notícias
+
+128_seamonkey=Pastas de correio
+128_thunderbird=Pastas de correio
+128_outlook=Pastas de correio
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mime.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mime.properties
new file mode 100644
index 0000000000..1fc3d7ddfb
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mime.properties
@@ -0,0 +1,154 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by libmime to emit header display in HTML
+#
+
+# Mail subject
+## @name MIME_MHTML_SUBJECT
+## @loc None
+1000=Assunto
+
+# Resent-Comments
+## @name MIME_MHTML_RESENT_COMMENTS
+## @loc
+1001=Comentários reenviados
+
+# Resent-Date
+## @name MIME_MHTML_RESENT_DATE
+## @loc
+1002=Reenviar-Data
+
+# Resent-Sender
+## @name MIME_MHTML_RESENT_SENDER
+## @loc
+1003=Reenviar-Remetente
+
+# Resent-From
+## @name MIME_MHTML_RESENT_FROM
+## @loc
+1004=Reenviar-De
+
+# Resent-To
+## @name MIME_MHTML_RESENT_TO
+## @loc
+1005=Reenviar-Para
+
+# Resent-CC
+## @name MIME_MHTML_RESENT_CC
+## @loc
+1006=Reenviar-CC
+
+# Date
+## @name MIME_MHTML_DATE
+## @loc
+1007=Data
+
+# Sender
+## @name MIME_MHTML_SENDER
+## @loc
+1008=Remetente
+
+# From
+## @name MIME_MHTML_FROM
+## @loc
+1009=De
+
+# Reply-To
+## @name MIME_MHTML_REPLY_TO
+## @loc
+1010=Responder-Para
+
+# Organization
+## @name MIME_MHTML_ORGANIZATION
+## @loc
+1011=Organização
+
+# To
+## @name MIME_MHTML_TO
+## @loc
+1012=Para
+
+# CC
+## @name MIME_MHTML_CC
+## @loc
+1013=CC
+
+# Newsgroups
+## @name MIME_MHTML_NEWSGROUPS
+## @loc
+1014=Grupos de Discussão
+
+# Followup-To
+## @name MIME_MHTML_FOLLOWUP_TO
+## @loc
+1015=Reencaminhar-Para
+
+# References
+## @name MIME_MHTML_REFERENCES
+## @loc
+1016=Referências
+
+# Message ID
+## @name MIME_MHTML_MESSAGE_ID
+## @loc
+1021=ID-Mensagem
+
+# BCC
+## @name MIME_MHTML_BCC
+## @loc
+1023=BCC
+
+# Link to doc
+## @name MIME_MSG_LINK_TO_DOCUMENT
+## @loc
+1026=Ligação para o documento
+
+# Get Doc info
+## @name MIME_MSG_DOCUMENT_INFO
+## @loc
+1027=<B>Informação do documento:</B>
+
+# Msg Attachment
+## @name MIME_MSG_ATTACHMENT
+## @loc
+1028=Anexo
+
+# 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=Parte %s
+
+# default forwarded message prefix
+## @name MIME_FORWARDED_MESSAGE_HTML_USER_WROTE
+## @loc
+1041=-------- Mensagem original --------
+
+# Partial Message Truncated
+## @name MIME_MSG_PARTIAL_TRUNCATED
+## @loc
+MIME_MSG_PARTIAL_TRUNCATED=Truncado!
+
+# Partial Message Truncated Explanation
+## @name MIME_MSG_PARTIAL_TRUNCATED_EXPLANATION
+## @loc
+MIME_MSG_PARTIAL_TRUNCATED_EXPLANATION=Esta mensagem excede o tamanho máximo definido nas definições da conta. Assim, só foram transferidas as primeiras linhas do servidor de correio.
+
+# Partial Message Not Downloaded
+## @name MIME_MSG_PARTIAL_NOT_DOWNLOADED
+## @loc
+MIME_MSG_PARTIAL_NOT_DOWNLOADED=Não transferida
+
+# Partial Message Not Downloaded Explanation
+## @name MIME_MSG_PARTIAL_NOT_DOWNLOADED_EXPLANATION
+## @loc
+MIME_MSG_PARTIAL_NOT_DOWNLOADED_EXPLANATION=Apenas os cabeçalhos desta mensagem foram transferidos do servidor de correio.
+
+# MIME_MSG_PARTIAL_CLICK_FOR_REST
+## @name MIME_MSG_PARTIAL_CLICK_FOR_REST
+## @loc
+MIME_MSG_PARTIAL_CLICK_FOR_REST=Descarregar o resto da mensagem.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mimeheader.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/mimeheader.properties
new file mode 100644
index 0000000000..33d46bf3bf
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Para
+BCC=BCC
+CC=CC
+DATE=Data
+DISTRIBUTION=Distribuição
+FCC=FCC
+FOLLOWUP-TO=Reencaminhar-Para
+FROM=De
+STATUS=Estado
+LINES=Linhas
+MESSAGE-ID=ID-Mensagem
+MIME-VERSION=Versão MIME
+NEWSGROUPS=Grupos de Discussão
+ORGANIZATION=Organização
+REFERENCES=Referências
+REPLY-TO=Responder-Para
+RESENT-COMMENTS=Comentários reenviados
+RESENT-DATE=Reenviar-Data
+RESENT-FROM=Reenviar-De
+RESENT-MESSAGE-ID=Reenviar-ID-Mensagem
+RESENT-SENDER=Reenviar-Remetente
+RESENT-TO=Reenviar-Para
+RESENT-CC=Reenviar-CC
+SENDER=Remetente
+SUBJECT=Assunto
+APPROVED-BY=Aprovado Por
+USER-AGENT=User-Agent
+FILENAME=Nome do ficheiro
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/morkImportMsgs.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/morkImportMsgs.properties
new file mode 100644
index 0000000000..363df88518
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 = Livros de endereços Mork
+
+# Short name of import module
+morkImportName = Base de dados Mork (.mab)
+
+# Description of import module
+morkImportDescription = Importe um livro de endereços do SeaMonkey ou de versões antigas do Thunderbird.
+
+morkImportSuccess = Sucesso!
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgAccountCentral.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgAccountCentral.dtd
new file mode 100644
index 0000000000..177fa71562
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgAccountCentral.dtd
@@ -0,0 +1,26 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY emailSectionHdr.label "Email">
+<!ENTITY readMsgsLink.label "Ler mensagens">
+<!ENTITY composeMsgLink.label "Escrever nova mensagem">
+
+<!ENTITY newsSectionHdr.label "Grupos de notícias">
+<!ENTITY subscribeNewsLink.label "Gerir subscrições de grupos de notícias">
+
+<!ENTITY feedsSectionHdr.label "Fontes">
+<!ENTITY subscribeFeeds.label "Gerir subscrições">
+
+<!ENTITY chat.label "Chat">
+
+<!ENTITY accountsSectionHdr.label "Contas">
+<!ENTITY subscribeImapFolders.label "Gerir subscrições da pasta">
+<!ENTITY settingsLink.label "Ver definições desta conta">
+<!ENTITY setupNewAcct.label "Configurar uma conta:">
+
+<!ENTITY advFeaturesSectionHdr.label "Definições avançadas">
+<!ENTITY searchMsgsLink.label "Pesquisar mensagens">
+<!ENTITY filtersLink.label "Gerir filtros de mensagens">
+<!ENTITY junkSettings.label "Definições de lixo eletrónico">
+<!ENTITY offlineLink.label "Definições do modo offline">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgHdrViewOverlay.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgHdrViewOverlay.dtd
new file mode 100644
index 0000000000..f479d75c81
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgHdrViewOverlay.dtd
@@ -0,0 +1,114 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY toField4.label "Para">
+<!ENTITY fromField4.label "De">
+<!ENTITY senderField4.label "Remetente">
+<!ENTITY author.label "Autor">
+<!ENTITY organizationField4.label "Organização">
+<!ENTITY replyToField4.label "Responder para">
+
+<!ENTITY subjectField4.label "Assunto">
+<!ENTITY ccField4.label "Cc">
+<!ENTITY bccField4.label "Bcc">
+<!ENTITY newsgroupsField4.label "Grupos de notícias">
+<!ENTITY followupToField4.label "Reenviar para">
+<!ENTITY tagsHdr4.label "Etiquetas">
+<!ENTITY dateField4.label "Data">
+<!ENTITY userAgentField4.label "User agent">
+<!ENTITY referencesField4.label "Referências">
+<!ENTITY messageIdField4.label "ID da mensagem">
+<!ENTITY inReplyToField4.label "Em resposta a">
+<!ENTITY originalWebsite4.label "Website">
+
+<!ENTITY hdrArchiveButton1.label "Arquivar">
+<!ENTITY hdrArchiveButton1.tooltip "Arquiva esta mensagem">
+<!ENTITY hdrSmartReplyButton1.label "Resposta inteligente">
+<!ENTITY hdrReplyButton1.label "Responder">
+<!ENTITY hdrReplyButton2.tooltip "Responder ao remetente desta mensagem">
+<!ENTITY hdrReplyAllButton1.label "Responder a todos">
+<!ENTITY hdrReplyAllButton1.tooltip "Responder ao remetente e a todos os destinatários">
+<!ENTITY hdrReplyListButton1.label "Responder à lista">
+<!ENTITY hdrReplyListButton1.tooltip "Responder à lista de correio">
+<!ENTITY hdrFollowupButton1.label "Responder">
+<!ENTITY hdrFollowupButton1.tooltip "Responder a este grupo de notícias">
+<!ENTITY hdrForwardButton1.label "Reencaminhar">
+<!ENTITY hdrForwardButton1.tooltip "Reencaminhar esta mensagem">
+<!ENTITY hdrJunkButton1.label "Lixo eletrónico">
+<!ENTITY hdrJunkButton1.tooltip "Marca esta mensagem como lixo eletrónico">
+<!ENTITY hdrTrashButton1.label "Apagar">
+<!ENTITY hdrTrashButton1.tooltip "Apagar esta mensagem">
+
+<!ENTITY hdrViewToolbarShowFull.label "Mostrar ícones e texto">
+<!ENTITY hdrViewToolbarShowFull.accesskey "a">
+<!ENTITY hdrViewToolbarShowIcons.label "Mostrar apenas ícones">
+<!ENTITY hdrViewToolbarShowIcons.accesskey "c">
+<!ENTITY hdrViewToolbarShowText.label "Mostrar apenas texto">
+<!ENTITY hdrViewToolbarShowText.accesskey "x">
+<!ENTITY hdrViewToolbarAlwaysReplySender.label "Mostrar sempre Responder ao remetente">
+<!ENTITY hdrViewToolbarAlwaysReplySender.accesskey "R">
+
+<!ENTITY otherActionsButton2.label "Mais">
+<!ENTITY otherActionsButton.tooltip "Mais ações">
+<!ENTITY otherActionsOpenConversation1.label "Abrir na conversa">
+<!ENTITY otherActionsOpenConversation1.accesskey "c">
+<!ENTITY otherActionsOpenInNewWindow1.label "Abrir numa nova janela">
+<!ENTITY otherActionsOpenInNewWindow1.accesskey "j">
+<!ENTITY otherActionsOpenInNewTab1.label "Abrir num novo separador">
+<!ENTITY otherActionsOpenInNewTab1.accesskey "s">
+<!ENTITY markAsReadMenuItem1.label "Marcar como lida">
+<!ENTITY markAsReadMenuItem1.accesskey "M">
+<!ENTITY markAsUnreadMenuItem1.label "Marcar como não lida">
+<!ENTITY markAsUnreadMenuItem1.accesskey "r">
+<!ENTITY saveAsMenuItem1.label "Guardar como…">
+<!ENTITY saveAsMenuItem1.accesskey "u">
+<!ENTITY viewSourceMenuItem1.label "Ver fonte">
+<!ENTITY viewSourceMenuItem1.accesskey "V">
+<!ENTITY otherActionsPrint1.label "Imprimir…">
+<!ENTITY otherActionsPrint1.accesskey "p">
+
+<!-- Attachment bar context menu items -->
+<!ENTITY startExpandedCmd.label "Inicialmente, mostrar painel de anexos">
+<!ENTITY startExpandedCmd.accesskey "s">
+
+<!-- Attachment context menu items -->
+<!ENTITY openAttachmentCmd.label "Abrir">
+<!ENTITY openAttachmentCmd.accesskey "A">
+<!ENTITY saveAsAttachmentCmd.label "Guardar como...">
+<!ENTITY saveAsAttachmentCmd.accesskey "G">
+<!ENTITY detachAttachmentCmd.label "Separar…">
+<!ENTITY detachAttachmentCmd.accesskey "S">
+<!ENTITY deleteAttachmentCmd.label "Apagar">
+<!ENTITY deleteAttachmentCmd.accesskey "A">
+<!ENTITY openAllAttachmentsCmd.label "Abrir tudo…">
+<!ENTITY openAllAttachmentsCmd.accesskey "o">
+<!ENTITY saveAllAttachmentsCmd.label "Guardar tudo...">
+<!ENTITY saveAllAttachmentsCmd.accesskey "u">
+<!ENTITY detachAllAttachmentsCmd.label "Separar tudo...">
+<!ENTITY detachAllAttachmentsCmd.accesskey "e">
+<!ENTITY deleteAllAttachmentsCmd.label "Apagar tudo...">
+<!ENTITY deleteAllAttachmentsCmd.accesskey "A">
+
+<!ENTITY openAttachment.tooltip "Abrir ficheiro anexo">
+
+<!ENTITY detachedAttachmentFolder.show.label "Abrir pasta de destino">
+<!ENTITY detachedAttachmentFolder.show.accesskey "p">
+<!ENTITY detachedAttachmentFolder.showMac.label "Mostrar no Finder">
+<!ENTITY detachedAttachmentFolder.showMac.accesskey "F">
+
+<!-- Attachment toolbar items -->
+<!ENTITY saveAttachmentButton1.label "Guardar">
+<!ENTITY saveAttachmentButton1.tooltip "Guardar ficheiro anexo">
+<!ENTITY saveAllAttachmentsButton1.label "Guardar tudo">
+<!ENTITY saveAllAttachmentsButton1.tooltip "Guardar todos os ficheiros em anexo">
+
+<!ENTITY copyLinkCmd.label "Copiar localização da ligação">
+<!ENTITY copyLinkCmd.accesskey "p">
+
+<!ENTITY CopyMessageId.label "Copiar ID da mensagem">
+<!ENTITY CopyMessageId.accesskey "C">
+<!ENTITY OpenMessageForMsgId.label "Abrir mensagem da ID">
+<!ENTITY OpenMessageForMsgId.accesskey "b">
+<!ENTITY OpenBrowserWithMsgId.label "Abrir navegador com ID da mensagem">
+<!ENTITY OpenBrowserWithMsgId.accesskey "g">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgSynchronize.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgSynchronize.dtd
new file mode 100644
index 0000000000..0558fc3c39
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgSynchronize.dtd
@@ -0,0 +1,25 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from MsgSynchronize.xul and msgSelectOfflineFolders.xul-->
+
+<!-- extracted from MsgSynchronize.xhtml and msgSelectOfflineFolders.xhtml-->
+
+<!ENTITY MsgSynchronize.label "Transferir e sincronizar mensagens">
+<!ENTITY MsgSelect.label "Itens para utilização offline">
+<!ENTITY MsgSyncDesc.label "Se já selecionou pastas de correio ou grupos de notícias para utilizar no modo offline, pode transferi-los e sincronizá-los. Se ainda não o fez, utilize o botão &quot;Selecionar&quot; para escolher as pastas de correio e os grupos de notícias para serem utilizados no modo offline.">
+<!ENTITY MsgSyncDirections.label "Descarregar e/ou sincronizar o seguinte:">
+<!ENTITY syncTypeMail.label "Mensagens eletrónicas">
+<!ENTITY syncTypeMail.accesskey "e">
+<!ENTITY syncTypeNews.label "Mensagens de grupos de notícias">
+<!ENTITY syncTypeNews.accesskey "n">
+<!ENTITY sendMessage.label "Enviar mensagens não enviadas">
+<!ENTITY sendMessage.accesskey "E">
+<!ENTITY workOffline.label "Trabalhar offline ao terminar a descarga e/ou sincronização">
+<!ENTITY workOffline.accesskey "o">
+<!ENTITY selectButton.label "Selecionar...">
+<!ENTITY selectButton.accesskey "S">
+<!ENTITY MsgSelectDesc.label "Escolha as pastas de correio e grupos de discussão para utilização offline.">
+<!ENTITY MsgSelectInd.label "Descarregar">
+<!ENTITY MsgSelectItems.label "Pastas e Grupos de Discussão">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgViewPickerOverlay.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgViewPickerOverlay.dtd
new file mode 100644
index 0000000000..e94393e9b3
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Ver:">
+<!ENTITY viewPicker.accesskey "e">
+<!ENTITY viewAll.label "Todas">
+<!ENTITY viewAll.accesskey "a">
+<!ENTITY viewUnread.label "Não lidas">
+<!ENTITY viewUnread.accesskey "N">
+<!ENTITY viewNotDeleted.label "Não apagadas">
+<!ENTITY viewNotDeleted.accesskey "d">
+<!ENTITY viewTags.label "Etiquetas">
+<!ENTITY viewTags.accesskey "t">
+<!ENTITY viewCustomViews.label "Vistas personalizadas...">
+<!ENTITY viewCustomViews.accesskey "V">
+<!ENTITY viewVirtualFolder.label "Guardar como pasta...">
+<!ENTITY viewVirtualFolder.accesskey "G">
+<!ENTITY viewCustomizeView.label "Personalizar...">
+<!ENTITY viewCustomizeView.accesskey "P">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgmdn.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/msgmdn.properties
new file mode 100644
index 0000000000..be8894f8bb
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Nota: este recibo de leitura apenas informa que a mensagem chegou ao no computador do destinatário. Não existe garantia de que o destinatário tenha lido ou compreendido o seu conteúdo.
+MsgMdnDispatched=A mensagem foi impressa, enviada por fax, ou reencaminhada sem ser exibida ao destinatário. Não existe a garantia de que o destinatário irá ler a mensagem mais tarde.
+MsgMdnProcessed=A mensagem foi processada pela aplicação de correio do destinatário sem ser exibida. Não existe a garantia de que o destinatário irá ler a mensagem mais tarde.
+MsgMdnDeleted=A mensagem foi apagada. A pessoa a quem a enviou pode não a ter recebido. O destinatário poderá recuperar a mensagem para a ler mais tarde.
+MsgMdnDenied=O destinatário da mensagem não deseja enviar um recibo de leitura de volta para si.
+MsgMdnFailed=Ocorreu um erro. Um recibo de leitura não foi gerado nem enviado para si.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+MsgMdnMsgSentTo=Este é o recibo de leitura da mensagem enviada para %S.
+MdnDisplayedReceipt=Recibo de leitura (exibido)
+MdnDispatchedReceipt=Recibo de leitura (enviado)
+MdnProcessedReceipt=Recibo de leitura (processado)
+MdnDeletedReceipt=Recibo de leitura (apagada)
+MdnDeniedReceipt=Recibo de leitura (negado)
+MdnFailedReceipt=Recibo de leitura (falha)
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/multimessageview.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/multimessageview.dtd
new file mode 100644
index 0000000000..5bfeb9e423
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/multimessageview.dtd
@@ -0,0 +1,8 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY window.title "Sumário da mensagem">
+<!ENTITY selectedmessages.label "Mensagens seleciondas">
+<!ENTITY archiveButton.label "Arquivar">
+<!ENTITY deleteButton.label "Apagar">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/multimessageview.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/multimessageview.properties
new file mode 100644
index 0000000000..38a061f1a9
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/multimessageview.properties
@@ -0,0 +1,66 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (numConversations): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of conversations (threads or solitary messages) selected. #1 is the
+# number of conversations.
+numConversations=#1 conversa; #1 conversas
+
+# 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+ conversa; #1+ conversas
+
+# LOCALIZATION NOTE (numMessages): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of messages in a thread. #1 is the number of messages.
+numMessages=#1 mensagem;#1 mensagens
+
+# LOCALIZATION NOTE (numUnread): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of unread messages in a thread; meant to be appended to
+# "numMessages". #1 is the number of unread messages.
+numUnread=, #1 não lida;, #1 não lidas
+
+# 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 ignorada;#1 ignoradas
+
+# 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 ignorada; #1+ ignoradas
+
+# LOCALIZATION NOTE (noSubject): What to display for a message if it has no
+# subject.
+noSubject=(sem assunto)
+
+# LOCALIZATION NOTE (messagesTotalSize): A message indicating the total size on
+# disk of the selected messages. #1 is the size, e.g. "123 KB".
+messagesTotalSize=Estas mensagens ocupam #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=Estas mensagens ocupam mais de #1.
+
+# LOCALIZATION NOTE (maxCountExceeded): A message to let the user know that not
+# all of the selected messages were summarized. #1 is the total number of
+# messages selected and #2 is the number of messages actually shown.
+maxCountExceeded= (Nota: #1 mensagens selecionadas, as primeiras #2 são mostradas)
+
+# 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= (Nota: #1 conversas selecionadas, são mostradas as primeiras #2)
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/newFolderDialog.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/newFolderDialog.dtd
new file mode 100644
index 0000000000..cad8db26a8
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/newFolderDialog.dtd
@@ -0,0 +1,16 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!-- Labels -->
+
+<!ENTITY newFolderDialog.title "Nova pasta">
+<!ENTITY name.label "Nome:">
+<!ENTITY name.accesskey "N">
+<!ENTITY description.label "Criar como subpasta de:">
+<!ENTITY description.accesskey "C">
+<!ENTITY folderRestriction1.label "Este servidor restringe as pastas a dois tipos.">
+<!ENTITY folderRestriction2.label "Permitir que a nova pasta contenha:">
+<!ENTITY foldersOnly.label "Apenas pastas">
+<!ENTITY messagesOnly.label "Apenas mensagens">
+<!ENTITY accept.label "Criar pasta">
+<!ENTITY accept.accesskey "r">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/news.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/news.properties
new file mode 100644
index 0000000000..ebfab239df
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/news.properties
@@ -0,0 +1,56 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+downloadHeadersTitlePrefix=Descarregar cabeçalhos
+downloadHeadersInfoText=Existem %S novos cabeçalhos de mensagens por descarregar neste grupo de notícias.
+cancelDisallowed=Esta mensagem parece não ser sua. Apenas pode cancelar os seus tópicos, não aqueles feitos por outros.
+cancelConfirm=Tem a certeza que quer cancelar esta mensagem?
+messageCancelled=Mensagem cancelada.
+enterUserPassTitle=Requer nome de utilizador e palavra-passe do servidor de notícias
+# LOCALIZATION NOTE (enterUserPassServer): %S is the server being accessed
+enterUserPassServer=Por favor introduza o nome de utilizador e a palavra-passe para %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=Por favor introduza o nome de utilizador e a palavra-passe para %1$S em %2$S:
+okButtonText=Descarregar
+
+noNewMessages=Não existem novas mensagens no servidor.
+# 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=A descarregar %1$S de %2$S cabeçalhos em %3$S
+# LOCALIZATION NOTE (newNewsgroupFilteringHeaders): %1$S is the name of the MIME
+# header being filtered on, %2$S is the number of the current header being
+# downloaded, %3$S is the number of headers to be downloaded, and %4$S is the
+# newsgroup whose headers are being downloaded.
+newNewsgroupFilteringHeaders=A obter cabeçalhos para os filtros: %1$S (%2$S/%3$S) em %4$S
+downloadingArticles=A descarregar artigos %S-%S
+bytesReceived=A descarregar grupos de discussão: recebidos %S (%SKB lidos a %SKB/s)
+downloadingArticlesForOffline=A descarregar artigos %S-%S em %S
+
+# LOCALIZATION NOTE (autoUnsubscribeText): %1$S is the newsgroup and %2$S is the newsgroup-server it is being removed from.
+autoUnsubscribeText=Parece que o grupo de notícias %1$S não existe no servidor %2$S. Gostaria de cancelar a subscrição do mesmo?
+
+# LOCALIZATION NOTE (autoSubscribeText): %1$S is the newsgroup.
+autoSubscribeText=Deseja subscrever %1$S?
+
+# LOCALIZATION NOTE (Error -304): In the following item, don't translate "NNTP"
+# Error - server error
+## @name NNTP_ERROR_MESSAGE
+## @loc None
+-304=Ocorreu um erro (NNTP): \u0020
+
+# Error - newsgroup scan error
+## @name NNTP_NEWSGROUP_SCAN_ERROR
+## @loc None
+-305=Ocorreu um erro. A procura por todos os grupos destá incompleta. Tente a opção Ver todos os grupos de notícias
+
+# Error - NNTP authinfo failure
+## @name NNTP_AUTH_FAILED
+## @loc None
+-260=Ocorreu um erro de autorização. Tente introduzir novamente o seu nome e/ou palavra-passe.
+
+# Error - TCP error
+## @name TCP_ERROR
+## @loc None
+-206=Ocorreu um erro de comunicação. Tente estabelecer uma nova ligação. Erro TCP:
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/newsError.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/newsError.dtd
new file mode 100644
index 0000000000..48642d886c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Problema ao carregar artigo">
+
+<!-- LOCALIZATION NOTE (articleNotFound.title): The main heading for the news
+ error page. -->
+<!ENTITY articleNotFound.title "Artigo não encontrado">
+
+<!-- LOCALIZATION NOTE (articleNotFound.desc): A longer description for the news
+ error page. -->
+<!ENTITY articleNotFound.desc "O servidor de grupo de notícias reporta que não consegue encontrar o artigo.">
+
+<!-- LOCALIZATION NOTE (serverResponded.title): A string preceding the text
+ response from the newsgroup server describing the error. -->
+<!ENTITY serverResponded.title "O servidor de grupo de notícias respondeu:">
+
+<!-- LOCALIZATION NOTE (articleExpired.title): A string explaining that the
+ article may have expired. -->
+<!ENTITY articleExpired.title "Talvez o artigo expirou?">
+
+<!-- LOCALIZATION NOTE (trySearching.title): A string preceding the message's
+ ID. -->
+<!ENTITY trySearching.title "Tentar pesquisar pelo artigo:">
+
+<!-- LOCALIZATION NOTE (removeExpiredArticles.title): The label for the button
+ to remove all expired articles from the newsgroup. -->
+<!ENTITY removeExpiredArticles.title "Remover todos os artigos expirados">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/offline.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/offline.properties
new file mode 100644
index 0000000000..4bf73bec3a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/offline.properties
@@ -0,0 +1,28 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Download Messages Prompt
+downloadMessagesWindowTitle1=Descarregar mensagens
+downloadMessagesLabel1=Deseja descarregar as mensagens para utilização local antes de ativar o modo offline?
+downloadMessagesCheckboxLabel1=Perguntar-me sempre que vou offline
+downloadMessagesNow2=&Descarregar agora
+
+# Send Messages Prompt
+sendMessagesWindowTitle1=Mensagens não enviadas
+sendMessagesLabel2=Deseja enviar agora as mensagens ainda não enviadas?
+sendMessagesCheckboxLabel1=Perguntar-me sempre que vou online
+sendMessagesNow2=&Enviar agora
+
+processMessagesLater2=&Mais tarde
+
+# GetMessages While Offline Prompt
+getMessagesOfflineWindowTitle1=Obter mensagens
+getMessagesOfflineLabel1=O modo offline está ativo. Deseja sair deste modo e receber as novas mensagens?
+
+# Send Messages Offline Prompt
+sendMessagesOfflineWindowTitle1=Mensagens não enviadas
+sendMessagesOfflineLabel1=O modo offline está ativo. Deseja sair deste modo e enviar as mensagens da caixa de saída?
+
+offlineTooltip=Está no modo offline.
+onlineTooltip=Está no modo online.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/offlineStartup.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/offlineStartup.properties
new file mode 100644
index 0000000000..8cddacba82
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Trabalhar online
+desc=Gostaria de ativar o modo online?\n\n(Se optar por trabalhar offline, pode ligar-se mais tarde. Basta escolher Offline no menu Ficheiro e desmarcar a opção Trabalhar offline.)
+workOnline=Trabalhar online
+workOffline=Trabalhar offline
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/outlookImportMsgs.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/outlookImportMsgs.properties
new file mode 100644
index 0000000000..043af916ed
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Correio, livros de endereços e definições do Outlook
+
+# 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=Caixa de correio %S, importadas %d mensagens
+
+# Error message
+## @name OUTLOOKIMPORT_MAILBOX_BADPARAM
+## @loc None
+2003=Parâmetro inválido ao importar a caixa de correio.
+
+# 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=Erro ao importar a caixa de correio %S. É possível que algumas mensagens não tenham sido importadas.
+
+# Address book name
+## @name OUTLOOKIMPORT_ADDRNAME
+## @loc None
+## LOCALIZATION NOTE (2005): In this item, don't translate "Outlook"
+2005=Livro de endereços do Outlook
+
+# 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=Livro de endereços %S importado
+
+# Error message
+## @name OUTLOOKIMPORT_ADDRESS_BADPARAM
+## @loc None
+2007=Parâmetro inválido ao importar o livre de endereços.
+
+# 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=Erro ao aceder ao ficheiro do livro de endereços %S.
+
+# Error message
+## @name OUTLOOKIMPORT_ADDRESS_CONVERTERROR
+## @loc None
+## LOCALIZATION NOTE (2009): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2009=Erro ao importar o livro de endereços %S. É possível que alguns endereços não tenham sido importados.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/pgpmime.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/pgpmime.properties
new file mode 100644
index 0000000000..42943ef39e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Esta é uma mensagem encriptada com o OpenPGP, mas o suporte para a encriptação OpenPGP não está disponível.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/preferences/applicationManager.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/preferences/applicationManager.properties
new file mode 100644
index 0000000000..781442f4d2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Estas aplicações podem ser utilizadas para manipular %S.
+
+handleProtocol=ligações %S
+handleFile=conteúdo %S
+
+descriptionWebApp=Esta aplicação web está alojada em:
+descriptionLocalApp=Esta aplicação está localizada em:
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/preferences/applications.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/preferences/applications.properties
new file mode 100644
index 0000000000..159e31efbe
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Tem a certeza que pretende remover a conta "%S"?
+
+# LOCALIZATION NOTE (addProvider):
+# %S will be replace with the display name of a provider, e.g. DropBox
+addProvider=Adicionar %S
+
+notConfiguredYet=Esta conta ainda não foi configurada
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/preferences/messagestyle.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/preferences/messagestyle.properties
new file mode 100644
index 0000000000..3f971981b1
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Predefinido
+nick1=Florian
+buddy1=florian@im.instantbird.org
+nick2=Patrick
+buddy2=patrick@im.instantbird.org
+message1=Olá! :-)
+message2=Tudo bem?
+message3=Estou a experimentar o Thunderbird! ;-)
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/preferences/preferences.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/preferences/preferences.properties
new file mode 100644
index 0000000000..145209caf9
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/preferences/preferences.properties
@@ -0,0 +1,100 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#### Junk
+confirmResetJunkTrainingTitle=Confirmação
+confirmResetJunkTrainingText=Tem a certeza que pretende repor os dados de treino do filtro adaptativo?
+
+#### Downloads
+desktopFolderName=Ambiente de trabalho
+myDownloadsFolderName=Descargas
+chooseAttachmentsFolderTitle=Escolha a pasta
+
+#### Applications
+
+fileEnding=Ficheiro %S
+saveFile=Guardar ficheiro
+
+# LOCALIZATION NOTE (useApp, useDefault): %S = Application name
+useApp=Utilizar %S
+useDefault=Usar %S (predefinido)
+
+useOtherApp=Utilizar outra...
+fpTitleChooseApp=Selecione a aplicação de ajuda
+manageApp=Detalhes da aplicação...
+alwaysAsk=Perguntar sempre
+delete=Apagar ação
+confirmDeleteTitle=Apagar ação
+confirmDeleteText=Tem a certeza que pretende eliminar esta questão?
+
+# 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=Escolher som
+
+#### Remote content
+imagepermissionstext=Pode escolher os websites com permissão para mostrar imagens ou outro conteúdo remoto. Também pode permitir todo o conteúdo remoto tendo por base o remetente da mensagem. Escreva o endereço web ou eletrónico que pretende gerir e clique em Bloquear ou Permitir.
+imagepermissionstitle=Exceções - Conteúdo remoto
+
+#### Cookies
+cookiepermissionstitle=Exceções - Cookies
+cookiepermissionstext=Pode especificar que websites são sempre ou nunca autorizados a usar cookies. Escreva o endereço exato do site que deseja gerir e clique em Bloquear, Permitir nesta sessão ou Permitir.
+
+#### Cookie Viewer
+hostColon=Servidor:
+domainColon=Domínio:
+forSecureOnly=Apenas ligações encriptadas
+forAnyConnection=Qualquer tipo de ligação
+expireAtEndOfSession=No fim da sessão
+
+noCookieSelected=<nenhum cookie selecionado>
+cookiesAll=Estes cookies estão guardados no seu computador:
+cookiesFiltered=Estes cookies correspondem à sua pesquisa:
+# 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=Remover selecionado;Remover selecionados
+defaultUserContextLabel=Nenhum
+
+####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=A sua cache está a utilizar %1$S %2$S de espaço livre
+actualDiskCacheSizeCalculated=A calcular o tamanho da cache…
+
+# LOCALIZATION NOTE (labelDefaultFont): %S = font name
+labelDefaultFont=Predefinição (%S)
+labelDefaultFontUnnamed=Predefinição
+
+# LOCALIZATION NOTE (appLocale.label): %S = Name of the application locale,
+# e.g. English (United States)
+appLocale.label=Localidade da aplicação: %S
+appLocale.accesskey=p
+# LOCALIZATION NOTE (rsLocale.label): %S = Name of the locale chosen in regional settings,
+# e.g. German (Germany)
+rsLocale.label=Definições regionais de localidade: %S
+rsLocale.accesskey=g
+
+applications-type-pdf = Portable Document Format (PDF)
+
+# LOCALIZATION NOTE (previewInApp): %S = brandShortName
+previewInApp=Pré-visualizar no %S
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/prefs.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/prefs.properties
new file mode 100644
index 0000000000..d8eb3e99fd
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/prefs.properties
@@ -0,0 +1,90 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The following are used by the Account Wizard
+#
+enterValidEmail=Introduza um endereço de e-mail válido.
+accountNameExists=Já existe uma conta com este nome. Escreva um nome diferente para a conta.
+accountNameEmpty=O nome da conta não pode estar vazio.
+modifiedAccountExists=Já existe uma conta com o mesmo nome de utilizador e servidor. Introduza um nome de utilizador e/ou servidor diferente.
+userNameChanged=O seu nome de utilizador foi atualizado. Poderá ser necessário atualizar o seu endereço eletrónico e/ou nome de utilizador associado a esta conta.
+serverNameChanged=O nome do servidor foi alterado. Por favor verifique se as pastas utilizadas pelos filtros existem no novo servidor.
+# LOCALIZATION NOTE (junkSettingsBroken): %1$S is the account name
+junkSettingsBroken=As definições do lixo eletrónico da conta "%1$S" podem ter um problema. Gostaria de as analisar antes de guardar as definições de conta?
+# LOCALIZATION NOTE (localDirectoryChanged): %1$S is program name (&brandShortName;)
+localDirectoryChanged=Tem que reiniciar o %1$S para aplicar as alterações ao diretório local.
+localDirectoryRestart=Reiniciar
+userNameEmpty=O nome de utilizador não pode ficar em branco.
+# LOCALIZATION NOTE (localDirectoryInvalid): %1$S is path to folder
+localDirectoryInvalid=O caminho "%1$S" é inválido. Por favor selecione outro diretório.
+# LOCALIZATION NOTE (localDirectoryNotAllowed): %1$S is path to folder
+localDirectoryNotAllowed=O caminho "%1$S" não é adequado para armazenar correio. Por favor selecione outro diretório.
+# 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=Tem a certeza que pretende sair do assistente de contas?\n\nSe sair agora, qualquer informação que introduziu será perdida e a conta não será criada.
+accountWizard=Assistente de contas
+WizardExit=Sair
+WizardContinue=Cancelar
+# when the wizard already has a domain (Should we say something different?)
+enterValidServerName=Introduza um nome de servidor válido.
+failedRemoveAccount=Falha ao remover esta conta.
+#LOCALIZATION NOTE: accountName: %1$S is server name, %2$S is user name
+accountName=%2$S - %1$S
+
+# LOCALIZATION NOTE: confirmDeferAccountWarning: do not localize "\n\n", it means a new empty line in the string.
+confirmDeferAccountWarning=Se guardou esta nova conta de correio numa caixa de entrada diferente, não poderá aceder às mensagens transferidas anteriormente. Se tem mensagens nesta conta, deve copiá-las para outra conta.\n\nSe tem filtros de correio nesta conta, deve desativá-los ou mudar a pasta de destino. Se a conta possuir pastas especiais (Enviadas, Rascunhos, Modelos, Arquivos, Lixo eletrónico), deve mudá-las para outra conta.\n\nAinda deseja guardar esta conta de correio numa conta diferente?
+confirmDeferAccountTitle=Definir conta?
+
+directoryAlreadyUsedByOtherAccount=O diretório especificado já está a ser utilizado pela conta "%S". Por favor selecione outro diretório.
+directoryParentUsedByOtherAccount=Um diretório parente da pasta especificada na definição do diretório local já está a ser utilizado pela conta "%S". Por favor selecione outro diretório.
+directoryChildUsedByOtherAccount=Um subdiretório do diretório especificado já está a ser utilizado pela conta "%S". Por favor selecione outro diretório.
+#Provide default example values for sample email address
+exampleEmailUserName=utilizador
+exampleEmailDomain=example.net
+emailFieldText=Endereço de e-mail:
+#LOCALIZATION NOTE: defaultEmailText: %1$S is user name, %2$S is domain
+defaultEmailText=Introduza o seu endereço de e-mail. Este é o endereço que terceiros utilizarão para lhe enviar mensagens (por exemplo: "%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=Introduza o seu %2$S %1$S (por exemplo, se o endereço de e-mail em %1$S for "%3$S", o seu %2$S é "%4$S").\u0020
+
+# account manager stuff
+prefPanel-server=Definições do servidor
+prefPanel-copies=Cópias e pastas
+prefPanel-synchronization=Sincronização e armazenamento
+prefPanel-diskspace=Espaço em disco
+prefPanel-addressing=Composição e endereçamento
+prefPanel-junk=Definições do lixo eletrónico
+## LOCALIZATION NOTE (prefPanel-smtp): Don't translate "SMTP"
+prefPanel-smtp=Servidor de envio (SMTP)
+
+# account manager multiple identity support
+#LOCALIZATION NOTE: accountName: %1$S
+identity-list-title=Identidades para %1$S
+
+identityDialogTitleAdd=Nova identidade
+## LOCALIZATION NOTE (identityDialogTitleEdit): %S is the identity name
+identityDialogTitleEdit=Editar %S
+
+identity-edit-req=Tem de especificar um endereço eletrónico válido para esta identidade.
+identity-edit-req-title=Erro ao criar identidade
+
+## 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=Tem a certeza que pretende eliminar a identidade\n%S?
+## LOCALIZATION NOTE (identity-delete-confirm-title): %S is the account name
+identity-delete-confirm-title=A apagar identidade para %S
+identity-delete-confirm-button=Apagar
+
+choosefile=Escolha um ficheiro
+
+forAccount=Para a conta "%S"
+
+removeFromServerTitle=Confirmar eliminação automática e permanente de mensagens
+removeFromServer=Esta definição irá eliminar de forma permanente as mensagens antigas do servidor remoto e do seu armazenamento local. Tem a certeza que pretende continuar?
+
+confirmSyncChangesTitle=Confirmar alterações de sincronização
+confirmSyncChanges=As definições de sincronização de mensagens foi alterada.\n\nDeseja guardá-las?
+confirmSyncChangesDiscard=Descartar
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/profileDowngrade.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/profileDowngrade.dtd
new file mode 100644
index 0000000000..084e83b679
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/profileDowngrade.dtd
@@ -0,0 +1,20 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE:
+ This UI can be most easily shown by modifying the version in compatibility.ini
+ to a newer version and then starting Thunderbird.
+ For this feature, "installation" is used to mean "this discrete download of
+ Thunderbird" and "version" is used to mean "the specific revision number of a
+ given Thunderbird channel". These terms are not synonymous.
+-->
+<!ENTITY window.title "Iniciou uma versão antiga do &brandProductName;">
+<!ENTITY window.style "width: 490px;">
+
+<!ENTITY window.nosync2 "Uma versão mais recente do &brandProductName; pode ter feito alterações no seu perfil que já não são compatíveis com esta versão mais antiga. Utilize este perfil apenas com essa versão mais recente ou crie um novo perfil para esta instalação do &brandShortName;. A criação de um novo perfil requer a reconfiguração das suas contas, calendários e extras.">
+
+<!ENTITY window.moreinfo "Mais informação…">
+<!ENTITY window.create "Criar um novo perfil">
+<!ENTITY window.quit-win "Sair">
+<!ENTITY window.quit-nonwin "Sair">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/removeAccount.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/removeAccount.dtd
new file mode 100644
index 0000000000..e29f9d39f5
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Remover conta e dados">
+<!ENTITY removeButton.label "Remover">
+<!ENTITY removeButton.accesskey "R">
+<!ENTITY removeAccount.label "Remover informação da conta">
+<!ENTITY removeAccount.accesskey "a">
+<!ENTITY removeAccount.desc "Apenas remove o conhecimento desta conta no &brandShortName;. Não afeta a conta existente no servidor.">
+<!ENTITY removeData.label "Remover dados da mensagem">
+<!ENTITY removeData.accesskey "d">
+<!ENTITY removeDataChat.label "Remover dados de conversas">
+<!ENTITY removeDataChat.accesskey "d">
+<!ENTITY removeDataLocalAccount.desc "Remove do disco local todas as mensagens, pastas e filtros associados a esta conta. Não afeta as mensagens que ainda estejam no servidor. Não escolha esta opção se quiser arquivar os dados locais para os reutilizar posteriormente no &brandShortName;.">
+<!ENTITY removeDataServerAccount.desc "Remove do disco local todas as mensagens, pastas e filtros associados a esta conta. As suas mensagens e pastas serão mantidas no servidor.">
+<!ENTITY removeDataChatAccount.desc "Remove todos os registos de conversas armazenados para esta conta no seu disco local.">
+<!ENTITY showData.label "Mostrar localização dos dados">
+<!ENTITY showData.accesskey "s">
+<!ENTITY progressPending "Remover dados selecionados…">
+<!ENTITY progressSuccess "Remoção efetuada.">
+<!ENTITY progressFailure "Falha na remoção.">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/removeAccount.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/removeAccount.properties
new file mode 100644
index 0000000000..3b59200b6b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Tem a certeza que pretende remover a conta "%S"?
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/renameFolderDialog.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/renameFolderDialog.dtd
new file mode 100644
index 0000000000..c17c39d257
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Renomear pasta">
+<!ENTITY rename.label "Introduza o novo nome para a sua pasta:">
+<!ENTITY rename.accesskey "e">
+<!ENTITY accept.label "Renomear">
+<!ENTITY accept.accesskey "R">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/sanitize.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/sanitize.dtd
new file mode 100644
index 0000000000..542e4163a0
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/sanitize.dtd
@@ -0,0 +1,36 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY sanitizeDialog2.title "Limpar histórico recente">
+
+<!-- XXX rearrange entities to match physical layout when l10n isn't an issue -->
+<!-- LOCALIZATION NOTE (clearTimeDuration.*): "Time range to clear" dropdown.
+ See UI mockup at bug 480169 -->
+<!ENTITY clearTimeDuration.label "Intervalo de tempo a limpar: ">
+<!ENTITY clearTimeDuration.accesskey "t">
+<!ENTITY clearTimeDuration.lastHour "Última hora">
+<!ENTITY clearTimeDuration.last2Hours "Últimas duas horas">
+<!ENTITY clearTimeDuration.last4Hours "Últimas quatro horas">
+<!ENTITY clearTimeDuration.today "Hoje">
+<!ENTITY clearTimeDuration.everything "Tudo">
+<!-- Localization note (clearTimeDuration.suffix) - trailing entity for languages
+that require it. -->
+<!ENTITY clearTimeDuration.suffix "">
+
+
+<!ENTITY historyGroup.label "Histórico">
+
+<!ENTITY itemHistory.label "Histórico de navegação">
+<!ENTITY itemHistory.accesskey "H">
+<!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 "Esta ação não pode ser desfeita.">
+
+<!ENTITY dialog.width "32em">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/seamonkeyImportMsgs.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/seamonkeyImportMsgs.properties
new file mode 100644
index 0000000000..2f5276f8bb
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Importar livros de endereços, correio e contas do SeaMonkey.
+
+# Success Message for addressbook import
+SeamonkeyImportAddressSuccess=Os livros de endereços foram importados com sucesso.
+
+# Success Message for mail import
+SeamonkeyImportSettingsSuccess=As mensagens e contas locais foram importadas com sucesso.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/search-attributes.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/search-attributes.properties
new file mode 100644
index 0000000000..40968ed828
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Assunto
+From=De
+Body=Corpo
+Date=Data
+Priority=Prioridade
+Status=Estado
+To=Para
+Cc=Cc
+ToOrCc=Para ou Cc
+AgeInDays=Idade em dias
+SizeKB=Tamanho (KB)
+Tags=Etiquetas
+# for AB and LDAP
+AnyName=Qualquer nome
+DisplayName=Nome exibido
+Nickname=Nickname
+ScreenName=Nome a mostrar
+Email=Email
+AdditionalEmail=Email alternativo
+AnyNumber=Qualquer número
+WorkPhone=Telefone profissional
+HomePhone=Telefone de casa
+Fax=Fax
+Pager=Pager
+Mobile=Telemóvel
+City=Cidade
+Street=Rua
+Title=Título
+Organization=Organização
+Department=Departamento
+# more mailnews
+FromToCcOrBcc=De, Para, Cc ou Bcc
+JunkScoreOrigin=Origem da pontuação do lixo eletrónico
+JunkPercent=Percentagem de lixo eletrónico
+AttachmentStatus=Estado do anexo
+JunkStatus=Estado do lixo eletrónico
+Label=Etiqueta
+Customize=Personalizar...
+MissingCustomTerm=Termo personalizado em falta
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/search-operators.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/search-operators.properties
new file mode 100644
index 0000000000..6d8e75eac3
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=contém
+1=não contém
+2=é
+3=não é
+4=é vazio
+
+5=está antes
+6=está depois
+
+7=é maior que
+8=é menor do que
+
+9=começa com
+10=termina com
+
+11=similar a
+12=LdapDwim
+
+13=é maior que
+14=é menor do que
+
+15=ConclusãoDeNome
+16=está no meu livro de endereços
+17=não está no meu livro de endereços
+18=não é vazio
+19=coincide
+20=não coincide
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/search.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/search.properties
new file mode 100644
index 0000000000..687f81154d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/search.properties
@@ -0,0 +1,27 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# these are the fields that get inserted in the search line
+# for "and" searches, this looks like:
+#
+# searchAnd0 <attribute> searchAnd1 <operator> searchAnd2 <value> searchAnd4
+#
+# for example, in english this looks like:
+# and the [Sender ] [doesn't contain] [John]
+#
+# TODO: need to special-case the first line (filterindex==0)
+
+# filter stuff
+
+searchingMessage=A pesquisar…
+# LOCALIZATION NOTE (matchesFound): #1 number of matches found
+matchesFound=Encontrada #1 ocorrência;Encontradas #1 ocorrências
+noMatchesFound=Nenhuma ocorrência encontrada
+labelForStopButton=Parar
+labelForSearchButton=Pesquisar
+labelForStopButton.accesskey=P
+labelForSearchButton.accesskey=P
+
+moreButtonTooltipText=Adicionar uma regra
+lessButtonTooltipText=Remover esta regra
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/searchTermOverlay.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/searchTermOverlay.dtd
new file mode 100644
index 0000000000..fe9e6a870d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/searchTermOverlay.dtd
@@ -0,0 +1,19 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY matchAll.label "Coincidente com todos os seguintes">
+<!ENTITY matchAll.accesskey "C">
+<!ENTITY matchAny.label "Coincidente com qualquer dos seguintes">
+<!ENTITY matchAny.accesskey "o">
+<!ENTITY matchAllMsgs.label "Coincidente com todas as mensagens">
+<!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 "5">
+<!ENTITY searchTermListOperatorsFlexValue "5">
+<!ENTITY searchTermListValueFlexValue "5">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/shutdownWindow.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/shutdownWindow.properties
new file mode 100644
index 0000000000..1656b01e79
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Janela do encerramento
+taskProgress=A processar %1$S de %2$S tarefas\u0020
+
+# These strings are loaded by the individual shutdown tasks.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/smime.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/smime.properties
new file mode 100644
index 0000000000..e8552b08d7
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Esta é uma mensagem <B>ENCRIPTADA</B> ou <B>ASSINADA</B>.<br> Esta aplicação de correio não suporta correio encriptado ou assinado.
+
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/smtpEditOverlay.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/smtpEditOverlay.dtd
new file mode 100644
index 0000000000..99c5886a67
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Definições">
+<!ENTITY security.caption "Autenticação e segurança">
+<!ENTITY serverName.label "Nome do servidor:">
+<!ENTITY serverName.accesskey "s">
+<!ENTITY serverDescription.label "Descrição:">
+<!ENTITY serverDescription.accesskey "D">
+<!ENTITY serverPort.label "Porta:">
+<!ENTITY serverPort.accesskey "P">
+<!ENTITY userName.label "Nome de utilizador:">
+<!ENTITY userName.accesskey "m">
+<!ENTITY connectionSecurity.label "Segurança da ligação:">
+<!ENTITY connectionSecurity.accesskey "n">
+<!ENTITY connectionSecurityType-0.label "Nenhuma">
+<!ENTITY connectionSecurityType-1.label "STARTTLS, se disponível">
+<!ENTITY connectionSecurityType-2.label "STARTTLS">
+<!ENTITY connectionSecurityType-3.label "SSL/TLS">
+<!ENTITY smtpEditTitle.label "Servidor SMTP">
+<!ENTITY serverPortDefault.label "Pré-definido:">
+<!ENTITY authMethod.label "Método de autenticação:">
+<!ENTITY authMethod.accesskey "i">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/subscribe.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/subscribe.dtd
new file mode 100644
index 0000000000..548a01ef50
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Subscrever">
+<!ENTITY subscribeButton.label "Subscrever">
+<!ENTITY subscribeButton.accesskey "S">
+<!ENTITY unsubscribeButton.label "Cancelar subscrição">
+<!ENTITY unsubscribeButton.accesskey "u">
+<!ENTITY newGroupsTab.label "Novos grupos">
+<!ENTITY newGroupsTab.accesskey "N">
+<!ENTITY refreshButton.label "Atualizar">
+<!ENTITY refreshButton.accesskey "r">
+<!ENTITY stopButton.label "Parar">
+<!ENTITY stopButton.accesskey "P">
+<!ENTITY server.label "Conta:">
+<!ENTITY server.accesskey "a">
+<!ENTITY subscribedHeader.label "Subscrever">
+<!-- commenting out until bug 38906 is fixed
+<!ENTITY messagesHeader.label "Messages"> -->
+<!ENTITY namefield.label "Mostrar itens que contenham:">
+<!ENTITY namefield.accesskey "o">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/subscribe.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/subscribe.properties
new file mode 100644
index 0000000000..61742be221
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/subscribe.properties
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+subscribeLabel-nntp=Selecione os grupos que deseja subscrever:
+subscribeLabel-imap=Selecione as pastas que deseja subscrever:
+currentListTab-nntp.label=Lista de grupo atual
+currentListTab-nntp.accesskey=L
+currentListTab-imap.label=Lista de pastas
+currentListTab-imap.accesskey=L
+pleaseWaitString=Por favor aguarde...
+offlineState=Está offline. Os itens não puderam ser obtidos do servidor.
+errorPopulating=Erro ao obter itens do servidor.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/tabmail.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/tabmail.dtd
new file mode 100644
index 0000000000..a3301150fd
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Fechar separador">
+<!ENTITY listAllTabs.label "Listar todos os separadores">
+<!-- LOCALIZATION NOTE(defaultTabTitle.label): This is the default tab
+ title to show when the tab has no title. -->
+<!ENTITY defaultTabTitle.label "Início">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/taskbar.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/taskbar.properties
new file mode 100644
index 0000000000..fc3937c516
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Escrever nova mensagem
+taskbar.tasks.composeMessage.description=Escreve uma nova mensagem.
+taskbar.tasks.openAddressBook.label=Abrir livro de endereços
+taskbar.tasks.openAddressBook.description=Abre o seu livro de endereços.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/telemetry.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/telemetry.properties
new file mode 100644
index 0000000000..3206e63666
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/telemetry.properties
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Telemetry prompt
+# LOCALIZATION NOTE (telemetryText): %1$S will be replaced by brandFullName,
+# and %2$S by the value of the toolkit.telemetry.server_owner preference.
+telemetryText = Gostaria de ajudar para melhorar o %1$S, reportando, automaticamente, a utilização da memória, desempenho e responsividade do %2$S?
+telemetryLinkLabel = Saber mais
+telemetryYesButtonLabel = Sim
+telemetryYesButtonAccessKey = S
+telemetryNoButtonLabel = Não
+telemetryNoButtonAccessKey = N
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/templateUtils.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/templateUtils.properties
new file mode 100644
index 0000000000..81dddf2d71
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=ontem
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/textImportMsgs.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/textImportMsgs.properties
new file mode 100644
index 0000000000..fa539da4a4
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Ficheiro de texto (LDIF, .tab, .csv, .txt)
+
+# Description of import module
+## @name TEXTIMPORT_DESCRIPTION
+## @loc None
+2001=Importar livro de endereços de um ficheiro de texto, incluindo os formatos: LDIF (.ldif, .ldi), delimitados por tabulação (.tab, .txt) ou separados por vírgula(.csv).
+
+# Description of import module
+## @name TEXTIMPORT_ADDRESS_NAME
+## @loc None
+2002=Livro de endereços de texto
+
+# Description
+## @name TEXTIMPORT_ADDRESS_SUCCESS
+## @loc None
+2003=Livro de endereços %S importado
+
+# Error message
+## @name TEXTIMPORT_ADDRESS_BADPARAM
+## @loc None
+2004=Parâmetro inválido ao importar o livro de endereços.
+
+# Error message
+## @name TEXTIMPORT_ADDRESS_BADSOURCEFILE
+## @loc None
+2005=Erro ao aceder ao ficheiro do livro de endereços %S.
+
+# Error message
+## @name TEXTIMPORT_ADDRESS_CONVERTERROR
+## @loc None
+2006=Erro ao importar o livro de endereços %S. É possível que alguns endereços não tenham sido importados.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/vCardImportMsgs.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/vCardImportMsgs.properties
new file mode 100644
index 0000000000..a9c1107938
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/vCardImportMsgs.properties
@@ -0,0 +1,26 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the vCard import code to display status, error, and
+# informational messages
+#
+
+vCardImportName=Ficheiro vCard (.vcf)
+
+vCardImportDescription=Importar livro de endereços no formato vCard
+
+vCardImportAddressName=Livro de endereços vCard
+
+# LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
+# name of the address book being imported.
+vCardImportAddressSuccess=Livro de endereços %S importado
+
+# LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
+# name of the address book being imported.
+vCardImportAddressBadSourceFile=Erro ao aceder ao ficheiro do livro de endereços %S.
+
+# LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
+# name of the address book being imported.
+vCardImportAddressConvertError=Erro ao importar o livro de endereços %S. É possível que alguns endereços não tenham sido importados.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/viewLog.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/viewLog.dtd
new file mode 100644
index 0000000000..89b7272be8
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 "Registo dos filtros">
+<!ENTITY viewLogInfo.text "O registo dos filtros documenta os filtros que foram executados nesta conta. Utilize a caixa de verificação abaixo para ativar o serviço.">
+<!ENTITY clearLog.label "Limpar registo">
+<!ENTITY clearLog.accesskey "L">
+<!ENTITY enableLog.label "Ativar registo">
+<!ENTITY enableLog.accesskey "A">
+<!ENTITY closeLog.label "Fechar">
+<!ENTITY closeLog.accesskey "F">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/viewSource.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/viewSource.dtd
new file mode 100644
index 0000000000..39566f981f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/viewSource.dtd
@@ -0,0 +1,86 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from content/viewSource.xul -->
+
+<!-- extracted from content/viewSource.xhtml -->
+
+<!-- LOCALIZATION NOTE (mainWindow.title) : DONT_TRANSLATE -->
+<!ENTITY mainWindow.title "&brandFullName;">
+<!-- LOCALIZATION NOTE (mainWindow.titlemodifier) : DONT_TRANSLATE -->
+<!ENTITY mainWindow.titlemodifier "&brandFullName;">
+<!-- LOCALIZATION NOTE (mainWindow.titlemodifierseparator) : DONT_TRANSLATE -->
+<!ENTITY mainWindow.titlemodifierseparator " - ">
+<!ENTITY mainWindow.preface "Código de: ">
+
+<!ENTITY editMenu.label "Editar">
+<!ENTITY editMenu.accesskey "E">
+<!ENTITY fileMenu.label "Ficheiro">
+<!ENTITY fileMenu.accesskey "F">
+<!ENTITY savePageCmd.label "Guardar página como…">
+<!ENTITY savePageCmd.accesskey "a">
+<!ENTITY savePageCmd.commandkey "S">
+<!ENTITY printCmd.label "Imprimir…">
+<!ENTITY printCmd.accesskey "p">
+<!ENTITY printCmd.commandkey "P">
+<!ENTITY closeCmd.label "Fechar">
+<!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 "Ir para a linha…">
+<!ENTITY goToLineCmd.accesskey "I">
+<!ENTITY goToLineCmd.commandkey "l">
+
+<!ENTITY viewMenu.label "Ver">
+<!ENTITY viewMenu.accesskey "V">
+<!ENTITY reloadCmd.label "Recarregar">
+<!ENTITY reloadCmd.accesskey "R">
+<!ENTITY reloadCmd.commandkey "r">
+<!ENTITY menu_wrapLongLines.title "Encapsular linhas longas">
+<!ENTITY menu_wrapLongLines.accesskey "E">
+<!ENTITY menu_highlightSyntax.label "Destaque de sintaxe">
+<!ENTITY menu_highlightSyntax.accesskey "s">
+<!ENTITY menu_textSize.label "Tamanho do texto">
+<!ENTITY menu_textSize.accesskey "x">
+<!ENTITY menu_textEnlarge.label "Aumentar">
+<!ENTITY menu_textEnlarge.accesskey "A">
+<!ENTITY menu_textReduce.label "Diminuir">
+<!ENTITY menu_textReduce.accesskey "D">
+<!ENTITY menu_textReset.label "Normal">
+<!ENTITY menu_textReset.accesskey "N">
+
+<!ENTITY findOnCmd.label "Localizar nesta página…">
+<!ENTITY findOnCmd.accesskey "L">
+<!ENTITY findOnCmd.commandkey "f">
+<!ENTITY findAgainCmd.label "Localizar novamente">
+<!ENTITY findAgainCmd.accesskey "n">
+<!ENTITY findAgainCmd.commandkey "g">
+<!ENTITY findAgainCmd.commandkey2 "VK_F3">
+<!ENTITY findSelectionCmd.commandkey "e">
+
+<!ENTITY backCmd.label "Retroceder">
+<!ENTITY backCmd.accesskey "R">
+<!ENTITY forwardCmd.label "Avançar">
+<!ENTITY forwardCmd.accesskey "A">
+<!ENTITY goBackCmd.commandKey "[">
+<!ENTITY goForwardCmd.commandKey "]">
+
+<!ENTITY copyLinkCmd.label "Copiar ligação">
+<!ENTITY copyLinkCmd.accesskey "l">
+<!ENTITY copyEmailCmd.label "Copiar endereço de email">
+<!ENTITY copyEmailCmd.accesskey "e">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/viewSource.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/viewSource.properties
new file mode 100644
index 0000000000..dc9359c74c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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 = Ir para a linha
+goToLineText = Introduza o número da linha
+invalidInputTitle = Introdução inválida
+invalidInputText = O número de linha introduzido é inválido.
+outOfRangeTitle = Linha não encontrada
+outOfRangeText = A linha especificada não foi encontrada.
+viewSelectionSourceTitle = Código DOM da seleção
+viewMathMLSourceTitle = Código DOM de MathML
+
+context_goToLine_label = Ir para a linha…
+context_goToLine_accesskey = l
+context_wrapLongLines_label = Encapsular linhas longas
+context_highlightSyntax_label = Destaque de sintaxe
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/viewZoomOverlay.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/viewZoomOverlay.dtd
new file mode 100644
index 0000000000..8de2941bb2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/viewZoomOverlay.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/. -->
+
+<!-- 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 "Ampliar">
+<!ENTITY fullZoomEnlargeCmd.accesskey "i">
+<!ENTITY fullZoomEnlargeCmd.commandkey "+">
+<!-- + is above this key on many keyboards -->
+<!ENTITY fullZoomEnlargeCmd.commandkey2 "=">
+<!ENTITY fullZoomEnlargeCmd.commandkey3 "">
+
+<!ENTITY fullZoomReduceCmd.label "Reduzir">
+<!ENTITY fullZoomReduceCmd.accesskey "e">
+<!ENTITY fullZoomReduceCmd.commandkey "-">
+<!ENTITY fullZoomReduceCmd.commandkey2 "">
+
+<!ENTITY fullZoomResetCmd.label "Repor">
+<!ENTITY fullZoomResetCmd.accesskey "R">
+<!ENTITY fullZoomResetCmd.commandkey "0">
+<!ENTITY fullZoomResetCmd.commandkey2 "">
+
+<!ENTITY fullZoomToggleCmd.label "Aplicar zoom apenas em texto">
+<!ENTITY fullZoomToggleCmd.accesskey "t">
+<!ENTITY fullZoom.label "Zoom">
+<!ENTITY fullZoom.accesskey "Z">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/virtualFolderListDialog.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/virtualFolderListDialog.dtd
new file mode 100644
index 0000000000..f823be0bbb
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/virtualFolderListDialog.dtd
@@ -0,0 +1,8 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY virtualFolderListTitle.title "Selecione a(s) pasta(s)">
+<!ENTITY virtualFolderDesc.label "Selecione as pastas a pesquisar:">
+<!ENTITY folderName.label "Nome da pasta">
+<!ENTITY folderSearch.label "Pesquisar">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/virtualFolderProperties.dtd b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/virtualFolderProperties.dtd
new file mode 100644
index 0000000000..8a9e82e46c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/virtualFolderProperties.dtd
@@ -0,0 +1,22 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY virtualFolderProperties.title "Nova pasta de pesquisa">
+<!ENTITY name.label "Nome:">
+<!ENTITY name.accesskey "N">
+<!ENTITY description.label "Criar como subpasta de:">
+<!ENTITY description.accesskey "C">
+
+<!ENTITY searchTermCaption.label "Configurar critério de pesquisa utilizado para esta pesquisa guardada: ">
+
+<!ENTITY folderSelectionCaption.label "Selecione as pastas a pesquisar: ">
+<!ENTITY chooseFoldersButton.label "Selecionar...">
+<!ENTITY chooseFoldersButton.accesskey "S">
+
+<!ENTITY searchOnline.label "Pesquisar online (resultados atualizados para as pastas IMAP e de notícias, mas aumenta o tempo de abertura da pasta)">
+<!ENTITY searchOnline.accesskey "s">
+<!ENTITY newFolderButton.label "Criar">
+<!ENTITY newFolderButton.accesskey "r">
+<!ENTITY editFolderButton.label "Atualizar">
+<!ENTITY editFolderButton.accesskey "u">
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/wmImportMsgs.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/messenger/wmImportMsgs.properties
new file mode 100644
index 0000000000..e558105d4a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Definições do 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=Caixa de correio %1$S, importadas %2$d mensagens
+
+# Error message
+## @name WMIMPORT_MAILBOX_BADPARAM
+## @loc None
+2003=Parâmetro inválido ao importar a caixa de correio.
+
+# 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=Erro ao aceder à caixa de correio %S.
+
+# Error message
+## @name WMIMPORT_MAILBOX_CONVERTERROR
+## @loc None
+## LOCALIZATION NOTE (2005): In this item, don't translate "%S"
+## The variable %S will contain the name of the Mailbox
+2005=Erro ao importar a caixa de correio %S. É possível que nem todas as mensagens tenham sido importadas.
+
+# Default name of imported addressbook
+## @name WMIMPORT_DEFAULT_NAME
+## @loc None
+2006=Livro de endereços do Windows Live Mail
+
+# Autofind description
+## @name WMIMPORT_AUTOFIND
+## @loc None
+2007=Livro de endereços do Windows Live Mail (livro de endereços do Windows)
+
+# 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=Livro de endereços %S importado
+
+# 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=Erro ao importar o livro de endereços %S. É possível que nem todos os endereços tenham sido importados.
+
+# Error message
+## @name WMIMPORT_ADDRESS_BADPARAM
+## @loc None
+2010=Parâmetro inválido ao importar o livro de endereços.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozapps/downloads/downloads.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozapps/downloads/downloads.properties
new file mode 100644
index 0000000000..cd4deec9ee
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Transferências
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozapps/downloads/unknownContentType.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozapps/downloads/unknownContentType.properties
new file mode 100644
index 0000000000..c364506c4a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozapps/downloads/unknownContentType.properties
@@ -0,0 +1,23 @@
+# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+title=Abrir %S
+saveDialogTitle=Introduza o nome do ficheiro a guardar em…
+defaultApp=%S (predefinição)
+chooseAppFilePickerTitle=Escolher a aplicação auxiliar
+badApp=A aplicação escolhida (“%S”) não foi encontrada. Verifique o nome do ficheiro ou escolha outra aplicação.
+badApp.title=Aplicação não encontrada
+badPermissions=Este ficheiro não foi guardado porque você não tem as permissões necessárias. Escolha outro diretório.
+badPermissions.title=Permissões inválidas
+unknownAccept.label=Guardar ficheiro
+unknownCancel.label=Cancelar
+fileType=Ficheiro %S
+# 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=Imagem WebP
+xmlExtHandlerDescription=Extensible Markup Language (XML)
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozapps/profile/profileSelection.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozapps/profile/profileSelection.properties
new file mode 100644
index 0000000000..d442609cc6
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozapps/profile/profileSelection.properties
@@ -0,0 +1,55 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: These strings are used for startup/profile problems and the profile manager.
+
+# Application not responding
+# LOCALIZATION NOTE (restartTitle, restartMessageNoUnlocker2, restartMessageUnlocker, restartMessageNoUnlockerMac, restartMessageUnlockerMac): Messages displayed when the application is running but is not responding to commands. %S is the application name.
+restartTitle=Fechar o %S
+restartMessageNoUnlocker2=%S já está em execução, mas não está a responder. Para utilizar %S, deve primeiro fechar o processo %S existente, reiniciar o dispositivo ou utilizar um perfil diferente.
+restartMessageUnlocker=O %S já está em execução, mas não está a responder. O processo existente do %S tem de ser terminado para abrir uma nova janela.
+restartMessageNoUnlockerMac=Já está aberta uma cópia do %S. Só é permitida uma cópia do %S em simultâneo.
+restartMessageUnlockerMac=Já está aberta uma cópia do %S. A cópia em execução do %S irá ser encerrada para que possa abrir esta.
+
+# Profile manager
+# LOCALIZATION NOTE (profileTooltip): First %S is the profile name, second %S is the path to the profile folder.
+profileTooltip=Perfil: '%S' - Caminho: '%S'
+
+pleaseSelectTitle=Selecione o perfil
+pleaseSelect=Por favor selecione o perfil para iniciar o %S ou crie um novo perfil.
+
+renameProfileTitle=Renomear perfil
+renameProfilePrompt=Renomear o perfil “%S” para:
+
+profileNameInvalidTitle=Nome de perfil inválido
+profileNameInvalid=O nome de perfil “%S” não é permitido.
+
+chooseFolder=Escolha a pasta do perfil
+profileNameEmpty=Não é permitida a utilização de nomes de perfis vazios.
+invalidChar=O caractere “%S” não é permitido em nomes de perfil. Por favor escolha um nome diferente.
+
+deleteTitle=Apagar perfil
+deleteProfileConfirm=Ao apagar um perfil irá remover o perfil da lista de perfis disponíveis e não pode ser desfeito.\nPode também escolher apagar os ficheiros de dados do perfil, incluindo as suas definições, certificados e outros dados relacionados com o utilizador. Esta opção apaga a pasta “%S” e não pode ser desfeita.\nGostaria de apagar os ficheiros de dados do perfil?
+deleteFiles=Apagar ficheiros
+dontDeleteFiles=Não apagar ficheiros
+
+profileCreationFailed=O perfil não pôde ser criado. Provavelmente não é possível escrever na pasta escolhida.
+profileCreationFailedTitle=A criação do perfil falhou
+profileExists=Já existe um perfil com este nome. Por favor escolha um outro nome.
+profileFinishText=Clique em Concluir para criar este novo perfil.
+profileFinishTextMac=Clique em Feito para criar este novo perfil.
+profileMissing=O perfil %S não pode ser carregado. Poderá estar em falta ou inacessível.
+profileMissingTitle=Perfil em falta
+profileDeletionFailed=O perfil não pôde ser apagado dado que pode estar em utilização.
+profileDeletionFailedTitle=Falha ao apagar
+
+# 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=Dados antigos do %S
+
+flushFailTitle=Alterações não guardadas
+flushFailMessage=Um erro inesperado impediu as suas alterações de serem guardadas.
+# LOCALIZATION NOTE (flushFailRestartButton): $S is brandShortName.
+flushFailRestartButton=Reiniciar o %S
+flushFailExitButton=Sair
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozapps/update/updates.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozapps/update/updates.properties
new file mode 100644
index 0000000000..0c1f40a038
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozapps/update/updates.properties
@@ -0,0 +1,45 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: The 1st %S is brandShortName and 2nd %S is update version
+# where update version from the update xml
+# example: MyApplication 10.0.5
+updateName=%S %S
+
+noThanksButton=Não, obrigado
+noThanksButton.accesskey=N
+restartLaterButton=Reiniciar mais tarde
+restartLaterButton.accesskey=m
+restartNowButton=Reiniciar o %S
+restartNowButton.accesskey=e
+
+statusFailed=A instalação falhou
+
+installSuccess=A atualização foi instalada com sucesso
+installPending=Instalação pendente
+patchApplyFailure=A atualização não foi instalada (a aplicação da correção falhou)
+elevationFailure=Não tem as permissões necessárias para instalar esta atualização. Por favor, contacte o seu administrador de sistema.
+
+check_error-200=AUS: Ficheiro de atualização XML danificado (200)
+check_error-403=Acesso negado (403)
+check_error-404=AUS: Ficheiro de atualização XML não encontrado (404)
+check_error-500=AUS: Erro interno do servidor (500)
+check_error-2152398849=Falhou (por motivo desconhecido)
+check_error-2152398861=A ligação foi recusada
+check_error-2152398862=A ligação expirou
+# NS_ERROR_OFFLINE
+check_error-2152398864=A rede está offline (ative o modo online)
+check_error-2152398867=Porta não permitida
+check_error-2152398868=Não foram recebidos dados (tente novamente)
+check_error-2152398878=Servidor de atualização não encontrado (verifique a ligação à Internet)
+check_error-2152398890=Servidor proxy não encontrado (verifique a sua ligação à Internet)
+# NS_ERROR_DOCUMENT_NOT_CACHED
+check_error-2152398918=A rede está offline (ative o modo online)
+check_error-2152398919=Transferência de dados interrompida (tente novamente)
+check_error-2152398920=Ligação ao servidor proxy recusada
+check_error-2153390069=Certificado de servidor expirado (ajuste o relógio do sistema para a data e horas corretas se estiverem erradas)
+check_error-verification_failed=Integridade da atualização não pode ser verificada
+check_error-move_failed=A preparação da instalação da atualização falhou
+check_error-update_url_not_available=URL de atualização não disponível
+check_error-connection_aborted=Ligação abortada
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozldap/ldap.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/mozldap/ldap.properties
new file mode 100644
index 0000000000..ad997c5b1a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Requer palavra-passe do servidor LDAP
+
+## @name AUTH_PROMPT_TEXT
+## @loc %1$S should not be localized. It is the hostname of the LDAP server.
+authPromptText=Introduza a palavra-passe para %1$S.
+
+# These are string versions of all the errors defined in
+# nsILDAPErrors.idl, as well as the nsresult codes based on those
+# errors. See that file for the genesis of these codes, as well as
+# for info about how to get documentation about their precise
+# meanings.
+
+# 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=Erro de Operações
+
+## @name PROTOCOL_ERROR
+## @loc none
+2=Erro de protocolo
+
+## @name TIMELIMIT_EXCEEDED
+## @loc none
+3=Tempo limite excedido
+
+## @name SIZELIMIT_EXCEEDED
+## @loc none
+4=Limite do tamanho excedido
+
+## @name COMPARE_FALSE
+## @loc none
+5=Comparar falso
+
+## @name COMPARE_TRUE
+## @loc none
+6=Comparar verdadeiro
+
+## @name STRONG_AUTH_NOT_SUPPORTED
+## @loc none
+7=Método de autenticação não suportado
+
+## @name STRONG_AUTH_REQUIRED
+## @loc none
+8=Necessária Autenticação forte
+
+## @name PARTIAL_RESULTS
+## @loc none
+9=Resultados e referências parciais recebidas
+
+## @name REFERRAL
+## @loc none
+10=Recebido Referral
+
+## @name ADMINLIMIT_EXCEEDED
+## @loc none
+11=Limite administrativo excedido
+
+## @name UNAVAILABLE_CRITICAL_EXTENSION
+## @loc none
+12=Extensão crítica não disponível
+
+## @name CONFIDENTIALITY_REQUIRED
+## @loc none
+13=Confidencialidade necessária
+
+## @name SASL_BIND_IN_PROGRESS
+## @loc none
+14=Associação SASL em curso
+
+## @name NO_SUCH_ATTRIBUTE
+## @loc none
+16=Atributo não existente
+
+## @name UNDEFINED_TYPE
+## @loc none
+17=Tipo de atributo indefinido
+
+## @name INAPPROPRIATE MATCHIN
+## @loc none
+18=Igualdade Inapropriada
+
+## @name CONSTRAINT_VIOLATION
+## @loc none
+19=Violação de Constrangimento
+
+## @name TYPE_OR_VALUE_EXISTS
+## @loc none
+20=Tipo ou valor existe
+
+## @name INVALID_SYNTAX
+## @loc none
+21=Sintaxe inválida
+
+## @name NO_SUCH_OBJECT
+## @loc none
+32=Objeto não existente
+
+## @name ALIAS_PROBLEM
+## @loc none
+33=Problema de Alcunha
+
+## @name INVALID_DN_ SYNTAX
+## @loc none
+34=Sintaxe DN Inválida
+
+## @name IS_LEAF
+## @loc none
+35=Objeto é um leaf
+
+## @name ALIAS_DEREF_PROBLEM
+## @loc none
+36=Problema de diferença de Alcunha
+
+## @name INAPPROPRIATE_AUTH
+## @loc none
+48=Autenticação imprópria
+
+## @name INVALID_CREDENTIALS
+## @loc none
+49=Credenciais inválidas
+
+## @name INSUFFICIENT_ACCESS
+## @loc none
+50=Acesso insuficiente
+
+## @name BUSY
+## @loc none
+51=O servidor LDAP está ocupado
+
+## @name UNAVAILABLE
+## @loc none
+52=O servidor LDAP está indisponível
+
+## @name UNWILLING_TO_PERFORM
+## @loc none
+53=O servidor LDAP não quer funcionar
+
+## @name LOOP_DETECT
+## @loc none
+54=Detetado ciclo
+
+## @name SORT_CONTROL_MISSING
+## @loc none
+60=Falta o controlo Sort
+
+## @name INDEX_RANGE_ERROR
+## @loc none
+61=Os resultados da pesquisa excedem o intervalo especificado pelos limites
+
+## @name NAMING_VIOLATION
+## @loc none
+64=Violação de Naming
+
+## @name OBJECT_CLASS_VIOLATION
+## @loc none
+65=Violação da classe do objeto
+
+## @name NOT_ALLOWED_ON_NONLEAF
+## @loc none
+66=A operação não é permitida no nonleaf
+
+## @name NOT_ALLOWED_ON_RDN
+## @loc none
+67=Operação RDN não permitida
+
+## @name ALREADY_EXISTS
+## @loc none
+68=Já existe
+
+## @name NO_OBJECT_CLASS_MODS
+## @loc none
+69=Não se pode mudar a classe do objeto
+
+## @name RESULTS_TOO_LARGE
+## @loc none
+70=Resultado muito grande
+
+## @name AFFECTS_MULTIPLE_DSAS
+## @loc none
+71=Afeta múltiplos servidores
+
+## @name OTHER
+## @loc none
+80=Erro desconhecido
+
+## @name SERVER_DOWN
+## @loc none
+81=Não foi possível contactar o servidor LDAP
+
+## @name LOCAL_ERROR
+## @loc none
+82=Erro local
+
+## @name ENCODING_ERROR
+## @loc none
+83=Erro de codificação
+
+## @name DECODING_ERROR
+## @loc none
+84=Erro de descodificação
+
+## @name TIMEOUT
+## @loc none
+85=O servidor LDAP atingiu o tempo limite
+
+## @name AUTH_UNKNOWN
+## @loc none
+86=Método de autenticação desconhecido
+
+## @name FILTER_ERROR
+## @loc none
+87=Filtro inválido
+
+## @name USER_CANCELLED
+## @loc none
+88=Operação cancelada pelo utilizador
+
+## @name PARAM_ERROR
+## @loc none
+89=Parâmetro incorreto para uma rotina LDAP
+
+## @name NO_MEMORY
+## @loc none
+90=Sem memória
+
+## @name CONNECT_ERROR
+## @loc none
+91=Não foi possível ligar-se ao servidor LDAP
+
+## @name NOT_SUPPORTED
+## @loc none
+92=Não suportado por esta versão do protocolo LDAP
+
+## @name CONTROL_NOT_FOUND
+## @loc none
+93=Controlo LDAP necessário não encontrado
+
+## @name NO_RESULTS_RETURNED
+## @loc none
+94=Nenhum resultado obtido
+
+## @name MORE_RESULTS_TO_RETURN
+## @loc none
+95=Mais resultados para obter
+
+## @name CLIENT_LOOP
+## @loc none
+96=Detetado ciclo de cliente
+
+## @name REFERRAL_LIMIT_EXCEEDED
+## @loc none
+97=Excedido limite referral hop
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/necko/necko.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/necko/necko.properties
new file mode 100644
index 0000000000..00a551b64d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/necko/necko.properties
@@ -0,0 +1,100 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+3=A procurar %1$S…
+4=Ligação estabelecida a %1$S…
+5=A enviar pedido a %1$S…
+6=A transferir dados de %1$S…
+7=A estabelecer ligação a %1$S…
+8=Leu %1$S
+9=Escrito %1$S
+10=A aguardar por %1$S…
+11=Procurou %1$S…
+12=A realizar um handshake TLS para %1$S…
+13=O handshake TLS concluiu para %1$S…
+
+RepostFormData=A página web está a ser reencaminhada para uma nova localização. Gostaria de reenviar os dados de formulário que escreveu para a nova localização?
+
+# Directory listing strings
+DirTitle=Índice de %1$S
+DirGoUp=Subir um diretório
+ShowHidden=Mostrar objetos ocultados
+DirColName=Nome
+DirColSize=Tamanho
+DirColMTime=Última modificação
+DirFileLabel=Ficheiro:
+
+SuperfluousAuth=Está prestes a iniciar sessão no site “%1$S” com o nome de utilizador “%2$S”, mas o site não requer autenticação. Isto pode ser uma tentativa de fraude.\n\n“%1$S” é o site que pretende visitar?
+AutomaticAuth=Está prestes a iniciar sessão no site “%1$S” com o nome de utilizador “%2$S”.
+
+TrackerUriBlocked=O recurso em “%1$S” foi bloqueado porque o bloqueio de conteúdo está ativado.
+UnsafeUriBlocked=O recurso em “%1$S” foi bloqueado pelo Safe Browsing.
+
+# LOCALIZATION NOTE (StrictUrlProtocolSetter): %1$S is the URL that has attempted to be changed. %2$S is the invalid target protocol.
+StrictUrlProtocolSetter=A mudança da URL “%1$S“ para o protocolo “%2$S“ foi bloqueada.
+
+# LOCALIZATION NOTE (CORPBlocked): %1$S is the URL of the blocked resource. %2$S is the URL of the MDN page about CORP.
+CORPBlocked=O recurso em “%1$S” foi bloqueado devido ao seu cabeçalho Cross-Origin-Resource-Policy (ou à falta do mesmo). Consulte %2$S
+CookieBlockedByPermission=O pedido para aceder a cookies ou armazenamento em “%1$S” foi bloqueado por causa de permissão de cookies personalizada.
+CookieBlockedTracker=O pedido para aceder a cookies ou armazenamento em “%1$S” foi bloqueado porque veio de um rastreador e o bloqueio de conteúdo está ativado.
+CookieBlockedAll=O pedido para aceder a cookies ou armazenamento em “%1$S” foi bloqueado porque estamos a bloquear todos os pedidos de acesso ao armazenamento.
+CookieBlockedForeign=O pedido para aceder a cookies ou armazenamento em “%1$S” foi bloqueado porque estamos a bloquear todos os pedidos de acesso ao armazenamento de terceiros e o bloqueio de conteúdo está ativado.
+# 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=A cookie particionada ou o acesso ao armazenamento foi fornecido para “%1$S” porque é carregado no contexto de terceiros e o particionamento dinâmico de estado está ativado.
+
+# LOCALIZATION NOTE (CookieAllowedForOriginByStorageAccessAPI): %2$S and %1$S are URLs.
+CookieAllowedForOriginByStorageAccessAPI=Foi concedido acesso ao armazenamento para a origem “%2$S” em “%1$S”.
+# LOCALIZATION NOTE (CookieAllowedForOriginByHeuristic): %2$S and %1$S are URLs.
+CookieAllowedForOriginByHeuristic=Foi automaticamente concedido acesso ao armazenamento para a origem “%2$S” em “%1$S”.
+# LOCALIZATION NOTE (CookieAllowedForFpiByHeuristic): %2$S and %1$S are URLs.
+CookieAllowedForFpiByHeuristic=Acesso de armazenamento concedido automaticamente para o isolamento de primeira linha “%2$S” em “%1$S”.
+
+# LOCALIZATION NOTE(CookieRejectedNonRequiresSecure2): %1$S is the cookie name. Do not localize "SameSite=None" and "secure".
+CookieRejectedNonRequiresSecure2=A cookie “%1$S” foi rejeitada porque possui o atributo “SameSite=None”, mas o atributo “secure” está em falta.
+# LOCALIZATION NOTE(CookieRejectedNonRequiresSecureForBeta3): %1$S is the cookie name. %2$S is a URL. Do not localize "SameSite", "SameSite=None" and "secure".
+CookieRejectedNonRequiresSecureForBeta3=A cookie “%1$S” será rejeitada em breve porque tem o atributo “SameSite” definido como “None”, sem o atributo “secure”. Para saber mais sobre o atributo “SameSite“, consulte %2$S
+# LOCALIZATION NOTE(CookieLaxForced2): %1$S is the cookie name. Do not localize "SameSite", "Lax" and "SameSite=Lax".
+CookieLaxForced2=A cookie “%1$S” tem a política “SameSite” definida como “Lax” porque um atributo “SameSite” está em falta e “SameSite=Lax” é o valor predefinido para este atributo.
+# 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=A cookie “%1$S” não possui um valor de atributo “SameSite” adequado. Em breve, os cookies sem o atributo “SameSite” ou com um valor inválido serão tratados como “Lax”. Isto significa que a cookie deixará de ser enviada em contextos de terceiros. Se a sua aplicação depende da disponibilidade desta cookie em tais contextos, adicione o atributo “SameSite=None“ à mesma. Para saber mais sobre o atributo “SameSite“, consulte %2$S
+# LOCALIZATION NOTE(CookieSameSiteValueInvalid2): %1$S is cookie name. Do not localize "SameSite", "Lax", "Strict" and "None"
+CookieSameSiteValueInvalid2=Valor “SameSite“ inválido para a cookie “%1$S”. Os valores suportados são: “Lax“, “Strict“, “None“.
+# LOCALIZATION NOTE (CookieOversize): %1$S is the cookie name. %2$S is the number of bytes. "B" means bytes.
+CookieOversize=A cookie “%1$S” é inválida porque o seu tamanho é muito grande. O tamanho máximo é de %2$S B.
+# LOCALIZATION NOTE (CookiePathOversize): %1$S is the cookie name. %2$S is the number of bytes. "B" means bytes.
+CookiePathOversize=A cookie “%1$S” é inválida porque o tamanho do seu caminho é muito grande. O tamanho máximo é de %2$S B.
+# LOCALIZATION NOTE (CookieRejectedByPermissionManager): %1$S is the cookie response header.
+CookieRejectedByPermissionManager=A cookie “%1$S” foi rejeitada por permissões definidas pelo utilizador.
+# LOCALIZATION NOTE (CookieRejectedInvalidCharName): %1$S is the cookie name.
+CookieRejectedInvalidCharName=A cookie “%1$S” foi rejeitada por conter carateres inválidos no nome.
+# LOCALIZATION NOTE (CookieRejectedInvalidDomain): %1$S is the cookie name.
+CookieRejectedInvalidDomain=A cookie “%1$S” foi rejeitada pelo facto do domínio ser inválido.
+# LOCALIZATION NOTE (CookieRejectedInvalidPrefix): %1$S is the cookie name.
+CookieRejectedInvalidPrefix=A cookie “%1$S” foi rejeitada pelo facto do prefixo ser inválido.
+# LOCALIZATION NOTE (CookieRejectedInvalidCharValue): %1$S is the cookie name.
+CookieRejectedInvalidCharValue=A cookie “%1$S” foi rejeitada por conter carateres inválidos no valor.
+# LOCALIZATION NOTE (CookieRejectedHttpOnlyButFromScript): %1$S is the cookie name.
+CookieRejectedHttpOnlyButFromScript=A cookie “%1$S” foi rejeitada porque já existia uma cookie de HTTP exclusiva mas o script tentou armazenar uma nova cookie.
+# LOCALIZATION NOTE (CookieRejectedSecureButHttp): %1$S is the cookie name.
+CookieRejectedSecureButNonHttps=A cookie “%1$S” foi rejeitada porque uma cookie não HTTPS não pode ser configurada como “segura”.
+# LOCALIZATION NOTE (CookieRejectedThirdParty): %1$S is the cookie response header.
+CookieRejectedThirdParty=A cookie “%1$S” foi rejeitada como uma cookie de terceiros.
+# LOCALIZATION NOTE (CookieRejectedNonsecureOverSecure): %1$S is the cookie name.
+CookieRejectedNonsecureOverSecure=A cookie “%1$S” foi rejeitada porque já existe uma cookie “segura”.
+# LOCALIZATION NOTE (CookieRejectedForNonSameSiteness): %1$S is the cookie name.
+CookieRejectedForNonSameSiteness=A cookie “%1$S” foi rejeitada porque está num contexto inter-sites e respetivo “SameSite” é “Lax” ou “Strict”.
+
+# LOCALIZATION NOTE (CookieBlockedCrossSiteRedirect): %1$S is the cookie name. Do not translate "SameSite", "Lax" or "Strict".
+CookieBlockedCrossSiteRedirect=O cookie “%1$S” com o valor de atributo “SameSite” “Lax” ou “Strict” foi omitido porque é um redirecionamento entre sites.
+
+# LOCALIZATION NOTE (APIDeprecationWarning): %1$S is the deprecated API; %2$S is the API function that should be used.
+APIDeprecationWarning=Aviso: ‘%1$S’ descontinuado, por favor utilize ‘%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=O recurso em “%1$S” foi bloqueado por OpaqueResponseBlocking. Motivo: “%2$S”.
+
+InvalidHTTPResponseStatusLine=A linha de estado da resposta HTTP é inválida
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/passwordmgr/passwordmgr.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/passwordmgr/passwordmgr.properties
new file mode 100644
index 0000000000..8e09056634
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/passwordmgr/passwordmgr.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/.
+
+rememberPassword = Utilizar o gestor de palavras-passe para memorizar esta palavra-passe.
+savePasswordTitle = Confirmar
+# LOCALIZATION NOTE (saveLoginMsg2, saveLoginMsgNoUser2):
+# %S is the login's hostname.
+saveLoginMsg2 = Guardar credencial para %S?
+saveLoginMsgNoUser2 = Guardar palavra-passe para %S?
+saveLoginButtonAllow.label = Guardar
+saveLoginButtonAllow.accesskey = G
+saveLoginButtonDeny.label = Não guardar
+saveLoginButtonDeny.accesskey = N
+saveLoginButtonNever.label = Nunca guardar
+saveLoginButtonNever.accesskey = a
+# LOCALIZATION NOTE (updateLoginMsg3, updateLoginMsgNoUser3):
+# %S is the login's hostname.
+updateLoginMsg3 = Atualizar a credencial para %S?
+updateLoginMsgNoUser3 = Atualizar palavra-passe para %S?
+updateLoginMsgAddUsername2 = Adicionar nome de utilizador à palavra-passe guardada?
+updateLoginButtonText = Atualizar
+updateLoginButtonAccessKey = u
+updateLoginButtonDeny.label = Não atualizar
+updateLoginButtonDeny.accesskey = N
+updateLoginButtonDelete.label = Remover credencial guardada
+updateLoginButtonDelete.accesskey = R
+# LOCALIZATION NOTE (rememberPasswordMsg):
+# 1st string is the username for the login, 2nd is the login's hostname.
+# Note that long usernames may be truncated.
+rememberPasswordMsg = Gostaria de memorizar a palavra-passe para “%1$S” em %2$S?
+# LOCALIZATION NOTE (rememberPasswordMsgNoUsername):
+# String is the login's hostname.
+rememberPasswordMsgNoUsername = Gostaria de memorizar a palavra-passe em %S?
+# LOCALIZATION NOTE (noUsernamePlaceholder):
+# This is displayed in place of the username when it is missing.
+noUsernamePlaceholder=Sem nome de utilizador
+togglePasswordLabel=Mostrar palavra-passe
+togglePasswordAccessKey2=o
+notNowButtonText = &Agora não
+neverForSiteButtonText = N&unca para este site
+rememberButtonText = &Memorizar
+passwordChangeTitle = Confirmar alteração de palavra-passe
+# LOCALIZATION NOTE (updatePasswordMsg):
+# String is the username for the login.
+updatePasswordMsg = Gostaria de atualizar a palavra-passe guardada para “%S”?
+updatePasswordMsgNoUser = Gostaria de atualizar a palavra-passe guardada?
+userSelectText2 = Selecione qual credencial a atualizar:
+loginsDescriptionAll2=As credenciais para os seguintes sites estão armazenadas no seu computador
+
+# LOCALIZATION NOTE (useASecurelyGeneratedPassword):
+# Shown in the autocomplete popup to allow filling a generated password into a password field.
+useASecurelyGeneratedPassword=Utilizar uma palavra-passe gerada com segurança
+# LOCALIZATION NOTE (generatedPasswordWillBeSaved):
+# %S will contain the brandShorterName. This informs the user that the generated password will be automatically saved.
+generatedPasswordWillBeSaved=O %S irá guardar esta palavra-passe para este site.
+# 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=Nenhum nome de utilizador
+# LOCALIZATION NOTE (displaySameOrigin):
+# String is used on the autocomplete row when the login origin is a domain match with the document origin
+displaySameOrigin=Deste site
+
+# LOCALIZATION NOTE (insecureFieldWarningDescription2):
+# %1$S will contain insecureFieldWarningLearnMore and look like a link to indicate that clicking will open a tab with support information.
+insecureFieldWarningDescription2 = Esta ligação não é segura. Credenciais aqui introduzidas podem ser comprometidas. %1$S
+insecureFieldWarningLearnMore = Saber mais
+
+# LOCALIZATION NOTE (viewSavedLogins.label):
+# This label is used in the footer of login autocomplete menus.
+viewSavedLogins.label= Ver credenciais guardadas
+
+# LOCALIZATION NOTE (managePasswords.label):
+# This label is used in the footer of login autocomplete menus.
+managePasswords.label= Gerir palavras-passe
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/pipnss/nsserrors.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/pipnss/nsserrors.properties
new file mode 100644
index 0000000000..8c0fde0f03
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/pipnss/nsserrors.properties
@@ -0,0 +1,331 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+SSL_ERROR_EXPORT_ONLY_SERVER=Não foi possível comunicar de forma segura. O par não suporta encriptação de alta qualidade.
+SSL_ERROR_US_ONLY_SERVER=Não foi possível comunicar de forma segura. O par requer uma encriptação de alta qualidade que não é suportada.
+SSL_ERROR_NO_CYPHER_OVERLAP=Não foi possível comunicar de forma segura com o par: não existe(m) algoritmo(s) de encriptação em comum.
+SSL_ERROR_NO_CERTIFICATE=Não foi possível localizar o certificado ou chave necessária para a autenticação.
+SSL_ERROR_BAD_CERTIFICATE=Não foi possível comunicar de forma segura com o par: o certificado do par foi rejeitado.
+SSL_ERROR_BAD_CLIENT=O servidor encontrou dados do cliente danificados.
+SSL_ERROR_BAD_SERVER=O cliente encontrou dados do servidor danificados.
+SSL_ERROR_UNSUPPORTED_CERTIFICATE_TYPE=Tipo de certificado não suportado.
+SSL_ERROR_UNSUPPORTED_VERSION=O par está a utilizar uma versão de protocolo de segurança não suportada.
+SSL_ERROR_WRONG_CERTIFICATE=Autenticação do cliente falhou: chave privada na base de dados de chaves não corresponde à chave pública na base de dados de certificados.
+SSL_ERROR_BAD_CERT_DOMAIN=Não foi possível comunicar com o par: domínio pedido não corresponde ao certificado do servidor.
+SSL_ERROR_POST_WARNING=Código de erro SSL desconhecido.
+SSL_ERROR_SSL2_DISABLED=O par só suporta SSL versão 2, que está desativada localmente.
+SSL_ERROR_BAD_MAC_READ=O SSL recebeu um registo com um código de mensagem de autenticação incorreto.
+SSL_ERROR_BAD_MAC_ALERT=O par SSL reporta um código de mensagem de autenticação incorreto.
+SSL_ERROR_BAD_CERT_ALERT=O par SSL não consegue verificar o seu certificado.
+SSL_ERROR_REVOKED_CERT_ALERT=O par SSL rejeitou o seu certificado como revogado.
+SSL_ERROR_EXPIRED_CERT_ALERT=O par SSL rejeitou o seu certificado como expirado.
+SSL_ERROR_SSL_DISABLED=Impossível ligar: SSL está desligado.
+SSL_ERROR_FORTEZZA_PQG=Impossível ligar: O par SSL está noutro domínio FORTEZZA.
+SSL_ERROR_UNKNOWN_CIPHER_SUITE=Solicitada uma combinação de cifras SSL desconhecida.
+SSL_ERROR_NO_CIPHERS_SUPPORTED=Não existem conjuntos de cifras presentes e ativadas neste programa.
+SSL_ERROR_BAD_BLOCK_PADDING=O SSL recebeu um registo com enchimento de bloco errado.
+SSL_ERROR_RX_RECORD_TOO_LONG=O SSL recebeu um registo que excedeu o tamanho máximo permitido.
+SSL_ERROR_TX_RECORD_TOO_LONG=SSL tentou enviar um registo que excedeu o tamanho máximo permitido.
+SSL_ERROR_RX_MALFORMED_HELLO_REQUEST=O SSL recebeu uma mensagem handshake Hello Request mal formada.
+SSL_ERROR_RX_MALFORMED_CLIENT_HELLO=O SSL recebeu uma mensagem handshake Client Hello mal formada.
+SSL_ERROR_RX_MALFORMED_SERVER_HELLO=O SSL recebeu uma mensagem handshake Server Hello mal formada.
+SSL_ERROR_RX_MALFORMED_CERTIFICATE=O SSL recebeu uma mensagem handshake de certificado mal formada.
+SSL_ERROR_RX_MALFORMED_SERVER_KEY_EXCH=O SSL recebeu uma mensagem handshake de troca de chave de servidor mal formada.
+SSL_ERROR_RX_MALFORMED_CERT_REQUEST=O SSL recebeu uma mensagem handshake de pedido de certificado mal formada.
+SSL_ERROR_RX_MALFORMED_HELLO_DONE=O SSL recebeu uma mensagem handshake Server Hello Done mal formada.
+SSL_ERROR_RX_MALFORMED_CERT_VERIFY=O SSL recebeu uma mensagem handshake de verificação de certificado mal formada.
+SSL_ERROR_RX_MALFORMED_CLIENT_KEY_EXCH=O SSL recebeu uma mensagem handshake de troca de chave de cliente mal formada.
+SSL_ERROR_RX_MALFORMED_FINISHED=O SSL recebeu uma mensagem handshake de conclusão malformada.
+SSL_ERROR_RX_MALFORMED_CHANGE_CIPHER=O SSL recebeu um registo de troca de especificação de cifras mal formado.
+SSL_ERROR_RX_MALFORMED_ALERT=O SSL recebeu um registo de alerta mal formado.
+SSL_ERROR_RX_MALFORMED_HANDSHAKE=O SSL recebeu um registo handshake mal formado.
+SSL_ERROR_RX_MALFORMED_APPLICATION_DATA=O SSL recebeu um registo de dados da aplicação mal formado.
+SSL_ERROR_RX_UNEXPECTED_HELLO_REQUEST=O SSL recebeu uma mensagem handshake Hello Request inesperada.
+SSL_ERROR_RX_UNEXPECTED_CLIENT_HELLO=O SSL recebeu uma mensagem handshake Client Hello inesperada.
+SSL_ERROR_RX_UNEXPECTED_SERVER_HELLO=O SSL recebeu uma mensagem handshake Server Hello inesperada.
+SSL_ERROR_RX_UNEXPECTED_CERTIFICATE=O SSL recebeu uma mensagem handshake de certificado inesperada.
+SSL_ERROR_RX_UNEXPECTED_SERVER_KEY_EXCH=O SSL recebeu uma mensagem handshake de troca de chave de servidor inesperada.
+SSL_ERROR_RX_UNEXPECTED_CERT_REQUEST=O SSL recebeu uma mensagem handshake de pedido de certificado inesperada.
+SSL_ERROR_RX_UNEXPECTED_HELLO_DONE=O SSL recebeu uma mensagem handshake Server Hello Done inesperada.
+SSL_ERROR_RX_UNEXPECTED_CERT_VERIFY=O SSL recebeu uma mensagem handshake de verificação de certificado inesperada.
+SSL_ERROR_RX_UNEXPECTED_CLIENT_KEY_EXCH=O SSL recebeu uma mensagem handshake de troca de chave de cliente inesperada.
+SSL_ERROR_RX_UNEXPECTED_FINISHED=O SSL recebeu uma mensagem handshake de conclusão inesperada.
+SSL_ERROR_RX_UNEXPECTED_CHANGE_CIPHER=O SSL recebeu um registo de troca de especificação de cifras inesperado.
+SSL_ERROR_RX_UNEXPECTED_ALERT=O SSL recebeu um registo de alerta inesperado.
+SSL_ERROR_RX_UNEXPECTED_HANDSHAKE=O SSL recebeu um registo handshake inesperado.
+SSL_ERROR_RX_UNEXPECTED_APPLICATION_DATA=O SSL recebeu um registo de dados da aplicação inesperado.
+SSL_ERROR_RX_UNKNOWN_RECORD_TYPE=O SSL recebeu um registo com um tipo de conteúdo desconhecido.
+SSL_ERROR_RX_UNKNOWN_HANDSHAKE=O SSL recebeu uma mensagem handshake com um tipo de mensagem desconhecido.
+SSL_ERROR_RX_UNKNOWN_ALERT=O SSL recebeu um registo de alerta com uma descrição desconhecida.
+SSL_ERROR_CLOSE_NOTIFY_ALERT=O par SSL fechou esta ligação.
+SSL_ERROR_HANDSHAKE_UNEXPECTED_ALERT=O par SSL não esperava a mensagem handshake que recebeu.
+SSL_ERROR_DECOMPRESSION_FAILURE_ALERT=O par SSL foi incapaz de descomprimir um registo SSL que recebeu.
+SSL_ERROR_HANDSHAKE_FAILURE_ALERT=O par SSL foi incapaz de negociar um conjunto aceitável de parâmetros de segurança.
+SSL_ERROR_ILLEGAL_PARAMETER_ALERT=O par SSL rejeitou uma mensagem handshake devido a conteúdo inaceitável.
+SSL_ERROR_UNSUPPORTED_CERT_ALERT=O par SSL não suporta certificados do tipo que recebeu.
+SSL_ERROR_CERTIFICATE_UNKNOWN_ALERT=O par SSL teve um problema não especificado com o certificado que recebeu.
+SSL_ERROR_GENERATE_RANDOM_FAILURE=SSL teve uma falha no gerador de números aleatórios.
+SSL_ERROR_SIGN_HASHES_FAILURE=Falha ao assinar digitalmente os dados necessários para verificar o seu certificado.
+SSL_ERROR_EXTRACT_PUBLIC_KEY_FAILURE=SSL foi incapaz de extrair a chave pública do certificado do par.
+SSL_ERROR_SERVER_KEY_EXCHANGE_FAILURE=Falha não especificada ao processar o handshake SSL de troca de chave de servidor.
+SSL_ERROR_CLIENT_KEY_EXCHANGE_FAILURE=Falha não especificada ao processar o handshake SSL de troca de chave de cliente.
+SSL_ERROR_ENCRYPTION_FAILURE=O algoritmo de codificação de dados em lote falhou para o conjunto selecionado.
+SSL_ERROR_DECRYPTION_FAILURE=O algoritmo de descodificação de dados em lote falhou para o conjunto selecionado.
+SSL_ERROR_SOCKET_WRITE_FAILURE=Erro ao tentar escrever os dados encriptados no socket subjacente.
+SSL_ERROR_MD5_DIGEST_FAILURE=A função de resumo MD5 falhou.
+SSL_ERROR_SHA_DIGEST_FAILURE=A função de resumo SHA-1 falhou.
+SSL_ERROR_MAC_COMPUTATION_FAILURE=A computação MAC falhou.
+SSL_ERROR_SYM_KEY_CONTEXT_FAILURE=Falha ao criar o contexto da chave simétrica.
+SSL_ERROR_SYM_KEY_UNWRAP_FAILURE=Falha ao "desencapsular" a chave simétrica na mensagem de intercâmbio de chave de cliente.
+SSL_ERROR_PUB_KEY_SIZE_LIMIT_EXCEEDED=O servidor SSL tentou utilizar uma chave pública doméstica com a exportação de pacote de cifra.
+SSL_ERROR_IV_PARAM_FAILURE=O código PKCS11 falhou a tradução de um IV para um param.
+SSL_ERROR_INIT_CIPHER_SUITE_FAILURE=Falha ao iniciar do pacote de cifra selecionado.
+SSL_ERROR_SESSION_KEY_GEN_FAILURE=O cliente falhou a criação de chaves de sessão para a sessão SSL.
+SSL_ERROR_NO_SERVER_KEY_FOR_ALG=O servidor não tem chave para a tentativa de algoritmo de troca de chave.
+SSL_ERROR_TOKEN_INSERTION_REMOVAL=O token PKCS#11 foi inserido ou removido enquanto a operação estava a decorrer.
+SSL_ERROR_TOKEN_SLOT_NOT_FOUND=Não foi encontrado nenhum token PKCS#11 para a operação requerida.
+SSL_ERROR_NO_COMPRESSION_OVERLAP=Não é possível comunicar de forma segura com o par: não existem algoritmos de compressão em comum.
+SSL_ERROR_HANDSHAKE_NOT_COMPLETED=Não é possível iniciar outro handshake SSL até que o handshake atual seja concluído.
+SSL_ERROR_BAD_HANDSHAKE_HASH_VALUE=Recebidos valores hash incorretos de handshakes do par.
+SSL_ERROR_CERT_KEA_MISMATCH=O certificado recebido não pode ser utilizado com o algoritmo de intercâmbio de chave fornecido.
+SSL_ERROR_NO_TRUSTED_SSL_CLIENT_CA=Nenhuma autoridade certificadora é confiada para autenticação SSL do cliente.
+SSL_ERROR_SESSION_NOT_FOUND=O ID da sessão SSL do cliente não foi encontrado na cache de sessão do servidor.
+SSL_ERROR_DECRYPTION_FAILED_ALERT=O par não conseguiu desencriptar o registo SSL que recebeu.
+SSL_ERROR_RECORD_OVERFLOW_ALERT=O par recebeu um registo SSL maior do que é permitido.
+SSL_ERROR_UNKNOWN_CA_ALERT=O par não reconhece nem confia na AC que emitiu o seu certificado.
+SSL_ERROR_ACCESS_DENIED_ALERT=O par recebeu um certificado válido, mas o acesso foi negado.
+SSL_ERROR_DECODE_ERROR_ALERT=O par não conseguiu descodificar a mensagem handshake SSL.
+SSL_ERROR_DECRYPT_ERROR_ALERT=O par indicou uma falha na verificação da assinatura ou intercâmbio de chave.
+SSL_ERROR_EXPORT_RESTRICTION_ALERT=O par indica uma negociação em desacordo com os regulamentos de exportação.
+SSL_ERROR_PROTOCOL_VERSION_ALERT=O par indica uma versão do protocolo não suportada ou incompatível.
+SSL_ERROR_INSUFFICIENT_SECURITY_ALERT=O servidor requer cifras mais seguras do que as suportadas pelo cliente.
+SSL_ERROR_INTERNAL_ERROR_ALERT=O par indicou que teve um erro interno.
+SSL_ERROR_USER_CANCELED_ALERT=O utilizador do par cancelou o handshake.
+SSL_ERROR_NO_RENEGOTIATION_ALERT=O par não permite a re-negociação dos parâmetros de segurança SSL.
+SSL_ERROR_SERVER_CACHE_NOT_CONFIGURED=Cache do servidor SSL não configurado e não desativado para este socket.
+SSL_ERROR_UNSUPPORTED_EXTENSION_ALERT=O par SSL não tem suporte à extensão TLS hello.
+SSL_ERROR_CERTIFICATE_UNOBTAINABLE_ALERT=O par SSL não conseguiu obter o seu certificado a partir do URL fornecido.
+SSL_ERROR_UNRECOGNIZED_NAME_ALERT=O par SSL não tem um certificado para o nome DNS solicitado.
+SSL_ERROR_BAD_CERT_STATUS_RESPONSE_ALERT=O par SSL não conseguiu obter uma resposta OCSP para este certificado.
+SSL_ERROR_BAD_CERT_HASH_VALUE_ALERT=O par SSL reportou um erro no valor hash do certificado.
+SSL_ERROR_RX_UNEXPECTED_NEW_SESSION_TICKET=O SSL recebeu uma mensagem inesperada de handshake de nova sessão.
+SSL_ERROR_RX_MALFORMED_NEW_SESSION_TICKET=O SSL recebeu uma mensagem mal formada de handshake de nova sessão.
+SSL_ERROR_DECOMPRESSION_FAILURE=O SSL recebeu um registo comprimido que não pode ser descomprimido.
+SSL_ERROR_RENEGOTIATION_NOT_ALLOWED=A renegociação não é permitida neste socket SSL.
+SSL_ERROR_UNSAFE_NEGOTIATION=O par tentou um handshake ao estilo antigo (potencialmente vulnerável).
+SSL_ERROR_RX_UNEXPECTED_UNCOMPRESSED_RECORD=SSL recebeu um registo inesperado não comprimido.
+SSL_ERROR_WEAK_SERVER_EPHEMERAL_DH_KEY=O SSL recebeu uma chave fraca e efémera Diffie-Hellman na mensagem handshake de troca de chave de servidor.
+SSL_ERROR_NEXT_PROTOCOL_DATA_INVALID=O SSL recebeu dados de extensão NPN inválidos.
+SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_SSL2=Funcionalidade SSL não suportada para ligações SSL 2.0.
+SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_SERVERS=A funcionalidade SSL não é suportada para servidores.
+SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_CLIENTS=Funcionalidade SSL não suportada por clientes.
+SSL_ERROR_INVALID_VERSION_RANGE=O intervalo da versão SSL não é válido.
+SSL_ERROR_CIPHER_DISALLOWED_FOR_VERSION=O par SSL selecionou um cipher desativado para a versão do protocolo selecionado.
+SSL_ERROR_RX_MALFORMED_HELLO_VERIFY_REQUEST=O SSL recebeu uma mensagem handshake Hello Verify Request mal formada.
+SSL_ERROR_RX_UNEXPECTED_HELLO_VERIFY_REQUEST=O SSL recebeu uma mensagem handshake Hello Verify Request inesperada.
+SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_VERSION=Funcionalidade SSL não suportada para esta versão do protocolo.
+SSL_ERROR_RX_UNEXPECTED_CERT_STATUS=O SSL recebeu uma mensagem handshake de estado do certificado inesperada.
+SSL_ERROR_UNSUPPORTED_HASH_ALGORITHM=Algoritmo de hash não suportado pelo par TLS.
+SSL_ERROR_DIGEST_FAILURE=A função Digest falhou.
+SSL_ERROR_INCORRECT_SIGNATURE_ALGORITHM=Assinatura incorreta do algoritmo especificada num elemento assinado digitalmente.
+SSL_ERROR_NEXT_PROTOCOL_NO_CALLBACK=A negociação de protocolo da extensão seguinte foi ativada, mas a chamada de retorno foi limpa antes de ser necessária.
+SSL_ERROR_NEXT_PROTOCOL_NO_PROTOCOL=O servidor não suporta os protocolos que o cliente informa na extensão ALPN.
+SSL_ERROR_INAPPROPRIATE_FALLBACK_ALERT=O servidor rejeitou o handshake porque o cliente alterou para uma versão inferior de TLS não suportada pelo servidor.
+SSL_ERROR_WEAK_SERVER_CERT_KEY=O certificado do servidor inclui uma chave pública de qualidade fraca.
+SSL_ERROR_RX_SHORT_DTLS_READ=Sem espaço suficiente no buffer para gravação DTLS.
+SSL_ERROR_NO_SUPPORTED_SIGNATURE_ALGORITHM=Nenhum algoritmo de assinatura TLS suportado foi configurado.
+SSL_ERROR_UNSUPPORTED_SIGNATURE_ALGORITHM=O par utilizou um algoritmo de combinação de assinatura e hash não suportado.
+SSL_ERROR_MISSING_EXTENDED_MASTER_SECRET=O par tentou resumir sem a extensão extended_master_secret correta.
+SSL_ERROR_UNEXPECTED_EXTENDED_MASTER_SECRET=O par tentou resumir com uma extensão extended_master_secret inesperada.
+SEC_ERROR_IO=Ocorreu um erro de E/S durante a autorização de segurança.
+SEC_ERROR_LIBRARY_FAILURE=falha na biblioteca de segurança.
+SEC_ERROR_BAD_DATA=biblioteca de segurança: receção de dados errados.
+SEC_ERROR_OUTPUT_LEN=biblioteca de segurança: erro no comprimento de saída.
+SEC_ERROR_INPUT_LEN=a biblioteca de segurança sofreu um erro de comprimento de entrada.
+SEC_ERROR_INVALID_ARGS=biblioteca de segurança: argumentos inválidos.
+SEC_ERROR_INVALID_ALGORITHM=biblioteca de segurança: algoritmo inválido.
+SEC_ERROR_INVALID_AVA=biblioteca de segurança: AVA inválido.
+SEC_ERROR_INVALID_TIME=String com a hora formatada incorretamente.
+SEC_ERROR_BAD_DER=biblioteca de segurança: formatação incorreta da mensagem com codificação DER.
+SEC_ERROR_BAD_SIGNATURE=O certificado do par tem uma assinatura inválida.
+SEC_ERROR_EXPIRED_CERTIFICATE=O certificado do par expirou.
+SEC_ERROR_REVOKED_CERTIFICATE=O certificado do par foi revogado.
+SEC_ERROR_UNKNOWN_ISSUER=O emissor do certificado do par não é reconhecido.
+SEC_ERROR_BAD_KEY=A chave pública do par é inválida.
+SEC_ERROR_BAD_PASSWORD=A palavra-passe de segurança introduzida está incorreta.
+SEC_ERROR_RETRY_PASSWORD=A nova palavra-passe foi introduzida incorretamente. Por favor tente novamente.
+SEC_ERROR_NO_NODELOCK=biblioteca de segurança: sem nó trancado.
+SEC_ERROR_BAD_DATABASE=biblioteca de segurança: base de dados corrompida.
+SEC_ERROR_NO_MEMORY=biblioteca de segurança: falha na atribuição de memória.
+SEC_ERROR_UNTRUSTED_ISSUER=O emissor do certificado do par foi marcado como não sendo de confiança pelo utilizador.
+SEC_ERROR_UNTRUSTED_CERT=O certificado do par foi marcado como não sendo de confiança pelo utilizador.
+SEC_ERROR_DUPLICATE_CERT=O certificado já existe na sua base de dados.
+SEC_ERROR_DUPLICATE_CERT_NAME=O nome do certificado transferido é igual a um já existente na sua base de dados.
+SEC_ERROR_ADDING_CERT=Erro ao adicionar o certificado à base de dados.
+SEC_ERROR_FILING_KEY=Erro ao preencher a chave para este certificado.
+SEC_ERROR_NO_KEY=A chave privada para este certificado não foi encontrado na sua base de dados
+SEC_ERROR_CERT_VALID=Este certificado é válido.
+SEC_ERROR_CERT_NOT_VALID=Este certificado não é válido.
+SEC_ERROR_CERT_NO_RESPONSE=Biblioteca Cert: Sem resposta
+SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE=O certificado do emissor do certificado expirou. Verifique a data e hora do seu sistema.
+SEC_ERROR_CRL_EXPIRED=A CRL para emissores de certificados expirou. Atualize ou verifique a data e hora do seu sistema.
+SEC_ERROR_CRL_BAD_SIGNATURE=A CRL para emissores de certificados tem uma assinatura inválida.
+SEC_ERROR_CRL_INVALID=A nova CRL tem um formato inválido.
+SEC_ERROR_EXTENSION_VALUE_INVALID=O valor da extensão do certificado é inválido.
+SEC_ERROR_EXTENSION_NOT_FOUND=Extensão do certificado não encontrada.
+SEC_ERROR_CA_CERT_INVALID=O emissor do certificado é inválido.
+SEC_ERROR_PATH_LEN_CONSTRAINT_INVALID=A restrição ao comprimento do caminho para o certificado é inválida.
+SEC_ERROR_CERT_USAGES_INVALID=O campo de utilização do certificado é inválido.
+SEC_INTERNAL_ONLY=**APENAS módulo interno**
+SEC_ERROR_INVALID_KEY=A chave não suporta a operação pedida.
+SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION=O certificado contém uma extensão crítica desconhecida.
+SEC_ERROR_OLD_CRL=A nova CRL não é mais recente que a atual.
+SEC_ERROR_NO_EMAIL_CERT=Por encriptar ou assinar: ainda não tem um certificado de email.
+SEC_ERROR_NO_RECIPIENT_CERTS_QUERY=Por encriptar: não tem certificados para cada um dos destinatários.
+SEC_ERROR_NOT_A_RECIPIENT=Não é possível desencriptar: você não é um destinatário ou o certificado correspondente e a chave privada não foram encontrados.
+SEC_ERROR_PKCS7_KEYALG_MISMATCH=Não é possível desencriptar: a chave do algoritmo de encriptação não corresponde com o seu certificado.
+SEC_ERROR_PKCS7_BAD_SIGNATURE=Falhou a verificação da assinatura: nenhum assinante encontrado, encontrados demasiados assinantes, ou dados impróprios ou corrompidos.
+SEC_ERROR_UNSUPPORTED_KEYALG=Algoritmo de chave desconhecido ou não suportado.
+SEC_ERROR_DECRYPTION_DISALLOWED=Não é possível desencriptar: encriptado utilizando um algoritmo ou tamanho de chave não permitido.
+XP_SEC_FORTEZZA_BAD_CARD=O cartão Fortezza não foi iniciado corretamente. Por favor remova-o e devolva-o ao seu emissor.
+XP_SEC_FORTEZZA_NO_CARD=Não foram encontrados cartões Fortezza
+XP_SEC_FORTEZZA_NONE_SELECTED=Nenhum cartão Fortezza selecionado
+XP_SEC_FORTEZZA_MORE_INFO=Por favor escolha uma personalidade para obter informação de
+XP_SEC_FORTEZZA_PERSON_NOT_FOUND=Personalidade não encontrada
+XP_SEC_FORTEZZA_NO_MORE_INFO=Não existe mais informação sobre essa Personalidade
+XP_SEC_FORTEZZA_BAD_PIN=Pin inválido
+XP_SEC_FORTEZZA_PERSON_ERROR=Não foi possível inicializar personalidades Fortezza.
+SEC_ERROR_NO_KRL=Não foi encontrado um KRL para o certificado deste site.
+SEC_ERROR_KRL_EXPIRED=O KRL para o certificado deste site expirou.
+SEC_ERROR_KRL_BAD_SIGNATURE=O KRL para o certificado deste site tem uma assinatura inválida.
+SEC_ERROR_REVOKED_KEY=A chave para o certificado deste site foi revogado.
+SEC_ERROR_KRL_INVALID=O novo KRL tem um formato inválido.
+SEC_ERROR_NEED_RANDOM=biblioteca de segurança: necessita de dados aleatórios.
+SEC_ERROR_NO_MODULE=biblioteca de segurança: nenhum módulo de segurança pode realizar a operação pedida.
+SEC_ERROR_NO_TOKEN=O cartão de segurança ou token não existe, precisa de ser inicializado ou foi removido.
+SEC_ERROR_READ_ONLY=biblioteca de segurança: base de dados apenas de leitura.
+SEC_ERROR_NO_SLOT_SELECTED=Nenhuma ranhura ou token selecionado.
+SEC_ERROR_CERT_NICKNAME_COLLISION=Já existe um certificado com a mesma alcunha.
+SEC_ERROR_KEY_NICKNAME_COLLISION=Já existe uma chave com a mesma alcunha.
+SEC_ERROR_SAFE_NOT_CREATED=erro ao criar o objeto seguro
+SEC_ERROR_BAGGAGE_NOT_CREATED=erro ao criar objeto bagagem
+XP_JAVA_REMOVE_PRINCIPAL_ERROR=Não foi possível remover o principal
+XP_JAVA_DELETE_PRIVILEGE_ERROR=Não foi possível apagar o privilégio
+XP_JAVA_CERT_NOT_EXISTS_ERROR=Este principal não tem um certificado
+SEC_ERROR_BAD_EXPORT_ALGORITHM=Algoritmo necessário não é permitido.
+SEC_ERROR_EXPORTING_CERTIFICATES=Erro ao tentar exportar certificados.
+SEC_ERROR_IMPORTING_CERTIFICATES=Erro ao tentar importar certificados.
+SEC_ERROR_PKCS12_DECODING_PFX=Não foi possível importar. Erro de descodificação. Ficheiro inválido.
+SEC_ERROR_PKCS12_INVALID_MAC=Não foi possível importar. MAC inválido. Palavra-passe incorreta ou ficheiro corrompido.
+SEC_ERROR_PKCS12_UNSUPPORTED_MAC_ALGORITHM=Não foi possível importar. Algoritmo MAC não suportado.
+SEC_ERROR_PKCS12_UNSUPPORTED_TRANSPORT_MODE=Não foi possível importar. Apenas são suportados os modos de integridade de palavra-passe e de privacidade.
+SEC_ERROR_PKCS12_CORRUPT_PFX_STRUCTURE=Não foi possível importar. A estrutura do ficheiro está danificada.
+SEC_ERROR_PKCS12_UNSUPPORTED_PBE_ALGORITHM=Não foi possível importar. O algoritmo de encriptação não é suportado.
+SEC_ERROR_PKCS12_UNSUPPORTED_VERSION=Não foi possível importar. A versão do ficheiro não é suportada.
+SEC_ERROR_PKCS12_PRIVACY_PASSWORD_INCORRECT=Não foi possível importar. Palavra-passe de privacidade incorreta.
+SEC_ERROR_PKCS12_CERT_COLLISION=Não foi possível importar. A mesma alcunha já existe na base de dados.
+SEC_ERROR_USER_CANCELLED=O utilizador pressionou cancelar.
+SEC_ERROR_PKCS12_DUPLICATE_DATA=Não importada, já existe na base de dados.
+SEC_ERROR_MESSAGE_SEND_ABORTED=Mensagem não enviada.
+SEC_ERROR_INADEQUATE_KEY_USAGE=Utilização da chave do certificado inadequada para a operação pretendida.
+SEC_ERROR_INADEQUATE_CERT_TYPE=Tipo de certificado não aprovado para a aplicação.
+SEC_ERROR_CERT_ADDR_MISMATCH=Endereço do certificado signatário não corresponde ao endereço no cabeçalho da mensagem.
+SEC_ERROR_PKCS12_UNABLE_TO_IMPORT_KEY=Não foi possível importar. Erro ao tentar importar chave privada.
+SEC_ERROR_PKCS12_IMPORTING_CERT_CHAIN=Não foi possível importar. Erro ao tentar importar cadeia de certificados.
+SEC_ERROR_PKCS12_UNABLE_TO_LOCATE_OBJECT_BY_NAME=Não foi possível exportar. Não foi possível localizar certificado ou chave pela alcunha.
+SEC_ERROR_PKCS12_UNABLE_TO_EXPORT_KEY=Não foi possível exportar. Chave privada não pôde ser localizada e exportada.
+SEC_ERROR_PKCS12_UNABLE_TO_WRITE=Não foi possível exportar. Não foi possível escrever o ficheiro a exportar.
+SEC_ERROR_PKCS12_UNABLE_TO_READ=Não foi possível importar. Não foi possível ler o ficheiro a importar.
+SEC_ERROR_PKCS12_KEY_DATABASE_NOT_INITIALIZED=Não foi possível exportar. A base de dados das chaves está danificada ou foi apagada.
+SEC_ERROR_KEYGEN_FAIL=Não foi possível gerar um par de chaves públicas/privadas.
+SEC_ERROR_INVALID_PASSWORD=A palavra-passe introduzida é inválida. Por favor escolha uma diferente.
+SEC_ERROR_RETRY_OLD_PASSWORD=A palavra-passe antiga é inválida. Por favor tente novamente.
+SEC_ERROR_BAD_NICKNAME=A alcunha do Certificado já está a ser utilizada.
+SEC_ERROR_NOT_FORTEZZA_ISSUER=A cadeia de pares FORTEZZA possui um certificado não-FORTEZZA.
+SEC_ERROR_CANNOT_MOVE_SENSITIVE_KEY=Uma chave crítica não pôde ser movida para a ranhura onde é necessária.
+SEC_ERROR_JS_INVALID_MODULE_NAME=Nome de módulo inválido.
+SEC_ERROR_JS_INVALID_DLL=Caminho/nome de ficheiro de módulo inválido
+SEC_ERROR_JS_ADD_MOD_FAILURE=Não foi possível adicionar o módulo
+SEC_ERROR_JS_DEL_MOD_FAILURE=Não foi possível apagar o módulo
+SEC_ERROR_OLD_KRL=A nova KRL não é mais recente do que o atual.
+SEC_ERROR_CKL_CONFLICT=A nova CKL tem um emissor diferente da CKL atual. Apague a CKL atual.
+SEC_ERROR_CERT_NOT_IN_NAME_SPACE=A autoridade de certificação para este certificado não está autorizada a emitir um certificado com este nome.
+SEC_ERROR_KRL_NOT_YET_VALID=A lista de chaves revogadas para este certificado ainda não é válida.
+SEC_ERROR_CRL_NOT_YET_VALID=A lista de certificados revogados para este certificado ainda não é válida.
+SEC_ERROR_UNKNOWN_CERT=O certificado requisitado não pôde ser encontrado.
+SEC_ERROR_UNKNOWN_SIGNER=A assinatura do certificado não pôde ser encontrada.
+SEC_ERROR_CERT_BAD_ACCESS_LOCATION=A localização do servidor de estado do certificado tem um formato inválido.
+SEC_ERROR_OCSP_UNKNOWN_RESPONSE_TYPE=A resposta OCSP não pôde ser totalmente descodificada; é de um tipo desconhecido.
+SEC_ERROR_OCSP_BAD_HTTP_RESPONSE=O servidor OCSP retornou dados HTTP inesperados/inválidos.
+SEC_ERROR_OCSP_MALFORMED_REQUEST=O servidor OCSP acha que o pedido está corrupto ou mal formado.
+SEC_ERROR_OCSP_SERVER_ERROR=O servidor OCSP sofreu um erro interno.
+SEC_ERROR_OCSP_TRY_SERVER_LATER=O servidor OCSP sugere que tente mais tarde.
+SEC_ERROR_OCSP_REQUEST_NEEDS_SIG=O servidor OCSP requer uma assinatura para este pedido.
+SEC_ERROR_OCSP_UNAUTHORIZED_REQUEST=O servidor OCSP recusou este pedido como não autorizado.
+SEC_ERROR_OCSP_UNKNOWN_RESPONSE_STATUS=O servidor OCSP retornou um estado desconhecido.
+SEC_ERROR_OCSP_UNKNOWN_CERT=O servidor OCSP não tem o estado deste certificado.
+SEC_ERROR_OCSP_NOT_ENABLED=Tem de ativar o OCSP antes de realizar esta operação.
+SEC_ERROR_OCSP_NO_DEFAULT_RESPONDER=Tem de definir a resposta padrão do OCSP antes de realizar esta operação.
+SEC_ERROR_OCSP_MALFORMED_RESPONSE=A resposta do servidor OCSP foi corrompida ou mal formada.
+SEC_ERROR_OCSP_UNAUTHORIZED_RESPONSE=O signatário da resposta OCSP não está autorizado a dar o estado deste certificado.
+SEC_ERROR_OCSP_FUTURE_RESPONSE=A resposta OCSP ainda não é válida (contem uma data do futuro).
+SEC_ERROR_OCSP_OLD_RESPONSE=A resposta OCSP contêm informação desatualizada.
+SEC_ERROR_DIGEST_NOT_FOUND=O resumo CMS ou PKCS #7 não foi encontrado na mensagem assinada.
+SEC_ERROR_UNSUPPORTED_MESSAGE_TYPE=O tipo da mensagem CMS ou PKCS #7 não é suportado.
+SEC_ERROR_MODULE_STUCK=O módulo PKCS #11 não pôde ser removido porque ainda está a ser utilizado.
+SEC_ERROR_BAD_TEMPLATE=Não foi possível descodificar dados ASN.1. O modelo especificado era inválido.
+SEC_ERROR_CRL_NOT_FOUND=Nenhuma CRL correspondente foi encontrado.
+SEC_ERROR_REUSED_ISSUER_AND_SERIAL=Está a tentar importar um certificado com o mesmo emissor/número de série de um certificado que já existe, mas diferente.
+SEC_ERROR_BUSY=NSS foi incapaz de desligar. Existem objetos que ainda estão a ser utilizados.
+SEC_ERROR_EXTRA_INPUT=DER-a mensagem codificada continha dados extra não utilizados.
+SEC_ERROR_UNSUPPORTED_ELLIPTIC_CURVE=Curva elíptica não suportada.
+SEC_ERROR_UNSUPPORTED_EC_POINT_FORM=Forma do ponto da curva elíptica não suportada.
+SEC_ERROR_UNRECOGNIZED_OID=Identificador de objeto desconhecido.
+SEC_ERROR_OCSP_INVALID_SIGNING_CERT=Certificado de assinatura OCSP inválido na resposta OCSP.
+SEC_ERROR_REVOKED_CERTIFICATE_CRL=O certificado está revogado na lista de revogação do emissor.
+SEC_ERROR_REVOKED_CERTIFICATE_OCSP=O servidor OCSP do emissor informa que o certificado encontra-se revogado.
+SEC_ERROR_CRL_INVALID_VERSION=A Lista de Certificados Revogados do emissor possui um número de versão desconhecido.
+SEC_ERROR_CRL_V1_CRITICAL_EXTENSION=A Lista de Certificados Revogados V1 do emissor possui uma extensão crítica.
+SEC_ERROR_CRL_UNKNOWN_CRITICAL_EXTENSION=A Lista de Certificados Revogados V2 do emissor possui uma extensão crítica desconhecida.
+SEC_ERROR_UNKNOWN_OBJECT_TYPE=Especificado um tipo de objeto desconhecido.
+SEC_ERROR_INCOMPATIBLE_PKCS11=O controlador PKCS #11 viola a especificação de uma forma incompatível.
+SEC_ERROR_NO_EVENT=Não existe nenhuma ranhura de evento disponível no momento.
+SEC_ERROR_CRL_ALREADY_EXISTS=CRL já existe.
+SEC_ERROR_NOT_INITIALIZED=NSS não foi inicializado.
+SEC_ERROR_TOKEN_NOT_LOGGED_IN=A operação falhou porque o token PKCS#11 não está ligado.
+SEC_ERROR_OCSP_RESPONDER_CERT_INVALID=O certificado do servidor OCSP de resposta é inválido.
+SEC_ERROR_OCSP_BAD_SIGNATURE=A resposta OCSP tem uma assinatura inválida.
+SEC_ERROR_OUT_OF_SEARCH_LIMITS=A validação do certificado está fora dos limites da pesquisa
+SEC_ERROR_INVALID_POLICY_MAPPING=O mapeamento da política contém anti-política
+SEC_ERROR_POLICY_VALIDATION_FAILED=A cadeia Cert falha a política de validação
+SEC_ERROR_UNKNOWN_AIA_LOCATION_TYPE=Tipo de localização desconhecido na extensão AIA do cert
+SEC_ERROR_BAD_HTTP_RESPONSE=O servidor retornou uma má resposta HTTP
+SEC_ERROR_BAD_LDAP_RESPONSE=O servidor retornou uma má resposta LDAP
+SEC_ERROR_FAILED_TO_ENCODE_DATA=Falha ao codificar os dados com o codificador ASN1
+SEC_ERROR_BAD_INFO_ACCESS_LOCATION=Informação incorreta na localização de acesso no certificado da extensão
+SEC_ERROR_LIBPKIX_INTERNAL=Ocorreu um erro interno Libpkix durante a validação do certificado.
+SEC_ERROR_PKCS11_GENERAL_ERROR=Um módulo PKCS #11 retornou CKR_GENERAL_ERROR, indicando que ocorreu um erro irrecuperável.
+SEC_ERROR_PKCS11_FUNCTION_FAILED=Um módulo PKCS #11 retornou CKR_FUNCTION_FAILED, indicando que a função pedida não pôde ser realizada. Tentar a mesma operação novamente poderá funcionar.
+SEC_ERROR_PKCS11_DEVICE_ERROR=Um módulo PKCS #11 retornou CKR_DEVICE_ERROR, indicando que ocorreu um problema com o token ou ranhura.
+SEC_ERROR_BAD_INFO_ACCESS_METHOD=Informação do método de acesso desconhecido na extensão do certificado.
+SEC_ERROR_CRL_IMPORT_FAILED=Erro ao tentar importar o CRL.
+SEC_ERROR_EXPIRED_PASSWORD=A palavra-passe expirou.
+SEC_ERROR_LOCKED_PASSWORD=A palavra-passe está bloqueada.
+SEC_ERROR_UNKNOWN_PKCS11_ERROR=Erro PKCS #11 desconhecido.
+SEC_ERROR_BAD_CRL_DP_URL=URL não suportado ou inválido no ponto de distribuição CRL.
+SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED=O certificado foi assinado usando um algoritmo da assinatura que foi desativado pois não é seguro.
+MOZILLA_PKIX_ERROR_KEY_PINNING_FAILURE=O servidor utiliza uma chave pinning (HPKP) mas não foi possível construir uma cadeia de confiança do certificado que corresponda ao pinset. Violações da chave não podem ser sobrescritas.
+MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY=O servidor usa um certificado com uma extensão com restrições base identificando-a como uma autoridade de certificação. Para um certificado correto esse problema não se coloca.
+MOZILLA_PKIX_ERROR_INADEQUATE_KEY_SIZE=O servidor apresentou um certificado com o tamanho da chave demasiado pequeno para estabelecer uma ligação segura.
+MOZILLA_PKIX_ERROR_V1_CERT_USED_AS_CA=Foi utiliado um certificado X.509 versão 1 que não é uma âncora de confiança para emitir o certificado do servidor. Os certificados X.509 versão 1 foram descontinuados e não devem ser utilizados para assinar outros certificados.
+MOZILLA_PKIX_ERROR_NOT_YET_VALID_CERTIFICATE=O servidor apresentou um certificado que ainda não é válido.
+MOZILLA_PKIX_ERROR_NOT_YET_VALID_ISSUER_CERTIFICATE=Um certificado que ainda não é válido foi usado para emitir o certificado do servidor.
+MOZILLA_PKIX_ERROR_SIGNATURE_ALGORITHM_MISMATCH=O algoritmo no campo da assinatura do certificado não corresponde ao algoritmo no campo signatureAlgorithm.
+MOZILLA_PKIX_ERROR_OCSP_RESPONSE_FOR_CERT_MISSING=A resposta OCSP não inclui um estado para poder verificar o certificado.
+MOZILLA_PKIX_ERROR_VALIDITY_TOO_LONG=O servidor apresentou um certificado que é válido por demasiado tempo.
+MOZILLA_PKIX_ERROR_REQUIRED_TLS_FEATURE_MISSING=Está em falta uma função TLS solicitada.
+MOZILLA_PKIX_ERROR_INVALID_INTEGER_ENCODING=O servidor apresentou um certificado que contém uma codificação inválida de um inteiro. Causas comuns incluem números de série negativos, módulos RSA negativos, e codificações que são mais longas que o necessário.
+MOZILLA_PKIX_ERROR_EMPTY_ISSUER_NAME=O servidor apresentou um certificado com um nome de emissor distinto vazio.
+MOZILLA_PKIX_ERROR_ADDITIONAL_POLICY_CONSTRAINT_FAILED=Uma restrição de política adicional falhou ao validar este certificado.
+MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT=O certificado não é de confiança porque é auto-assinado.
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/pipnss/pipnss.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/pipnss/pipnss.properties
new file mode 100644
index 0000000000..e2ba9ef76e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/pipnss/pipnss.properties
@@ -0,0 +1,136 @@
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+CertPasswordPrompt=Por favor, introduza a palavra-passe para o sinal PKCS#11 %S.
+
+CertPasswordPromptDefault=Por favor, introduza a sua palavra-passe principal.
+
+# 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=Módulo de raízes integrado
+# LOCALIZATION NOTE (ManufacturerID): string limit is 32 bytes after conversion
+# to UTF-8.
+# length_limit = 32 bytes
+ManufacturerID=Mozilla.org
+# LOCALIZATION NOTE (LibraryDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+LibraryDescription=PSM Internal Crypto Services
+# LOCALIZATION NOTE (TokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+TokenDescription=Generic Crypto Services
+# LOCALIZATION NOTE (PrivateTokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+PrivateTokenDescription=Software Security Device
+# LOCALIZATION NOTE (SlotDescription): string limit is 64 bytes after conversion
+# to UTF-8.
+# length_limit = 64 bytes
+SlotDescription=Serviços criptográficos internos PSM
+# LOCALIZATION NOTE (PrivateSlotDescription): string limit is 64 bytes after
+# conversion to UTF-8.
+# length_limit = 64 bytes
+PrivateSlotDescription=Chaves privadas PSM
+# LOCALIZATION NOTE (Fips140TokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+Fips140TokenDescription=Software Security Device (FIPS)
+# LOCALIZATION NOTE (Fips140SlotDescription): string limit is 64 bytes after
+# conversion to UTF-8.
+# length_limit = 64 bytes
+Fips140SlotDescription=Serviços criptográficos, chave e certificados FIPS 140
+
+# 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=ID %2$s de %1$s
+
+CertDumpKUSign=Assinatura de
+CertDumpKUNonRep=Não repudiado
+CertDumpKUEnc=Cifra da chave
+CertDumpKUDEnc=Cifra de dados
+CertDumpKUKA=Acordo de chave
+CertDumpKUCertSign=Signatário do certificado
+CertDumpKUCRLSigner=Signatário da CRL
+
+PSMERR_SSL_Disabled=Não é possível ligar de forma segura porque o protocolo SSL foi desativado.
+PSMERR_SSL2_Disabled=Não é possível ligar de forma segura porque o site utiliza uma versão do protocolo SSL antiga e é insegura.
+PSMERR_HostReusedIssuerSerial=Recebeu um certificado inválido. Por favor contacte o administrador do servidor ou endereço de email equivalente e dê-lhes a seguinte informação:\n\nO seu certificado contém o mesmo número de série que o de outro certificado emitido pela mesma autoridade certificadora. Por favor obtenha um novo certificado com um número de série único.
+
+# LOCALIZATION NOTE (SSLConnectionErrorPrefix2): %1$S is the host string, %2$S is more detailed information (localized as well).
+SSLConnectionErrorPrefix2=Ocorreu um erro durante a ligação a %1$S. %2$S\n
+
+certErrorIntro=%S utiliza um certificado de segurança inválido.
+
+certErrorTrust_SelfSigned=O certificado não é de confiança porque é auto-assinado.
+certErrorTrust_UnknownIssuer=O certificado não é de confiança porque o emissor é desconhecido.
+certErrorTrust_UnknownIssuer2=O servidor pode não estar a enviar o certificado intermédio apropriado.
+certErrorTrust_UnknownIssuer3=Pode ser necessário importar um certificado de raiz adicional.
+certErrorTrust_CaInvalid=O certificado não é de confiança porque foi emitido por uma AC inválida.
+certErrorTrust_Issuer=O certificado não é de confiança porque o certificado do emissor não é de confiança.
+certErrorTrust_SignatureAlgorithmDisabled=O certificado não é de confiança porque foi assinado com um algoritmo que foi desativado por não ser seguro.
+certErrorTrust_ExpiredIssuer=O certificado não é de confiança porque o certificado do emissor expirou.
+certErrorTrust_Untrusted=O certificado não vem de uma fonte confiável.
+certErrorTrust_MitM=A sua ligação está a ser intercetada por um proxy TLS. Desinstale-o se possível ou configure o seu dispositivo para confiar no seu certificado de raiz.
+
+certErrorMismatch=O certificado não é válido para o nome %S.
+# LOCALIZATION NOTE (certErrorMismatchSinglePrefix): %S is replaced by the domain for which the certificate is valid
+certErrorMismatchSinglePrefix=O certificado só é válido para %S.
+certErrorMismatchMultiple=O certificado só é válido para os seguintes nomes:
+
+# LOCALIZATION NOTE (certErrorExpiredNow): Do not translate %1$S (date+time of expired certificate) or %2$S (current date+time)
+certErrorExpiredNow=O certificado expirou em %1$S. A hora atual é %2$S.
+
+# LOCALIZATION NOTE (certErrorNotYetValidNow): Do not translate %1$S (date+time certificate will become valid) or %2$S (current date+time)
+certErrorNotYetValidNow=O certificado não será válido até %1$S. A hora atual é %2$S.
+
+certErrorMitM=Os sites provam a sua identidade via certificados, que são emitidos por autoridades certificadoras.
+# LOCALIZATION NOTE (certErrorMitM2): %S is brandShortName
+certErrorMitM2=O %S é apoiado pela, sem fins lucrativos, Mozilla, que administra um armazenamento completamente aberto de autoridade certificadora (CA). O armazenamento CA ajuda a assegura que as autoridades certificadoras estão a seguir as melhores práticas para segurança de utilizadores.
+# LOCALIZATION NOTE (certErrorMitM3): %S is brandShortName
+certErrorMitM3=O %S utiliza o armazenamento CA da Mozilla para verificar que uma ligação é segura, em vez dos certificados fornecidos pelo sistema operativo do utilizador. Por isso, se um programa antivírus ou rede estão a intercetar uma ligação com um certificado de segurança emitido por uma CA que não está no armazenamento CA da Mozilla, a ligação é considerada insegura.
+
+certErrorSymantecDistrustAdministrator=Pode notificar o administrador do site sobre este problema.
+
+# LOCALIZATION NOTE (certErrorCodePrefix3): %S is replaced by the error code.
+certErrorCodePrefix3=Código de erro: %S
+
+P12DefaultNickname=Certificado importado
+CertUnknown=Desconhecido
+CertNoEmailAddress=(nenhum endereço de email)
+CaCertExists=Este certificado já está instalado como uma autoridade certificadora.
+NotACACert=Este não é um certificado de uma autoridade certificadora, pelo que não pode ser importado para a lista de autoridades certificadoras.
+UserCertIgnoredNoPrivateKey=Este certificado pessoal não pode ser instalado porque não tem a chave privada correspondente que foi criada quando o certificado foi solicitado.
+UserCertImported=O seu certificado pessoal foi instalado. Deve fazer uma cópia de segurança deste certificado.
+CertOrgUnknown=(Desconhecido)
+CertNotStored=(Não armazenado)
+CertExceptionPermanent=Permanente
+CertExceptionTemporary=Temporário
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/pippki/pippki.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/pippki/pippki.properties
new file mode 100644
index 0000000000..66166fa3b7
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Pretende confiar em “%S” para os seguintes propósitos?
+unnamedCA=Autoridade certificadora (sem nome)
+
+# PKCS#12 file dialogs
+getPKCS12FilePasswordMessage=Escreva a palavra-passe utilizada para encriptar a cópia deste certificado:
+
+# Client auth
+clientAuthRemember=Memorizar esta decisão
+# 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=Organização: “%S”
+# LOCALIZATION NOTE(clientAuthMessage2): %S is the Organization of the issuer
+# cert of the server cert.
+clientAuthMessage2=Emitido sob: “%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=Emitido para: %1$S
+# LOCALIZATION NOTE(clientAuthSerial): %1$S is the serial number of the selected
+# cert in AA:BB:CC hex format.
+clientAuthSerial=Número de série: %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=Válido de %1$S a %2$S
+# LOCALIZATION NOTE(clientAuthKeyUsages): %1$S is a comma separated list of
+# already localized key usages the selected cert is valid for.
+clientAuthKeyUsages=Utilizações-chave: %1$S
+# LOCALIZATION NOTE(clientAuthEmailAddresses): %1$S is a comma separated list of
+# e-mail addresses the selected cert is valid for.
+clientAuthEmailAddresses=Endereços de email: %1$S
+# LOCALIZATION NOTE(clientAuthIssuedBy): %1$S is the Distinguished Name of the
+# cert which issued the selected cert.
+clientAuthIssuedBy=Emitido por: %1$S
+# LOCALIZATION NOTE(clientAuthStoredOn): %1$S is the name of the PKCS #11 token
+# the selected cert is stored on.
+clientAuthStoredOn=Armazenado em: %1$S
+
+# Page Info
+pageInfo_NoEncryption=Ligação não encriptada
+pageInfo_Privacy_None1=O site %S não suporta encriptação para a página que está a ver.
+pageInfo_Privacy_None2=Informação enviada através da Internet sem encriptação pode ser vista por outras pessoas enquanto esta está em trânsito.
+pageInfo_Privacy_None4=A página que está a ver não foi encriptada antes de ser transmitida pela Internet.
+# LOCALIZATION NOTE (pageInfo_EncryptionWithBitsAndProtocol and pageInfo_BrokenEncryption):
+# %1$S is the name of the encryption standard,
+# %2$S is the key size of the cipher.
+# %3$S is protocol version like "SSL 3" or "TLS 1.2"
+pageInfo_EncryptionWithBitsAndProtocol=Ligação encriptada (%1$S, chave %2$S bit, %3$S)
+pageInfo_BrokenEncryption=Encriptação obsoleta (%1$S, chaves de %2$S bits, %3$S)
+pageInfo_Privacy_Encrypted1=A página que está a ver foi encriptada antes de ser transmitida pela Internet.
+pageInfo_Privacy_Encrypted2=A encriptação torna difícil para que pessoas não autorizadas vejam a informação que circula entre os computadores. Portanto é pouco provável que alguém leia esta página enquanto circulou pela rede.
+pageInfo_MixedContent=Ligação parcialmente encriptada
+pageInfo_MixedContent2=Partes da página que está a ver não foram encriptadas antes de serem transmitidas pela Internet.
+pageInfo_WeakCipher=A sua ligação a este site utiliza uma encriptação fraca que não é privada. Outras pessoas poder ver a sua informação ou modificar o comportamento do site.
+pageInfo_CertificateTransparency_Compliant=Este site cumpre com a política do certificado de transparência.
+
+# Token Manager
+password_not_set=(não definida)
+enable_fips=Ativar FIPS
+
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/places/places.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/places/places.properties
new file mode 100644
index 0000000000..aafaf77d29
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/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=Menu de marcadores
+BookmarksToolbarFolderTitle=Barra de ferramentas de marcadores
+OtherBookmarksFolderTitle=Outros marcadores
+TagsFolderTitle=Etiquetas
+MobileBookmarksFolderTitle=Marcadores de dispositivo móvel
+
+OrganizerQueryHistory=Histórico
+OrganizerQueryDownloads=Transferências
+OrganizerQueryAllBookmarks=Todos os marcadores
+
+# LOCALIZATION NOTE :
+# These are used to generate history containers when history is grouped by date
+finduri-AgeInDays-is-0=Hoje
+finduri-AgeInDays-is-1=Ontem
+finduri-AgeInDays-is=Há %S dias
+finduri-AgeInDays-last-is=Últimos %S dias
+finduri-AgeInDays-isgreater=Há mais de %S dias
+finduri-AgeInMonths-is-0=Este mês
+finduri-AgeInMonths-isgreater=Há mais de %S meses
+
+# LOCALIZATION NOTE (localhost):
+# This is used to generate local files container when history is grouped by site
+localhost=(ficheiros locais)
+
+# 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/pt-PT/localization/pt-PT/branding/brand.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/branding/brand.ftl
new file mode 100644
index 0000000000..c39e7481ec
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/branding/brand.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Thunderbird Brand
+##
+## Thunderbird must be treated as a brand, and kept in English.
+## It cannot be:
+## - Transliterated.
+## - Translated.
+##
+## Reference: https://www.mozilla.org/styleguide/communications/translation/
+
+-brand-shorter-name = Thunderbird
+-brand-short-name = Thunderbird
+-brand-full-name = Mozilla Thunderbird
+# This brand name can be used in messages where the product name needs to
+# remain unchanged across different versions (Daily, Beta, etc.).
+-brand-product-name = Thunderbird
+-vendor-short-name = Mozilla
+trademarkInfo = O Mozilla Thunderbird e o logótipo do Thunderbird são marcas registadas da Mozilla Foundation.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/browser/appExtensionFields.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/browser/appExtensionFields.ftl
new file mode 100644
index 0000000000..eec9c38e5f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/browser/appExtensionFields.ftl
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Theme names and descriptions used in the Themes panel in about:addons
+
+# "Auto" is short for automatic. It can be localized without limitations.
+extension-default-theme-name-auto = Tema do sistema — automático
+extension-default-theme-description = Seguir a definição do sistema operativo para botões, menus e janelas.
+
+extension-thunderbird-compact-light-name = Claro
+extension-thunderbird-compact-light-description = Um tema com um esquema de cores claro.
+
+extension-thunderbird-compact-dark-name = Escuro
+extension-thunderbird-compact-dark-description = Um tema com um esquema de cores escuro.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/browser/branding/brandings.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/browser/branding/brandings.ftl
new file mode 100644
index 0000000000..9ada8da73a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/browser/branding/brandings.ftl
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## The following feature names must be treated as a brand.
+##
+## They cannot be:
+## - Transliterated.
+## - Translated.
+##
+## Declension should be avoided where possible, leaving the original
+## brand unaltered in prominent UI positions.
+##
+## For further details, consult:
+## https://mozilla-l10n.github.io/styleguides/mozilla_general/#brands-copyright-and-trademark
+
+-profiler-brand-name = Firefox Profiler
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/browser/components/mozFiveStar.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/browser/components/mozFiveStar.ftl
new file mode 100644
index 0000000000..fc240cd85b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/browser/components/mozFiveStar.ftl
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The rating out of 5 stars.
+# Variables:
+# $rating (number) - A number between 0 and 5. The translation should show at most one digit after the comma.
+moz-five-star-rating =
+ .title = Avaliado com { NUMBER($rating, maximumFractionDigits: 1) } de 5
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/browser/components/mozSupportLink.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/browser/components/mozSupportLink.ftl
new file mode 100644
index 0000000000..75a1c70d6f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/browser/components/mozSupportLink.ftl
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+moz-support-link-text = Saber mais
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-context-menus.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000..b1a33e0f47
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-context-menus.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+list-calendar-context-reload-menuitem =
+ .label = Sincronizar
+ .accesskey = S
+calendar-item-context-menu-modify-menuitem =
+ .label = Editar
+ .accesskey = E
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000..68fb89c773
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,35 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-delete-event-prompt-title =
+ { $count ->
+ [one] Eliminar evento
+ *[other] Eliminar eventos
+ }
+calendar-delete-event-prompt-message =
+ { $count ->
+ [one] Pretende mesmo eliminar este evento?
+ *[other] Pretende mesmo eliminar estes { $count } eventos?
+ }
+calendar-delete-task-prompt-title =
+ { $count ->
+ [one] Eliminar tarefa
+ *[other] Eliminar tarefas
+ }
+calendar-delete-task-prompt-message =
+ { $count ->
+ [one] Pretende mesmo eliminar esta tarefa?
+ *[other] Pretende mesmo eliminar estas { $count } tarefas?
+ }
+calendar-delete-item-prompt-title =
+ { $count ->
+ [one] Eliminar item
+ *[other] Eliminar itens
+ }
+calendar-delete-item-prompt-message =
+ { $count ->
+ [one] Pretende mesmo eliminar este item?
+ *[other] Pretende mesmo eliminar estes { $count } itens?
+ }
+calendar-delete-prompt-disable-message = Não voltar a perguntar
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-editable-item.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000..a5fb18786f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-editable-item.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-editable-item-privacy-icon-private =
+ .alt = Privacidade: evento privado
+calendar-editable-item-privacy-icon-confidential =
+ .alt = Privacidade: mostrar apenas data e hora
+calendar-editable-item-recurrence =
+ .alt = Recorrente
+calendar-editable-item-recurrence-exception =
+ .alt = Exceção de recorrência
+calendar-editable-item-todo-icon-task =
+ .alt = Tarefa
+calendar-editable-item-todo-icon-completed-task =
+ .alt = Tarefa concluída
+calendar-editable-item-multiday-event-icon-start =
+ .alt = Começa evento de vários dias
+calendar-editable-item-multiday-event-icon-continue =
+ .alt = Continua evento de vários dias
+calendar-editable-item-multiday-event-icon-end =
+ .alt = Termina evento de vários dias
+calendar-editable-item-reminder-icon-alarm =
+ .alt = Está agendado um lembrete de alerta
+calendar-editable-item-reminder-icon-suppressed-alarm =
+ .alt = Está agendado um lembrete de alerta mas atualmente está suprimido
+calendar-editable-item-reminder-icon-email =
+ .alt = Está agendado um lembrete de alerta
+calendar-editable-item-reminder-icon-audio =
+ .alt = Está agendado um lembrete áudio de alerta
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000..7ea78dacc6
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-event-reminder-icon-display =
+ .alt = Mostrar um Alerta
+calendar-event-reminder-icon-email =
+ .alt = Enviar um E-mail
+calendar-event-reminder-icon-audio =
+ .alt = Reproduzir um Alerta sonoro
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-event-listing.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-event-listing.ftl
new file mode 100644
index 0000000000..03159ec918
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-event-listing.ftl
@@ -0,0 +1,71 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-event-listing-close =
+ .tooltiptext = Fechar pesquisa e lista de eventos
+
+## Listing columns
+
+calendar-event-listing-column-calendar-name =
+ .label = Nome do calendário
+ .tooltiptext = Ordenar por nome do calendário
+calendar-event-listing-column-category =
+ .label = Categoria
+ .tooltiptext = Ordenar por categoria
+# This label and tooltip is used for the column with the checkbox in the task
+# tree view, which indicates whether a task has been marked as completed.
+calendar-event-listing-column-completed =
+ .label = Feito
+ .tooltiptext = Ordenar por terminado
+calendar-event-listing-column-completed-date =
+ .label = Concluído
+ .tooltiptext = Ordenar por data de conclusão
+calendar-event-listing-column-due-date =
+ .label = Limite
+ .tooltiptext = Ordenar por data limite
+calendar-event-listing-column-end-date =
+ .label = Fim
+ .tooltiptext = Ordenar por data de fim
+calendar-event-listing-column-location =
+ .label = Localização
+ .tooltiptext = Ordenar por localização
+calendar-event-listing-column-percent-complete =
+ .label = % concluído
+ .tooltiptext = Ordenar por % de conclusão
+calendar-event-listing-column-priority =
+ .label = Prioridade
+ .tooltiptext = Ordenar por prioridade
+calendar-event-listing-column-start-date =
+ .label = Início
+ .tooltiptext = Ordenar por data de início
+calendar-event-listing-column-status =
+ .label = Estado
+ .tooltiptext = Ordenar por estado
+calendar-event-listing-column-time-until-due =
+ .label = Termina em
+ .tooltiptext = Ordenar por data de vencimento
+calendar-event-listing-column-title =
+ .label = Título
+ .tooltiptext = Ordenar por título
+
+## Interval dropdown options
+
+calendar-event-listing-interval-calendar-month =
+ .label = Eventos neste mês
+calendar-event-listing-interval-current-view =
+ .label = Eventos na vista atual
+calendar-event-listing-interval-next-7-days =
+ .label = Eventos nos próximos 7 dias
+calendar-event-listing-interval-next-14-days =
+ .label = Eventos nos próximos 14 dias
+calendar-event-listing-interval-next-31-days =
+ .label = Eventos nos próximos 31 dias
+calendar-event-listing-interval-next-6-months =
+ .label = Eventos nos próximos 6 meses
+calendar-event-listing-interval-next-12-months =
+ .label = Eventos nos próximos 12 meses
+calendar-event-listing-interval-selected-day =
+ .label = Dia selecionado
+calendar-event-listing-interval-today =
+ .label = Eventos de hoje
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-ics-file-dialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000..b7c8bb6986
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-ics-file-dialog.ftl
@@ -0,0 +1,46 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-ics-file-window-2 =
+ .title = Importar eventos e tarefas do calendário
+calendar-ics-file-window-title = Importar eventos e tarefas do calendário
+calendar-ics-file-dialog-import-event-button-label = Importar evento
+calendar-ics-file-dialog-import-task-button-label = Importar tarefa
+calendar-ics-file-dialog-2 =
+ .buttonlabelaccept = Importar tudo
+calendar-ics-file-accept-button-ok-label = OK
+calendar-ics-file-cancel-button-close-label = Fechar
+calendar-ics-file-dialog-message-2 = Importar do ficheiro:
+calendar-ics-file-dialog-calendar-menu-label = Importar para o calendário:
+calendar-ics-file-dialog-items-loading-message =
+ .value = A carregar itens…
+calendar-ics-file-dialog-search-input =
+ .placeholder = Filtrar itens…
+calendar-ics-file-dialog-sort-start-ascending =
+ .label = Ordenar por data de início (do primeiro ao último)
+calendar-ics-file-dialog-sort-start-descending =
+ .label = Ordenar por data de início (do último ao primeiro)
+# "A > Z" is used as a concise way to say "alphabetical order".
+# You may replace it with something appropriate to your language.
+calendar-ics-file-dialog-sort-title-ascending =
+ .label = Ordenar por título (A > Z)
+# "Z > A" is used as a concise way to say "reverse alphabetical order".
+# You may replace it with something appropriate to your language.
+calendar-ics-file-dialog-sort-title-descending =
+ .label = Ordenar por título (Z > A)
+calendar-ics-file-dialog-progress-message = A importar…
+calendar-ics-file-import-success = Importado com sucesso!
+calendar-ics-file-import-error = Ocorreu um erro e a importação falhou.
+calendar-ics-file-import-complete = Importação concluída.
+calendar-ics-file-import-duplicates =
+ { $duplicatesCount ->
+ [one] Foi ignorado um item dados que o mesmo já existia no calendário de destino.
+ *[other] Foram ignorados { $duplicatesCount } itens dado que os mesmos já existiam no calendário de destino.
+ }
+calendar-ics-file-import-errors =
+ { $errorsCount ->
+ [one] A importação de um item falhou. Consulte a Consola de erro para detalhes.
+ *[other] A importação de { $errorsCount } itens falhou. Consulte a Consola de erro para detalhes.
+ }
+calendar-ics-file-dialog-no-calendars = Não há calendários que possam importar eventos ou tarefas.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-invitation-panel.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-invitation-panel.ftl
new file mode 100644
index 0000000000..4e478f510a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-invitation-panel.ftl
@@ -0,0 +1,115 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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:
+# $organizer (String) - The participant that created the original invitation.
+calendar-invitation-panel-intro = { $organizer } convidou-o para:
+calendar-invitation-panel-status-new = Foi convidado(a) para este evento
+calendar-invitation-panel-status-processed = Este evento já foi adicionado ao seu calendário.
+calendar-invitation-panel-status-updateminor = Esta mensagem contém uma atualização para este evento.
+calendar-invitation-panel-status-updatemajor = Esta mensagem contém uma atualização para este evento. Deverá reconfirmar a sua presença.
+calendar-invitation-panel-status-cancelled = Esta mensagem contém um cancelamento para este evento.
+calendar-invitation-panel-status-cancelled-notfound = Esta mensagem contém um cancelamento para um evento que não foi encontrado no seu calendário.
+# Variables:
+# $organizer (String) - The participant that cancelled the invitation.
+calendar-invitation-panel-intro-cancel = { $organizer } cancelou:
+# Variables:
+# $summary (String) - A short summary or title of the event.
+calendar-invitation-panel-title = { $summary }
+calendar-invitation-panel-action-button = Guardar
+calendar-invitation-panel-view-button = Ver
+calendar-invitation-panel-update-button = Atualizar
+calendar-invitation-panel-delete-button = Apagar
+calendar-invitation-panel-accept-button = Sim
+calendar-invitation-panel-decline-button = Não
+calendar-invitation-panel-tentative-button = Talvez
+calendar-invitation-panel-reply-status = * Ainda não decidiu nem respondeu
+calendar-invitation-panel-more-button = Mais
+calendar-invitation-panel-menu-item-save =
+ .label = Guardar no calendário
+calendar-invitation-panel-menu-item-save-copy =
+ .label = Guardar uma cópia
+calendar-invitation-panel-menu-item-toggle-changes =
+ .label = Mostrar Alterações
+calendar-invitation-panel-prop-title-when = Quando:
+calendar-invitation-panel-prop-title-location = Localização:
+# Variables:
+# $dayOfWeek (String) - The day of the week for a given date.
+# $date (String) - The date example: Tuesday, February 24, 2022.
+calendar-invitation-datetime-date = { $dayOfWeek }, { $date }
+# Variables:
+# $time (String) - The time part of a datetime using the "short" timeStyle.
+# $timezone (String) - The timezone info for the datetime.
+calendar-invitation-datetime-time = { $time } ({ $timezone })
+# Example: Friday, September 16, 2022
+# Variables:
+# $startDate (String) - The date (without time) the event starts on.
+calendar-invitation-interval-all-day = { $startDate }
+# Example: September 16, 2022 – September 16, 2023
+# Variables:
+# $startMonth (String) - The month the interval starts.
+# $startDay (String) - The day of the month the interval starts.
+# $startYear (String) - The year the interval starts.
+# $endMonth (String) - The month the interval ends.
+# $endDay (String) - The day of the month the interval ends.
+# $endYear (String) - The year the interval ends.
+calendar-invitation-interval-all-day-between-years = { $startDay } de { $startMonth } de { $startYear } – { $endDay } de { $endMonth } de { $endYear }
+# Example: September 16 – 20, 2022
+# Variables:
+# $month (String) - The month the interval is in.
+# $startDay (String) - The day of the month the interval starts.
+# $endDay (String) - The day of the month the interval ends.
+# $year (String) - The year the interval is in.
+calendar-invitation-interval-all-day-in-month = { $startDay } – { $endDay } de { $month } de { $year }
+# Example: September 16 – October 20, 2022
+# Variables:
+# $startMonth (String) - The month the interval starts.
+# $startDay (String) - The day of the month the interval starts.
+# $endMonth (String) - The month the interval ends.
+# $endDay (String) - The day of the month the interval ends.
+# $year (String) - The year the interval is in.
+calendar-invitation-interval-all-day-between-months = { $startDay } de { $startMonth } – { $endDay } de { $endMonth } de { $year }
+# Example: Friday, September 16, 2022 15:00 America/Port of Spain
+# Variables:
+# $startDate (String) - The date the interval starts.
+# $startTime (String) - The time the interval starts.
+# $timezone (String) - The timezone the interval is in.
+calendar-invitation-interval-same-date-time = { $startDate } <b>{ $startTime }</b> { $timezone }
+# Example: Friday, September 16, 2022 14:00 – 16:00 America/Port of Spain
+# Variables:
+# $startDate (String) - The date the interval starts.
+# $startTime (String) - The time the interval starts.
+# $endTime (String) - The time the interval ends.
+# $timezone (String) - The timezone the interval is in.
+calendar-invitation-interval-same-day = { $startDate } <b>{ $startTime }</b> – <b>{ $endTime }</b> { $timezone }
+# Example: Friday, September 16, 2022 14:00 – Tuesday, September 20, 2022 16:00 America/Port of Spain
+# Variables:
+# $startDate (String) - The date the interval starts.
+# $startTime (String) - The time the interval starts.
+# $endDate (String) - The date the interval ends.
+# $endTime (String) - The time the interval ends.
+# $timezone (String) - The timezone the interval is in.
+calendar-invitation-interval-several-days = { $startDate } <b>{ $startTime }</b> – { $endDate } <b>{ $endTime }</b> { $timezone }
+calendar-invitation-panel-prop-title-recurrence = Repetições:
+calendar-invitation-panel-prop-title-attendees = Participantes:
+calendar-invitation-panel-prop-title-description = Descrição:
+# Variables:
+# $count (Number) - The number of attendees with the "ACCEPTED" participation status.
+calendar-invitation-panel-partstat-accepted = { $count } sim
+# Variables:
+# $count (Number) - The number of attendees with the "DECLINED" participation status.
+calendar-invitation-panel-partstat-declined = { $count } não
+# Variables:
+# $count (Number) - The number of attendees with the "TENTATIVE" participation status.
+calendar-invitation-panel-partstat-tentative = { $count } talvez
+# Variables:
+# $count (Number) - The number of attendees with the "NEEDS-ACTION" participation status.
+calendar-invitation-panel-partstat-needs-action = { $count } pendentes
+# Variables:
+# $count (Number) - The total number of attendees.
+calendar-invitation-panel-partstat-total = { $count } participantes
+calendar-invitation-panel-prop-title-attachments = Anexos:
+calendar-invitation-change-indicator-removed = Removido
+calendar-invitation-change-indicator-added = Novo
+calendar-invitation-change-indicator-modified = Alterado
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000..d576300574
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-invitation-current-participation-status-icon-accepted =
+ .alt = Atualmente aceite
+calendar-invitation-current-participation-status-icon-declined =
+ .alt = Atualmente recusado
+calendar-invitation-current-participation-status-icon-needs-action =
+ .alt = Atualmente não-decidido
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000..67a4701401
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-itip-identity-dialog-title = Participação sem convite?
+calendar-itip-identity-warning = Ainda não está na lista de convidados.
+calendar-itip-identity-label = Responder como:
+calendar-itip-identity-label-none = Associar este evento a:
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-print.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-print.ftl
new file mode 100644
index 0000000000..b453838e9e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-print.ftl
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-print-layout-label = Disposição
+calendar-print-layout-list = Lista
+calendar-print-layout-month-grid = Grelha mensal
+calendar-print-layout-week-planner = Agenda semanal
+calendar-print-filter-label = O que imprimir
+calendar-print-filter-events = Eventos
+calendar-print-filter-tasks = Tarefas
+calendar-print-filter-completedtasks = Tarefas concluídas
+calendar-print-filter-taskswithnoduedate = Tarefas sem data de vencimento
+calendar-print-range-from = De
+calendar-print-range-to = Para
+calendar-print-back-button = Voltar
+calendar-print-next-button = Seguinte
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-recurrence-dialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-recurrence-dialog.ftl
new file mode 100644
index 0000000000..1a3a52e255
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-recurrence-dialog.ftl
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-recurrence-preview-label = Pré-visualizar
+calendar-recurrence-next = Próximo mês
+calendar-recurrence-previous = Mês anterior
+calendar-recurrence-today = Hoje
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-summary-dialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000..e344892e6a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-summary-dialog-edit-button =
+ .label = Editar
+ .accesskey = E
+calendar-summary-dialog-edit-menu-button =
+ .label = Editar
+edit-button-context-menu-this-occurrence =
+ .label = Editar apenas esta ocorrência
+ .accesskey = e
+edit-button-context-menu-all-occurrences =
+ .label = Editar todas as ocorrências
+ .accesskey = t
+description-context-menu-copy-link-text =
+ .label = Copiar texto da ligação
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000..2793b5a3f5
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-uri-redirect-window =
+ .title = Redirecionamento de URI do calendário
+calendar-uri-redirect-window-title = Redirecionamento de URI do calendário
+calendar-uri-redirect-description =
+ O servidor está a redirecionar o URI para o calendário "{ $calendarName }".
+ Aceitar o redirecionamento e começar a utilizar o novo URI para este calendário?
+calendar-uri-redirect-original-uri-label = URI atual:
+calendar-uri-redirect-target-uri-label = A redirecionar para o novo URI:
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-widgets.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000..27411001fd
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/calendar-widgets.ftl
@@ -0,0 +1,111 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-deactivated-notification-events = Todos os calendários estão neste momento desativados. Ative um calendário existente ou adicione um novo, para criar e editar eventos.
+calendar-deactivated-notification-tasks = Todos os calendários estão neste momento desativados. Ative um calendário existente ou adicione um novo, para criar e editar tarefas.
+calendar-notifications-label = Mostrar notificações de próximos eventos
+calendar-add-notification-button =
+ .label = Adicionar notificação
+
+## Side panel
+
+calendar-list-header = Calendários
+# Variables:
+# $calendarName (String) - Calendar name as given by the user
+calendar-no-reminders-tooltip =
+ .title = O calendário { $calendarName } foi silenciado
+calendar-enable-button = Ativar
+# Variables:
+# $calendarName (String) - Calendar name as given by the user
+calendar-list-item-context-button =
+ .title = Opções do calendário { $calendarName }
+calendar-import-new-calendar = Novo calendário...
+ .title = Crie ou subscreva a um novo calendário
+calendar-refresh-calendars =
+ .title = Recarregar todos os calendários e sincronizar as mudanças
+calendar-new-event-primary-button = Novo evento
+calendar-new-task-primary-button = Nova tarefa
+
+## Calendar navigation
+
+calendar-nav-button-prev-tooltip-day =
+ .title = Dia anterior
+ .accesskey = a
+calendar-nav-button-prev-tooltip-week =
+ .title = Semana anterior
+ .accesskey = a
+calendar-nav-button-prev-tooltip-multiweek =
+ .title = Semana anterior
+ .accesskey = s
+calendar-nav-button-prev-tooltip-month =
+ .title = Mês anterior
+ .accesskey = a
+calendar-nav-button-prev-tooltip-year =
+ .title = Ano anterior
+ .accesskey = t
+calendar-nav-button-next-tooltip-day =
+ .title = Próximo dia
+ .accesskey = x
+calendar-nav-button-next-tooltip-week =
+ .title = Próxima semana
+ .accesskey = x
+calendar-nav-button-next-tooltip-multiweek =
+ .title = Próxima semana
+ .accesskey = x
+calendar-nav-button-next-tooltip-month =
+ .title = Próximo mês
+ .accesskey = x
+calendar-nav-button-next-tooltip-year =
+ .title = Próximo ano
+ .accesskey = x
+calendar-today-button-tooltip =
+ .title = Ir para hoje
+calendar-view-toggle-day = Dia
+ .title = Mudar para vista diária
+calendar-view-toggle-week = Semana
+ .title = Mudar para vista semanal
+calendar-view-toggle-multiweek = Multissemana
+ .title = Mudar para vista multissemanal
+calendar-view-toggle-month = Mês
+ .title = Mudar para vista mensal
+
+## Menu on calendar control bar
+
+calendar-control-bar-menu-button =
+ .title = Opções do esquema do calendário
+calendar-find-events-menu-option =
+ .label = Painel de Localização de Eventos
+calendar-hide-weekends-option =
+ .label = Apenas dias úteis
+calendar-define-workweek-option =
+ .label = Defina os dias úteis
+calendar-show-tasks-calendar-option =
+ .label = Mostrar tarefas no calendário
+
+## Calendar Context Menu
+
+calendar-context-menu-previous-day =
+ .label = Dia anterior
+ .accesskey = a
+calendar-context-menu-previous-week =
+ .label = Semana anterior
+ .accesskey = a
+calendar-context-menu-previous-multiweek =
+ .label = Semana anterior
+ .accesskey = a
+calendar-context-menu-previous-month =
+ .label = Mês anterior
+ .accesskey = a
+calendar-context-menu-next-day =
+ .label = Dia seguinte
+ .accesskey = s
+calendar-context-menu-next-week =
+ .label = Semana seguinte
+ .accesskey = s
+calendar-context-menu-next-multiweek =
+ .label = Semana seguinte
+ .accesskey = s
+calendar-context-menu-next-month =
+ .label = Mês seguinte
+ .accesskey = s
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/category-dialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/category-dialog.ftl
new file mode 100644
index 0000000000..ff4b5f8e26
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/category-dialog.ftl
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+category-name-label = Nome
+category-color-label =
+ .label = Usar cor
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/preferences.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/preferences.ftl
new file mode 100644
index 0000000000..d705a68a50
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/calendar/preferences.ftl
@@ -0,0 +1,188 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-title = Calendário
+calendar-title-reminder = Lembretes
+calendar-title-notification = Notificações
+calendar-title-category = Categorias
+dateformat-label =
+ .value = Formato de texto da data:
+ .accesskey = d
+# $date (String) - the formatted example date
+dateformat-long =
+ .label = Longo: { $date }
+# $date (String) - the formatted example date
+dateformat-short =
+ .label = Curto: { $date }
+use-system-timezone-radio-button =
+ .label = Usar fuso horário do sistema
+set-timezone-manually-radio-button =
+ .label = Definir fuso horário manualmente
+timezone-label =
+ .value = Fuso horário:
+weekstart-label =
+ .value = Início da semana:
+ .accesskey = I
+day-1-name =
+ .label = domingo
+day-2-name =
+ .label = segunda
+day-3-name =
+ .label = terça
+day-4-name =
+ .label = quarta
+day-5-name =
+ .label = quinta
+day-6-name =
+ .label = sexta
+day-7-name =
+ .label = sábado
+show-weeknumber-label =
+ .label = Mostrar número da semana nas vistas e mês em pequeno
+ .accesskey = e
+workdays-label =
+ .value = Dias da semana de trabalho:
+day-1-checkbox =
+ .label = dom
+ .accesskey = d
+day-2-checkbox =
+ .label = seg
+ .accesskey = s
+day-3-checkbox =
+ .label = ter
+ .accesskey = t
+day-4-checkbox =
+ .label = qua
+ .accesskey = q
+day-5-checkbox =
+ .label = qui
+ .accesskey = u
+day-6-checkbox =
+ .label = sex
+ .accesskey = x
+day-7-checkbox =
+ .label = sáb
+ .accesskey = b
+dayweek-legend = Visão de dia e de semana
+visible-hours-label =
+ .value = Mostrar:
+ .accesskey = o
+visible-hours-end-label =
+ .value = horas de cada vez
+day-start-label =
+ .value = Dia começa a:
+ .accesskey = D
+day-end-label =
+ .value = Dia acaba às:
+ .accesskey = i
+midnight-label =
+ .label = Meia noite
+noon-label =
+ .label = Meio dia
+location-checkbox =
+ .label = Mostrar localização
+ .accesskey = L
+multiweek-legend = Visão multissemanal
+number-of-weeks-label =
+ .value = Número de semanas a mostrar (incluindo semanas anteriores):
+ .accesskey = e
+week-0-label =
+ .label = nenhuma
+week-1-label =
+ .label = 1 semana
+week-2-label =
+ .label = 2 semanas
+week-3-label =
+ .label = 3 semanas
+week-4-label =
+ .label = 4 semanas
+week-5-label =
+ .label = 5 semanas
+week-6-label =
+ .label = 6 semanas
+previous-weeks-label =
+ .value = Semanas anteriores a mostrar:
+ .accesskey = m
+todaypane-legend = Painel hoje
+agenda-days =
+ .value = A agenda mostra:
+ .accesskey = g
+event-task-legend = Eventos e tarefas
+default-length-label =
+ .value = Evento predefinido e duração da tarefa:
+ .accesskey = u
+task-start-label =
+ .value = Data de início:
+task-start-1-label =
+ .label = Nenhum
+task-start-2-label =
+ .label = Início do dia
+task-start-3-label =
+ .label = Fim do dia
+task-start-4-label =
+ .label = Amanhã
+task-start-5-label =
+ .label = Próxima semana
+task-start-6-label =
+ .label = Relativo à hora atual
+task-start-7-label =
+ .label = Relativo ao início
+task-start-8-label =
+ .label = Relativo à próxima hora
+task-due-label =
+ .value = Data de fim:
+edit-intab-label =
+ .label = Editar eventos e tarefas num separador em vez de numa janela.
+ .accesskey = t
+prompt-delete-label =
+ .label = Questionar antes de eliminar eventos e tarefas
+ .accesskey = Q
+reminder-legend = Se o lembrete estiver vencido:
+reminder-play-checkbox =
+ .label = Reproduzir um som
+ .accesskey = s
+reminder-play-alarm-button =
+ .label = Reproduzir
+ .accesskey = p
+reminder-default-sound-label =
+ .label = Utilizar som pré-definido
+ .accesskey = d
+reminder-custom-sound-label =
+ .label = Utilizar o seguinte ficheiro de som
+ .accesskey = U
+reminder-browse-sound-label =
+ .label = Escolher…
+ .accesskey = E
+reminder-dialog-label =
+ .label = Mostrar uma caixa de alarme
+ .accesskey = M
+missed-reminder-label =
+ .label = Mostrar lembretes falhados para calendários editáveis
+ .accesskey = p
+reminder-default-legend = Predefinições dos lembretes
+default-snooze-label =
+ .value = Duração predefinida entre toques de alarme:
+ .accesskey = u
+event-alarm-label =
+ .value = Definição do lembrete predefinido para os eventos::
+ .accesskey = e
+alarm-on-label =
+ .label = Ligado
+alarm-off-label =
+ .label = Desligado
+task-alarm-label =
+ .value = Definição do lembrete predefinido para as tarefas:
+ .accesskey = a
+event-alarm-time-label =
+ .value = Tempo predefinido de ativação do alarme antes de um evento:
+ .accesskey = u
+task-alarm-time-label =
+ .value = Tempo predefinido de ativação do alarme antes de uma tarefa:
+ .accesskey = o
+calendar-notifications-customize-label = As notificações podem ser personalizadas para cada calendário na janela de propriedades do calendário.
+category-new-label = Nova categoria
+category-edit-label = Editar categoria
+category-overwrite-title = Aviso: nome duplicado
+category-overwrite = Já existe uma categoria com este nome. Deseja sobrescrevê-la?
+category-blank-warning = Tem de escrever o nome da categoria.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/chat/matrix.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/chat/matrix.ftl
new file mode 100644
index 0000000000..71d0808bc5
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/chat/matrix.ftl
@@ -0,0 +1,24 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Matrix Protocol strings
+
+
+## Conversation names when a room has no user readable name.
+
+room-name-empty = Conversa vazia
+# Variables:
+# $oldName (String) - The previous name the conversation had before it was
+# removed.
+room-name-empty-had-name = Conversa vazia (era { $oldName })
+# Variables:
+# $participant (String) - The name of one participant that isn't the user.
+# $otherParticipantCount (Number) - The count of other participants apart from
+# the user and $participant.
+room-name-others2 =
+ { $otherParticipantCount ->
+ [one] { $participant } e { $otherParticipantCount } outro
+ *[other] { $participant } e { $otherParticipantCount } outros
+ }
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/crashreporter/aboutcrashes.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/crashreporter/aboutcrashes.ftl
new file mode 100644
index 0000000000..f07b80ad12
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/crashreporter/aboutcrashes.ftl
@@ -0,0 +1,31 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v- 2-0- If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla-org/MPL/2-0/-
+
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+crash-reports-title = Relatórios de falha
+
+submit-all-button-label = Submeter tudo
+delete-button-label = Limpar todos
+delete-confirm-title = Tem a certeza?
+delete-unsubmitted-description = Isto irá apagar todos os relatórios de falha não submetidos e não poderá ser desfeito.
+delete-submitted-description = Isto irá remover a lista de relatórios de falha submetidos mas não irá apagar os dados submetidos. Isto não pode ser desfeito.
+
+crashes-unsubmitted-label = Relatórios de falha não submetidos
+id-heading = ID do relatório
+date-crashed-heading = Data da falha
+submit-crash-button-label = Submeter
+# This text is used to replace the label of the crash submit button
+# if the crash submission fails.
+submit-crash-button-failure-label = Falhou
+
+crashes-submitted-label = Relatórios de falha submetidos
+date-submitted-heading = Data de submissão
+view-crash-button-label = Ver
+
+no-reports-label = Não foram submetidos quaisquer relatórios de falha.
+no-config-label = Esta aplicação não foi configurada para mostrar relatórios de falha. A preferência <code>breakpad.reportURL</code> tem de ser definida.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/aboutdebugging.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/aboutdebugging.ftl
new file mode 100644
index 0000000000..5e00b9b63e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/aboutdebugging.ftl
@@ -0,0 +1,400 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the about:debugging UI.
+
+
+# Page Title strings
+
+# Page title (ie tab title) for the Setup page
+about-debugging-page-title-setup-page = Depuração - Configuração
+
+# Page title (ie tab title) for the Runtime page
+# { $selectedRuntimeId } is the id of the current runtime, such as "this-firefox", "localhost:6080", ...
+about-debugging-page-title-runtime-page = Depuração - Runtime / { $selectedRuntimeId }
+
+# Sidebar strings
+
+# Display name of the runtime for the currently running instance of Firefox. Used in the
+# Sidebar and in the Setup page.
+about-debugging-this-firefox-runtime-name = Este { -brand-shorter-name }
+
+# Sidebar heading for selecting the currently running instance of Firefox
+about-debugging-sidebar-this-firefox =
+ .name = { about-debugging-this-firefox-runtime-name }
+
+# Sidebar heading for connecting to some remote source
+about-debugging-sidebar-setup =
+ .name = Configuração
+
+# Text displayed in the about:debugging sidebar when USB devices discovery is enabled.
+about-debugging-sidebar-usb-enabled = USB ativado
+
+# Text displayed in the about:debugging sidebar when USB devices discovery is disabled
+# (for instance because the mandatory ADB extension is not installed).
+about-debugging-sidebar-usb-disabled = USB desativado
+
+# Connection status (connected) for runtime items in the sidebar
+aboutdebugging-sidebar-runtime-connection-status-connected = Ligado
+# Connection status (disconnected) for runtime items in the sidebar
+aboutdebugging-sidebar-runtime-connection-status-disconnected = Desassociado
+
+# Text displayed in the about:debugging sidebar when no device was found.
+about-debugging-sidebar-no-devices = Nenhum dispositivo descoberto
+
+# Text displayed in buttons found in sidebar items representing remote runtimes.
+# Clicking on the button will attempt to connect to the runtime.
+about-debugging-sidebar-item-connect-button = Ligar
+
+# Text displayed in buttons found in sidebar items when the runtime is connecting.
+about-debugging-sidebar-item-connect-button-connecting = A ligar…
+
+# Text displayed in buttons found in sidebar items when the connection failed.
+about-debugging-sidebar-item-connect-button-connection-failed = A ligação falhou
+
+# Text displayed in connection warning on sidebar item of the runtime when connecting to
+# the runtime is taking too much time.
+about-debugging-sidebar-item-connect-button-connection-not-responding = A ligação ainda está pendente, verifique mensagens no navegador de destino
+
+# Text displayed as connection error in sidebar item when the connection has timed out.
+about-debugging-sidebar-item-connect-button-connection-timeout = A ligação expirou
+
+# Text displayed in sidebar items for remote devices where a compatible browser (eg
+# Firefox) has not been detected yet. Typically, Android phones connected via USB with
+# USB debugging enabled, but where Firefox is not started.
+about-debugging-sidebar-runtime-item-waiting-for-browser = A aguardar pelo navegador...
+
+# Text displayed in sidebar items for remote devices that have been disconnected from the
+# computer.
+about-debugging-sidebar-runtime-item-unplugged = Desligado
+
+# Title for runtime sidebar items that are related to a specific device (USB, WiFi).
+about-debugging-sidebar-runtime-item-name =
+ .title = { $displayName } ({ $deviceName })
+# Title for runtime sidebar items where we cannot get device information (network
+# locations).
+about-debugging-sidebar-runtime-item-name-no-device =
+ .title = { $displayName }
+
+# Text to show in the footer of the sidebar that links to a help page
+# (currently: https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/)
+about-debugging-sidebar-support = Suporte da depuração
+
+# Text to show as the ALT attribute of a help icon that accompanies the help about
+# debugging link in the footer of the sidebar
+about-debugging-sidebar-support-icon =
+ .alt = Ícone de ajuda
+
+# Text displayed in a sidebar button to refresh the list of USB devices. Clicking on it
+# will attempt to update the list of devices displayed in the sidebar.
+about-debugging-refresh-usb-devices-button = Atualizar dispositivos
+
+# Setup Page strings
+
+# Title of the Setup page.
+about-debugging-setup-title = Configuração
+
+# Introduction text in the Setup page to explain how to configure remote debugging.
+about-debugging-setup-intro = Configure o método de ligação com o qual deseja depurar remotamente o seu dispositivo.
+
+# Explanatory text in the Setup page about what the 'This Firefox' page is for
+about-debugging-setup-this-firefox2 = Utilize <a>{ about-debugging-this-firefox-runtime-name }</a> para depurar extensões e service workers nesta versão do { -brand-shorter-name }.
+
+# Title of the heading Connect section of the Setup page.
+about-debugging-setup-connect-heading = Ligue um dispositivo
+
+# USB section of the Setup page
+about-debugging-setup-usb-title = USB
+
+# Explanatory text displayed in the Setup page when USB debugging is disabled
+about-debugging-setup-usb-disabled = Ativar isto irá transferir e adicionar os componentes de depuração Android USB para o { -brand-shorter-name }.
+
+# Text of the button displayed in the USB section of the setup page when USB debugging is disabled.
+# Clicking on it will download components needed to debug USB Devices remotely.
+about-debugging-setup-usb-enable-button = Ativar dispositivos USB
+
+# Text of the button displayed in the USB section of the setup page when USB debugging is enabled.
+about-debugging-setup-usb-disable-button = Desativar dispositivos USB
+
+# Text of the button displayed in the USB section of the setup page while USB debugging
+# components are downloaded and installed.
+about-debugging-setup-usb-updating-button = A atualizar…
+
+# USB section of the Setup page (USB status)
+about-debugging-setup-usb-status-enabled = Ativado
+about-debugging-setup-usb-status-disabled = Desativado
+about-debugging-setup-usb-status-updating = A atualizar...
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-dev-menu2 = Ative o menu de programador no seu dispositivo Android.
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-debug2 = Ative a depuração USB no menu de programador Android.
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-debug-firefox2 = Ative a depuração USB no Firefox no dispositivo Android.
+
+# USB section step by step guide
+about-debugging-setup-usb-step-plug-device = Ligue o dispositivo Android ao seu computador.
+
+# Text shown in the USB section of the setup page with a link to troubleshoot connection errors.
+# The link goes to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html#connecting-to-a-remote-device
+about-debugging-setup-usb-troubleshoot = Problemas ao ligar ao dispositivo USB? <a>Resolução de problemas</a>
+
+# Network section of the Setup page
+about-debugging-setup-network =
+ .title = Localização da rede
+
+# Text shown in the Network section of the setup page with a link to troubleshoot connection errors.
+# The link goes to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html#connecting-over-the-network
+about-debugging-setup-network-troubleshoot = Problemas ao ligar via localização de rede? <a>Resolução de problemas</a>
+
+# Text of a button displayed after the network locations "Host" input.
+# Clicking on it will add the new network location to the list.
+about-debugging-network-locations-add-button = Adicionar
+
+# Text to display when there are no locations to show.
+about-debugging-network-locations-empty-text = Nenhuma localização de rede foi adicionada ainda.
+
+# Text of the label for the text input that allows users to add new network locations in
+# the Connect page. A host is a hostname and a port separated by a colon, as suggested by
+# the input's placeholder "localhost:6080".
+about-debugging-network-locations-host-input-label = Servidor
+
+# Text of a button displayed next to existing network locations in the Connect page.
+# Clicking on it removes the network location from the list.
+about-debugging-network-locations-remove-button = Remover
+
+# Text used as error message if the format of the input value was invalid in the network locations form of the Setup page.
+# Variables:
+# $host-value (string) - The input value submitted by the user in the network locations form
+about-debugging-network-location-form-invalid = Servidor inválido “{ $host-value }”. O formato esperado é “servidor:númerodeporta”.
+
+# Text used as error message if the input value was already registered in the network locations form of the Setup page.
+# Variables:
+# $host-value (string) - The input value submitted by the user in the network locations form
+about-debugging-network-location-form-duplicate = O servidor “{ $host-value }” já está registado
+
+# Runtime Page strings
+
+# Below are the titles for the various categories of debug targets that can be found
+# on "runtime" pages of about:debugging.
+# Title of the temporary extensions category (only available for "This Firefox" runtime).
+about-debugging-runtime-temporary-extensions =
+ .name = Extensões temporárias
+# Title of the extensions category.
+about-debugging-runtime-extensions =
+ .name = Extensões
+# Title of the tabs category.
+about-debugging-runtime-tabs =
+ .name = Separadores
+# Title of the service workers category.
+about-debugging-runtime-service-workers =
+ .name = Service Workers
+# Title of the shared workers category.
+about-debugging-runtime-shared-workers =
+ .name = Shared Workers
+# Title of the other workers category.
+about-debugging-runtime-other-workers =
+ .name = Outros Workers
+# Title of the processes category.
+about-debugging-runtime-processes =
+ .name = Processos
+
+# Label of the button opening the performance profiler panel in runtime pages for remote
+# runtimes.
+about-debugging-runtime-profile-button2 = Desempenho do perfil
+
+# This string is displayed in the runtime page if the current configuration of the
+# target runtime is incompatible with service workers. "Learn more" points to:
+# https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html#service-workers-not-compatible
+about-debugging-runtime-service-workers-not-compatible = A configuração do seu navegador não é compatível com Service Workers. <a>Saber mais</a>
+
+# This string is displayed in the runtime page if the remote browser version is too old.
+# "Troubleshooting" link points to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/
+# { $runtimeVersion } is the version of the remote browser (for instance "67.0a1")
+# { $minVersion } is the minimum version that is compatible with the current Firefox instance (same format)
+about-debugging-browser-version-too-old = O navegador ligado tem uma versão antiga ({ $runtimeVersion }). A versão mínima suportada é ({ $minVersion }). Esta é uma configuração não suportada e pode causar com que as DevTools falhem. Por favor atualize o navegador ligado. <a>Resolução de problemas</a>
+
+# Dedicated message for a backward compatibility issue that occurs when connecting:
+# from Fx 70+ to the old Firefox for Android (aka Fennec) which uses Fx 68.
+about-debugging-browser-version-too-old-fennec = Esta versão do Firefox não pode depurar o Firefox para Android (68). Nós recomendamos a instalação do Firefox Nightly para Android no seu telemóvel para fazer testes. <a>Mais detalhes</a>
+
+# This string is displayed in the runtime page if the remote browser version is too recent.
+# "Troubleshooting" link points to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/
+# { $runtimeID } is the build ID of the remote browser (for instance "20181231", format is yyyyMMdd)
+# { $localID } is the build ID of the current Firefox instance (same format)
+# { $runtimeVersion } is the version of the remote browser (for instance "67.0a1")
+# { $localVersion } is the version of your current browser (same format)
+about-debugging-browser-version-too-recent = O navegador ligado é mais recente ({ $runtimeVersion }, buildID { $runtimeID }) do que a sua versão do { -brand-shorter-name } ({ $localVersion }, buildID { $localID }). Esta é uma configuração não suportada e pode fazer com que as DevTools falhem. Por favor atualize o Firefox. <a>Resolução de problemas</a>
+
+# Displayed for runtime info in runtime pages.
+# { $name } is brand name such as "Firefox Nightly"
+# { $version } is version such as "64.0a1"
+about-debugging-runtime-name = { $name } ({ $version })
+
+# Text of a button displayed in Runtime pages for remote runtimes.
+# Clicking on the button will close the connection to the runtime.
+about-debugging-runtime-disconnect-button = Desligar
+
+# Text of the connection prompt button displayed in Runtime pages, when the preference
+# "devtools.debugger.prompt-connection" is false on the target runtime.
+about-debugging-connection-prompt-enable-button = Ativar solicitação de ligação
+
+# Text of the connection prompt button displayed in Runtime pages, when the preference
+# "devtools.debugger.prompt-connection" is true on the target runtime.
+about-debugging-connection-prompt-disable-button = Desativar solicitação de ligação
+
+# Title of a modal dialog displayed on remote runtime pages after clicking on the Profile Runtime button.
+about-debugging-profiler-dialog-title2 = Profiler
+
+# Clicking on the header of a debug target category will expand or collapse the debug
+# target items in the category. This text is used as ’title’ attribute of the header,
+# to describe this feature.
+about-debugging-collapse-expand-debug-targets = Colapsar / expandir
+
+# Debug Targets strings
+
+# Displayed in the categories of "runtime" pages that don't have any debug target to
+# show. Debug targets depend on the category (extensions, tabs, workers...).
+about-debugging-debug-target-list-empty = Nada ainda.
+
+# Text of a button displayed next to debug targets of "runtime" pages. Clicking on this
+# button will open a DevTools toolbox that will allow inspecting the target.
+# A target can be an addon, a tab, a worker...
+about-debugging-debug-target-inspect-button = Inspecionar
+
+# Text of a button displayed in the "This Firefox" page, in the Temporary Extension
+# section. Clicking on the button will open a file picker to load a temporary extension
+about-debugging-tmp-extension-install-button = Carregar extra temporário…
+
+# Text displayed when trying to install a temporary extension in the "This Firefox" page.
+about-debugging-tmp-extension-install-error = Ocorreu um erro durante a instalação do extra temporário.
+
+# Text of a button displayed for a temporary extension loaded in the "This Firefox" page.
+# Clicking on the button will reload the extension.
+about-debugging-tmp-extension-reload-button = Recarregar
+
+# Text of a button displayed for a temporary extension loaded in the "This Firefox" page.
+# Clicking on the button will uninstall the extension and remove it from the page.
+about-debugging-tmp-extension-remove-button = Remover
+
+# Text of a button displayed for a temporary extension loaded in the "This Firefox" page.
+# Clicking on the button will forcefully terminate the extension background script (button
+# only visible in extensions that includes a non-persistent background script, either an
+# event page or a background service worker).
+about-debugging-tmp-extension-terminate-bgscript-button = Terminar script de fundo
+
+# Message displayed in the file picker that opens to select a temporary extension to load
+# (triggered by the button using "about-debugging-tmp-extension-install-button")
+# manifest.json .xpi and .zip should not be localized.
+# Note: this message is only displayed in Windows and Linux platforms.
+about-debugging-tmp-extension-install-message = Selecione o ficheiro manifest.json ou arquivo .xpi/.zip
+
+# This string is displayed as a message about the add-on having a temporaryID.
+about-debugging-tmp-extension-temporary-id = Esta WebExtension tem um ID temporário. <a>Saber mais</a>
+
+# Text displayed for extensions in "runtime" pages, before displaying a link the extension's
+# manifest URL.
+about-debugging-extension-manifest-url =
+ .label = URL do manifesto
+
+# Text displayed for extensions in "runtime" pages, before displaying the extension's uuid.
+# UUIDs look like b293e463-481e-5148-a487-5aaf7a130429
+about-debugging-extension-uuid =
+ .label = UUID interno
+
+# Text displayed for extensions (temporary extensions only) in "runtime" pages, before
+# displaying the location of the temporary extension.
+about-debugging-extension-location =
+ .label = Localização
+
+# Text displayed for extensions in "runtime" pages, before displaying the extension's ID.
+# For instance "geckoprofiler@mozilla.com" or "{ed26ddcb-5611-4512-a89a-51b8db81cfb2}".
+about-debugging-extension-id =
+ .label = ID da extensão
+
+# Text displayed for extensions in "runtime" pages, before displaying the status of the
+# extension background script.
+about-debugging-extension-backgroundscript =
+ .label = Script de fundo
+
+# Displayed for extension using a non-persistent background page (either an event page or
+# background service worker) when the background script is currently running.
+about-debugging-extension-backgroundscript-status-running = Em execução
+
+# Displayed for extension using a non-persistent background page when is currently stopped.
+about-debugging-extension-backgroundscript-status-stopped = Parado
+
+# This string is displayed as a label of the button that pushes a test payload
+# to a service worker.
+# Note this relates to the "Push" API, which is normally not localized so it is
+# probably better to not localize it.
+about-debugging-worker-action-push2 = Push
+ .disabledTitle = O push de Service Workers está atualmente desativado para o { -brand-shorter-name } multi-processos
+
+# This string is displayed as a label of the button that starts a service worker.
+about-debugging-worker-action-start2 = Iniciar
+ .disabledTitle = O iniciar de Service Workers está atualmente desativado para o { -brand-shorter-name } multi-processos
+
+# This string is displayed as a label of the button that unregisters a service worker.
+about-debugging-worker-action-unregister = Remover registo
+
+# Displayed for service workers in runtime pages that listen to Fetch events.
+about-debugging-worker-fetch-listening =
+ .label = Fetch
+ .value = A escutar eventos fetch
+
+# Displayed for service workers in runtime pages that do not listen to Fetch events.
+about-debugging-worker-fetch-not-listening =
+ .label = Fetch
+ .value = A não escutar eventos fetch
+
+# Displayed for service workers in runtime pages that are currently running (service
+# worker instance is active).
+about-debugging-worker-status-running = Em execução
+
+# Displayed for service workers in runtime pages that are registered but stopped.
+about-debugging-worker-status-stopped = Parado
+
+# Displayed for service workers in runtime pages that are registering.
+about-debugging-worker-status-registering = A registar
+
+# Displayed for service workers in runtime pages, to label the scope of a worker
+about-debugging-worker-scope =
+ .label = Âmbito
+
+# Displayed for service workers in runtime pages, to label the push service endpoint (url)
+# of a worker
+about-debugging-worker-push-service =
+ .label = Serviço Push
+
+# Displayed as title of the inspect button when service worker debugging is disabled.
+about-debugging-worker-inspect-action-disabled =
+ .title = A inspeção de Service Worker está atualmente desativada para o { -brand-shorter-name } multi-processos
+
+# Displayed as title of the inspect button for zombie tabs (e.g. tabs loaded via a session restore).
+about-debugging-zombie-tab-inspect-action-disabled =
+ .title = O separador não está totalmente carregado e não pode ser inspecionado
+
+# Displayed instead of the Main Process debug target when the preference
+# `devtools.browsertoolbox.fission` is true.
+about-debugging-multiprocess-toolbox-name = Caixa de ferramentas multi-processos
+
+# Description for the Multiprocess Toolbox target.
+about-debugging-multiprocess-toolbox-description = Processo principal e processos de conteúdo para o navegador alvo
+
+# Alt text used for the close icon of message component (warnings, errors and notifications).
+about-debugging-message-close-icon =
+ .alt = Fechar mensagem
+
+# Label text used for the error details of message component.
+about-debugging-message-details-label-error = Detalhes do erro
+
+# Label text used for the warning details of message component.
+about-debugging-message-details-label-warning = Detalhes do aviso
+
+# Label text used for default state of details of message component.
+about-debugging-message-details-label = Detalhes
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/accessibility.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/accessibility.ftl
new file mode 100644
index 0000000000..5c8a2ea94b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/accessibility.ftl
@@ -0,0 +1,99 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the Accessibility panel.
+
+accessibility-learn-more = Saber mais
+
+accessibility-text-label-header = Etiquetas e nomes de texto
+
+accessibility-keyboard-header = Teclado
+
+## Text entries that are used as text alternative for icons that depict accessibility isses.
+
+
+## These strings are used in the overlay displayed when running an audit in the accessibility panel
+
+accessibility-progress-initializing = A inicializar…
+ .aria-valuetext = A inicializar…
+
+# This string is displayed in the audit progress bar in the accessibility panel.
+# Variables:
+# $nodeCount (Integer) - The number of nodes for which the audit was run so far.
+accessibility-progress-progressbar =
+ { $nodeCount ->
+ [one] A verificar { $nodeCount } nó
+ *[other] A verificar { $nodeCount } nós
+ }
+
+accessibility-progress-finishing = A terminar…
+ .aria-valuetext = A terminar…
+
+## Text entries that are used as text alternative for icons that depict accessibility issues.
+
+accessibility-warning =
+ .alt = Aviso
+
+accessibility-fail =
+ .alt = Erro
+
+accessibility-best-practices =
+ .alt = Melhores práticas
+
+## Text entries for a paragraph used in the accessibility panel sidebar's checks section
+## that describe that currently selected accessible object has an accessibility issue
+## with its text label or accessible name.
+
+accessibility-text-label-issue-area = Utilize o atributo <code>alt</code> para rotular elementos <div>area</ div> que possuem o atributo <span>href</span>. <a>Saber mais</a>
+
+accessibility-text-label-issue-dialog = Diálogos devem ser rotulados. <a>Saber mais</a>
+
+accessibility-text-label-issue-document-title = Documentos devem ter um <code>title</code>. <a>Saber mais</a>
+
+accessibility-text-label-issue-embed = Conteúdo embutido deve ser rotulado. <a>Saber mais</a>
+
+accessibility-text-label-issue-figure = Figuras com legendas opcionais devem ser rotuladas. <a>Saber mais</a>
+
+accessibility-text-label-issue-fieldset = Elementos <code>fieldset</code> devem ser rotulados. <a>Saber mais</a>
+
+accessibility-text-label-issue-fieldset-legend2 = Utilize um elemento <code>legend</code> para etiquetar um <span>fieldset</span>. <a>Saber mais</a>
+
+accessibility-text-label-issue-form = Elementos de formulário devem ser rotulados. <a>Saber mais</a>
+
+accessibility-text-label-issue-form-visible = Elementos de formulário devem ter um rótulo de texto visível. <a>Saber mais</a>
+
+accessibility-text-label-issue-frame = Elementos <code>frame</code> devem ser rotulados. <a>Saber mais</a>
+
+accessibility-text-label-issue-glyph = Utilize o atributo <code>alt</ code> para rotular elementos <span>mglyph</span>. <a>Saber mais</a>
+
+accessibility-text-label-issue-heading = Cabeçalhos devem ser rotulados. <a>Saber mais</a>
+
+accessibility-text-label-issue-heading-content = Cabeçalhos devem ter conteúdo de texto visível. <a>Saber mais</a>
+
+accessibility-text-label-issue-iframe = Utilize o atributo <code>title</code> para descrever conteúdo <span>iframe</span>. <a>Saber mais</a>
+
+accessibility-text-label-issue-image = Conteúdo com imagens deve ser rotulado. <a>Saber mais</a>
+
+accessibility-text-label-issue-interactive = Elementos interativos devem ser rotulados. <a>Saber mais</a>
+
+accessibility-text-label-issue-optgroup-label2 = Utilize um atributo <code>label</code> para etiquetar um <span>"optgroup"</span>. <a>Saber mais</a>
+
+accessibility-text-label-issue-toolbar = Barras de ferramentas devem ser rotuladas quando houver mais de uma barra de ferramentas. <a>Saber mais</a>
+
+## Text entries for a paragraph used in the accessibility panel sidebar's checks section
+## that describe that currently selected accessible object has a keyboard accessibility
+## issue.
+
+accessibility-keyboard-issue-semantics = Os elementos focáveis devem ter semântica de interação. <a>Saber mais</a>
+
+accessibility-keyboard-issue-tabindex = Evite utilizar o atributo <code>tabindex</code> com um valor maior do que zero. <a>Saber mais</a>
+
+accessibility-keyboard-issue-action = Deve ser possível ativar elementos interativos com recurso a um teclado. <a>Saber mais</a>
+
+accessibility-keyboard-issue-focusable = Deve ser possível focar elementos interativos. <a>Saber mais </a>
+
+accessibility-keyboard-issue-focus-visible = Pode estar em falta o estilo de foco de um elemento focável. <a>Saber mais</a>
+
+accessibility-keyboard-issue-mouse-only = Os elementos clicáveis ​​devem ser focáveis ​​e ter semântica de interação. <a>Saber mais</a>
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/application.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/application.ftl
new file mode 100644
index 0000000000..26abca027f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/application.ftl
@@ -0,0 +1,147 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the Application panel which is available
+### by setting the preference `devtools-application-enabled` to true.
+
+
+### The correct localization of this file might be to keep it in English, or another
+### language commonly spoken among web developers. You want to make that choice consistent
+### across the developer tools. A good criteria is the language in which you'd find the
+### best documentation on web development on the web.
+
+# Header for the list of Service Workers displayed in the application panel for the current page.
+serviceworker-list-header = Service Workers
+
+# Text displayed next to the list of Service Workers to encourage users to check out
+# about:debugging to see all registered Service Workers.
+serviceworker-list-aboutdebugging = Open <a>about:debugging</a> for Service Workers from other domains
+
+# Text for the button to unregister a Service Worker. Displayed for active Service Workers.
+serviceworker-worker-unregister = Unregister
+
+# Text for the debug link displayed for an already started Service Worker. Clicking on the
+# link opens a new devtools toolbox for this service worker. The title attribute is only
+# displayed when the link is disabled.
+serviceworker-worker-debug = Debug
+ .title = Only running service workers can be debugged
+
+# Alt text for the image icon displayed inside a debug link for a service worker.
+serviceworker-worker-inspect-icon =
+ .alt = Inspecionar
+
+# Text for the start link displayed for a registered but not running Service Worker.
+# Clicking on the link will attempt to start the service worker.
+serviceworker-worker-start3 = Iniciar
+
+# Text displayed for the updated time of the service worker. The <time> element will
+# display the last update time of the service worker script.
+serviceworker-worker-updated = Updated <time>{ DATETIME($date, month: "long", year: "numeric", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric") }</time>
+
+## Service Worker status strings: all serviceworker-worker-status-* strings are also
+## defined in aboutdebugging.properties and should be synchronized with them.
+
+# Service Worker status. A running service worker is registered, currently executed, can
+# be debugged and stopped.
+serviceworker-worker-status-running = Running
+
+# Service Worker status. A stopped service worker is registered but not currently active.
+serviceworker-worker-status-stopped = Stopped
+
+# Text displayed when no service workers are visible for the current page.
+serviceworker-empty-intro2 = Não foram encontrados service workers
+
+# Link will open https://developer.mozilla.org/docs/Web/API/Service_Worker_API/Using_Service_Workers
+serviceworker-empty-intro-link = Saber mais
+
+# Text displayed when there are no Service Workers to display for the current page,
+# introducing hints to debug Service Worker issues.
+# <a> and <span> are links that will open the webconsole and the debugger, respectively.
+serviceworker-empty-suggestions2 = Se a página atual tiver um service worker, você poderá procurar erros na <a>Consola</a> ou percorrer o registo do service worker no <span>Depurador</span>.
+
+# Suggestion to go to about:debugging in order to see Service Workers for all domains.
+# Link will open about:debugging in a new tab.
+serviceworker-empty-suggestions-aboutdebugging2 = Ver service workers de outros domínios
+
+# Header for the Manifest page when we have an actual manifest
+manifest-view-header = App Manifest
+
+# Header for the Manifest page when there's no manifest to inspect
+manifest-empty-intro2 = Não foi detetado nenhum manifesto de aplicação Web
+
+# The link will open https://developer.mozilla.org/en-US/docs/Web/Manifest
+manifest-empty-intro-link = Aprenda a adicionar um manifesto
+
+# Header for the Errors and Warnings section of Manifest inspection displayed in the application panel.
+manifest-item-warnings = Errors and Warnings
+
+# Header for the Identity section of Manifest inspection displayed in the application panel.
+manifest-item-identity = Identity
+
+# Header for the Presentation section of Manifest inspection displayed in the application panel.
+manifest-item-presentation = Presentation
+
+# Header for the Icon section of Manifest inspection displayed in the application panel.
+manifest-item-icons = Icons
+
+# Text displayed while we are loading the manifest file
+manifest-loading = Loading manifest…
+
+# Text displayed when the manifest has been successfully loaded
+manifest-loaded-ok = Manifest loaded.
+
+# Text displayed as a caption when there has been an error while trying to
+# load the manifest
+manifest-loaded-error = There was an error while loading the manifest:
+
+# Text displayed as an error when there has been a Firefox DevTools error while
+# trying to load the manifest
+manifest-loaded-devtools-error = Firefox DevTools error
+
+# Text displayed when the page has no manifest available
+manifest-non-existing = No manifest found to inspect.
+
+# Text displayed when the page has a manifest embedded in a Data URL and
+# thus we cannot link to it.
+manifest-json-link-data-url = The manifest is embedded in a Data URL.
+
+# Text displayed at manifest icons to label their purpose, as declared
+# in the manifest.
+manifest-icon-purpose = Purpose: <code>{ $purpose }</code>
+
+# Text displayed as the alt attribute for <img> tags showing the icons in the
+# manifest.
+manifest-icon-img =
+ .alt = Icon
+
+# Text displayed as the title attribute for <img> tags showing the icons in the
+# manifest. `$sizes` is a user-dependent string that has been parsed as a
+# space-separated list of `<width>x<height>` sizes or the keyword `any`.
+manifest-icon-img-title = Icon with sizes: { $sizes }
+
+# Text displayed as the title attribute for <img> tags showing the icons in the
+# manifest, in case there's no icon size specified by the user
+manifest-icon-img-title-no-sizes = Unspecified size icon
+
+# Sidebar navigation item for Manifest sidebar item section
+sidebar-item-manifest = Manifest
+ .alt = Manifest Icon
+ .title = Manifest
+
+# Sidebar navigation item for Service Workers sidebar item section
+sidebar-item-service-workers = Service Workers
+ .alt = Service Workers Icon
+ .title = Service Workers
+
+# Text for the ALT and TITLE attributes of the warning icon
+icon-warning =
+ .alt = Warning icon
+ .title = Warning
+
+# Text for the ALT and TITLE attributes of the error icon
+icon-error =
+ .alt = Error icon
+ .title = Error
+
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/compatibility.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/compatibility.ftl
new file mode 100644
index 0000000000..232f2ab863
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/compatibility.ftl
@@ -0,0 +1,54 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Messages used as headers in the main pane
+
+compatibility-selected-element-header = Elemento selecionado
+compatibility-all-elements-header = Todos os problemas
+
+## Message used as labels for the type of issue
+
+compatibility-issue-deprecated = (descontinuado)
+compatibility-issue-experimental = (experimental)
+compatibility-issue-prefixneeded = (prefixo necessário)
+compatibility-issue-deprecated-experimental = (descontinuado, experimental)
+compatibility-issue-deprecated-prefixneeded = (obsoleto, prefixo necessário)
+compatibility-issue-experimental-prefixneeded = (experimental, prefixo necessário)
+compatibility-issue-deprecated-experimental-prefixneeded = (obsoleto, experimental, prefixo necessário)
+
+## Messages used as labels and titles for buttons in the footer
+
+compatibility-settings-button-label = Definições
+compatibility-settings-button-title =
+ .title = Definições
+
+## Messages used as headers in settings pane
+
+compatibility-settings-header = Definições
+compatibility-target-browsers-header = Navegadores-alvo
+
+##
+
+# Text used as the label for the number of nodes where the issue occurred
+# Variables:
+# $number (Number) - The number of nodes where the issue occurred
+compatibility-issue-occurrences =
+ { $number ->
+ [one] { $number } ocorrência
+ *[other] { $number } ocorrências
+ }
+
+compatibility-no-issues-found = Não foi encontrado nenhum problema de compatibilidade.
+compatibility-close-settings-button =
+ .title = Fechar definições
+
+# Text used in the element containing the browser icons for a given compatibility issue.
+# Line breaks are significant.
+# Variables:
+# $browsers (String) - A line-separated list of browser information (e.g. Firefox 98\nChrome 99).
+compatibility-issue-browsers-list =
+ .title =
+ Problemas de compatibilidade em:
+ { $browsers }
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/perftools.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/perftools.ftl
new file mode 100644
index 0000000000..766c1f1714
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/perftools.ftl
@@ -0,0 +1,159 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used in DevTools’ performance-new panel, about:profiling, and
+### the remote profiling panel. There are additional profiler strings in the appmenu.ftl
+### file that are used for the profiler popup.
+
+perftools-intro-title = Definições do Profiler
+perftools-intro-description = As gravações lançam o profiler.firefox.com num novo separador. Todos os dados são armazenados localmente, mas pode optar por os enviar para serem partilhados.
+
+## All of the headings for the various sections.
+
+perftools-heading-settings = Definições completas
+perftools-heading-buffer = Definições do buffer
+perftools-heading-features = Funcionalidades
+perftools-heading-features-default = Funcionalidades (as recomendadas estão ativadas por predefinição)
+perftools-heading-features-disabled = Funcionalidades desativadas
+perftools-heading-features-experimental = Experimentais
+perftools-heading-threads = Threads
+perftools-heading-threads-jvm = Threads JVM
+perftools-heading-local-build = Compilação local
+
+##
+
+perftools-description-intro =
+ As gravações lançam o <a>profiler.firefox.com</a> num novo separador. Todos os dados são armazenados localmente,
+ mas pode optar por os enviar para serem partilhados.
+perftools-description-local-build =
+ Se está criar um perfil uma compilação que foi realizada por si nesta
+ máquina, adicione o seu objdir de compilação à lista abaixo para que
+ este possa ser utilizado para associar informação de símbolos.
+
+## The controls for the interval at which the profiler samples the code.
+
+perftools-range-interval-label = Intervalo de amostragem:
+perftools-range-interval-milliseconds = { NUMBER($interval, maxFractionalUnits: 2) } ms
+
+##
+
+# The size of the memory buffer used to store things in the profiler.
+perftools-range-entries-label = Tamanho do buffer:
+
+perftools-custom-threads-label = Adicionar threads personalizadas por nome:
+
+perftools-devtools-interval-label = Intervalo:
+perftools-devtools-threads-label = Threads:
+perftools-devtools-settings-label = Definições
+
+## Various statuses that affect the current state of profiling, not typically displayed.
+
+perftools-status-recording-stopped-by-another-tool = A gravação foi interrompida por outra ferramenta.
+perftools-status-restart-required = O navegador deve ser reiniciado para ativar esta funcionalidade.
+
+## These are shown briefly when the user is waiting for the profiler to respond.
+
+perftools-request-to-stop-profiler = Parar a gravação
+perftools-request-to-get-profile-and-stop-profiler = A capturar o perfil
+
+##
+
+perftools-button-start-recording = Iniciar gravação
+perftools-button-capture-recording = Capturar gravação
+perftools-button-cancel-recording = Cancelar gravação
+perftools-button-save-settings = Guardar definições e voltar
+perftools-button-restart = Reiniciar
+perftools-button-add-directory = Adicionar um diretório
+perftools-button-remove-directory = Remover selecionado
+perftools-button-edit-settings = Editar definições…
+
+## These messages are descriptions of the threads that can be enabled for the profiler.
+
+perftools-thread-gecko-main =
+ .title = Os principais processos do processo pai e conteúdo dos processos
+perftools-thread-compositor =
+ .title = Compõe diferentes elementos desenhados na página
+perftools-thread-dom-worker =
+ .title = Isto suporta os web workers e service workers
+perftools-thread-renderer =
+ .title = Quando o WebRender está ativo, a thread que executa as chamadas OpenGL
+perftools-thread-render-backend =
+ .title = A thread RenderBackend do WebRender
+perftools-thread-timer =
+ .title = Os temporizadores de tratamento de threads (setTimeout, setInterval, nsITimer)
+perftools-thread-style-thread =
+ .title = A computação de estilo é dividida em múltiplas threads
+pref-thread-stream-trans =
+ .title = Transporte de fluxo de rede
+perftools-thread-socket-thread =
+ .title = A thread onde o código de rede executa todas as chamadas de socket bloqueantes
+perftools-thread-img-decoder =
+ .title = Threads de descodificação de imagem
+perftools-thread-dns-resolver =
+ .title = A resolução de DNS acontece nesta thread
+perftools-thread-task-controller =
+ .title = Threads do conjunto de threads do TaskController
+perftools-thread-jvm-gecko =
+ .title = A thread principal da Gecko JVM
+perftools-thread-jvm-nimbus =
+ .title = As principais threads do SDK de experiências Nimbus
+perftools-thread-jvm-default-dispatcher =
+ .title = O dispatcher Padrão para a biblioteca de co-rotinas Kotlin
+perftools-thread-jvm-glean =
+ .title = As threads principais do SDK de telemetria Glean
+perftools-thread-jvm-arch-disk-io =
+ .title = O dispatcher IO para a biblioteca de co-rotinas Kotlin
+perftools-thread-jvm-pool =
+ .title = Threads criadas num conjunto de threads sem nome
+
+##
+
+perftools-record-all-registered-threads = Ignora as seleções acima e grava todas as threads registadas
+
+perftools-tools-threads-input-label =
+ .title = Estes nomes de threads são uma lista separada por vírgulas que é utilizada para ativar o profiling das threads no profiler. O nome apenas necessita de ser uma correspondência parcial do nome da thread para ser incluído. É sensível a espaços em branco.
+
+## Onboarding UI labels. These labels are displayed in the new performance panel UI, when
+## devtools.performance.new-panel-onboarding preference is true.
+
+perftools-onboarding-message = <b>Novo</b>: O { -profiler-brand-name } está agora integrado nas ferramentas de desenvolvimento. <a>Saber mais</a> sobre esta poderosa nova ferramenta.
+
+perftools-onboarding-close-button =
+ .aria-label = Fechar mensagem de introdução
+
+## Profiler presets
+
+
+# Presets and their l10n IDs are defined in the file
+# devtools/client/performance-new/popup/background.jsm.js
+# The same labels and descriptions are also defined in appmenu.ftl.
+
+# Presets and their l10n IDs are defined in the file
+# devtools/client/performance-new/shared/background.jsm.js
+# The same labels and descriptions are also defined in appmenu.ftl.
+
+perftools-presets-web-developer-label = Programador Web
+perftools-presets-web-developer-description = Predefinição recomendada para a maioria das depurações de aplicações web, com pouca sobrecarga.
+
+perftools-presets-firefox-label = { -brand-shorter-name }
+perftools-presets-firefox-description = Predefinição recomendada para perfilar o { -brand-shorter-name }.
+
+perftools-presets-graphics-label = Gráficos
+perftools-presets-graphics-description = Predefinição para investigar bugs gráficos no { -brand-shorter-name }.
+
+perftools-presets-media-label = Multimédia
+perftools-presets-media-description2 = Predefinição para investigar bugs de áudio e vídeo no { -brand-shorter-name }.
+
+perftools-presets-networking-label = Rede
+perftools-presets-networking-description = Predefinição para investigar bugs de rede no { -brand-shorter-name }.
+
+# "Power" is used in the sense of energy (electricity used by the computer).
+perftools-presets-power-label = Potência
+perftools-presets-power-description = Predefinição para investigar bugs relacionados com a utilização de energia no { -brand-shorter-name }, com baixa sobrecarga.
+
+perftools-presets-custom-label = Personalizada
+
+##
+
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/storage.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/storage.ftl
new file mode 100644
index 0000000000..63bd978266
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/storage.ftl
@@ -0,0 +1,132 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the Storage Inspector.
+
+# Key shortcut used to focus the filter box on top of the data view
+storage-filter-key = CmdOrCtrl+F
+
+# Hint shown when the selected storage host does not contain any data
+storage-table-empty-text = Sem dados existentes para o servidor selecionado
+
+# Hint shown when the cookies storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Cookies
+storage-table-type-cookies-hint = Visualize e edite cookies selecionando um servidor. <a data-l10n-name="learn-more-link">Saber mais</a>
+
+# Hint shown when the local storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Local_Storage_Session_Storage
+storage-table-type-localstorage-hint = Visualize e edite o armazenamento local selecionando um servidor. <a data-l10n-name="learn-more-link">Saber mais</a>
+
+# Hint shown when the session storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Local_Storage_Session_Storage
+storage-table-type-sessionstorage-hint = Visualize e edite o armazenamento da sessão selecionando um servidor. <a data-l10n-name="learn-more-link">Saber mais</a>
+
+# Hint shown when the IndexedDB storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/IndexedDB
+storage-table-type-indexeddb-hint = Visualize e elimine entradas IndexedDB selecionando uma base de dados. <a data-l10n-name="learn-more-link">Saber mais</a>
+
+# Hint shown when the cache storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Cache_Storage
+storage-table-type-cache-hint = Visualize e elimine entradas do armazenamento da cache selecionando um servidor. <a data-l10n-name="learn-more-link">Saber mais</a>
+
+# Hint shown when the extension storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Extension_Storage
+storage-table-type-extensionstorage-hint = Visualize e edite o armazenamento das extensões selecionando um servidor. <a data-l10n-name="learn-more-link">Saber mais</a>
+
+# Placeholder for the searchbox that allows you to filter the table items
+storage-search-box =
+ .placeholder = Filtrar itens
+
+# Placeholder text in the sidebar search box
+storage-variable-view-search-box =
+ .placeholder = Filtrar valores
+
+# Add Item button title
+storage-add-button =
+ .title = Adicionar item
+
+# Refresh button title
+storage-refresh-button =
+ .title = Atualizar itens
+
+# Context menu action to delete all storage items
+storage-context-menu-delete-all =
+ .label = Apagar todos
+
+# Context menu action to delete all session cookies
+storage-context-menu-delete-all-session-cookies =
+ .label = Apagar todos os cookies da sessão
+
+# Context menu action to copy a storage item
+storage-context-menu-copy =
+ .label = Copiar
+
+# Context menu action to delete storage item
+# Variables:
+# $itemName (String) - Name of the storage item that will be deleted
+storage-context-menu-delete =
+ .label = Apagar “{ $itemName }”
+
+# Context menu action to add an item
+storage-context-menu-add-item =
+ .label = Adicionar item
+
+# Context menu action to delete all storage items from a given host
+# Variables:
+# $host (String) - Host for which we want to delete the items
+storage-context-menu-delete-all-from =
+ .label = Apagar tudo de “{ $host }”
+
+## Header names of the columns in the Storage Table for each type of storage available
+## through the Storage Tree to the side.
+
+storage-table-headers-cookies-name = Nome
+storage-table-headers-cookies-value = Valor
+storage-table-headers-cookies-expires = Expira / Idade máxima
+storage-table-headers-cookies-size = Tamanho
+storage-table-headers-cookies-last-accessed = Último acesso
+storage-table-headers-cookies-creation-time = Criado
+storage-table-headers-cache-status = Estado
+storage-table-headers-extension-storage-area = Área de armazenamento
+
+## Labels for Storage type groups present in the Storage Tree, like cookies, local storage etc.
+
+storage-tree-labels-cookies = Cookies
+storage-tree-labels-local-storage = Armazenamento local
+storage-tree-labels-session-storage = Armazenamento da sessão
+storage-tree-labels-indexed-db = BD indexada
+storage-tree-labels-cache = Armazenamento de cache
+storage-tree-labels-extension-storage = Armazenamento da extensão
+
+##
+
+# Tooltip for the button that collapses the right panel in the
+# storage UI when the panel is closed.
+storage-expand-pane =
+ .title = Expandir painel
+
+# Tooltip for the button that collapses the right panel in the
+# storage UI when the panel is open.
+storage-collapse-pane =
+ .title = Colapsar painel
+
+# String displayed in the expires column when the cookie is a Session Cookie
+storage-expires-session = Sessão
+
+# Heading displayed over the item value in the sidebar
+storage-data = Dados
+
+# Heading displayed over the item parsed value in the sidebar
+storage-parsed-value = Valor analisado
+
+# Warning notification when IndexedDB database could not be deleted immediately.
+# Variables:
+# $dbName (String) - Name of the database
+storage-idb-delete-blocked = A base de dados “{ $dbName }” será apagada depois de todas as ligações estarem fechadas.
+
+# Error notification when IndexedDB database could not be deleted.
+# Variables:
+# $dbName (String) - Name of the database
+storage-idb-delete-error = A base de dados “{ $dbName }” não pode ser apagada.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/styleeditor.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/styleeditor.ftl
new file mode 100644
index 0000000000..f3e85dfec7
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/styleeditor.ftl
@@ -0,0 +1,56 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+styleeditor-new-button =
+ .tooltiptext = Criar e anexar uma nova folha de estilo ao documento
+ .accesskey = N
+styleeditor-import-button =
+ .tooltiptext = Importar e anexar uma folha de estilo existente ao documento
+ .accesskey = I
+styleeditor-filter-input =
+ .placeholder = Filtrar folhas de estilo
+styleeditor-visibility-toggle =
+ .tooltiptext = Alternar visibilidade da folha de estilo
+ .accesskey = G
+styleeditor-visibility-toggle-system =
+ .tooltiptext = As folhas de estilo do sistema não podem ser desativadas
+styleeditor-save-button = Guardar
+ .tooltiptext = Guardar esta folha de estilo para um ficheiro
+ .accesskey = G
+styleeditor-options-button =
+ .tooltiptext = Opções do editor de estilos
+styleeditor-at-rules = Regras-arroba
+styleeditor-editor-textbox =
+ .data-placeholder = Escreva CSS aqui.
+styleeditor-no-stylesheet = Esta página não tem folhas de estilo.
+styleeditor-no-stylesheet-tip = Talvez queira <a data-l10n-name="append-new-stylesheet">anexar uma nova folha de estilo</a>?
+styleeditor-open-link-new-tab =
+ .label = Abrir ligação num novo separador
+styleeditor-copy-url =
+ .label = Copiar URL
+styleeditor-find =
+ .label = Localizar
+ .accesskey = L
+styleeditor-find-again =
+ .label = Localizar novamente
+ .accesskey = m
+styleeditor-go-to-line =
+ .label = Saltar para a linha…
+ .accesskey = I
+# Label displayed when searching a term that is not found in any stylesheet path
+styleeditor-stylesheet-all-filtered = Não foi encontrada nenhuma folha de estilo correspondente.
+# This string is shown in the style sheets list
+# Variables:
+# $ruleCount (Integer) - The number of rules in the stylesheet.
+styleeditor-stylesheet-rule-count =
+ { $ruleCount ->
+ [one] { $ruleCount } regra.
+ *[other] { $ruleCount } regras.
+ }
+# Title for the pretty print button in the editor footer.
+styleeditor-pretty-print-button =
+ .title = Folha de estilos formatada
+# Title for the pretty print button in the editor footer, when it's disabled
+styleeditor-pretty-print-button-disabled =
+ .title = Só é possível formatar CSS
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/toolbox-options.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/toolbox-options.ftl
new file mode 100644
index 0000000000..37f20b8d69
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/toolbox-options.ftl
@@ -0,0 +1,133 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Localization for Developer Tools options
+
+
+## Default Developer Tools section
+
+# The heading
+options-select-default-tools-label = Ferramentas de programador predefinidas
+# The label for the explanation of the * marker on a tool which is currently not supported
+# for the target of the toolbox.
+options-tool-not-supported-label = * Não suportado para o destino atual da caixa de ferramentas
+# The label for the heading of group of checkboxes corresponding to the developer tools
+# added by add-ons. This heading is hidden when there is no developer tool installed by add-ons.
+options-select-additional-tools-label = Ferramentas de programador instaladas por extras
+# The label for the heading of group of checkboxes corresponding to the default developer
+# tool buttons.
+options-select-enabled-toolbox-buttons-label = Botões da caixa de ferramentas disponíveis
+# 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 = Inspetor
+# The label for the checkbox option to show user agent styles
+options-show-user-agent-styles-label = Mostrar estilos do navegador
+options-show-user-agent-styles-tooltip =
+ .title = Ative para que sejam mostrados os estilos predefinidos que são carregados pelo navegador.
+# The label for the checkbox option to enable collapse attributes
+options-collapse-attrs-label = Truncar atributos DOM
+options-collapse-attrs-tooltip =
+ .title = Truncar atributos longos no inspetor
+# The label for the checkbox option to enable the "drag to update" feature
+options-inspector-draggable-properties-label = Clique e arraste para editar os valores de tamanho
+options-inspector-draggable-properties-tooltip =
+ .title = Clique e arraste para editar os valores de tamanho na vista de regras do inspetor.
+# The label for the checkbox option to enable simplified highlighting on page elements
+# within the inspector for users who enabled prefers-reduced-motion = reduce
+options-inspector-simplified-highlighters-label = Utilize marcadores mais simples com preferência por movimento reduzido
+options-inspector-simplified-highlighters-tooltip =
+ .title = Ativa marcadores simplificados quando a preferência por movimento reduzido (prefers-reduced-motion) está ativa. Desenha linhas em vez de retângulos preenchidos em torno de elementos destacados para evitar efeitos intermitentes.
+
+## "Default Color Unit" options for the Inspector
+
+options-default-color-unit-label = Unidade predefinida de cor
+options-default-color-unit-authored = Como autorizada
+options-default-color-unit-hex = Hex
+options-default-color-unit-hsl = HSL(A)
+options-default-color-unit-rgb = RGB(A)
+options-default-color-unit-hwb = HWB
+options-default-color-unit-name = Nomes de cores
+
+## Style Editor section
+
+# The heading
+options-styleeditor-label = Editor de estilos
+# The label for the checkbox that toggles autocompletion of css in the Style Editor
+options-stylesheet-autocompletion-label = Conclusão automática de CSS
+options-stylesheet-autocompletion-tooltip =
+ .title = Completa automaticamente as propriedades CSS, os valores e os seletores no editor de estilos assim que forme escritos
+
+## Screenshot section
+
+# The heading
+options-screenshot-label = Comportamento da captura de ecrã
+# Label for the checkbox that toggles screenshot to clipboard feature
+options-screenshot-clipboard-only-label = Capturar o ecrã para a área de transferência apenas
+options-screenshot-clipboard-tooltip2 =
+ .title = Guarda a captura de ecrã diretamente para a área de transferência
+# Label for the checkbox that toggles the camera shutter audio for screenshot tool
+options-screenshot-audio-label = Reproduzir som de obturador de câmara
+options-screenshot-audio-tooltip =
+ .title = Ativa o som do áudio de câmara ao tirar uma captura de ecrã
+
+## Editor section
+
+# The heading
+options-sourceeditor-label = Preferências do editor
+options-sourceeditor-detectindentation-tooltip =
+ .title = Inferir indentação com base na fonte do código
+options-sourceeditor-detectindentation-label = Detetar indentação
+options-sourceeditor-autoclosebrackets-tooltip =
+ .title = Inserir parêntesis retos de fecho automaticamente
+options-sourceeditor-autoclosebrackets-label = Fechar parêntesis retos automaticamente
+options-sourceeditor-expandtab-tooltip =
+ .title = Utilizar espaços em vez do caractere de tabulação
+options-sourceeditor-expandtab-label = Indentar usando espaços
+options-sourceeditor-tabsize-label = Tamanho da tabulação
+options-sourceeditor-keybinding-label = Combinações de teclas
+options-sourceeditor-keybinding-default-label = Predefinição
+
+## Advanced section
+
+# The heading (this item is also used in perftools.ftl)
+options-context-advanced-settings = Definições avançadas
+# The label for the checkbox that toggles the HTTP cache on or off
+options-disable-http-cache-label = Desativar cache HTTP (quando a caixa de ferramentas está aberta)
+options-disable-http-cache-tooltip =
+ .title = Ligar esta opção irá desativar o cache HTTP para todos os separadores que têm a caixa de ferramentas aberta. Os Service Workers não são afetados por esta opção.
+# The label for checkbox that toggles JavaScript on or off
+options-disable-javascript-label = Desativar JavaScript
+options-disable-javascript-tooltip =
+ .title = Se ativar esta opção desativa o JavaScript no separador atual. Se o separador ou a caixa de ferramentas for fechado, então esta definição será esquecida.
+# The label for checkbox that toggles chrome debugging, i.e. the devtools.chrome.enabled preference
+options-enable-chrome-label = Ativar caixas de ferramentas de depuração do navegador e dos extras
+options-enable-chrome-tooltip =
+ .title = Ativar esta opção irá permitir que utilize várias ferramentas de programador no contexto do navegador (via Ferramentas > Ferramentas de programação > Caixa de ferramentas do navegador) e depurar extras a partir do Gestor de extras
+# The label for checkbox that toggles remote debugging, i.e. the devtools.debugger.remote-enabled preference
+options-enable-remote-label = Ativar depuração remota
+options-enable-remote-tooltip2 =
+ .title = Ao ativar esta opção irá permitir a depuração remota desta instância do navegador
+# The label for checkbox that enables F12 as a shortcut to open DevTools
+options-enable-f12-label = Utilize a tecla F12 para abrir ou fechar as DevTools
+options-enable-f12-tooltip =
+ .title = Ao ativar esta opção irá vincular a tecla F12 para abrir ou fechar a caixa de ferramentas de DevTools
+# The label for checkbox that toggles custom formatters for objects
+options-enable-custom-formatters-label = Ativar formatadores personalizados
+options-enable-custom-formatters-tooltip =
+ .title = Ativar esta opção permitirá que os sites definam formatadores personalizados para objetos DOM
+# The label for checkbox that toggles the service workers testing over HTTP on or off.
+options-enable-service-workers-http-label = Ativar Service Workers sobre HTTP (se a caixa de ferramentas estiver aberta)
+options-enable-service-workers-http-tooltip =
+ .title = Ligar esta opção irá ativar os service workers sob HTTP para todos os separadores que têm a caixa de ferramentas aberta.
+# The label for the checkbox that toggles source maps in all tools.
+options-source-maps-label = Ativar mapas de fonte
+options-source-maps-tooltip =
+ .title = Se ativar esta opção as fontes serão mapeadas nas ferramentas.
+# The message shown for settings that trigger page reload
+options-context-triggers-page-refresh = * Apenas sessão atual, recarrega a página
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/toolbox.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/toolbox.ftl
new file mode 100644
index 0000000000..97283d47db
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/toolbox.ftl
@@ -0,0 +1,55 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These messages are used in the DevTools toolbox.
+
+
+## These labels are shown in the "..." menu in the toolbox, and represent different
+## commands such as the docking of DevTools, toggling features, and viewing some
+## external links. Some of the commands have the keyboard shortcut shown next to
+## the label.
+
+toolbox-meatball-menu-dock-bottom-label = Afixar no fundo
+toolbox-meatball-menu-dock-left-label = Afixar à esquerda
+toolbox-meatball-menu-dock-right-label = Afixar à direita
+toolbox-meatball-menu-dock-separate-window-label = Separar janela
+
+toolbox-meatball-menu-splitconsole-label = Mostrar consola dividida
+toolbox-meatball-menu-hideconsole-label = Ocultar consola dividida
+
+toolbox-meatball-menu-settings-label = Definições
+toolbox-meatball-menu-documentation-label = Documentação…
+toolbox-meatball-menu-community-label = Comunidade…
+
+# This menu item is only available in the browser toolbox. It forces the popups/panels
+# to stay visible on blur, which is primarily useful for addon developers and Firefox
+# contributors.
+toolbox-meatball-menu-noautohide-label = Desativar ocultação automática de pop-ups
+
+toolbox-meatball-menu-pseudo-locale-accented = Ativar idioma “acentuado”
+toolbox-meatball-menu-pseudo-locale-bidi = Ativar idioma “bidi”
+
+##
+
+
+## These labels are shown in the top-toolbar in the Browser Toolbox and Browser Console
+
+toolbox-mode-browser-toolbox-label = Modo de caixa de ferramentas do navegador
+toolbox-mode-browser-console-label = Modo de consola do navegador
+
+toolbox-mode-everything-label = Multiprocesso
+toolbox-mode-everything-sub-label = (Mais lento)
+toolbox-mode-everything-container =
+ .title = Depurar tudo, em todos os processos
+
+toolbox-mode-parent-process-label = Apenas o processo pai
+toolbox-mode-parent-process-sub-label = (Rápido)
+toolbox-mode-parent-process-container =
+ .title = Focar-se apenas nos recursos do processo pai.
+
+toolbox-always-on-top-enabled2 = Desativar sempre no topo
+ .title = Isto irá reiniciar as Ferramentas de programação
+toolbox-always-on-top-disabled2 = Ativar sempre no topo
+ .title = Isto irá reiniciar as Ferramentas de programação
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/tooltips.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/tooltips.ftl
new file mode 100644
index 0000000000..56897ea036
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/client/tooltips.ftl
@@ -0,0 +1,94 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Localization for Developer Tools tooltips.
+
+learn-more = <span data-l10n-name="link">Saber mais</span>
+
+## In the Rule View when a CSS property cannot be successfully applied we display
+## an icon. When this icon is hovered this message is displayed to explain why
+## the property is not applied.
+## Variables:
+## $property (string) - A CSS property name e.g. "color".
+## $display (string) - A CSS display value e.g. "inline-block".
+
+inactive-css-not-grid-or-flex-container = <strong>{ $property }</strong> não tem efeito neste elemento porque não é um contentor flex ou contentor grid.
+inactive-css-not-grid-or-flex-container-or-multicol-container = <strong>{ $property }</strong> não tem efeito neste elemento pois este não é um contentor flex, contentor grid, ou um contentor multi-colunas.
+inactive-css-not-multicol-container = <strong>{ $property }</strong> não tem efeito neste elemento, pois não é um contentor de várias colunas.
+inactive-css-not-grid-or-flex-item = <strong>{ $property }</strong> não tem efeito neste elemento porque não é um um item grid ou flex.
+inactive-css-not-grid-item = <strong>{ $property }</strong> não tem efeito neste elemento porque não é um item grid.
+inactive-css-not-grid-container = <strong>{ $property }</strong> não tem efeito neste elemento porque não é um contentor grid.
+inactive-css-not-flex-item = <strong>{ $property }</strong> não tem efeito neste elemento porque não é um item flex.
+inactive-css-not-flex-container = <strong>{ $property }</strong> não tem efeito neste elemento porque não é um contentor flex.
+inactive-css-not-inline-or-tablecell = <strong>{ $property }</ strong> não tem efeito neste elemento pois não é um elemento inline ou table-cell.
+inactive-css-first-line-pseudo-element-not-supported = <strong>{ $property }</strong> não é suportado em pseudo-elementos ::first-line.
+inactive-css-first-letter-pseudo-element-not-supported = <strong>{ $property }</strong> não é suportado em pseudo-elementos ::first-letter.
+inactive-css-placeholder-pseudo-element-not-supported = <strong>{ $property }</strong> não é suportado em pseudo-elementos ::placeholder.
+inactive-css-property-because-of-display = <strong>{ $property }</strong> não tem efeito neste elemento pois este tem um display de <strong>{ $display }</strong>.
+inactive-css-not-display-block-on-floated = O valor de <strong>display</strong> foi alterado pelo motor para <strong>block</strong> porque o elemento é <strong>floated</strong>.
+inactive-css-property-is-impossible-to-override-in-visited = É impossível substituir <strong> { $property } </strong> devido à restrição <strong>:visited </strong>.
+inactive-css-position-property-on-unpositioned-box = <strong>{ $property }</strong> não tem efeito neste elemento porque não é um elemento posicional.
+inactive-text-overflow-when-no-overflow = <strong>{ $property }</strong> não tem qualquer efeito neste elemento dado que <strong>overflow:hidden</strong> não está definido.
+inactive-css-not-for-internal-table-elements = <strong>{ $property }</strong> não tem qualquer efeito em elementos de tabelas.
+inactive-css-not-for-internal-table-elements-except-table-cells = <strong>{ $property }</strong> não tem qualquer efeito em elementos internos de tabelas com excepção das células da tabela.
+inactive-css-not-table = <strong>{ $property }</strong> não tem efeito neste elemento porque não é uma tabela.
+inactive-css-not-table-cell = <strong>{ $property }</strong> não tem efeito neste elemento, pois não é uma célula de tabela.
+inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</strong> não tem efeito neste elemento porque o mesmo não desliza.
+inactive-css-border-image = <strong>{ $property }</strong> não afeta este elemento, pois a propriedade não pode ser aplicada a elementos de tabela interna em que <strong>border-collapse</strong> esteja definido como <strong>collapse</strong> no elemento da tabela pai.
+inactive-css-ruby-element = <strong>{ $property }</strong> não tem efeito sobre este elemento, pois é um elemento rubi. O seu tamanho é determinado pelo tamanho da fonte do texto rubi.
+inactive-css-highlight-pseudo-elements-not-supported = <strong>{ $property }</strong> não é compatível com pseudo-elementos de destaque.
+inactive-css-cue-pseudo-element-not-supported = <strong>{ $property }</strong> não é suportado em pseudo-elementos ::cue.
+# Variables:
+# $lineCount (integer) - The number of lines the element has.
+inactive-css-text-wrap-balance-lines-exceeded =
+ { $lineCount ->
+ [one] <strong>{ $property }</strong> não tem efeito neste elemento porque tem mais de { $lineCount } linha.
+ *[other] <strong>{ $property }</strong> não tem efeito neste elemento porque tem mais de { $lineCount } linhas.
+ }
+inactive-css-text-wrap-balance-fragmented = <strong>{ $property }</strong> não tem efeito neste elemento porque está fragmentado, ou seja, o seu conteúdo está dividido em várias colunas ou páginas.
+
+## In the Rule View when a CSS property cannot be successfully applied we display
+## an icon. When this icon is hovered this message is displayed to explain how
+## the problem can be solved.
+
+inactive-css-not-grid-or-flex-container-fix = Experimente adicionar <strong>display:grid</strong> ou <strong>display:flex</strong>. { learn-more }
+inactive-css-not-grid-or-flex-container-or-multicol-container-fix = Experimente adicionar <strong>display:grid</strong>, <strong>display:flex</strong>, ou <strong>columns:2</strong>. { learn-more }
+inactive-css-not-multicol-container-fix = Tente adicionar <strong>column-count</strong> ou <strong>column-width</strong>. { learn-more }
+inactive-css-not-grid-or-flex-item-fix-3 = Experimente adicionar <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong>, ou <strong>display:inline-flex</strong> ao elemento pai. { learn-more }
+inactive-css-not-grid-item-fix-2 = Experimente adicionar <strong>display:grid</strong> ou <strong>display:inline-grid</strong> ao pai do elemento. { learn-more }
+inactive-css-not-grid-container-fix = Experimente adicionar <strong>display:grid</strong> ou <strong>display:inline-grid</strong>. { learn-more }
+inactive-css-not-flex-item-fix-2 = Experimente adicionar <strong>display:flex</strong> ou <strong>display:inline-flex</strong> ao pai do elemento. { learn-more }
+inactive-css-not-flex-container-fix = Experimente adicionar <strong>display:flex</strong> ou <strong>display:inline-flex</strong>. { learn-more }
+inactive-css-not-inline-or-tablecell-fix = Experimente adicionar <strong>display:inline</ strong> ou <strong>display:table-cell</ strong>. { learn-more }
+inactive-css-non-replaced-inline-or-table-row-or-row-group-fix = Experimente adicionar <strong>display:inline-block</strong> ou <strong>display:block</strong>. { learn-more }
+inactive-css-non-replaced-inline-or-table-column-or-column-group-fix = Experimente adicionar <strong>display:inline-block</strong>. { learn-more }
+inactive-css-not-display-block-on-floated-fix = Tente remover o <strong>float</strong> ou adicione <strong>display: block</strong>. { learn-more }
+inactive-css-position-property-on-unpositioned-box-fix = Tente definir a sua propriedade <strong>position</strong> para algo diferente de <strong>static</strong>. { learn-more }
+inactive-text-overflow-when-no-overflow-fix = Experimente adicionar <strong>overflow:hidden</strong>. { learn-more }
+inactive-css-not-for-internal-table-elements-fix = Experimente definir a respetiva propriedade <strong>display</strong> para algo diferente de <strong>table-cell</strong>, <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong> ou <strong>table-footer-group</strong>. { learn-more }
+inactive-css-not-for-internal-table-elements-except-table-cells-fix = Experimente definir a respetiva propriedade <strong>display</strong> para algo diferente de <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong> ou <strong>table-footer-group</strong>. { learn-more }
+inactive-css-not-table-fix = Experimente adicionar <strong>display:table</strong> ou <strong>display:inline-table</strong>. { learn-more }
+inactive-css-not-table-cell-fix = Tente adicionar <strong>display:table-cell</strong>. { learn-more }
+inactive-scroll-padding-when-not-scroll-container-fix = Experimente adicionar <strong>overflow:auto</strong>, <strong>overflow:scroll</strong> ou <strong>overflow:hidden</strong>. { learn-more }
+inactive-css-border-image-fix = No elemento da tabela pai, remova a propriedade ou altere o valor de <strong>border-collapse</strong> para um valor diferente de <strong>collapse</strong>. { learn-more }
+inactive-css-ruby-element-fix = Tente alterar o <strong>font-size</strong> do texto rubi. { learn-more }
+inactive-css-text-wrap-balance-lines-exceeded-fix = Tente reduzir o número de linhas. { learn-more }
+inactive-css-text-wrap-balance-fragmented-fix = Evite dividir o conteúdo do elemento, por exemplo, removendo as colunas ou utilizando <strong>page-break-inside:avoid</strong>. { learn-more }
+
+## In the Rule View when a CSS property may have compatibility issues with other browsers
+## we display an icon. When this icon is hovered this message is displayed to explain why
+## the property is incompatible and the platforms it is incompatible on.
+## Variables:
+## $property (string) - A CSS declaration name e.g. "-moz-user-select" that can be a platform specific alias.
+## $rootProperty (string) - A raw CSS property name e.g. "user-select" that is not a platform specific alias.
+
+css-compatibility-default-message = <strong>{ $property }</strong> não é suportado nos seguintes navegadores:
+css-compatibility-deprecated-experimental-message = <strong>{ $property }</strong> foi uma propriedade experimental atualmente descontinuada nas normas do W3C. Não é suportada nos seguintes navegadores:
+css-compatibility-deprecated-experimental-supported-message = <strong>{ $property }</strong> foi uma propriedade experimental atualmente descontinuada nas normas do W3C.
+css-compatibility-deprecated-message = <strong>{ $property }</strong> atualmente está descontinuado nas normas do W3C. Não é suportada nos seguintes navegadores:
+css-compatibility-deprecated-supported-message = <strong>{ $property }</strong> atualmente está descontinuado nas normas do W3C.
+css-compatibility-experimental-message = <strong>{ $property }</strong> é uma propriedade experimental. Não é suportada nos seguintes navegadores:
+css-compatibility-experimental-supported-message = <strong>{ $property }</strong> é uma propriedade experimental.
+css-compatibility-learn-more-message = <span data-l10n-name="link">Saber mais</span> sobre <strong>{ $rootProperty }</strong>
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/shared/debugger-paused-reasons.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/shared/debugger-paused-reasons.ftl
new file mode 100644
index 0000000000..2247f1d2fa
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/shared/debugger-paused-reasons.ftl
@@ -0,0 +1,87 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the Debugger which is available from the Web
+### Developer sub-menu -> 'Debugger', as well as in the "Paused Debugger
+### Overlay" that is displayed in the content page when it pauses.
+
+
+### The correct localization of this file might be to keep it in
+### English, or another language commonly spoken among web developers.
+### You want to make that choice consistent across the developer tools.
+### A good criteria is the language in which you'd find the best
+### documentation on web development on the web.
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused due to a `debugger` statement in the code
+whypaused-debugger-statement = Pausado em instrução do depurador
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a breakpoint
+whypaused-breakpoint = Pausado em ponto de quebra
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an event breakpoint.
+whypaused-event-breakpoint = Pausado em ponto de quebra de evento
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an exception
+whypaused-exception = Pausado em exceção
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a DOM mutation breakpoint
+whypaused-mutation-breakpoint = Pausado em mutação DOM
+
+# The text that is displayed to describe an added node which triggers a subtree
+# modification
+whypaused-mutation-breakpoint-added = Adicionado:
+
+# The text that is displayed to describe a removed node which triggers a subtree
+# modification
+whypaused-mutation-breakpoint-removed = Removido:
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused at a JS execution
+whypaused-interrupted = Pausado na execução
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused while stepping in or out of the stack
+whypaused-resume-limit = Pausado enquanto passar
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a dom event
+whypaused-pause-on-dom-events = Pausado em escuta de eventos
+
+# The text that is displayed in an info block when evaluating a conditional
+# breakpoint throws an error
+whypaused-breakpoint-condition-thrown = Erro com ponto de quebra condicional
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an xml http request
+whypaused-xhr = Pausado no XMLHttpRequest
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a promise rejection
+whypaused-promise-rejection = Pausado em rejeição de promise
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused at a watchpoint on an object property
+whypaused-get-watchpoint = Pausado na obtenção de propriedade
+
+# The text that is displayed in an info block explaining how the debugger is
+# currently paused at a watchpoint on an object property
+whypaused-set-watchpoint = Pausado na definição de propriedade
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an assert
+whypaused-assert = Pausado em asserção
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a debugger statement
+whypaused-debug-command = Pausado em função depurada
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an event listener breakpoint set
+whypaused-other = Depurador pausado
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/shared/highlighters.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/shared/highlighters.ftl
new file mode 100644
index 0000000000..c99252bc6d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/shared/highlighters.ftl
@@ -0,0 +1,67 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### This file contains strings used in highlighters.
+### Highlighters are visualizations that DevTools draws on top of content to aid
+### in understanding content sizing, etc.
+
+# The row and column position of a grid cell shown in the grid cell infobar when hovering
+# over the CSS grid outline.
+# Variables
+# $row (integer) - The row index
+# $column (integer) - The column index
+grid-row-column-positions = Linha { $row } / Coluna { $column }
+
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is a grid container.
+gridtype-container = Contentor Grid
+
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is a grid item.
+gridtype-item = Item Grid
+
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is both a grid container and a grid item.
+gridtype-dual = Contentor/item Grid
+
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is a flex container.
+flextype-container = Contentor Flex
+
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is a flex item.
+flextype-item = Item Flex
+
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is both a flex container and a flex item.
+flextype-dual = Contentor/item Flex
+
+# The message displayed in the content page when the user clicks on the
+# "Pick an element from the page" in about:devtools-toolbox inspector panel, when
+# debugging a remote page.
+# Variables
+# $action (string) - Will either be remote-node-picker-notice-action-desktop or
+# remote-node-picker-notice-action-touch
+remote-node-picker-notice = Selecionador de nó do DevTools ativado. { $action }
+
+# Text displayed in `remote-node-picker-notice`, when the remote page is on desktop
+remote-node-picker-notice-action-desktop = Clique num elemento para selecionar o mesmo no Inspetor
+
+# Text displayed in `remote-node-picker-notice`, when the remote page is on Android
+remote-node-picker-notice-action-touch = Toque num elemento para selecionar o mesmo no Inspetor
+
+# The text displayed in the button that is in the notice in the content page when the user
+# clicks on the "Pick an element from the page" in about:devtools-toolbox inspector panel,
+# when debugging a remote page.
+remote-node-picker-notice-hide-button = Ocultar
+
+# The text displayed in a toolbox notification message which is only displayed
+# if prefers-reduced-motion is enabled (via OS-level settings or by using the
+# ui.prefersReducedMotion=1 preference).
+simple-highlighters-message = Quando a preferência por movimento reduzido está ativada, pode ser ativado um marcador mais simples no painel de definições, para evitar cores intermitentes.
+
+# Text displayed in a button inside the "simple-highlighters-message" toolbox
+# notification. "Settings" here refers to the DevTools settings panel.
+simple-highlighters-settings-button = Abrir Definições
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/shared/webconsole-commands.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/shared/webconsole-commands.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/devtools/startup/key-shortcuts.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/startup/key-shortcuts.ftl
new file mode 100644
index 0000000000..bbc2c7ca1e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/devtools/startup/key-shortcuts.ftl
@@ -0,0 +1,38 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Key pressed to open a toolbox with the default panel selected
+devtools-commandkey-toggle-toolbox = I
+# Alternative key pressed to open a toolbox with the default panel selected
+devtools-commandkey-toggle-toolbox-f12 = VK_F12
+# Key pressed to open the Browser Toolbox, used for debugging Firefox itself
+devtools-commandkey-browser-toolbox = I
+# Key pressed to open the Browser Console, used for debugging Firefox itself
+devtools-commandkey-browser-console = J
+# Key pressed to toggle on the Responsive Design Mode
+devtools-commandkey-responsive-design-mode = M
+# Key pressed to open a toolbox with the inspector panel selected
+devtools-commandkey-inspector = C
+# Key pressed to open a toolbox with the web console panel selected
+devtools-commandkey-webconsole = K
+# Key pressed to open a toolbox with the debugger panel selected
+devtools-commandkey-jsdebugger = Z
+# Key pressed to open a toolbox with the network monitor panel selected
+devtools-commandkey-netmonitor = E
+# Key pressed to open a toolbox with the style editor panel selected
+devtools-commandkey-styleeditor = VK_F7
+# Key pressed to open a toolbox with the performance panel selected
+devtools-commandkey-performance = VK_F5
+# Key pressed to open a toolbox with the storage panel selected
+devtools-commandkey-storage = VK_F9
+# Key pressed to open a toolbox with the DOM panel selected
+devtools-commandkey-dom = W
+# Key pressed to open a toolbox with the accessibility panel selected
+devtools-commandkey-accessibility-f12 = VK_F12
+# Key pressed to start or stop the performance profiler
+devtools-commandkey-profiler-start-stop = VK_1
+# Key pressed to capture a recorded performance profile
+devtools-commandkey-profiler-capture = VK_2
+# Key pressed to toggle the JavaScript tracing
+devtools-commandkey-javascript-tracing-toggle = VK_5
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/dom/XMLPrettyPrint.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/dom/XMLPrettyPrint.ftl
new file mode 100644
index 0000000000..1cb8a6e0e7
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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 = Este ficheiro XML não parece ter qualquer tipo de informação de estilo associada. A árvore do documento é mostrada em baixo.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/dom/media.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/dom/media.ftl
new file mode 100644
index 0000000000..f9b3d34dee
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/dom/media.ftl
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+default-audio-output-device-label = Dispositivo de saída de áudio predefinido
+mediastatus-fallback-title = O { -brand-short-name } está reproduzir media
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/locales-preview/aboutTranslations.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/locales-preview/aboutTranslations.ftl
new file mode 100644
index 0000000000..68e9d8aafd
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/messenger/about3Pane.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/about3Pane.ftl
new file mode 100644
index 0000000000..0e9ab154e8
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/about3Pane.ftl
@@ -0,0 +1,415 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Message List Header Bar
+
+quick-filter-button =
+ .title = Alternar barra de filtros rápidos
+quick-filter-button-label = Filtro rápido
+thread-pane-header-display-button =
+ .title = Mostrar opções de apresentação
+# Variables:
+# $count (Number) - The number of messages in this folder.
+thread-pane-folder-message-count =
+ { $count ->
+ [one] { $count } mensagem
+ *[other] { $count } mensagens
+ }
+# Variables:
+# $count (Number) - The number of messages currently selected.
+thread-pane-folder-selected-count =
+ { $count ->
+ [one] { $count } selecionada
+ *[other] { $count } selecionadas
+ }
+thread-pane-header-context-table-view =
+ .label = Vista de tabela
+thread-pane-header-context-cards-view =
+ .label = Vista de cartões
+thread-pane-header-context-hide =
+ .label = Ocultar cabeçalho da lista de mensagens
+
+## 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 = Manter aplicação de filtros ao trocar de pastas
+# The tooltip for the filter button that replaces the quick filter buttons with
+# a dropdown menu.
+quick-filter-bar-dropdown =
+ .title = Menu de filtros rápidos
+quick-filter-bar-dropdown-unread =
+ .label = Não lidas
+quick-filter-bar-dropdown-starred =
+ .label = Com estrela
+quick-filter-bar-dropdown-inaddrbook =
+ .label = Contacto
+quick-filter-bar-dropdown-tags =
+ .label = Etiquetas
+quick-filter-bar-dropdown-attachment =
+ .label = Anexo
+# The tooltip for the filter button that causes us to filter results to only
+# include unread messages.
+quick-filter-bar-unread =
+ .title = Mostrar apenas mensagens não lidas
+# The label for the filter button that causes us to filter results to only
+# include unread messages.
+quick-filter-bar-unread-label = Não lidas
+# 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 = Mostrar apenas as mensagens com estrela
+# 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 = Com estrela
+# 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 = Mostrar apenas mensagens dos contactos do meu livro de endereços.
+# 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 = Contacto
+# 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 = Mostrar apenas mensagens com etiqueta
+# 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 = Etiquetas
+# The tooltip for the filter button that causes us to filter results to only
+# include messages with attachments.
+quick-filter-bar-attachment =
+ .title = Mostrar apenas mensagens com anexos
+# The label for the filter button that causes us to filter results to only
+# include messages with attachments.
+quick-filter-bar-attachment-label = Anexo
+# 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 = Sem resultados
+# 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 } mensagem
+ *[other] { $count } mensagens
+ }
+# Keyboard shortcut for the text search box.
+# This should match quick-filter-bar-show in messenger.ftl.
+quick-filter-bar-textbox-shortcut =
+ { PLATFORM() ->
+ [macos] ⇧ ⌘ F
+ *[other] Ctrl+Shift+F
+ }
+# This is the empty text for the text search box.
+# The goal is to convey to the user that typing in the box will filter
+# the messages and that there is a hotkey they can press to get to the
+# box faster.
+quick-filter-bar-textbox =
+ .placeholder = Filtrar estas mensagens <{ quick-filter-bar-textbox-shortcut }>
+quick-filter-bar-search =
+ .label = Filtrar mensagens:
+# Keyboard shortcut for the text search box.
+# This should match quick-filter-bar-show in messenger.ftl.
+quick-filter-bar-search-shortcut =
+ { PLATFORM() ->
+ [macos] <kbd>⇧</kbd> <kbd>⌘</kbd> <kbd>K</kbd>
+ *[other] <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>K</kbd>
+ }
+# This is the empty text for the text search box.
+# The goal is to convey to the user that typing in the box will filter the
+# messages and that there is a hotkey they can press to get to the box faster.
+quick-filter-bar-search-placeholder-with-key = Filtrar mensagens…{ quick-filter-bar-search-shortcut }
+# Label of the search button in the quick filter bar text box. Clicking it will
+# launch a global search.
+quick-filter-bar-search-button =
+ .alt = Pesquisar em qualquer lugar
+# Tooltip of the Any-of/All-of tagging mode selector.
+quick-filter-bar-boolean-mode =
+ .title = Modo de filtragem de etiquetas
+# The Any-of tagging mode.
+quick-filter-bar-boolean-mode-any =
+ .label = Qualquer
+ .title = Pelo menos um dos critérios de etiquetas selecionados deve ser coincidente
+# The All-of tagging mode.
+quick-filter-bar-boolean-mode-all =
+ .label = Todos
+ .title = Todos os critérios de etiquetas selecionados devem ser coincidentes
+# This label explains what the sender/recipients/subject/body buttons do.
+# This string should ideally be kept short because the label and the text
+# filter buttons share their bar (that appears when there is text in the text
+# filter box) with the list of tags when the tag filter is active, and the
+# tag sub-bar wants as much space as possible. (Overflow is handled by an
+# arrow scroll box.)
+quick-filter-bar-text-filter-explanation = Filtrar mensagens por:
+# The button label that toggles whether the text filter searches the message
+# sender for the string.
+quick-filter-bar-text-filter-sender = Remetente
+# The button label that toggles whether the text filter searches the message
+# recipients (to, cc) for the string.
+quick-filter-bar-text-filter-recipients = Destinatários
+# The button label that toggles whether the text filter searches the message
+# subject for the string.
+quick-filter-bar-text-filter-subject = Assunto
+# The button label that toggles whether the text filter searches the message
+# body for the string.
+quick-filter-bar-text-filter-body = Corpo
+# 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 = Continuar esta pesquisa por todas as pastas
+# 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 = Pressione novamente ‘Enter’ para continuar a sua pesquisa por: { $text }
+
+## Folder pane
+
+folder-pane-get-messages-button =
+ .title = Obter mensagens
+folder-pane-get-all-messages-menuitem =
+ .label = Obter todas as novas mensagens
+ .accesskey = g
+folder-pane-write-message-button = Nova mensagem
+ .title = Componha uma nova mensagem
+folder-pane-more-menu-button =
+ .title = Opções do painel de pastas
+# Context menu item to show/hide different folder types in the folder pane
+folder-pane-header-folder-modes =
+ .label = Modos de pastas
+# Context menu item to toggle display of "Get messages" button in folder pane header
+folder-pane-header-context-toggle-get-messages =
+ .label = Mostrar “Obter mensagens”
+# Context menu item to toggle display of "New Message" button in folder pane header
+folder-pane-header-context-toggle-new-message =
+ .label = Mostrar “Nova mensagem”
+folder-pane-header-context-hide =
+ .label = Ocultar cabeçalho do painel de pastas
+folder-pane-show-total-toggle =
+ .label = Mostrar o número total de mensagens
+# Context menu item to show or hide folder sizes
+folder-pane-header-toggle-folder-size =
+ .label = Mostrar tamanho da pasta
+folder-pane-header-hide-local-folders =
+ .label = Ocultar pastas locais
+folder-pane-mode-context-button =
+ .title = Opções do modo de pastas
+folder-pane-mode-context-toggle-compact-mode =
+ .label = Visão compactada
+ .accesskey = c
+folder-pane-mode-move-up =
+ .label = Mover para cima
+folder-pane-mode-move-down =
+ .label = Mover para baixo
+# Variables:
+# $count (Number) - Number of unread messages.
+folder-pane-unread-aria-label =
+ { $count ->
+ [one] 1 mensagem por ler
+ *[other] { $count } mensagens por ler
+ }
+# Variables:
+# $count (Number) - Number of total messages.
+folder-pane-total-aria-label =
+ { $count ->
+ [one] 1 mensagem
+ *[other] { $count } mensagens
+ }
+
+## Message thread pane
+
+threadpane-column-header-select =
+ .title = Alternar selecionar todas as mensagens
+threadpane-column-header-select-all =
+ .title = Selecionar todas as mensagens
+threadpane-column-header-deselect-all =
+ .title = Desselecionar todas as mensagens
+threadpane-column-label-select =
+ .label = Selecionar mensagens
+threadpane-cell-select =
+ .aria-label = Selecionar mensagem
+threadpane-column-header-thread =
+ .title = Alternar tópicos de mensagens
+threadpane-column-label-thread =
+ .label = Tópico
+threadpane-column-header-flagged =
+ .title = Ordenar por estrela
+threadpane-column-label-flagged =
+ .label = Com estrela
+threadpane-flagged-cell-label = Com estrela
+threadpane-column-header-attachments =
+ .title = Ordenar por anexos
+threadpane-column-label-attachments =
+ .label = Anexos
+threadpane-cell-attachments =
+ .aria-label = Anexos
+threadpane-attachments-cell-label = Anexos
+threadpane-column-header-spam =
+ .title = Ordenar por estado do lixo eletrónico
+threadpane-column-label-spam =
+ .label = Spam
+threadpane-cell-spam =
+ .aria-label = Estado do lixo eletrónico
+threadpane-spam-cell-label = Spam
+threadpane-column-header-unread-button =
+ .title = Ordenar pelo estado de leitura
+threadpane-column-label-unread-button =
+ .label = Estado de leitura
+threadpane-cell-read-status =
+ .aria-label = Estado de leitura
+threadpane-read-cell-label = Lidas
+threadpane-unread-cell-label = Não lidas
+threadpane-column-header-sender = De
+ .title = Ordenar por remetente
+threadpane-column-label-sender =
+ .label = De
+threadpane-cell-sender =
+ .aria-label = De
+threadpane-column-header-recipient = Destinatário
+ .title = Ordenar por destinatário
+threadpane-column-label-recipient =
+ .label = Destinatário
+threadpane-cell-recipient =
+ .aria-label = Destinatário
+threadpane-column-header-correspondents = Correspondentes
+ .title = Ordenar por correspondentes
+threadpane-column-label-correspondents =
+ .label = Correspondentes
+threadpane-cell-correspondents =
+ .aria-label = Correspondentes
+threadpane-column-header-subject = Assunto
+ .title = Ordenar por assunto
+threadpane-column-label-subject =
+ .label = Assunto
+threadpane-cell-subject =
+ .aria-label = Assunto
+threadpane-column-header-date = Data
+ .title = Ordenar por data
+threadpane-column-label-date =
+ .label = Data
+threadpane-cell-date =
+ .aria-label = Data
+threadpane-column-header-received = Recebido
+ .title = Ordenar por data de receção
+threadpane-column-label-received =
+ .label = Recebido
+threadpane-cell-received =
+ .aria-label = Data receção
+threadpane-column-header-status = Estado
+ .title = Ordenar por estado
+threadpane-column-label-status =
+ .label = Estado
+threadpane-cell-status =
+ .aria-label = Estado
+threadpane-column-header-size = Tamanho
+ .title = Ordenar por tamanho
+threadpane-column-label-size =
+ .label = Tamanho
+threadpane-cell-size =
+ .aria-label = Tamanho
+threadpane-column-header-tags = Etiqueta
+ .title = Ordenar por etiquetas
+threadpane-column-label-tags =
+ .label = Etiqueta
+threadpane-cell-tags =
+ .aria-label = Etiquetas
+threadpane-column-header-account = Conta
+ .title = Ordenar por conta
+threadpane-column-label-account =
+ .label = Conta
+threadpane-cell-account =
+ .aria-label = Conta
+threadpane-column-header-priority = Prioridade
+ .title = Ordenar por prioridade
+threadpane-column-label-priority =
+ .label = Prioridade
+threadpane-cell-priority =
+ .aria-label = Prioridade
+threadpane-column-header-unread = Não lido
+ .title = Número de mensagens não lidas no tópico
+threadpane-column-label-unread =
+ .label = Não lido
+threadpane-cell-unread =
+ .aria-label = Número de mensagens não lidas
+threadpane-column-header-total = Total
+ .title = Número total de mensagens no tópico
+threadpane-column-label-total =
+ .label = Total
+threadpane-cell-total =
+ .aria-label = Número total de mensagens
+threadpane-column-header-location = Localização
+ .title = Ordenar por localização
+threadpane-column-label-location =
+ .label = Localização
+threadpane-cell-location =
+ .aria-label = Localização
+threadpane-column-header-id = Ordem de receção
+ .title = Ordenar por ordem de receção
+threadpane-column-label-id =
+ .label = Ordem de receção
+threadpane-column-header-delete =
+ .title = Eliminar uma mensagem
+threadpane-column-label-delete =
+ .label = Eliminar
+threadpane-cell-delete =
+ .aria-label = Eliminar
+
+## Message state variations
+
+threadpane-message-new =
+ .alt = Indicador de nova mensagem
+ .title = Nova mensagem
+threadpane-message-replied =
+ .alt = Indicador de mensagem respondida
+ .title = Mensagem respondida
+threadpane-message-redirected =
+ .alt = Indicador de mensagem redirecionada
+ .title = Mensagem redirecionada
+threadpane-message-forwarded =
+ .alt = Indicador de mensagem encaminhada
+ .title = Mensagem encaminhada
+threadpane-message-replied-forwarded =
+ .alt = Indicador de mensagem respondida e encaminhada
+ .title = Mensagem respondida e encaminhada
+threadpane-message-replied-redirected =
+ .alt = Indicador de mensagem respondida e redirecionada
+ .title = Mensagem respondida e redirecionada
+threadpane-message-forwarded-redirected =
+ .alt = Indicador de mensagem encaminhada e redirecionada
+ .title = Mensagem encaminhada e redirecionada
+threadpane-message-replied-forwarded-redirected =
+ .alt = Indicador de mensagem respondida, encaminhada e redirecionada
+ .title = Mensagem respondida, encaminhada e redirecionada
+apply-columns-to-menu =
+ .label = Aplicar colunas a...
+apply-current-view-to-menu =
+ .label = Aplicar a vista atual a…
+apply-current-view-to-folder =
+ .label = Pasta...
+apply-current-view-to-folder-children =
+ .label = Pasta e os seus filhos...
+
+## Apply columns confirmation dialog
+
+apply-changes-to-folder-title = Aplicar alterações?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-columns-to-folder-message = Aplicar colunas da pasta atual a { $name }?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-columns-to-folder-with-children-message = Aplicar as colunas atuais da pasta a { $name } e seus filhos?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-view-to-folder-message = Aplicar a vista da pasta atual a { $name }?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-view-to-folder-with-children-message = Aplicar a vista da pasta atual a { $name } e respetivas sub-pastas?
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000..1e5013eca7
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+add-on-options-button =
+ .title = Opções de extras
+
+add-on-search-alternative-button-label = Procurar por um extra alternativo
+
+atn-addons-heading-search-input =
+ .placeholder = Pesquisar addons.thunderbird.net
+
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutDialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutDialog.ftl
new file mode 100644
index 0000000000..20e2534587
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutDialog.ftl
@@ -0,0 +1,48 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-update-whats-new = Novidades
+about-dialog-title = Sobre o { -brand-full-name }
+release-notes-link = Notas de lançamento
+update-internal-error = Não foi possível procurar por atualizações devido a um erro interno. As atualizações estão disponíveis em <a data-l10n-name="manual-link"/>
+update-check-for-updates-button = Procurar atualizações
+ .accesskey = c
+update-update-button = Reiniciar para atualizar o { -brand-shorter-name }
+ .accesskey = R
+update-checking-for-updates = A procurar atualizações…
+update-downloading-message = A transferir atualização — <span data-l10n-name="download-status"></span>
+update-applying = A aplicar atualização…
+update-downloading = <img data-l10n-name="icon"/>A transferir atualização — <span data-l10n-name="download-status"></hspan>
+update-failed = A atualização falhou. <a data-l10n-name="failed-link">Transfira a versão mais recente</a>
+update-admin-disabled = Atualizações desativadas pelo seu administrador de sistema
+update-no-updates-found = O { -brand-short-name } está atualizado
+update-other-instance-handling-updates = O { -brand-short-name } está a ser atualizado por outra operação
+update-manual = Atualizações disponíveis em <a data-l10n-name="manual-link"/>
+update-unsupported = Não pode realizar mais atualizações neste sistema. <a data-l10n-name="unsupported-link">Saber mais</a>
+update-restarting = A reiniciar…
+# Variables:
+# $channel (String): description of the update channel (e.g. "release", "beta", "nightly" etc.)
+channel-description = Atualmente, está no <span data-l10n-name="current-channel">{ $channel }</span> canal de atualizações.
+warning-desc-version = O { -brand-short-name } é experimental e pode ser instável.
+warning-desc-telemetry = Este envia automaticamente informação acerca do desempenho, hardware, utilização e personalizações para a { -vendor-short-name }, para ajudar a tornar o { -brand-short-name } melhor.
+# Example of resulting string: 66.0.1 (64-bit)
+# Variables:
+# $version (String): version of Thunderbird, e.g. 66.0.1
+# $bits (Number): bits of the architecture (32 or 64)
+aboutDialog-version = { $version } ({ $bits }-bit)
+# Example of resulting string: 66.0a1 (2019-01-16) (64-bit)
+# Variables:
+# $version (String): version of Thunderbird for Daily builds, e.g. 66.0a1
+# $isodate (String): date in ISO format, e.g. 2019-01-16
+# $bits (Number): bits of the architecture (32 or 64)
+aboutDialog-version-nightly = { $version } ({ $isodate }) ({ $bits }-bit)
+aboutdialog-update-checking-failed = Falha ao verificar se há atualizações.
+community-experimental = <a data-l10n-name="community-exp-mozilla-link">{ -vendor-short-name }</a> é uma <a data-l10n-name="community-exp-credits-link">comunidade global</a> que trabalha em conjunto para manter a Web aberta, pública e acessível para todos.
+community-desc = O { -brand-short-name } é desenhado pela <a data-l10n-name="community-mozilla-link">{ -vendor-short-name }</a>, uma <a data-l10n-name="community-credits-link">comunidade global</a> que trabalha em conjunto para manter a Web aberta, pública e acessível para todos.
+about-donation = Pretende ajudar? <a data-l10n-name="helpus-donate-link">Efetue um donativo</a> or <a data-l10n-name="helpus-get-involved-link">envolva-se!</a>
+bottom-links-license = Informação da licença
+bottom-links-rights = Direitos do utilizador final
+bottom-links-privacy = Política de privacidade
+cmd-close-mac-command-key =
+ .key = w
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutImport.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutImport.ftl
new file mode 100644
index 0000000000..9b30c34995
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutImport.ftl
@@ -0,0 +1,179 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+import-page-title = Importar
+export-page-title = Exportar
+
+## Header
+
+import-start = Ferramenta de importação
+import-start-title = Importe definições ou dados de uma aplicação ou ficheiro.
+import-start-description = Selecione a fonte a partir da qual quer importar. Mais tarde será pedido que escolha que dados precisam de ser importados.
+import-from-app = Importar de aplicação
+import-file = Importar de um ficheiro
+import-file-title = Selecione um ficheiro para importar o seu conteúdo.
+import-file-description = Escolha para importar de uma cópia anterior de um perfil, livros de endereços ou calendários.
+import-address-book-title = Importar ficheiro de Livro de Endereços
+import-calendar-title = Importar ficheiro de Calendário
+export-profile = Exportar
+
+## Buttons
+
+button-back = Retroceder
+button-continue = Continuar
+button-export = Exportar
+button-finish = Concluir
+
+## Import from app steps
+
+app-name-thunderbird = Thunderbird
+app-name-seamonkey = SeaMonkey
+app-name-outlook = Outlook
+app-name-becky = Becky! Internet Mail
+app-name-apple-mail = Correio Apple
+source-thunderbird = Importar de outra instalação do { app-name-thunderbird }
+source-thunderbird-description = Importar configurações, filtros, mensagens, e outros dados de um perfil do { app-name-thunderbird }
+source-seamonkey = Importar de uma instalação do { app-name-seamonkey }
+source-seamonkey-description = Importar definições, filtros, mensagens e outros dados de um perfil do { app-name-seamonkey }.
+source-outlook = Importar do { app-name-outlook }
+source-outlook-description = Importar contas, livros de endereço e mensagens do { app-name-outlook }.
+source-becky = Importar do { app-name-becky }
+source-becky-description = Importar livros de endereços e mensagens do { app-name-becky }.
+source-apple-mail = Importar do { app-name-apple-mail }
+source-apple-mail-description = Importe mensagens do { app-name-apple-mail }.
+source-file2 = Importar de um ficheiro
+source-file-description = Selecionar um ficheiro para importar livros de endereços, calendários ou uma cópia de segurança de perfil (ficheiro ZIP).
+
+## Import from file selections
+
+file-profile2 = Importar perfil guardado
+file-profile-description = Selecione um perfil do Thunderbird anteriormente guardado (.zip)
+file-calendar = Importar calendários
+file-calendar-description = Selecione um ficheiro contendo eventos ou calendários exportados (.ics)
+file-addressbook = Importar livros de endereços
+file-addressbook-description = Selecione um ficheiro contendo livros de endereços e contactos exportados
+
+## Import from app profile steps
+
+from-app-thunderbird = Importar de um perfil do { app-name-thunderbird }
+from-app-seamonkey = Importar de um perfil do { app-name-seamonkey }
+from-app-outlook = Importar do { app-name-outlook }
+from-app-becky = Importar do { app-name-becky }
+from-app-apple-mail = Importar do { app-name-apple-mail }
+profiles-pane-title-thunderbird = Importar configurações e dados de um perfil do { app-name-thunderbird }.
+profiles-pane-title-seamonkey = Importar configurações e dados de um perfil do { app-name-seamonkey }.
+profiles-pane-title-outlook = Importar dados do { app-name-outlook }
+profiles-pane-title-becky = Importar dados do { app-name-becky }.
+profiles-pane-title-apple-mail = Importar mensagens do { app-name-apple-mail }.
+profile-source = Importar do perfil
+# $profileName (string) - name of the profile
+profile-source-named = Importar do perfil <strong>"{ $profileName }"</strong>
+profile-file-picker-directory = Escolher uma pasta de perfil
+profile-file-picker-archive = Escolha um ficheiro <strong>ZIP</strong>
+profile-file-picker-archive-description = O ficheiro ZIP deve ser menor que 2 GB.
+profile-file-picker-archive-title = Escolha um ficheiro ZIP (menor que 2 GB)
+items-pane-title2 = Escolha o que importar:
+items-pane-directory = Diretório:
+items-pane-profile-name = Nome do perfil:
+items-pane-checkbox-accounts = Contas e definições
+items-pane-checkbox-address-books = Livros de endereços
+items-pane-checkbox-calendars = Calendários
+items-pane-checkbox-mail-messages = Mensagens eletrónicas
+items-pane-override = Quaisquer dados existentes ou idênticos não serão substituídos.
+
+## Import from address book file steps
+
+import-from-addr-book-file-description = Escolha o formato de ficheiro que contém os dados do livro de contactos.
+addr-book-csv-file = Ficheiro separado por vírgulas ou tabulações (.csv, .tsv)
+addr-book-ldif-file = Ficheiro LDIF (.ldif)
+addr-book-vcard-file = Ficheiro vCard (.vcf, .vcard)
+addr-book-sqlite-file = Ficheiro de base de dados SQLite (.sqlite)
+addr-book-mab-file = Ficheiro de base de dados Mork (.mab)
+addr-book-file-picker = Selecione um ficheiro de livro de endereços
+addr-book-csv-field-map-title = Corresponder nomes dos campos
+addr-book-csv-field-map-desc = Selecione os campos do livro de endereços que correspondem aos campos da fonte. Desmarque os que não quiser importar.
+addr-book-directories-title = Selecione para onde importar os dados selecionados
+addr-book-directories-pane-source = Ficheiro fonte:
+# $addressBookName (string) - name of the new address book that would be created.
+addr-book-import-into-new-directory2 = Crie uma nova diretoria denominada por <strong>"{ $addressBookName }"</strong>
+# $addressBookName (string) - name of the address book to import into
+addr-book-summary-title = Importe os dados escolhidos para a diretoria "{ $addressBookName }"
+# $addressBookName (string) - name of the address book that will be created.
+addr-book-summary-description = Será criado um novo livro de endereços denominado por "{ $addressBookName }".
+
+## Import from calendar file steps
+
+import-from-calendar-file-desc = Selecione o ficheiro iCalendar (.ics) que gostaria de importar.
+calendar-items-title = Selecione os itens a importar.
+calendar-items-loading = A carregar itens…
+calendar-items-filter-input =
+ .placeholder = A filtrar itens…
+calendar-select-all-items = Selecionar tudo
+calendar-deselect-all-items = Desselecionar tudo
+calendar-target-title = Selecione para onde importar os itens escolhidos.
+# $targetCalendar (string) - name of the new calendar that would be created
+calendar-import-into-new-calendar2 = Crie um novo calendário denominado por <strong>"{ $targetCalendar }"</strong>
+# $itemCount (number) - count of selected items (tasks, events) that will be imported
+# $targetCalendar (string) - name of the calendar the items will be imported into
+calendar-summary-title =
+ { $itemCount ->
+ [one] Importar um item para o calendário "{ $targetCalendar }"
+ *[other] Importar { $itemCount } para o calendário "{ $targetCalendar }"
+ }
+# $targetCalendar (string) - name of the calendar that will be created
+calendar-summary-description = Será criado um novo calendário denominado "{ $targetCalendar }".
+
+## Import dialog
+
+# $progressPercent (string) - percent formatted progress (for example "10%")
+progress-pane-importing2 = A importar... { $progressPercent }
+# $progressPercent (string) - percent formatted progress (for example "10%")
+progress-pane-exporting2 = A exportar... { $progressPercent }
+progress-pane-finished-desc2 = Concluída.
+error-pane-title = Erro
+error-message-zip-file-too-big2 = O ficheiro ZIP selecionado tem mais de 2GB. Comece por extrair o mesmo e depois importe a partir da pasta extraída.
+error-message-extract-zip-file-failed2 = A extração do ficheiro ZIP falhou. Comece por extrair o mesmo e depois importe da pasta extraída.
+error-message-failed = A importação falhou inesperadamente. Podem estar disponíveis mais informações na Consola de Erros
+error-failed-to-parse-ics-file = Não foram encontrados itens que possam ser importados.
+error-export-failed = A exportação falhou inesperadamente. Podem estar disponíveis mais informações na Consola de Erros
+error-message-no-profile = Nenhum perfil encontrado.
+
+## <csv-field-map> element
+
+csv-first-row-contains-headers = A primeira linha contém nomes de campos
+csv-source-field = Campo fonte
+csv-source-first-record = Primeiro registo
+csv-source-second-record = Segundo registo
+csv-target-field = Campo do livro de endereços
+
+## Export tab
+
+export-profile-title = Exporte contas, mensagens, catálogos de endereços, e definições para um ficheiro ZIP.
+export-profile-description = O perfil atual é maior que 2GB. Sugerimos que faça um backup manual.
+export-open-profile-folder = Abrir pasta de perfil
+export-file-picker2 = Exportar para um ficheiro ZIP
+export-brand-name = { -brand-product-name }
+
+## Summary pane
+
+summary-pane-title = Dados a serem importados
+summary-pane-start = Iniciar importação
+summary-pane-warning = { -brand-product-name } terá de ser reiniciado quando a importação for concluída.
+summary-pane-start-over = Reiniciar ferramenta de importação
+
+## Footer area
+
+footer-help = Precisa de ajuda?
+footer-import-documentation = Importar documentação
+footer-export-documentation = Exportar documentação
+footer-support-forum = Fórum de apoio
+
+## Step navigation on top of the wizard pages
+
+step-list =
+ .aria-label = Passos de importação
+step-confirm = Confirmar
+# Variables:
+# $number (number) - step number
+step-count = { $number }
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutProfilesExtra.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutProfilesExtra.ftl
new file mode 100644
index 0000000000..a00db1502c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutProfilesExtra.ftl
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+profiles-launch-profile-plain = Iniciar perfil
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutRights.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutRights.ftl
new file mode 100644
index 0000000000..7761981353
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/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 = Acerca dos seus direitos
+rights-intro = O { -brand-full-name } é um software livre e de código aberto, construído por uma comunidade de milhares de pessoas por todo o mundo. Existem algumas coisas que deve saber:
+rights-intro-point-1 = O { -brand-short-name } é disponibilizado nos termos da <a data-l10n-name="mozilla-public-license-link">Mozilla Public License</a>. Isto significa que pode utilizar, copiar e distribuir o { -brand-short-name } para outras pessoas. Também pode modificar o código fonte do { -brand-short-name } conforme as suas necessidades. A Mozilla Public License também lhe dá o direito de distribuir as suas versões modificadas.
+rights-intro-point-2 =
+ Não lhe são concedidos quaisquer direitos de marcas registadas ou licenças das marcas registadas da
+ Fundação Mozilla ou qualquer outra parte incluindo, sem limitações, o nome ou logótipo do Thunderbird.
+ Pode encontrar informação adicional sobre as marcas registadas <a data-l10n-name="mozilla-trademarks-link">aqui</a>.
+rights-intro-point-3 = Algumas funcionalidades no { -brand-short-name }, tais como o relator de falhas, dão-lhe a opção de fornecer feedback à { -vendor-short-name }. Ao escolher enviar o feedback, autoriza o { -vendor-short-name } a utilizar o feedback para melhorar os seus produtos, para publicar o feedback nos seus sites e a distribuir o feedback.
+rights-intro-point-4 = Como é que usamos a sua informação pessoal e feedback enviados para a { -vendor-short-name } através do { -brand-short-name } é descrito na <a data-l10n-name="mozilla-privacy-policy-link">Política de privacidade do { -brand-short-name }</a>.
+rights-intro-point-4-unbranded = Quaisquer políticas de privacidade aplicáveis a este produto devem ser colocadas aqui.
+rights-intro-point-5 = Algumas das funcionalidades do { -brand-short-name } fazem uso de serviços de informação baseados na web, no entanto, não podemos garantir que são 100% eficazes ou livres de erros. Mais detalhes, incluindo informação sobre como desativar as funcionalidades que utilizam estes serviços, podem ser encontrados nos <a data-l10n-name="mozilla-service-terms-link">termos do serviço</a>.
+rights-intro-point-5-unbranded = Se este produto incorporar serviços web, quaisquer termos aplicáveis ao serviço devem ser direcionados para <a data-l10n-name="mozilla-website-services-link">a secção de</a> secção.
+rights-intro-point-6 = Para poder reproduzir certos tipos de conteúdo de vídeo, o { -brand-short-name } transfere certos módulos de desencriptação de conteúdo de terceiros.
+rights-webservices-header = Serviços de informação baseados na Web do { -brand-full-name }
+rights-webservices2 = O { -brand-full-name } utiliza serviços de informação baseados na Internet ("Serviços") para disponibilizar algumas das funcionalidades fornecidas para sua utilização, com esta versão binária do { -brand-short-name } de acordo com os termos descritos abaixo. Se não pretende utilizar um mais serviços ou os termos abaixo são inaceitáveis, pode desativar a funcionalidade ou serviço(s). As instruções sobre como desativar uma funcionalidade ou serviço específico podem ser encontradas <a data-l10n-name="mozilla-disable-service-link">aqui</a>. Pode desativar mais funcionalidades ou serviços nas preferências da aplicação.
+rights-locationawarebrowsing = <strong>Navegação com conhecimento da localização: </strong>é sempre de indicação explícita. Não serão enviadas quaisquer informações de localização sem a sua permissão. Se quiser desativar completamente a funcionalidade, siga estes passos:
+rights-locationawarebrowsing-term-1 = Na barra de URL, escreva <code>about:config</code>
+rights-locationawarebrowsing-term-2 = Escreva geo.enabled
+rights-locationawarebrowsing-term-3 = Duplo clique na preferência geo.enabled
+rights-locationawarebrowsing-term-4 = A navegação com conhecimento da localização está agora desativada
+rights-webservices-unbranded =
+ Uma visão dos serviços de sites que o produto incorpora,
+ assim como instruções sobre como os desativar, se necessário, devem ser
+ colocados aqui.
+rights-webservices-term-unbranded = Quaisquer termos de serviço devem ser listados aqui.
+rights-webservices-term-1 = A { -vendor-short-name } os seus colaboradores, licenciadores e parceiros trabalham para fornecer os serviços mais precisos e atualizados. No entanto, não podemos garantir que esta informação é abrangente e isenta de erros. Por exemplo o serviço de navegação segura, por engano, poderá não identificar alguns sites perigosos e pode identificar alguns sites seguros. No serviço de localização, todas as localizações devolvidas pelos nossos fornecedores do serviço são apenas estimativas e nem nós, nem os nossos fornecedores do serviço, garantimos a exatidão das localizações fornecidas.
+rights-webservices-term-2 = A { -vendor-short-name } pode descontinuar ou alterar os serviços a qualquer momento.
+rights-webservices-term-3 = Está à vontade para utilizar estes Serviços que acompanham a sua versão do { -brand-short-name }, e a { -vendor-short-name } concede-lhe os direitos necessários para o fazer. A { -vendor-short-name } e os seus licenciantes reservam todos os outros direitos nos Serviços. Estes termos não têm a intenção de limitar quaisquer direitos sobre as licenças de código aberto aplicáveis ao { -brand-short-name } e às correspondentes versões do código fonte do { -brand-short-name }.
+rights-webservices-term-4 = <strong>Os serviços são disponibilizados "as-is." A { -vendor-short-name }, os seus contribuidores, licenciantes e distribuidores renunciam a todas as garantias, sejam elas explícitas ou implícitas, incluindo sem limites, garantias que o serviço é comercial e serve para os seus objetivos pessoais. Você é responsável por selecionar os serviços para os seus propósitos, assim como a qualidade e o desempenho dos serviços. Algumas jurisdições não permitem a exclusão ou a limitação de garantias implícitas, como tal este aviso poderá não ser adequado para si.</strong>
+rights-webservices-term-5 = <strong>Exceto quando obrigatório por lei, a { -vendor-short-name }, os seus contribuidores, licenciantes e distribuidores não poderão ser responsabilizados por qualquer dano indireto, especial, acidental, consequente, punitivo, exemplares ou danos diretos decorrentes da utilização do { -brand-short-name } e os seus serviços. A responsabilidade coletiva sob estes termos, não poderá exceder $500 (quinhentos dólares). Algumas jurisdições não permitem a exclusão ou a limitação de alguns danos e, como tal, esta exclusão e limitação poderá não ser aplicável a si.</strong>
+rights-webservices-term-6 = A { -vendor-short-name } poderá atualizar os termos conforme necessário de tempos a tempos. Estes termos não poderão ser alterados ou cancelados sem o acordo escrito da { -vendor-short-name }.
+rights-webservices-term-7 = Estes termos são regidos pelas leis do estado da Califórnia, E.U.A., excluindo conflitos de provisão de leis. Se algum destes termos for identificado como inválido ou sem valor jurídico, as restantes porções manterão a sua força e efeito. No evento de um conflito entre uma versão traduzida destes termos e a versão em Inglês, a versão em Inglês é a que prevalece.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000..ef2302163d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendars-title = Definições de calendários
+calendars-table-heading-property = Nome
+calendars-table-heading-value = Valor
+calendars-table-name = Nome
+calendars-table-type = Tipo
+calendars-table-disabled = Desativado
+calendars-table-username = Nome de utilizador
+calendars-table-uri = URI
+calendars-table-refreshinterval = Intervalo de atualização
+calendars-table-readonly = Apenas de leitura
+calendars-table-suppressalarms = Suprimir alarmes
+calendars-table-cache-enabled = Cache ativada
+calendars-table-imip-identity = Identidade iMIP
+calendars-table-imip-identity-disabled = iMIP desativado
+calendars-table-imip-identity-account = Conta iMIP
+calendars-table-organizerid = Id. do organizador
+calendars-table-forceemailscheduling = Forçar agendamento de e-mail
+calendars-table-capabilities-alarms-popup-supported = Suportados alarmes de Pop-up
+calendars-table-capabilities-alarms-oninviations-supported = Suportados alarmes no convite
+calendars-table-capabilities-alarms-maxcount = Alarmes máximos por evento
+calendars-table-capabilities-attachments-supported = Suportados anexos
+calendars-table-capabilities-categories-maxcount = Número máximo de categorias
+calendars-table-capabilities-privacy-supported = Estado de privacidade suportado
+calendars-table-capabilities-priority-supported = Prioridade suportada
+calendars-table-capabilities-events-supported = Suportados eventos
+calendars-table-capabilities-tasks-supported = Suportadas tarefas
+calendars-table-capabilities-timezones-floating-supported = Suportada hora local
+calendars-table-capabilities-timezones-utc-supported = Suportado UTC/GMT
+calendars-table-capabilities-autoschedule-supported = Agendamento automático suportado
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutSupportChat.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutSupportChat.ftl
new file mode 100644
index 0000000000..c2cb254a17
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutSupportChat.ftl
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+chat-title = Contas de chat
+chat-table-heading-account = ID
+chat-table-heading-protocol = Protocolo
+chat-table-heading-name = Nome
+chat-table-heading-actions = Ações
+chat-table-copy-debug-log = Copiar registo de depuração
+ .title = Copie erros e outros registos desta conta de chat para a área de transferência. Pode conter informações pessoais, como mensagens de chat.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutSupportMail.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutSupportMail.ftl
new file mode 100644
index 0000000000..94485da5d0
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/aboutSupportMail.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/.
+
+accounts-title = Contas de correio e notícias
+show-private-data-main-text = Incluir nomes de contas
+show-private-data-explanation-text = (pode incluir informações de identificação)
+accounts-ID = ID
+accounts-name = Nome
+accounts-incoming-server = Servidor de receção
+accounts-outgoing-servers = Servidores de envio
+accounts-server-name = Nome
+accounts-conn-security = Segurança da ligação
+accounts-auth-method = Método de autenticação
+accounts-default = Predefinição?
+identity-name = Identidade
+send-via-email = Enviar via email
+app-basics-telemetry = Dados de telemetria
+app-basics-cache-use = Uso da Cache
+mail-libs-title = Bibliotecas
+libs-table-heading-library = Biblioteca
+libs-table-heading-expected-version = Versão mínima esperada
+libs-table-heading-loaded-version = Versão em utilização
+libs-table-heading-path = Endereço
+libs-table-heading-status = Estado
+libs-rnp-status-ok = OK
+libs-rnp-status-load-failed = Falha ao carregar. O OpenPGP não funcionará.
+libs-rnp-status-incompatible = Versão incompatível. O OpenPGP não funcionará.
+libs-rnp-status-unofficial = Versão não oficial. O OpenPGP pode não funcionar como esperado.
+libs-otr-status-ok = Ok
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountCentral.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountCentral.ftl
new file mode 100644
index 0000000000..95bdc81dfd
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountCentral.ftl
@@ -0,0 +1,65 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+account-central-title = Bem-vindo ao { -brand-full-name }
+account-settings = Definições da conta
+
+# $accounts (Number) - the number of configured accounts
+setup-title = Escolha o que configurar
+about-title = Sobre o { -brand-full-name }
+resources-title = Recursos
+
+release-notes =
+ .title = Sobre o { -brand-full-name }
+
+email-label = E-mail
+ .aria-label = Ligar à sua conta de e-mail existente
+email-description = O { -brand-short-name } deixa que se ligue à sua conta de e-mail existente, para ler as suas mensagens de uma forma conveniente e eficiente dentro da aplicação.
+
+calendar-label = Calendário
+ .aria-label = Crie um novo calendário
+calendar-description = O { -brand-short-name } permite que faça a gestão dos seus eventos e que se mantenha organizado. Ao ligar-se a um calendário remoto irá manter todos os seus eventos sincronizados em todos os seus dispositivos.
+
+chat-label = Conversar
+ .aria-label = Ligue-se à sua conta de conversação
+chat-description = O { -brand-short-name } permite que se ligue a várias contas de conversação síncrona, oferendo suporte para várias plataformas.
+
+filelink-label = Ligação a ficheiros
+ .aria-label = Configure a ligação a ficheiros
+filelink-description = O { -brand-short-name } permite que configure, de forma conveniente, uma conta de ligação a ficheiros na nuvem para enviar anexos grandes com facilidade.
+
+addressbook-label = Livro de endereços
+ .aria-label = Crie um novo livro de endereços
+addressbook-description = O { -brand-short-name } permite-lhe organizar todos os seus contactos num livro de endereços. Também pode ligar-se a um livro de endereços remoto para manter todos os seus contactos sincronizados.
+
+feeds-label = Fontes
+ .aria-label = Ligue-se às fontes
+feeds-description = O { -brand-short-name } permite que se possa ligar às fontes de RSS/Atom para obter notícias e atualizações de todo o lado.
+
+newsgroups-label = Grupos de notícias
+ .aria-label = Ligue-se a um grupo de notícias
+newsgroups-description = O { -brand-short-name } permite que se ligue a todos os grupos de notícias que desejar.
+
+import-title = Importar de outro programa
+import-paragraph2 = O { -brand-short-name } permite importar mensagens de correio, entradas do livro de endereços, subscrições em fontes, preferências e/ou filtros de outros programas de correio e tipos comuns de livros de endereços.
+
+import-label = Importar
+ .aria-label = Importe dados de outros programas
+
+about-paragraph = O Thunderbird é a solução de código aberto líder para cliente de e-mail e calendário multi-plataforma, gratuita para utilização empresarial e pessoal. Queremos que se mantenha em segurança e que continue a melhorar ainda mais. Um donativo irá permitir-nos contratar programadores, pagar a infraestrutura e continuar a melhorar.
+
+about-paragraph-consider-donation = <b>O Thunderbird é financiado por utilizadores como você! Se gosta do Thunderbird, considere fazer um donativo.</b> A melhor forma para si de garantir que o Thunderbird se mantém disponível é <a data-l10n-name="donation-link">fazer um donativo.</a>
+
+explore-link = Explorar as funcionalidades
+support-link = Apoio
+involved-link = Participar
+developer-link = Documentação do programador
+
+read = Ler mensagens
+compose = Escrever uma nova mensagem
+search = Pesquisar mensagens
+filter = Gerir filtros de mensagens
+nntp-subscription = Gerir subscrições de grupos de notícias
+rss-subscription = Gerir subscrições de fontes
+e2e = Criptografia de ponto a ponto
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountManager.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountManager.ftl
new file mode 100644
index 0000000000..25426d1301
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountManager.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/.
+
+open-preferences-sidebar-button2 = Definições do { -brand-short-name }
+open-addons-sidebar-button = Extras e temas
+account-action-add-newsgroup-account =
+ .label = Adicionar uma conta de grupo de notícias…
+ .accesskey = n
+server-change-restart-required = É necessário reiniciar para aplicar as alterações ao nome do servidor ou do utilizador.
+edit-vcard-dialog-accept-button = Guardar
+ .accesskey = G
+edit-vcard-dialog-cancel-button = Cancelar
+ .accesskey = C
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountProvisioner.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountProvisioner.ftl
new file mode 100644
index 0000000000..2b988aa329
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountProvisioner.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/.
+
+account-provisioner-tab-title = Obter um novo endereço de e-mail de um fornecedor de serviços
+provisioner-searching-icon =
+ .alt = A pesquisar…
+account-provisioner-title = Criar um novo endereço de email
+account-provisioner-description = Utilize os nossos parceiros confiáveis para obter um novo endereço de e-mail privado e seguro.
+account-provisioner-start-help = Os termos de pesquisa usados são enviados para { -vendor-short-name } (<a data-l10n-name="mozilla-privacy-link">Política de Privacidade</a>) e fornecedores de e-mail de terceiros <strong>mailfence.com </strong> (<a data-l10n-name="mailfence-privacy-link">Política de Privacidade</a>, <a data-l10n-name="mailfence-tou-link">Termos de Utilização</a >) e <strong>gandi.net</strong> (<a data-l10n-name="gandi-privacy-link">Política de Privacidade</a>, <a data-l10n-name="gandi-tou- link">Termos de Utilização</a>) para encontrar os endereços de e-mail disponíveis.
+account-provisioner-mail-account-title = Comprar um novo endereço de e-mail
+account-provisioner-mail-account-description = O Thunderbird fez uma parceria com <a data-l10n-name="mailfence-home-link">Mailfence</a> para lhe oferecer um novo e-mail privado e seguro. Nós acreditamos que todos devem ter um e-mail seguro.
+account-provisioner-domain-title = Compre um e-mail e domínio próprios
+account-provisioner-domain-description = O Thunderbird fez uma parceria com <a data-l10n-name="gandi-home-link">Gandi</a> para lhe oferecer um domínio personalizado. Isto permite que utilize qualquer endereço nesse domínio.
+
+## Forms
+
+account-provisioner-mail-input =
+ .placeholder = O seu nome, pseudónimo ou outro termo de pesquisa
+account-provisioner-domain-input =
+ .placeholder = O seu nome, pseudónimo ou outro termo de pesquisa
+account-provisioner-search-button = Pesquisar
+account-provisioner-button-cancel = Cancelar
+account-provisioner-button-existing = Usar uma conta de e-mail existente
+account-provisioner-button-back = Retroceder
+
+## Notifications
+
+account-provisioner-fetching-provisioners = A obter fornecedores…
+account-provisioner-connection-issues = Não foi possível contactar o nosso servidor de autenticação. Por favor, verifique a sua ligação.
+account-provisioner-searching-email = A procurar contas de e-mail disponíveis…
+account-provisioner-searching-domain = A procurar domínios disponíveis…
+account-provisioner-searching-error = Não foi possível encontrar nenhum endereço para sugerir. Tente alterar os termos de pesquisa.
+
+## Illustrations
+
+account-provisioner-step1-image =
+ .title = Escolha qual conta criar
+
+## Search results
+
+# Variables:
+# $count (Number) - The number of domains found during search.
+account-provisioner-results-title =
+ { $count ->
+ [one] Um endereço disponível encontrado para:
+ *[other] { $count } endereços disponíveis encontrados para:
+ }
+account-provisioner-mail-results-caption = Pode tentar pesquisar por pseudónimos ou outros termos para encontrar mais endereços.
+account-provisioner-domain-results-caption = Pode tentar pesquisar por pseudónimos ou outros termos para encontrar mais domínios.
+account-provisioner-free-account = Gratuito
+# Variables:
+# $price (String) - Yearly fee for the mail account. For example "US $9.99".
+account-provision-price-per-year = { $price } por ano
+account-provisioner-all-results-button = Mostrar todos os resultados
+account-provisioner-open-in-tab-img =
+ .title = Abre num novo separador
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountcreation/accountHub.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountcreation/accountHub.ftl
new file mode 100644
index 0000000000..4b60080b80
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountcreation/accountHub.ftl
@@ -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/.
+
+
+### Account Hub
+### Account hub is where user can setup new accounts in Thunderbird.
+
+
+## Header
+
+account-hub-brand = { -brand-full-name }
+account-hub-welcome-line = Bem-vindo ao <span data-l10n-name="brand-name">{ -brand-full-name }</span>
+account-hub-title = Centro da conta
+
+## Footer
+
+account-hub-release-notes = Notas de lançamento
+account-hub-support = Apoio
+account-hub-donate = Fazer donativo
+
+## Initial setup page
+
+account-hub-email-setup-button = Conta de correio eletrónico
+ .title = Configurar uma conta de correio eletrónico
+account-hub-calendar-setup-button = Calendário
+ .title = Configurar um calendário local ou remoto
+account-hub-address-book-setup-button = Livro de endereços
+ .title = Configurar um livro de endereços local ou remoto
+account-hub-chat-setup-button = Mensagens instantâneas
+ .title = Configurar uma conta de mensagens instantâneas
+account-hub-feed-setup-button = Feed RSS
+ .title = Configurar uma conta de feed RSS
+account-hub-newsgroup-setup-button = Grupo de notícias
+ .title = Configurar um novo grupo de notícias
+account-hub-import-setup-button = Importar
+ .title = Importar um perfil guardado
+# Note: "Sync" represents the Firefox Sync product so it shouldn't be translated.
+account-hub-sync-button = Iniciar sessão para sincronizar…
+
+## Email page
+
+account-hub-email-title = Configurar a sua conta de e-mail
+account-hub-add-email-title = Adicionar a sua conta
+account-hub-manually-configure-email-title = Definir configuração da conta
+account-hub-email-cancel-button = Cancelar
+account-hub-email-stop-button = Parar
+account-hub-email-back-button = Retroceder
+account-hub-email-finish-button = Concluir
+account-hub-email-manually-configure-button = Configurar manualmente
+account-hub-email-continue-button = Continuar
+account-hub-email-confirm-button = Confirmar
+account-hub-incoming-server-legend = Servidor de receção
+account-hub-outgoing-server-legend = Servidor de envio
+account-hub-protocol-label = Protocolo
+account-hub-hostname-label = Nome de anfitrião
+account-hub-port-label = Porta
+ .title = Defina o número da porta; 0 para deteção automática
+account-hub-ssl-label = Segurança da ligação
+
+## Incoming/Outgoing SSL Authentication options
+
+account-hub-ssl-autodetect-option =
+ .label = Detetar automaticamente
+account-hub-ssl-no-authentication-option =
+ .label = Sem autenticação
+account-hub-ssl-cleartext-password-option =
+ .label = Palavra-passe normal
+account-hub-ssl-encrypted-password-option =
+ .label = Palavra-passe encriptada
+
+## Incoming/Outgoing SSL options
+
+account-hub-ssl-noencryption-option =
+ .label = Nenhuma
+account-hub-auth-label = Método de autenticação
+account-hub-username-label = Nome de utilizador
+account-hub-adding-account-title = Adicionar conta
+account-hub-account-added-title = Conta adicionada
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000..b1dedddb4b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,292 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+account-setup-tab-title = Configuração da conta
+
+## Header
+
+account-setup-title = Configurar o seu endereço de correio eletrónico existente
+account-setup-description = Para utilizar o seu endereço de correio eletrónico, preencha as suas credenciais.
+account-setup-secondary-description = O { -brand-product-name } irá procurar automaticamente por uma configuração de servidor recomendada e funcional.
+account-setup-success-title = Conta criada com sucesso
+account-setup-success-description = Agora pode utilizar esta conta com o { -brand-short-name }.
+account-setup-success-secondary-description = Pode melhorar a experiência interligando os serviços relacionados e configurando as definições avançadas de conta.
+
+## Form fields
+
+account-setup-name-label = O seu nome completo
+ .accesskey = n
+# Note: "John Doe" is a multiple-use name that is used when the true name of a person is unknown. We use this fake name as an input placeholder. Translators should update this to reflect the placeholder name of their language/country.
+account-setup-name-input =
+ .placeholder = Nome desconhecido
+account-setup-name-info-icon =
+ .title = O seu nome, como será apresentado para outros
+account-setup-name-warning-icon =
+ .title = Por favor, insira o seu nome
+account-setup-email-label = Endereço de correio eletrónico
+ .accesskey = E
+account-setup-email-input =
+ .placeholder = nome.desconhecido@example.com
+account-setup-email-info-icon =
+ .title = O seu endereço de correio eletrónico existente
+account-setup-email-warning-icon =
+ .title = Endereço de correio eletrónico inválido
+account-setup-password-label = Palavra-passe
+ .accesskey = P
+ .title = Opcional, só será utilizada para validar o nome de utilizador
+account-provisioner-button = Obter um novo endereço de correio eletrónico
+ .accesskey = O
+account-setup-password-toggle-show =
+ .title = Mostrar palavra-passe em texto simples
+account-setup-password-toggle-hide =
+ .title = Ocultar palavra-passe
+account-setup-remember-password = Memorizar palavra-passe
+ .accesskey = m
+account-setup-exchange-label = As suas credenciais
+ .accesskey = c
+# YOURDOMAIN refers to the Windows domain in ActiveDirectory. yourusername refers to the user's account name in Windows.
+account-setup-exchange-input =
+ .placeholder = OSEUDOMINIO\oseunomedeutilizador
+# Domain refers to the Windows domain in ActiveDirectory. We mean the user's login in Windows at the local corporate network.
+account-setup-exchange-info-icon =
+ .title = Credenciais do domínio
+
+## Action buttons
+
+account-setup-button-cancel = Cancelar
+ .accesskey = a
+account-setup-button-manual-config = Configurar manualmente
+ .accesskey = m
+account-setup-button-stop = Parar
+ .accesskey = P
+account-setup-button-retest = Testar novamente
+ .accesskey = t
+account-setup-button-continue = Continuar
+ .accesskey = C
+account-setup-button-done = Feito
+ .accesskey = F
+
+## Notifications
+
+account-setup-looking-up-settings = A procurar configuração…
+account-setup-looking-up-settings-guess = A procurar uma configuração: a experimentar nomes de servidores frequentes…
+account-setup-looking-up-settings-half-manual = A procurar uma configuração: a analisar o servidor...
+account-setup-looking-up-disk = A localizar configuração: instalação do { -brand-short-name }...
+account-setup-looking-up-isp = A localizar configuração: fornecedor de e-mail
+# Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
+account-setup-looking-up-db = A localizar configuração: base de dados de ISP da Mozilla
+account-setup-looking-up-mx = A localizar configuração: domínio de correio a receber...
+account-setup-looking-up-exchange = A localizar configuração: servidor Exchange…
+account-setup-checking-password = A verificar a palavra-passe…
+account-setup-installing-addon = A transferir e a instalar o extra…
+account-setup-success-half-manual = Foram encontradas as seguintes definições ao sondar o servidor indicado:
+account-setup-success-guess = Configuração encontrada ao tentar os nomes comuns de servidor
+account-setup-success-guess-offline = Está no modo desligado. Foram inseridas algumas definições mas terá de especificar as definições corretas.
+account-setup-success-password = Palavra-passe OK
+account-setup-success-addon = Extra instalado com sucesso
+# Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
+account-setup-success-settings-db = Configuração encontrada na base de dados de ISP da Mozilla.
+account-setup-success-settings-disk = Configuração encontrada na instalação do { -brand-short-name }.
+account-setup-success-settings-isp = Configuração encontrada no fornecedor de correio eletrónico.
+# Note: Microsoft Exchange is a product name.
+account-setup-success-settings-exchange = Configuração encontrada para um servidor do Microsoft Exchange
+
+## Illustrations
+
+account-setup-step1-image =
+ .title = Configuração inicial
+account-setup-step2-image =
+ .title = A carregar…
+account-setup-step3-image =
+ .title = Configuração encontrada
+account-setup-step4-image =
+ .title = Erro de ligação
+account-setup-step5-image =
+ .title = Criada conta
+account-setup-privacy-footnote2 = As suas credenciais serão armazenadas apenas no seu computador.
+account-setup-selection-help = Não sabe o que selecionar?
+account-setup-selection-error = Precisa de ajuda?
+account-setup-success-help = Não tem a certeza sobre os seus próximos passos?
+account-setup-documentation-help = Documentação de configuração
+account-setup-forum-help = Fórum de apoio
+account-setup-privacy-help = Política de privacidade
+account-setup-getting-started = Começar
+
+## Results area
+
+# Variables:
+# $count (Number) - Number of available protocols.
+account-setup-results-area-title =
+ { $count ->
+ [one] Configuração disponível
+ *[other] Configurações disponíveis
+ }
+account-setup-result-imap-description = Mantenha as suas pastas e as mensagens sincronizadas no seu servidor
+account-setup-result-pop-description = Mantenha as suas pastas e as mensagens no seu computador
+# Note: Exchange, Office365 are the name of products.
+account-setup-result-exchange2-description = Utilize o servidor do Microsoft Exchange ou os serviços da nuvem do Office365
+account-setup-incoming-title = A receber
+account-setup-outgoing-title = A enviar
+account-setup-username-title = Nome de utilizador
+account-setup-exchange-title = Servidor
+account-setup-result-no-encryption = Sem encriptação
+account-setup-result-ssl = SSL/TLS
+account-setup-result-starttls = STARTTLS
+account-setup-result-outgoing-existing = Utilizar o servidor de SMTP de envio existente
+# Variables:
+# $incoming (String): The email/username used to log into the incoming server
+# $outgoing (String): The email/username used to log into the outgoing server
+account-setup-result-username-different = A receber: { $incoming }, A enviar: { $outgoing }
+
+## Error messages
+
+# Note: The reference to "janedoe" (Jane Doe) is the name of an example person. You will want to translate it to whatever example persons would be named in your language. In the example, AD is the name of the Windows domain, and this should usually not be translated.
+account-setup-credentials-incomplete = A autenticação falhou. As credenciais inseridas estão incorretas ou é necessário um nome de utilizador separado para iniciar a sessão. Este nome de utilizador é geralmente a credencial do domínio do Windows com ou sem o domínio (por exemplo, janedoe ou AD\\janedoe)
+account-setup-credentials-wrong = A autenticação falhou. Por favor, verifique o nome de utilizador e palavra-passe
+account-setup-find-settings-failed = O { -brand-short-name } não conseguiu localizar as definições da sua conta.
+account-setup-exchange-config-unverifiable = Não foi possível verificar a configuração. Se o seu nome de utilizador e palavra-passe estiverem corretos, é provável que o administrador do servidor tenha desativado a configuração selecionada para a sua conta. Tente selecionar outro protocolo.
+account-setup-provisioner-error = Ocorreu um erro ao configurar a sua nova conta em { -brand-short-name }. Por favor, tente configurar manualmente a sua conta com as suas credenciais.
+
+## Manual configuration area
+
+account-setup-manual-config-title = Configuração manual
+account-setup-incoming-server-legend = Servidor de receção
+account-setup-protocol-label = Protocolo:
+account-setup-hostname-label = Nome do servidor:
+account-setup-port-label = Porta:
+ .title = Defina o número da porta para 0 para deteção automática
+account-setup-auto-description = O { -brand-short-name } tentará detetar automaticamente os campos deixados em branco.
+account-setup-ssl-label = Segurança da ligação:
+account-setup-outgoing-server-legend = Servidor de envio
+
+## Incoming/Outgoing SSL Authentication options
+
+ssl-autodetect-option = Deteção automática
+ssl-no-authentication-option = Sem autenticação
+ssl-cleartext-password-option = Palavra-passe normal
+ssl-encrypted-password-option = Palavra-passe encriptada
+
+## Incoming/Outgoing SSL options
+
+ssl-noencryption-option = Nenhuma
+account-setup-auth-label = Método de autenticação
+account-setup-username-label = Nome de utilizador:
+account-setup-advanced-setup-button = Configuração avançada
+ .accesskey = a
+
+## Warning insecure server dialog
+
+account-setup-insecure-title = Aviso!
+account-setup-insecure-incoming-title = Definições de receção:
+account-setup-insecure-outgoing-title = Definições de envio:
+# Variables:
+# $server (String): The name of the hostname of the server the user was trying to connect to.
+account-setup-warning-cleartext = <b>{ $server }</b> não utiliza encriptação.
+account-setup-warning-cleartext-details = Os servidores de correio inseguros não utilizam ligações encriptadas para proteger as suas palavras-passe ou informações privadas. Ao estabelecer ligação a este servidor pode expor a sua palavra-passe e as informações privadas.
+account-setup-insecure-server-checkbox = Eu compreendo os riscos
+ .accesskey = u
+account-setup-insecure-description = O { -brand-short-name } pode permitir que receba o seu correio com as configurações indicadas. No entanto, deve contactar o administrador ou fornecedor de correio eletrónico sobre estas ligações incorretas. Para mais informações, consulte as <a data-l10n-name="thunderbird-faq-link">FAQ do Thunderbird</a>.
+insecure-dialog-cancel-button = Alterar definições
+ .accesskey = d
+insecure-dialog-confirm-button = Confirmar
+ .accesskey = C
+
+## Warning Exchange confirmation dialog
+
+# Variables:
+# $domain (String): The name of the server where the configuration was found, e.g. rackspace.com.
+exchange-dialog-question = O { -brand-short-name } encontrou as informações de configuração da sua conta em { $domain }. Deseja continuar e enviar as suas credenciais?
+exchange-dialog-confirm-button = Iniciar sessão
+exchange-dialog-cancel-button = Cancelar
+
+## Dismiss account creation dialog
+
+exit-dialog-title = Nenhuma conta de correio eletrónico configurada
+exit-dialog-description = Tem a certeza que deseja cancelar o processo de configuração? O { -brand-short-name } poderá ser usado sem uma conta de e-mail, mas muitos recursos não estarão disponíveis.
+account-setup-no-account-checkbox = Utilizar o { -brand-short-name } sem uma conta de correio eletrónico
+ .accesskey = { "" }
+exit-dialog-cancel-button = Continuar configuração
+ .accesskey = C
+exit-dialog-confirm-button = Sair da configuração
+ .accesskey = f
+
+## Alert dialogs
+
+account-setup-creation-error-title = Erro ao criar a conta
+account-setup-error-server-exists = O servidor de receção já existe.
+account-setup-confirm-advanced-title = Confirmar configuração avançada
+account-setup-confirm-advanced-description = Esta janela será fechada e será criada uma conta com as definições atuais, mesmo que a configuração esteja incorreta. Pretende continuar?
+
+## Addon installation section
+
+account-setup-addon-install-title = Instalar
+account-setup-addon-install-intro = Um extra de terceiros pode permitir-lhe aceder à sua conta de correio eletrónico neste servidor:
+account-setup-addon-no-protocol = Este servidor de correio eletrónico infelizmente não suporta os protocolos abertos. { account-setup-addon-install-intro }
+
+## Success view
+
+account-setup-settings-button = Definições da conta
+account-setup-encryption-button = Encriptação ponto a ponto
+account-setup-signature-button = Adicionar uma assinatura
+account-setup-dictionaries-button = Transferir dicionários
+account-setup-address-book-carddav-button = Conectar-se a um livro de endereços CardDAV
+account-setup-address-book-ldap-button = Associar a um livro de endereços LDAP
+account-setup-calendar-button = Associar a um calendário remoto
+account-setup-linked-services-title = Associar os seus serviços associados
+account-setup-linked-services-description = O { -brand-short-name } detetou outros serviços associados à sua conta de e-mail.
+account-setup-no-linked-description = Configure outros serviços para aproveitar ao máximo a sua experiência com o { -brand-short-name }.
+# Variables:
+# $count (Number) - The number of address books found during autoconfig.
+account-setup-found-address-books-description =
+ { $count ->
+ [one] O { -brand-short-name } encontrou um livro de endereços associado à sua conta de e-mail.
+ *[other] O { -brand-short-name } encontrou { $count } livros de endereços associados à sua conta de e-mail.
+ }
+# Variables:
+# $count (Number) - The number of calendars found during autoconfig.
+account-setup-found-calendars-description =
+ { $count ->
+ [one] O { -brand-short-name } encontrou um calendário associado à sua conta de e-mail.
+ *[other] O { -brand-short-name } encontrou { $count } calendários associados à sua conta de e-mail.
+ }
+account-setup-button-finish = Terminar
+ .accesskey = T
+account-setup-looking-up-address-books = A procurar livros de endereços…
+account-setup-looking-up-calendars = A procurar calendários…
+account-setup-address-books-button = Livros de endereços
+account-setup-calendars-button = Calendários
+account-setup-connect-link = Ligar
+account-setup-existing-address-book = Ligado
+ .title = O livro de endereços já está ligado
+account-setup-existing-calendar = Ligado
+ .title = O calendário já está ligado
+account-setup-connect-all-calendars = Ligar todos os calendários
+account-setup-connect-all-address-books = Ligar todos os livros de endereços
+
+## Calendar synchronization dialog
+
+calendar-dialog-title = Ligar calendário
+calendar-dialog-cancel-button = Cancelar
+ .accesskey = C
+calendar-dialog-confirm-button = Ligar
+ .accesskey = L
+account-setup-calendar-name-label = Nome
+account-setup-calendar-name-input =
+ .placeholder = O meu calendário
+account-setup-calendar-color-label = Cor
+account-setup-calendar-refresh-label = Atualizar
+account-setup-calendar-refresh-manual = Manualmente
+# Variables:
+# $count (Number) - Number of minutes in the calendar refresh interval.
+account-setup-calendar-refresh-interval =
+ { $count ->
+ [one] Todos os minutos
+ *[other] A cada { $count } minutos
+ }
+account-setup-calendar-read-only = Apenas de leitura
+ .accesskey = r
+account-setup-calendar-show-reminders = Mostrar lembretes
+ .accesskey = s
+account-setup-calendar-offline-support = Suporte offline
+ .accesskey = o
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addonNotifications.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addonNotifications.ftl
new file mode 100644
index 0000000000..1a19f7481a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addonNotifications.ftl
@@ -0,0 +1,122 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+xpinstall-prompt = O { -brand-short-name } impediu este site de lhe perguntar para instalar software no seu computador.
+
+## Variables:
+## $host (String): The hostname of the site the add-on is being installed from.
+
+xpinstall-prompt-header = Permitir que { $host } instale um extra?
+xpinstall-prompt-message = Está a tentar instalar um extra a partir de { $host }. Certifique-se de que confia neste site antes de continuar.
+
+##
+
+xpinstall-prompt-header-unknown = Permitir que um site desconhecido instale um extra?
+xpinstall-prompt-message-unknown = Está a tentar instalar um extra a partir de um site desconhecido. Certifique-se de que confia neste site antes de continuar.
+xpinstall-prompt-dont-allow =
+ .label = Não permitir
+ .accesskey = N
+xpinstall-prompt-never-allow =
+ .label = Nunca permitir
+ .accesskey = N
+# Long text in this context make the dropdown menu extend awkwardly to the left,
+# avoid a localization that's significantly longer than the English version.
+xpinstall-prompt-never-allow-and-report =
+ .label = Denunciar Site Suspeito
+ .accesskey = u
+# Accessibility Note:
+# Be sure you do not choose an accesskey that is used elsewhere in the active context (e.g. main menu bar, submenu of the warning popup button)
+# See https://website-archive.mozilla.org/www.mozilla.org/access/access/keyboard/ for details
+xpinstall-prompt-install =
+ .label = Continuar para a instalação
+ .accesskey = C
+
+# These messages are shown when a website invokes navigator.requestMIDIAccess.
+
+site-permission-install-first-prompt-midi-header = Este site está a solicitar acesso aos seus dispositivos MIDI (Musical Instrument Digital Interface). O acesso aos dispositivos pode ser ativado instalando um complemento.
+site-permission-install-first-prompt-midi-message = Não existem garantias que este acesso seja seguro. Continue apenas se confiar neste site.
+
+##
+
+xpinstall-disabled-locked = A instalação de software foi desativada pelo seu administrador de sistema.
+xpinstall-disabled = A instalação de software está atualmente desativada. Clique Ativar e tente novamente.
+xpinstall-disabled-button =
+ .label = Ativar
+ .accesskey = t
+# This message is shown when the installation of an add-on is blocked by enterprise policy.
+# Variables:
+# $addonName (String): the name of the add-on.
+# $addonId (String): the ID of add-on.
+addon-install-blocked-by-policy = { $addonName } ({ $addonId }) está bloqueado pelo seu administrador de sistema.
+# This message is shown when the installation of add-ons from a domain is blocked by enterprise policy.
+addon-domain-blocked-by-policy = O seu administrador de sistema impediu este site de solicitar autorização para instalar software no seu computador.
+addon-install-full-screen-blocked = A instalação de extras não é permitida enquanto estiver ou antes de entrar no modo de ecrã completo.
+# Variables:
+# $addonName (String): the localized name of the sideloaded add-on.
+webext-perms-sideload-menu-item = { $addonName } adicionado ao { -brand-short-name }
+# Variables:
+# $addonName (String): the localized name of the extension which has been updated.
+webext-perms-update-menu-item = { $addonName } requer novas permissões
+
+## Add-on removal warning
+
+# Variables:
+# $name (String): The name of the add-on that will be removed.
+addon-removal-title = Remover { $name }?
+# Variables:
+# $name (String): the name of the extension which is about to be removed.
+addon-removal-message = Remover { $name } do { -brand-shorter-name }?
+addon-removal-button = Remover
+addon-removal-abuse-report-checkbox = Reportar esta extensão à { -vendor-short-name }
+# Variables:
+# $addonCount (Number): the number of add-ons being downloaded
+addon-downloading-and-verifying =
+ { $addonCount ->
+ [one] A transferir e a verificar extra…
+ *[other] A transferir e a verificar { $addonCount } extras…
+ }
+addon-download-verifying = A verificar
+addon-install-cancel-button =
+ .label = Cancelar
+ .accesskey = C
+addon-install-accept-button =
+ .label = Adicionar
+ .accesskey = A
+
+## Variables:
+## $addonCount (Number): the number of add-ons being installed
+
+addon-confirm-install-message =
+ { $addonCount ->
+ [one] Este site gostaria de instalar um extra no { -brand-short-name }:
+ *[other] Este site gostaria de instalar { $addonCount } extras no { -brand-short-name }:
+ }
+addon-confirm-install-unsigned-message =
+ { $addonCount ->
+ [one] Cuidado: este site gostaria de instalar um extra não verificado no { -brand-short-name }. Proceda por sua conta e risco .
+ *[other] Cuidado: este site gostaria de instalar { $addonCount } extras não verificados no { -brand-short-name }. Proceda por sua conta e risco.
+ }
+# Variables:
+# $addonCount (Number): the number of add-ons being installed (at least 2)
+addon-confirm-install-some-unsigned-message = Cuidado: este site gostaria de instalar { $addonCount } extras no { -brand-short-name }, alguns dos quais não verificados. Proceda por sua conta e risco.
+
+## Add-on install errors
+## Variables:
+## $addonName (String): the add-on name.
+
+addon-install-error-network-failure = O extra não pôde ser transferido porque a ligação falhou.
+addon-install-error-incorrect-hash = O extra não pôde ser instalado porque não corresponde ao extra { -brand-short-name } esperado.
+addon-install-error-corrupt-file = O extra transferido a partir deste site não pôde ser instalado porque aparenta estar corrompido.
+addon-install-error-file-access = { $addonName } não pôde ser instalado porque o { -brand-short-name } não consegue modificar o ficheiro necessário.
+addon-install-error-not-signed = O { -brand-short-name } impediu este site de instalar um extra não verificado.
+addon-install-error-invalid-domain = O extra { $addonName } não pode ser instalado a partir desta localização.
+addon-local-install-error-network-failure = Este extra não pôde ser instalado devido a um erro no sistema de ficheiros.
+addon-local-install-error-incorrect-hash = Este extra não pôde ser instalado porque não corresponde ao extra { -brand-short-name } esperado.
+addon-local-install-error-corrupt-file = Este extra não pôde ser instalado porque aparenta estar corrompido.
+addon-local-install-error-file-access = { $addonName } não pôde ser instalado porque o { -brand-short-name } não consegue modificar o ficheiro necessário.
+addon-local-install-error-not-signed = Este extra não pôde ser instalado porque ainda não foi verificado.
+# Variables:
+# $appVersion (String): the application version.
+addon-install-error-incompatible = { $addonName } não pôde ser instalado porque não é compatível com o { -brand-short-name } { $appVersion }.
+addon-install-error-blocklisted = { $addonName } não pôde ser instalado porque tem um risco alto de causar problemas de estabilidade ou segurança.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/abCardDAVDialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/abCardDAVDialog.ftl
new file mode 100644
index 0000000000..c33ff4b7fb
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/abCardDAVDialog.ftl
@@ -0,0 +1,24 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+carddav-window-title = Novo livro de endereços CardDAV
+carddav-dialog =
+ .buttonlabelaccept = Continuar
+ .buttonaccesskeyaccept = C
+carddav-username-label =
+ .value = Nome de utilizador:
+ .accesskey = u
+carddav-location-label =
+ .value = Localização:
+ .accesskey = L
+carddav-location =
+ .default-placeholder = URL ou nome do anfitrião para o servidor do livro de endereços
+carddav-loading = A analisar configuração…
+# Variables:
+# $url (String) - CardDAV endpoint hostname. For example "example.com".
+carddav-known-incompatible = O { $url } tem incompatibilidades conhecidas com o { -brand-short-name }.
+carddav-connection-error = A ligação falhou.
+carddav-none-found = Não foi encontrado nenhum livro de endereços para adicionar a conta especificada.
+carddav-already-added = Todos os livros de endereços da conta especificada já foram adicionados.
+carddav-available-books = Livros de endereços disponíveis:
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000..b067384444
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+carddav-url-label =
+ .value = Endereço CardDAV:
+ .accesskey = V
+
+carddav-refreshinterval-label =
+ .label = Sincronizar:
+ .accesskey = S
+
+# Variables:
+# $minutes (integer) - Number of minutes between address book synchronizations
+carddav-refreshinterval-minutes-value =
+ .label =
+ { $minutes ->
+ [one] a cada minuto
+ *[other] a { $minutes } minutos
+ }
+
+# Variables:
+# $hours (integer) - Number of hours between address book synchronizations
+carddav-refreshinterval-hours-value =
+ .label =
+ { $hours ->
+ [one] a cada hora
+ *[other] a cada { $hours } horas
+ }
+
+carddav-readonly-label =
+ .label = Só de leitura
+ .accesskey = l
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000..634b7c559c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,269 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-addressbook-title = Livro de endereços
+
+## Toolbar
+
+about-addressbook-toolbar-new-address-book =
+ .label = Novo livro de endereços
+about-addressbook-toolbar-add-carddav-address-book =
+ .label = Adicionar livro de endereços CardDAV
+about-addressbook-toolbar-add-ldap-address-book =
+ .label = Adicionar livro de endereços LDAP
+about-addressbook-toolbar-new-contact =
+ .label = Novo contacto
+about-addressbook-toolbar-new-list =
+ .label = Nova lista
+about-addressbook-toolbar-import =
+ .label = Importar
+
+## Books
+
+all-address-books-row =
+ .title = Todos os livros de endereços
+all-address-books = Todos os livros de endereços
+# Variables:
+# $name (String) - The name of the selected book/list.
+# $count (Number) - The number of contacts in the selected book/list.
+about-addressbook-card-count = Total de contactos em { $name }: { $count }
+# Variables:
+# $count (Number) - The number of contacts in all address books.
+about-addressbook-card-count-all = Total de contactos em todos os livros de endereços: { $count }
+about-addressbook-books-context-properties =
+ .label = Propriedades
+about-addressbook-books-context-edit-list =
+ .label = Editar lista
+about-addressbook-books-context-synchronize =
+ .label = Sincronizar
+about-addressbook-books-context-edit =
+ .label = Editar
+about-addressbook-books-context-print =
+ .label = Imprimir…
+about-addressbook-books-context-export =
+ .label = Exportar…
+about-addressbook-books-context-delete =
+ .label = Apagar
+about-addressbook-books-context-remove =
+ .label = Remover
+about-addressbook-books-context-startup-default =
+ .label = Diretório de inicialização predefinido
+about-addressbook-confirm-delete-book-title = Apagar livro de endereços
+# Variables:
+# $name (String) - Name of the address book to be deleted.
+about-addressbook-confirm-delete-book = Tem a certeza que pretende eliminar { $name } e todos os respetivos contactos?
+about-addressbook-confirm-remove-remote-book-title = Remover livro de endereços
+# Variables:
+# $name (String) - Name of the remote address book to be removed.
+about-addressbook-confirm-remove-remote-book = Tem a certeza que pretende remover { $name }?
+
+## Cards
+
+# Variables:
+# $name (String) - Name of the address book that will be searched.
+about-addressbook-search =
+ .placeholder = Pesquisar { $name }
+about-addressbook-search-all =
+ .placeholder = Pesquisar todos os livros de endereços
+about-addressbook-sort-button2 =
+ .title = Listar opções de apresentação
+about-addressbook-name-format-display =
+ .label = Nome de apresentação
+about-addressbook-name-format-firstlast =
+ .label = Primeiro Último
+about-addressbook-name-format-lastfirst =
+ .label = Último, Primeiro
+about-addressbook-sort-name-ascending =
+ .label = Ordenar por nome (A > Z)
+about-addressbook-sort-name-descending =
+ .label = Ordenar por nome (Z > A)
+about-addressbook-sort-email-ascending =
+ .label = Ordenar por endereço de e-mail (A > Z)
+about-addressbook-sort-email-descending =
+ .label = Ordenar por endereço de e-mail (Z > A)
+about-addressbook-table-layout =
+ .label = Disposição da tabela
+
+## Card column headers
+## Each string is listed here twice, and the values should match.
+
+about-addressbook-column-header-generatedname2 = Nome
+ .title = Ordenar pelo nome
+about-addressbook-column-label-generatedname2 =
+ .label = Nome
+about-addressbook-column-header-emailaddresses2 = Endereços de e-mail
+ .title = Ordenar por endereço de e-mail
+about-addressbook-column-label-emailaddresses2 =
+ .label = Endereços de e-mail
+about-addressbook-column-header-nickname2 = Pseudónimo
+ .title = Ordenar por pseudónimo
+about-addressbook-column-label-nickname2 =
+ .label = Pseudónimo
+about-addressbook-column-header-phonenumbers2 = Números de telefone
+ .title = Ordenar por números de telefone
+about-addressbook-column-label-phonenumbers2 =
+ .label = Números de Telefone
+about-addressbook-column-header-addresses2 = Moradas
+ .title = Ordenar por moradas
+about-addressbook-column-label-addresses2 =
+ .label = Moradas
+about-addressbook-column-header-title2 = Cargo
+ .title = Ordenar pelo cargo
+about-addressbook-column-label-title2 =
+ .label = Cargo
+about-addressbook-column-header-department2 = Departamento
+ .title = Ordenar por departamento
+about-addressbook-column-label-department2 =
+ .label = Departamento
+about-addressbook-column-header-organization2 = Organização
+ .title = Ordenar por organização
+about-addressbook-column-label-organization2 =
+ .label = Organização
+about-addressbook-column-header-addrbook2 = Livro de endereços
+ .title = Ordenar por livro de endereços
+about-addressbook-column-label-addrbook2 =
+ .label = Livro de endereços
+about-addressbook-cards-context-write =
+ .label = Escrever
+about-addressbook-confirm-delete-mixed-title = Apagar contactos e listas
+# Variables:
+# $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
+about-addressbook-confirm-delete-mixed = Tem a certeza de que pretende apagar estes { $count } contactos e listas?
+# Variables:
+# $count (Number) - The number of lists to be deleted.
+about-addressbook-confirm-delete-lists-title =
+ { $count ->
+ [one] Apagar lista
+ *[other] Apagar listas
+ }
+# Variables:
+# $count (Number) - The number of lists to be deleted.
+# $name (String) - The name of the list to be deleted, if $count is 1.
+about-addressbook-confirm-delete-lists =
+ { $count ->
+ [one] Tem certeza que pretende apagar a lista { $name }?
+ *[other] Tem certeza que pretende apagar estas { $count } listas?
+ }
+# Variables:
+# $count (Number) - The number of contacts to be removed.
+about-addressbook-confirm-remove-contacts-title =
+ { $count ->
+ [one] Remover contacto
+ *[other] Remover contactos
+ }
+# Variables:
+# $name (String) - The name of the contact to be removed.
+# $list (String) - The name of the list that contacts will be removed from.
+about-addressbook-confirm-remove-contacts-single = Tem a certeza que pretende remover { $name } de { $list }?
+# Variables:
+# $count (Number) - The number of contacts to be removed.
+# $list (String) - The name of the list that contacts will be removed from.
+about-addressbook-confirm-remove-contacts-multi =
+ { $count ->
+ [one] Tem a certeza que pretende remover este contacto de { $list }?
+ *[other] Tem a certeza que pretende remover estes { $count } de { $list }?
+ }
+# Variables:
+# $count (Number) - The number of contacts to be deleted.
+about-addressbook-confirm-delete-contacts-title =
+ { $count ->
+ [one] Apagar contacto
+ *[other] Apagar contactos
+ }
+# Variables:
+# $name (String) - The name of the contact to be deleted.
+about-addressbook-confirm-delete-contacts-single = Tem a certeza que deseja apagar o contacto { $name }?
+# Variables:
+# $count (Number) - The number of contacts to be deleted.
+about-addressbook-confirm-delete-contacts-multi =
+ { $count ->
+ [one] Tem a certeza que pretende apagar este contacto?
+ *[other] Tem a certeza que pretende apagar estes { $count } contactos?
+ }
+
+## Card list placeholder
+## Shown when there are no cards in the list
+
+about-addressbook-placeholder-empty-book = Sem contactos disponíveis
+about-addressbook-placeholder-new-contact = Novo contacto
+about-addressbook-placeholder-search-only = Este livro de endereços apenas mostra os contactos após uma pesquisa
+about-addressbook-placeholder-searching = A procurar…
+about-addressbook-placeholder-no-search-results = Nenhum contacto encontrado
+
+## Details
+
+# Variables:
+# $count (Number) - The number of selected items (will never be fewer than 2).
+about-addressbook-selection-mixed-header2 =
+ { $count ->
+ [one] { $count } entrada selecionada no livro de endereços
+ *[other] { $count } entradas selecionadas no livro de endereços
+ }
+# Variables:
+# $count (Number) - The number of selected contacts
+about-addressbook-selection-contacts-header2 =
+ { $count ->
+ [one] { $count } contacto selecionado
+ *[other] { $count } contactos selecionados
+ }
+# Variables:
+# $count (Number) - The number of selected lists
+about-addressbook-selection-lists-header2 =
+ { $count ->
+ [one] { $count } lista selecionada
+ *[other] { $count } listas selecionadas
+ }
+about-addressbook-details-edit-photo =
+ .title = Editar fotografia do contacto
+about-addressbook-new-contact-header = Novo contacto
+about-addressbook-prefer-display-name = Mostrar nome sempre acima do cabeçalho da mensagem
+about-addressbook-write-action-button = Escrever
+about-addressbook-event-action-button = Evento
+about-addressbook-search-action-button = Pesquisar
+about-addressbook-new-list-action-button = Nova lista
+about-addressbook-begin-edit-contact-button = Editar
+about-addressbook-delete-edit-contact-button = Apagar
+about-addressbook-cancel-edit-contact-button = Cancelar
+about-addressbook-save-edit-contact-button = Guardar
+about-addressbook-add-contact-to = Adicionar a:
+about-addressbook-details-email-addresses-header = Endereços de e-mail
+about-addressbook-details-phone-numbers-header = Números de telefone
+about-addressbook-details-addresses-header = Endereços
+about-addressbook-details-notes-header = Notas
+about-addressbook-details-impp-header = Mensagens instantâneas
+about-addressbook-details-websites-header = Websites
+about-addressbook-details-other-info-header = Outras informações
+about-addressbook-entry-type-work = Trabalho
+about-addressbook-entry-type-home = Casa
+about-addressbook-entry-type-fax = Fax
+# Or "Mobile"
+about-addressbook-entry-type-cell = Telemóvel
+about-addressbook-entry-type-pager = Pager
+about-addressbook-entry-name-birthday = Data de nascimento
+about-addressbook-entry-name-anniversary = Aniversário
+about-addressbook-entry-name-title = Título
+about-addressbook-entry-name-role = Papel
+about-addressbook-entry-name-organization = Organização
+about-addressbook-entry-name-website = Website
+about-addressbook-entry-name-time-zone = Fuso horário
+about-addressbook-entry-name-custom1 = Personalizado 1
+about-addressbook-entry-name-custom2 = Personalizado 2
+about-addressbook-entry-name-custom3 = Personalizado 3
+about-addressbook-entry-name-custom4 = Personalizado 4
+about-addressbook-unsaved-changes-prompt-title = Alterações não guardadas
+about-addressbook-unsaved-changes-prompt = Quer guardar as suas alterações antes de sair do modo de edição?
+
+# Photo dialog
+
+about-addressbook-photo-drop-target = Solte ou cole uma foto aqui ou clique para selecionar um ficheiro.
+about-addressbook-photo-drop-loading = A carregar foto…
+about-addressbook-photo-drop-error = Falha ao carregar a foto.
+about-addressbook-photo-filepicker-title = Selecione um ficheiro de imagem
+about-addressbook-photo-discard = Descartar foto existente
+about-addressbook-photo-cancel = Cancelar
+about-addressbook-photo-save = Guardar
+
+# Keyboard shortcuts
+
+about-addressbook-new-contact-key = N
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000..dedecaf927
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import-ab-csv-dialog-title = Importar Livro de Endereços de um ficheiro de Texto
+
+# $recordNumber (Number) - The current record number of the preview data.
+import-ab-csv-preview-record-number = Pré-visualização dos dados de importação para o registo { $recordNumber }
+
+import-ab-csv-dialog =
+ .buttonlabelaccept = Importar
+ .buttonaccesskeyaccept = I
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/vcard.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/vcard.ftl
new file mode 100644
index 0000000000..b348b48f55
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/vcard.ftl
@@ -0,0 +1,138 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# Display Name
+
+vcard-displayname = Nome de apresentação
+vcard-displayname-placeholder =
+ .placeholder = { vcard-displayname }
+
+# Type selection
+
+vcard-entry-type-label = Tipo
+vcard-entry-type-home = Início
+vcard-entry-type-work = Trabalho
+vcard-entry-type-none = Nenhum
+vcard-entry-type-custom = Personalizado
+
+# N vCard field
+
+vcard-name-header = Nome
+vcard-n-prefix = Prefixo
+vcard-n-add-prefix =
+ .title = Adicionar prefixo
+vcard-n-firstname = Primeiro nome
+vcard-n-add-firstname =
+ .title = Adicionar o primeiro nome
+vcard-n-middlename = Nome do meio
+vcard-n-add-middlename =
+ .title = Adicionar o nome do meio
+vcard-n-lastname = Último nome
+vcard-n-add-lastname =
+ .title = Adicionar sobrenome
+vcard-n-suffix = Sufixo
+vcard-n-add-suffix =
+ .title = Adicionar sufixo
+
+# Nickname
+
+vcard-nickname = Pseudónimo
+
+# Email vCard field
+
+vcard-email-header = Endereços de e-mail
+vcard-email-add = Adicionar endereço de e-mail
+vcard-email-label = Endereço de e-mail
+vcard-primary-email-label = Predefinição
+
+# URL vCard field
+
+vcard-url-header = Websites
+vcard-url-add = Adicionar um site
+vcard-url-label = Website
+
+# Tel vCard field
+
+vcard-tel-header = Números de telefone
+vcard-tel-add = Adicionar número de telefone
+vcard-tel-label = Número de telefone
+# Or "Mobile"
+vcard-entry-type-cell = Móvel
+vcard-entry-type-fax = Fax
+vcard-entry-type-pager = Pager
+
+# TZ vCard field
+
+vcard-tz-header = Fuso horário
+vcard-tz-add = Adicionar fuso horário
+
+# IMPP vCard field
+
+vcard-impp2-header = Mensagens instantâneas
+vcard-impp-add = Adicionar conta de chat
+vcard-impp-label = Conta de chat
+vcard-impp-select = Protocolo
+vcard-impp-option-other = Outro
+vcard-impp-input-label = URI
+vcard-impp-input-title = URI para mensagens instantâneas
+
+# BDAY and ANNIVERSARY vCard field
+
+vcard-bday-anniversary-header = Datas Especiais
+vcard-bday-anniversary-add = Adicionar data especial
+vcard-bday-label = Data de nascimento
+vcard-anniversary-label = Aniversário
+vcard-date-day = Dia
+vcard-date-month = Mês
+vcard-date-year = Ano
+
+# ADR vCard field
+
+vcard-adr-header = Endereços
+vcard-adr-add = Adicionar endereço
+vcard-adr-label = Endereço
+vcard-adr-delivery-label = Etiqueta de entrega
+vcard-adr-street = Endereço da rua
+# Or "Locality"
+vcard-adr-locality = Cidade
+# Or "Region"
+vcard-adr-region = Distrito
+# The term "ZIP code" only applies in USA. Most locales should use "Postal code" only.
+vcard-adr-code = Código postal
+vcard-adr-country = País
+
+# NOTE vCard field
+
+vcard-note-header = Notas
+vcard-note-add = Adicionar nota
+
+# TITLE, ROLE and ORGANIZATION vCard fields
+
+vcard-org-header = Propriedades Organizacionais
+vcard-org-add = Adicionar propriedades organizacionais
+vcard-org-title = Título
+vcard-org-title-input =
+ .title = Cargo ou trabalho
+ .placeholder = Nome do cargo
+vcard-org-role = Papel
+vcard-org-role-input =
+ .title = Função ou papel desempenhados numa situação particular
+ .placeholder = Papel no projeto
+vcard-org-org = Organização
+vcard-org-org-input =
+ .title = Nome da organização
+ .placeholder = Nome da empresa
+vcard-org-org-unit = Departamento
+vcard-org-org-unit-input =
+ .title = Nome da unidade organizacional
+ .placeholder = Departamento
+
+# Custom properties
+
+vcard-custom-header = Propriedades personalizadas
+vcard-custom-add = Adicionar propriedades personalizadas
+vcard-remove-button-title =
+ .title = Remover
+vcard-remove-button = Remover
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/appmenu.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/appmenu.ftl
new file mode 100644
index 0000000000..ba04430a08
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/appmenu.ftl
@@ -0,0 +1,200 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Sync
+
+appmenu-sync-panel-title =
+ .title = Sincronizar
+appmenu-signin-panel =
+ .label = Iniciar sessão para Sincronizar
+ .accesskey = i
+appmenu-sync-sync =
+ .value = Sincronização da Conta
+ .accesskey = S
+appmenu-sync-manage =
+ .value = Gerir Conta
+ .accesskey = G
+appmenu-sync-account =
+ .value = example@example.com
+appmenu-sync-now =
+ .label = Sincronizar agora
+ .accesskey = a
+appmenu-sync-settings =
+ .label = Definições de sincronização
+ .accesskey = s
+appmenu-sync-sign-out =
+ .label = Terminar sessão…
+ .accesskey = T
+
+## New Account
+
+appmenu-new-account-panel-title =
+ .title = Nova conta
+appmenu-new-account-panel =
+ .label = Nova conta
+ .accesskey = N
+appmenu-create-new-mail-account =
+ .label = Obter um novo endereço de e-mail
+ .accesskey = O
+appmenu-new-mail-account =
+ .label = Conta de e-mail existente
+ .accesskey = e
+appmenu-new-calendar =
+ .label = Calendário
+ .accesskey = C
+appmenu-new-chat-account =
+ .label = Chat
+ .accesskey = C
+appmenu-new-feed =
+ .label = Fonte
+ .accesskey = F
+appmenu-new-newsgroup =
+ .label = Grupo de notícias
+ .accesskey = n
+
+## New Account / Address Book
+
+appmenu-newab-panel-title =
+ .title = Novo livro de endereços
+appmenu-newab-panel =
+ .label = Novo livro de endereços
+ .accesskey = l
+appmenu-new-addressbook =
+ .label = Livro de endereços local
+ .accesskey = L
+
+## Create
+
+appmenu-create-panel-title =
+ .title = Criar
+appmenu-create-panel =
+ .label = Criar
+ .accesskey = C
+appmenu-create-message =
+ .label = Mensagem
+ .accesskey = M
+appmenu-create-event =
+ .label = Evento
+ .accesskey = E
+appmenu-create-task =
+ .label = Tarefa
+ .accesskey = T
+appmenu-create-contact =
+ .label = Contacto
+ .accesskey = C
+
+## Open
+
+appmenu-open-file-panel =
+ .label = Abrir do ficheiro
+ .accesskey = A
+appmenu-open-file-panel-title =
+ .title = Abrir do ficheiro
+appmenu-open-message =
+ .label = Mensagem…
+ .accesskey = M
+appmenu-open-calendar =
+ .label = Calendário…
+ .accesskey = C
+
+## View / Layout
+
+appmenu-view-panel-title =
+ .title = Ver
+appmenu-view-panel =
+ .label = Ver
+ .accesskey = V
+appmenuitem-toggle-thread-pane-header =
+ .label = Cabeçalho da lista de mensagens
+appmenu-font-size-value = Tamanho da letra
+appmenu-mail-uidensity-value = Densidade
+appmenu-uidensity-compact =
+ .tooltiptext = Compacto
+appmenu-uidensity-default =
+ .tooltiptext = Predefinido
+appmenu-uidensity-relaxed =
+ .tooltiptext = Espaçado
+appmenuitem-font-size-enlarge =
+ .tooltiptext = Aumentar tamanho do tipo de letra
+appmenuitem-font-size-reduce =
+ .tooltiptext = Reduzir tamanho do tipo de letra
+# Variables:
+# $size (String) - The current font size.
+appmenuitem-font-size-reset =
+ .label = { $size }px
+ .tooltiptext = Redefinir tamanho do tipo de letra
+
+## Tools
+
+appmenu-tools-panel-title =
+ .title = Ferramentas
+appmenu-tools-panel =
+ .label = Ferramentas
+ .accesskey = F
+appmenu-tools-import =
+ .label = Importar
+ .accesskey = I
+appmenu-tools-export =
+ .label = Exportar
+ .accesskey = E
+appmenu-tools-message-search =
+ .label = Pesquisar mensagens
+ .accesskey = P
+appmenu-tools-message-filters =
+ .label = Filtros de mensagens
+ .accesskey = F
+appmenu-tools-download-manager =
+ .label = Gestor de transferências
+ .accesskey = G
+appmenu-tools-activity-manager =
+ .label = Gestor de atividades
+ .accesskey = A
+appmenu-tools-dev-tools =
+ .label = Ferramentas do programador
+ .accesskey = t
+
+## Help
+
+appmenu-help-panel-title =
+ .title = Ajuda
+appmenu-help-get-help =
+ .label = Obter ajuda
+ .accesskey = j
+appmenu-help-explore-features =
+ .label = Explorar funcionalidades
+ .accesskey = F
+appmenu-help-shortcuts =
+ .label = Atalhos de teclado
+ .accesskey = t
+appmenu-help-get-involved =
+ .label = Participe
+ .accesskey = P
+appmenu-help-donation =
+ .label = Doar
+ .accesskey = D
+appmenu-help-share-feedback =
+ .label = Partilhe ideias e comentários…
+ .accesskey = s
+appmenu-help-enter-troubleshoot-mode2 =
+ .label = Modo de Diagnóstico...
+ .accesskey = M
+appmenu-help-exit-troubleshoot-mode2 =
+ .label = Desligar o modo de diagnóstico
+ .accesskey = D
+appmenu-help-troubleshooting-info =
+ .label = Informação da Resolução de Problemas
+ .accesskey = I
+appmenu-help-about-product =
+ .label = Sobre o { -brand-short-name }
+ .accesskey = S
+
+## Application Update
+
+appmenuitem-banner-update-downloading =
+ .label = A transferir a atualização do { -brand-shorter-name }
+appmenuitem-banner-update-available =
+ .label = Atualização disponível — transferir agora
+appmenuitem-banner-update-manual =
+ .label = Atualização disponível — transferir agora
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/chat-verifySession.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/chat-verifySession.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/messenger/chat.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/chat.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/messenger/exportDialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/exportDialog.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/messenger/extensionPermissions.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/extensionPermissions.ftl
new file mode 100644
index 0000000000..8324f8d27e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/extensionPermissions.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/.
+
+
+## Extension permission description keys are derived from permission names.
+## Permissions for which the message has been changed and the key updated
+## must have a corresponding entry in the `PERMISSION_L10N_ID_OVERRIDES` map.
+
+webext-perms-description-accountsFolders = Crie, renomeie, ou apague pastas da sua conta de correio
+webext-perms-description-accountsIdentities = Crie, modifique ou elimine as identidades da sua conta de e-mail
+webext-perms-description-accountsRead = Consulte as suas contas de e-mail, as respetivas identidades e pastas
+webext-perms-description-addressBooks = Ler e modificar os seus livros de endereços e contactos
+webext-perms-description-compose = Leia e modifique as suas mensagens de e-mail enquanto as redige e as envia
+webext-perms-description-compose-send = Enviar mensagens de e-mail redigidas em seu nome
+webext-perms-description-compose-save = Guarde mensagens de e-mail compostas como rascunhos ou modelos
+webext-perms-description-experiment = Tenha acesso completo e sem restrições a { -brand-short-name } e ao seu computador
+webext-perms-description-messagesImport = Importar mensagens para o Thunderbird
+webext-perms-description-messagesModify = Leia e modifique as suas mensagens de e-mail à medida que lhe vão sendo apresentadas
+webext-perms-description-messagesMove = Copiar ou mover as suas mensagens de e-mail (incluindo movê-las para a pasta do lixo)
+webext-perms-description-messagesDelete = Eliminar de forma permanente as suas mensagens de e-mail
+webext-perms-description-messagesRead = Leia as suas mensagens de email e marque-as ou etiquete-as
+webext-perms-description-messagesTags = Criar, modificar e apagar etiquetas da mensagem
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/extensions/popup.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/extensions/popup.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/messenger/extensionsUI.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/extensionsUI.ftl
new file mode 100644
index 0000000000..f5cfafeac7
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/extensionsUI.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/.
+
+webext-experiment-warning = Os extras maliciosos podem furtar a sua informação privada ou comprometer o seu computador. Apenas instale este extra se confia na fonte.
+webext-perms-learn-more = Saber mais
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/firefoxAccounts.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/firefoxAccounts.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/messenger/flatpak.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/flatpak.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/messenger/folderprops.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/folderprops.ftl
new file mode 100644
index 0000000000..fc34dba07b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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 }% cheio
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/importDialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/importDialog.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/messenger/mailWidgets.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/mailWidgets.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/messenger/menubar.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/menubar.ftl
new file mode 100644
index 0000000000..b32fca2443
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/menubar.ftl
@@ -0,0 +1,52 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Tools Menu
+
+menu-addons-and-themes =
+ .label = Extras e temas
+ .accesskey = x
+
+## Help Menu
+
+menu-help-enter-troubleshoot-mode =
+ .label = Modo de diagnóstico…
+ .accesskey = d
+menu-help-exit-troubleshoot-mode =
+ .label = Desativar modo de diagnóstico
+ .accesskey = g
+menu-help-more-troubleshooting-info =
+ .label = Mais informação para diagnóstico
+ .accesskey = M
+menu-help-troubleshooting-info =
+ .label = Informação para resolução de problemas
+ .accesskey = f
+
+## Mail Toolbar
+
+toolbar-junk-button =
+ .label = Spam
+ .tooltiptext = Marcas as mensagens selecionadas como spam
+toolbar-not-junk-button =
+ .label = Não é lixo eletrónico
+ .tooltiptext = Marcar as mensagens como não sendo lixo eletrónico
+toolbar-delete-button =
+ .label = Eliminar
+ .tooltiptext = Eliminar as mensagens ou pastas selecionadas
+toolbar-undelete-button =
+ .label = Anular eliminação
+ .tooltiptext = Anular a eliminação das mensagens selecionadas
+
+## View
+
+
+## View / Layout
+
+mail-uidensity-label =
+ .label = Densidade
+ .accesskey = D
+
+## File
+
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/messageheader/headerFields.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/messageheader/headerFields.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/messenger/messenger.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/messenger.ftl
new file mode 100644
index 0000000000..ce4122daf9
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/messenger.ftl
@@ -0,0 +1,178 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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
+
+# Variables:
+# $count (Number) - Number of unread messages.
+unread-messages-os-tooltip =
+ { $count ->
+ [one] 1 mensagem não lida
+ *[other] { $count } mensagens não lidas
+ }
+about-rights-notification-text = O { -brand-short-name } é um software livre e de código aberto, criado por uma comunidade de milhares de pessoas de todo o mundo.
+
+## Content tabs
+
+
+# Back
+
+
+# Forward
+
+
+# Reload
+
+
+# Stop
+
+
+## Toolbar
+
+
+## Folder Pane
+
+folder-pane-toolbar =
+ .toolbarname = Barra do painel de pastas
+ .accesskey = p
+folder-pane-toolbar-options-button =
+ .tooltiptext = Opções do painel de pastas
+folder-pane-header-label = Pastas
+
+## Folder Toolbar Header Popup
+
+folder-toolbar-hide-toolbar-toolbarbutton =
+ .label = Ocultar barra de ferramentas
+ .accesskey = O
+show-all-folders-label =
+ .label = Todas as pastas
+ .accesskey = d
+show-unread-folders-label =
+ .label = Pastas não lidas
+ .accesskey = n
+show-favorite-folders-label =
+ .label = Pastas favoritas
+ .accesskey = f
+show-smart-folders-label =
+ .label = Pastas unificadas
+ .accesskey = u
+show-recent-folders-label =
+ .label = Pastas recentes
+ .accesskey = r
+show-tags-folders-label =
+ .label = Etiquetas
+ .accesskey = t
+folder-toolbar-toggle-folder-compact-view =
+ .label = Vista compacta
+ .accesskey = i
+
+## Menu
+
+
+## File Menu
+
+
+## Edit Menu
+
+menu-edit-delete-folder =
+ .label = Apagar pasta
+ .accesskey = A
+# Variables:
+# $count (Number) - Number of selected messages.
+menu-edit-delete-messages =
+ .label =
+ { $count ->
+ [one] Apagar mensagem
+ *[other] Apagar mensagens selecionadas
+ }
+ .accesskey = A
+# Variables:
+# $count (Number) - Number of selected messages.
+menu-edit-undelete-messages =
+ .label =
+ { $count ->
+ [one] Recuperar mensagem
+ *[other] Recuperar mensagens selecionadas
+ }
+ .accesskey = u
+menu-edit-properties =
+ .label = Propriedades
+ .accesskey = e
+menu-edit-folder-properties =
+ .label = Propriedades da pasta
+ .accesskey = e
+menu-edit-newsgroup-properties =
+ .label = Propriedades do grupo de notícias
+ .accesskey = e
+
+## Message Menu
+
+
+## AppMenu
+
+appmenu-addons-and-themes =
+ .label = Extras e temas
+appmenu-help-enter-troubleshoot-mode =
+ .label = Modo de diagnóstico…
+appmenu-help-exit-troubleshoot-mode =
+ .label = Desativar o modo de diagnóstico
+appmenu-help-more-troubleshooting-info =
+ .label = Mais informação de diagnóstico
+
+## Context menu
+
+# Variables:
+# $count (Number) - Number of selected messages.
+mail-context-undelete-messages =
+ .label =
+ { $count ->
+ [one] Recuperar mensagem
+ *[other] Recuperar mensagens selecionadas
+ }
+
+## 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 = Barra de filtro rápida
+ .accesskey = B
+# This is the key used to show the quick filter bar.
+# This should match quick-filter-bar-textbox-shortcut in about3Pane.ftl.
+quick-filter-bar-show =
+ .key = F
+
+## OpenPGP
+
+
+## Quota panel.
+
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/messengercompose/messengercompose.ftl
new file mode 100644
index 0000000000..8bb631355c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/messengercompose/messengercompose.ftl
@@ -0,0 +1,136 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Send Format
+
+# Addressing widget
+
+# $type (String) - the type of the addressing row
+# $count (Number) - the number of address pills currently present in the addressing row
+address-input-type-aria-label =
+ { $count ->
+ [0] { $type }
+ [one] { $type } com um endereço, utilize a tecla seta esquerda para focar o mesmo.
+ *[other] { $type } com { $count } endereços, utilize a tecla seta esquerda para focar os mesmos.
+ }
+
+# $email (String) - the email address
+# $count (Number) - the number of address pills currently present in the addressing row
+pill-aria-label =
+ { $count ->
+ [one] { $email }: pressione Enter para editar, Eliminar para remover.
+ *[other] { $email }, 1 de { $count }: pressione Enter para editar, Eliminar para remover.
+ }
+
+# $email (String) - the email address
+pill-tooltip-invalid-address = { $email } não é um endereço de e-mail válido
+
+# $email (String) - the email address
+pill-tooltip-not-in-address-book = { $email } não está no seu livro de endereços
+
+pill-action-edit =
+ .label = Editar endereço
+ .accesskey = e
+
+pill-action-move-to =
+ .label = Mover para Para
+ .accesskey = p
+
+pill-action-move-cc =
+ .label = Mover para Cc
+ .accesskey = c
+
+pill-action-move-bcc =
+ .label = Mover para Bcc
+ .accesskey = B
+
+# Attachment widget
+
+ctrl-cmd-shift-pretty-prefix =
+ { PLATFORM() ->
+ [macos] ⇧ ⌘{ " " }
+ *[other] Ctrl+Shift+
+ }
+
+trigger-attachment-picker-key = A
+toggle-attachment-pane-key = M
+
+menuitem-toggle-attachment-pane =
+ .label = Painel de anexos
+ .accesskey = x
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key }
+
+toolbar-button-add-attachment =
+ .label = Anexar
+ .tooltiptext = Adicionar um anexo ({ ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key })
+
+menuitem-attach-files =
+ .label = Ficheiro(s)...
+ .accesskey = F
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key }
+
+context-menuitem-attach-files =
+ .label = Anexar ficheiro(s)...
+ .accesskey = F
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key }
+
+drop-file-label-attachment =
+ { $count ->
+ [one] Adicionar como anexo
+ *[other] Adicionar como anexos
+ }
+
+drop-file-label-inline =
+ { $count ->
+ [one] Adicionar em linha
+ *[other] Adicionar em linha
+ }
+
+# Reorder Attachment Panel
+
+move-attachment-first-panel-button =
+ .label = Mover para primeiro
+move-attachment-left-panel-button =
+ .label = Mover para a esquerda
+move-attachment-right-panel-button =
+ .label = Mover para a direita
+move-attachment-last-panel-button =
+ .label = Mover para o fim
+
+button-return-receipt =
+ .label = Recibo
+ .tooltiptext = Solicitar um recibo de leitura para esta mensagem
+
+# Encryption
+
+# Addressing Area
+
+
+many-public-recipients-bcc =
+ .label = Utilize o Bcc
+ .accesskey = B
+
+many-public-recipients-ignore =
+ .label = Manter os destinatários públicos
+ .accesskey = p
+
+## Notifications
+
+## Editing
+
+# Tools
+
+## Filelink
+
+# Placeholder file
+
+# Template
+
+# Messages
+
+## Link Preview
+
+## Dictionary selection popup
+
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/migration.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/migration.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/messenger/multimessageview.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/multimessageview.ftl
new file mode 100644
index 0000000000..a776007da4
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/multimessageview.ftl
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+multi-message-window-title =
+ .title = Sumário da mensagem
+selected-messages-label =
+ .label = Mensagens seleciondas
+multi-message-archive-button =
+ .label = Arquivar
+ .tooltiptext = Arquivar
+multi-message-delete-button =
+ .label = Apagar
+ .tooltiptext = Apagar
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/backupKeyPassword.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/backupKeyPassword.ftl
new file mode 100644
index 0000000000..5999c8fc15
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/backupKeyPassword.ftl
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+set-password-window =
+ .title = Escolha uma palavra-passe para fazer uma cópia da sua chave OpenPGP
+set-password-window-title = Escolha uma palavra-passe para fazer uma cópia da sua chave OpenPGP
+set-password-legend = Escolher uma palavra-passe
+set-password-message = A palavra-passe que definir aqui, protege o ficheiro que está prestes a criar com a cópia do segredo OpenPGP. Tem de definir esta palavra-passe para continuar com a criação da cópia.
+set-password-backup-pw =
+ .value = Palavra-passe da cópia da chave secreta:
+set-password-repeat-backup-pw =
+ .value = (Repita a) palavra-passe da cópia da chave secreta:
+set-password-backup-pw-label = Palavra-passe da cópia da chave secreta:
+set-password-backup-pw2-label = (Repita a) palavra-passe da cópia da chave secreta:
+set-password-reminder = <b>Importante!</b> se se esquecer da palavra-passe da cópia da sua chave secreta, não será possível restaurar esta cópia mais tarde. Por favor, guarde a mesma numa localização segura.
+password-quality-meter = Indicador de qualidade da palavra-passe
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/changeExpiryDlg.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/changeExpiryDlg.ftl
new file mode 100644
index 0000000000..df77458648
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/changeExpiryDlg.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+openpgp-change-key-expiry-title =
+ .title = Alterar expiração da chave
+openpgp-change-expiry-title = Alterar expiração da chave
+info-will-expire = Atualmente esta chave está configurada para expirar a { $date }.
+info-already-expired = Esta chave já expirou.
+info-does-not-expire = Atualmente esta chave está configurada para nunca expirar.
+info-explanation-1 = <b>Depois de uma chave expirar</b>, não será mais possível utilizá-la para encriptar ou assinar digitalmente.
+info-explanation-2 = Para utilizar esta chave por um período de tempo mais longo, altere a sua data de validade e partilhe novamente a chave pública com os seus colegas de conversa.
+expire-dont-change =
+ .label = Não alterar a data de validade
+expire-never-label =
+ .label = A chave nunca irá expirar
+expire-in-label =
+ .label = A chave irá expirar em:
+expire-in-months = Meses
+expire-no-change-label = Não alterar a data de validade
+expire-in-time-label = A chave irá expirar em:
+expire-never-expire-label = A chave nunca irá expirar
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/composeKeyStatus.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/composeKeyStatus.ftl
new file mode 100644
index 0000000000..cbf8b0c028
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/composeKeyStatus.ftl
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+openpgp-compose-key-status-intro-need-keys = Para enviar uma mensagem encriptada ponto a ponto, deve obter e aceitar uma chave pública para cada destinatário.
+openpgp-compose-key-status-keys-heading = Disponibilidade de chaves OpenPGP:
+openpgp-compose-key-status-title =
+ .title = Segurança OpenPGP para mensagens
+openpgp-compose-key-status-recipient =
+ .label = Destinatário
+openpgp-compose-key-status-status =
+ .label = Estado
+openpgp-compose-key-status-open-details = Gerir chaves para o destinatário selecionado…
+openpgp-recip-good = ok
+openpgp-recip-missing = nenhuma chave disponível
+openpgp-recip-none-accepted = nenhuma chave aceitada
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/keyAssistant.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/keyAssistant.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/messenger/openpgp/keyWizard.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/keyWizard.ftl
new file mode 100644
index 0000000000..b4d204e323
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/keyWizard.ftl
@@ -0,0 +1,192 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# $identity (String) - the email address of the currently selected identity
+key-wizard-dialog-window =
+ .title = Adicionar uma chave OpenPGP pessoal para { $identity }
+
+key-wizard-button =
+ .buttonlabelaccept = Continuar
+ .buttonlabelhelp = Retroceder
+
+key-wizard-dialog =
+ .buttonlabelaccept = Continuar
+ .buttonlabelextra1 = Retroceder
+
+key-wizard-warning = <b>Se você já tiver uma chave pessoal</b> para este endereço de e-mail, deve importar a mesma. Caso contrário, você não terá acesso aos arquivos dos seus e-mails encriptados nem poderá ler e-mails encriptados recebidos de pessoas que ainda estejam a utilizar a sua chave existente.
+
+key-wizard-learn-more = Saber mais
+
+radio-create-key =
+ .label = Criar uma nova chave OpenPGP
+ .accesskey = C
+
+radio-import-key =
+ .label = Importar uma chave OpenPGP existente
+ .accesskey = I
+
+radio-gnupg-key =
+ .label = Utilizar a sua chave externa através do GnuPG (por exemplo, a partir de um smartcard)
+ .accesskey = U
+
+## Generate key section
+
+openpgp-generate-key-title = Gerar chave OpenPGP
+
+openpgp-generate-key-info = <b>A geração da chave pode levar vários minutos para ser concluída.</b> Não saia da aplicação enquanto a geração da chave estiver em curso. Navegar ativamente ou realizar operações com uma utilização intensiva do disco durante a geração de chaves irá reabastecer a 'fonte de aleatoriedade' e acelerar o processo. Será alertado quando a geração da chave for concluída.
+
+openpgp-keygen-expiry-title = Validade da chave
+
+openpgp-keygen-expiry-description = Define validade da sua chave recém-gerada. Você poderá controlar a data à posteriori para a estender, se for necessário.
+
+radio-keygen-expiry =
+ .label = A chave expira em
+ .accesskey = e
+
+radio-keygen-no-expiry =
+ .label = A chave não expira
+ .accesskey = x
+
+openpgp-keygen-days-label =
+ .label = dias
+openpgp-keygen-months-label =
+ .label = meses
+openpgp-keygen-years-label =
+ .label = anos
+
+openpgp-keygen-advanced-title = Definições avançadas
+
+openpgp-keygen-advanced-description = Controle as definições avançadas da sua chave OpenPGP.
+
+openpgp-keygen-keytype =
+ .value = Tipo de chave:
+ .accesskey = t
+
+openpgp-keygen-keysize =
+ .value = Tamanho da chave:
+ .accesskey = h
+
+openpgp-keygen-type-rsa =
+ .label = RSA
+
+openpgp-keygen-type-ecc =
+ .label = ECC (curva elíptica)
+
+openpgp-keygen-button = Gerar chave
+
+openpgp-keygen-progress-title = A gerar a sua nova chave OpenPGP ...
+
+openpgp-keygen-import-progress-title = A importar as suas chaves OpenPGP…
+
+openpgp-import-success = Chaves OpenPGP importadas com sucesso!
+
+openpgp-import-success-title = Conclua o processo de importação
+
+openpgp-import-success-description = Para começar a utilizar a sua chave OpenPGP importada para encriptar e-mail, feche esta janela e aceda às Definições da conta para a selecionar.
+
+openpgp-keygen-confirm =
+ .label = Confirmar
+
+openpgp-keygen-dismiss =
+ .label = Cancelar
+
+openpgp-keygen-cancel =
+ .label = Cancelar processo...
+
+openpgp-keygen-import-complete =
+ .label = Fechar
+ .accesskey = c
+
+openpgp-keygen-missing-username = Não existe nenhum nome especificado para a conta atual. Por favor, introduza um valor no campo "O seu nome" nas definições da conta.
+openpgp-keygen-long-expiry = Não pode criar uma chave que expire em mais de 100 anos.
+openpgp-keygen-short-expiry = A sua chave deve ser válida durante, pelo menos, um dia.
+
+openpgp-keygen-ongoing = Geração de chave já em curso!
+
+openpgp-keygen-error-core = Não foi possível inicializar o OpenPGP Core Service
+
+openpgp-keygen-error-failed = A geração da chave OpenPGP falhou inesperadamente
+
+# $identity (String) - the newly generate OpenPGP Key
+openpgp-keygen-error-revocation = Chave OpenPGP criada com sucesso, mas falhou a obtenção da revogação para a chave { $key }
+
+openpgp-keygen-abort-title = Abortar geração de chave?
+openpgp-keygen-abort = Geração de chaves OpenPGP em curso. Tem a certeza de que deseja cancelar este processo?
+
+# $identity (String) - the name and email address of the currently selected identity
+openpgp-key-confirm = Gerar chave pública e secreta para { $identity }?
+
+## Import Key section
+
+openpgp-import-key-title = Importar uma chave OpenPGP pessoal existente
+
+openpgp-import-key-legend = Selecione um ficheiro de cópia anterior.
+
+openpgp-import-key-description = Pode importar chaves pessoais que foram criadas com outro software OpenPGP.
+
+openpgp-import-key-info = Outros softwares podem descrever uma chave pessoal utilizando termos alternativos, como chave própria, chave secreta, chave privada ou par de chaves.
+
+# $count (Number) - the number of keys found in the selected files
+openpgp-import-key-list-amount-2 =
+ { $count ->
+ [one] { -brand-short-name } encontrou uma chave que pode ser importada.
+ *[other] { -brand-short-name } encontrou { $count } chaves que podem ser importadas.
+ }
+
+openpgp-import-key-list-description = Confirme quais as chaves podem ser tratadas como as suas chaves pessoais. Apenas as chaves que você mesmo criou e que mostram a sua própria identidade devem ser utilizadas como chaves pessoais. Você pode alterar esta opção mais tarde na janela Propriedades da chave.
+
+openpgp-import-key-list-caption = As chaves marcadas para serem tratadas como chaves pessoais serão listadas na secção Encriptação de ponto a ponto. As outras estarão disponíveis dentro do Gestor de chaves.
+
+openpgp-passphrase-prompt-title = Frase secreta necessária
+
+# $identity (String) - the id of the key being imported
+openpgp-passphrase-prompt = Por favor, especifique a sua frase secreta para desbloquear a seguinte chave: { $key }
+
+openpgp-import-key-button =
+ .label = Selecionar o ficheiro a importar...
+ .accesskey = S
+
+import-key-file = Importar o ficheiro de chave OpenPGP
+
+import-key-personal-checkbox =
+ .label = Tratar esta chave como uma chave pessoal
+
+gnupg-file = Ficheiros GnuPG
+
+import-error-file-size = <b>Erro!</b> Não são suportados ficheiros maiores que 5MB.
+
+# $error (String) - the reported error from the failed key import method
+import-error-failed = <b>Erro!</b> A importação do ficheiro falhou. { $error }
+
+# $error (String) - the reported error from the failed key import method
+openpgp-import-keys-failed = <b>Erro!</b> A importação das chaves falhou. { $error }
+
+openpgp-import-identity-label = Identidade
+
+openpgp-import-fingerprint-label = Impressão digital
+
+openpgp-import-created-label = Criada
+
+openpgp-import-bits-label = Bits
+
+openpgp-import-key-props =
+ .label = Propriedades da chave
+ .accesskey = v
+
+## External Key section
+
+openpgp-external-key-title = Chave GnuPG externa
+
+openpgp-external-key-description = Configure uma chave GnuPG externa inserindo o ID da chave
+
+openpgp-external-key-info = Além disto, você deve utilizar o Gestor de chaves para importar e aceitar a chave pública correspondente.
+
+openpgp-external-key-warning = <b>Apenas pode configurar uma chave GnuPG externa.</b> A sua entrada anterior será substituída.
+
+openpgp-save-external-button = Guardar ID da chave
+
+openpgp-external-key-label = ID da chave secreta:
+
+openpgp-external-key-input =
+ .placeholder = 123456789341298340
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/msgReadStatus.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/msgReadStatus.ftl
new file mode 100644
index 0000000000..e47fe675ac
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/msgReadStatus.ftl
@@ -0,0 +1,48 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Message Header Encryption Button
+
+message-header-show-security-info-key = S
+
+# $type (String) - the shortcut key defined in the message-header-show-security-info-key
+message-security-button =
+ .title =
+ { PLATFORM() ->
+ [macos] Mostrar Segurança da Mensagem (⌘ ⌥ { message-header-show-security-info-key })
+ *[other] Mostrar Segurança da Mensagem (Ctrl+Alt+{ message-header-show-security-info-key })
+ }
+
+openpgp-view-signer-key =
+ .label = Ver chave do signatário
+openpgp-view-your-encryption-key =
+ .label = Ver a sua chave de desencriptação
+openpgp-openpgp = OpenPGP
+
+openpgp-no-sig = Sem assinatura digital
+openpgp-uncertain-sig = Assinatura digital incerta
+openpgp-invalid-sig = Assinatura digital inválida
+openpgp-good-sig = Assinatura digital válida
+
+openpgp-sig-uncertain-no-key = Esta mensagem contém uma assinatura digital, mas não é garantido que a mesma correta. Para verificar a assinatura, você precisa de obter uma cópia da chave pública do remetente.
+openpgp-sig-uncertain-uid-mismatch = Esta mensagem contém uma assinatura digital, mas foi detetada uma disparidade. A mensagem foi enviada a partir de um endereço de e-mail que não corresponde à chave pública do assinante.
+openpgp-sig-uncertain-not-accepted = Esta mensagem contém uma assinatura digital, mas você ainda não decidiu se a chave do assinante é aceitável para si.
+openpgp-sig-invalid-rejected = Esta mensagem contém uma assinatura digital, mas você anteriormente decidiu rejeitar a chave do assinante.
+openpgp-sig-invalid-technical-problem = Esta mensagem contém uma assinatura digital, mas foi detetado um erro técnico. A mensagem foi corrompida ou modificada por outra pessoa.
+openpgp-sig-valid-unverified = Esta mensagem inclui uma assinatura digital válida de uma chave que você já aceitou. No entanto, você ainda não verificou se a chave realmente pertence ao remetente.
+openpgp-sig-valid-verified = Esta mensagem inclui uma assinatura digital válida de uma chave verificada.
+openpgp-sig-valid-own-key = Esta mensagem inclui uma assinatura digital válida da sua chave pessoal.
+
+openpgp-sig-key-id = ID da chave do signatário: { $key }
+openpgp-sig-key-id-with-subkey-id = ID da chave do signatário: { $key } (ID da sub-chave: { $subkey }
+
+openpgp-enc-key-id = O ID da sua chave de desencriptação: { $key }
+openpgp-enc-key-with-subkey-id = O ID da sua chave de desencriptação: { $key } (ID da sub-chave: { $subkey })
+
+openpgp-unknown-key-id = Chave desconhecida
+
+openpgp-other-enc-additional-key-ids = Adicionalmente, a mensagem foi encriptada para os proprietários das seguintes chaves:
+openpgp-other-enc-all-key-ids = A mensagem foi encriptada para os proprietários das seguintes chaves:
+
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/oneRecipientStatus.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/oneRecipientStatus.ftl
new file mode 100644
index 0000000000..009b56a691
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/oneRecipientStatus.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/.
+
+openpgp-one-recipient-status-title =
+ .title = Segurança OpenPGP para mensagens
+openpgp-one-recipient-status-status =
+ .label = Estado
+openpgp-one-recipient-status-key-id =
+ .label = ID da chave
+openpgp-one-recipient-status-created-date =
+ .label = Criada
+openpgp-one-recipient-status-expires-date =
+ .label = Expira
+openpgp-one-recipient-status-open-details =
+ .label = Abrir os detalhes e editar a aceitação...
+openpgp-one-recipient-status-discover =
+ .label = Descobrir a chave nova ou atualizada
+
+openpgp-one-recipient-status-instruction1 = Para enviar uma mensagem encriptada ponto a ponto para um destinatário, você precisa de obter a sua chave pública OpenPGP e marcar a mesma como aceite.
+openpgp-one-recipient-status-instruction2 = Para obter as respetivas chaves públicas, importe as mesmas do e-mail que estes lhe enviaram e que inclui as mesmas. Como alternativa, você pode tentar descobrir as respetivas chaves públicas num diretório.
+
+openpgp-key-own = Aceite (chave pessoal)
+openpgp-key-secret-not-personal = Não utilizável
+openpgp-key-verified = Aceite (verificada)
+openpgp-key-unverified = Aceite (não verificada)
+openpgp-key-undecided = Não aceite (indeciso)
+openpgp-key-rejected = Não aceite (rejeitada)
+
+openpgp-intro = Chaves públicas disponíveis para { $key }
+
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/openpgp-frontend.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/openpgp-frontend.ftl
new file mode 100644
index 0000000000..bb07ceb4a9
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/openpgp-frontend.ftl
@@ -0,0 +1,63 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+openpgp-manage-keys-openpgp-cmd =
+ .label = Gestor de chaves OpenPGP
+ .accesskey = O
+
+openpgp-ctx-decrypt-open =
+ .label = Desencriptar e abrir
+ .accesskey = D
+openpgp-ctx-decrypt-save =
+ .label = Desencriptar e guardar como…
+ .accesskey = c
+openpgp-ctx-import-key =
+ .label = Importar chave OpenPGP
+ .accesskey = I
+openpgp-ctx-verify-att =
+ .label = Verificar assinatura
+ .accesskey = V
+
+openpgp-has-sender-key = Esta mensagem afirma conter a chave pública OpenPGP do remetente.
+openpgp-be-careful-new-key = Aviso: A nova chave pública do OpenPGP nesta mensagem difere das chaves públicas que você aceitou anteriormente para { $email }.
+
+openpgp-import-sender-key =
+ .label = Importar…
+
+openpgp-search-keys-openpgp =
+ .label = Descobrir a chave OpenPGP
+
+openpgp-missing-signature-key = Esta mensagem foi assinada com uma chave que você ainda não tem.
+
+openpgp-search-signature-key =
+ .label = Descobrir…
+
+# Don't translate the terms "OpenPGP" and "MS-Exchange"
+openpgp-broken-exchange-opened = Esta é uma mensagem OpenPGP que foi aparentemente corrompida pelo MS-Exchange e não pode ser reparada porque foi aberta a partir de um ficheiro local. Copie a mensagem para uma pasta de correio para tentar uma reparação automática.
+openpgp-broken-exchange-info = Esta é uma mensagem OpenPGP que, aparentemente, foi corrompida pelo MS-Exchange. Se o conteúdo da mensagem não for apresentado tal como expectável, pode tentar uma reparação automática.
+openpgp-broken-exchange-repair =
+ .label = Reparar a mensagem
+openpgp-broken-exchange-wait = Por favor, aguarde...
+
+openpgp-cannot-decrypt-because-mdc =
+ Esta é uma mensagem encriptada que utiliza um mecanismo antigo e vulnerável.
+ A mesma pode ter sido modificada durante a comunicação, com a intenção de roubar o respetivo conteúdo.
+ Para evitar este risco, o conteúdo não é mostrado.
+
+openpgp-cannot-decrypt-because-missing-key = A chave secreta necessária para desencriptar esta mensagem não está disponível.
+
+openpgp-partially-signed =
+ Apenas um subconjunto desta mensagem foi assinado digitalmente utilizando o OpenPGP.
+ Se clicar no botão de verificação, as partes desprotegidas serão ocultadas e será mostrado o estado da assinatura digital.
+
+openpgp-partially-encrypted =
+ Apenas um subconjunto desta mensagem foi encriptado com recurso ao OpenPGP.
+ As partes legíveis da mensagem que já estão a ser mostradas não foram encriptadas.
+ Se clicar no botão desencriptar, será mostrado o conteúdo das partes encriptadas.
+
+openpgp-reminder-partial-display = Lembrete: a mensagem apresentada abaixo é apenas um subconjunto da mensagem original.
+
+openpgp-partial-verify-button = Verificar
+openpgp-partial-decrypt-button = Desencriptar
+
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/openpgp.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/openpgp.ftl
new file mode 100644
index 0000000000..2a0d1e8dec
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/openpgp/openpgp.ftl
@@ -0,0 +1,676 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+e2e-intro-description = Para enviar mensagens encriptadas ou assinadas digitalmente, tem de configurar uma tecnologia de encriptação, OpenPGP ou S/MIME.
+e2e-intro-description-more = Selecione a sua chave pessoal para ativar a utilização do OpenPGP, ou o seu certificado pessoal para ativar a utilização do S/MIME. Para uma chave ou certificado pessoal, você possui a respetiva chave secreta.
+e2e-signing-description = Uma assinatura digital permite que os destinatários verifiquem que a mensagem foi enviada por si e se o seu conteúdo não foi alterado. As mensagens encriptadas são assinadas por predefinição
+openpgp-key-expiry-label =
+ .label = Validade
+openpgp-key-id-label =
+ .label = ID da chave
+openpgp-cannot-change-expiry = Esta é uma chave com uma estrutura complexa. Não é possível alterar a respetiva data de validade.
+openpgp-key-man-title =
+ .title = Gestor de chaves OpenPGP
+openpgp-key-man-dialog-title = Gestor de chaves OpenPGP
+openpgp-key-man-generate =
+ .label = Novo par de chaves
+ .accesskey = v
+openpgp-key-man-gen-revoke =
+ .label = Certificado de revogação
+ .accesskey = r
+openpgp-key-man-ctx-gen-revoke-label =
+ .label = Gerar e guardar certificado de revogação
+openpgp-key-man-file-menu =
+ .label = Ficheiro
+ .accesskey = F
+openpgp-key-man-edit-menu =
+ .label = Editar
+ .accesskey = E
+openpgp-key-man-view-menu =
+ .label = Ver
+ .accesskey = V
+openpgp-key-man-generate-menu =
+ .label = Gerar
+ .accesskey = G
+openpgp-key-man-keyserver-menu =
+ .label = Servidor de chaves
+ .accesskey = v
+openpgp-key-man-import-public-from-file =
+ .label = Importar chave(s) pública(s) do ficheiro
+ .accesskey = I
+openpgp-key-man-import-secret-from-file =
+ .label = Importar chave(s) secreta(s) do ficheiro
+openpgp-key-man-import-sig-from-file =
+ .label = Importar revogações do ficheiro
+openpgp-key-man-import-from-clipbrd =
+ .label = Importar chave(s) da área de transferência
+ .accesskey = I
+openpgp-key-man-import-from-url =
+ .label = Importar chave(s) do endereço
+ .accesskey = d
+openpgp-key-man-export-to-file =
+ .label = Exportar chave(s) pública(s) para um ficheiro
+ .accesskey = E
+openpgp-key-man-send-keys =
+ .label = Enviar chave(s) pública(s) por e-mail
+ .accesskey = v
+openpgp-key-man-backup-secret-keys =
+ .label = Fazer uma cópia da(s) chave(s) secreta(s) para um ficheiro
+ .accesskey = p
+openpgp-key-man-discover-cmd =
+ .label = Descobrir chaves na Internet
+ .accesskey = D
+openpgp-key-man-discover-prompt = Para descobrir chaves OpenPGP na Internet, em servidores de chaves ou utilizando o protocolo WKD, insira um endereço de e-mail ou um ID de chave.
+openpgp-key-man-discover-progress = A procurar…
+openpgp-key-copy-key =
+ .label = Copiar chave pública
+ .accesskey = C
+openpgp-key-export-key =
+ .label = Exportar chave pública para um ficheiro
+ .accesskey = E
+openpgp-key-backup-key =
+ .label = Fazer uma cópia da chave secreta para um ficheiro
+ .accesskey = p
+openpgp-key-send-key =
+ .label = Enviar chave pública por e-mail
+ .accesskey = v
+# Variables:
+# $count (Number) - Number of keys ids to copy.
+openpgp-key-man-copy-key-ids =
+ .label =
+ { $count ->
+ [one] Copiar o ID da chave para a área de transferências
+ *[other] Copiar os ID das chaves para a área de transferência
+ }
+ .accesskey = C
+# Variables:
+# $count (Number) - Number of fingerprints to copy.
+openpgp-key-man-copy-fprs =
+ .label =
+ { $count ->
+ [one] Copiar impressão digital para a área de transferência
+ *[other] Copiar impressões digitais para a área de transferência
+ }
+ .accesskey = d
+# Variables:
+# $count (Number) - Number of public keys to copy.
+openpgp-key-man-copy-to-clipboard =
+ .label =
+ { $count ->
+ [one] Copiar chave pública para a área de transferência
+ *[other] Copiar chaves públicas para a área de transferência
+ }
+ .accesskey = P
+openpgp-key-man-ctx-expor-to-file-label =
+ .label = Exportar chaves para um ficheiro
+openpgp-key-man-ctx-copy =
+ .label = Copiar
+ .accesskey = C
+# Variables:
+# $count (Number) - Number of fingerprints.
+openpgp-key-man-ctx-copy-fprs =
+ .label =
+ { $count ->
+ [one] Impressão digital
+ *[other] Impressões digitais
+ }
+ .accesskey = g
+# Variables:
+# $count (Number) - Number of key ids.
+openpgp-key-man-ctx-copy-key-ids =
+ .label =
+ { $count ->
+ [one] Identificador da chave
+ *[other] Identificadores das chaves
+ }
+ .accesskey = h
+# Variables:
+# $count (Number) - Number of public keys.
+openpgp-key-man-ctx-copy-public-keys =
+ .label =
+ { $count ->
+ [one] Chave pública
+ *[other] Chaves públicas
+ }
+ .accesskey = p
+openpgp-key-man-close =
+ .label = Fechar
+openpgp-key-man-reload =
+ .label = Recarregar cache de chaves
+ .accesskey = R
+openpgp-key-man-change-expiry =
+ .label = Alterar data de validade
+ .accesskey = e
+openpgp-key-man-del-key =
+ .label = Eliminar chave(s)
+ .accesskey = h
+openpgp-delete-key =
+ .label = Eliminar chave
+ .accesskey = m
+openpgp-key-man-revoke-key =
+ .label = Revogar chave
+ .accesskey = R
+openpgp-key-man-key-props =
+ .label = Propriedades da chave
+ .accesskey = h
+openpgp-key-man-key-more =
+ .label = Mais
+ .accesskey = M
+openpgp-key-man-view-photo =
+ .label = ID da fotografia
+ .accesskey = f
+openpgp-key-man-ctx-view-photo-label =
+ .label = Ver ID da fotografia
+openpgp-key-man-show-invalid-keys =
+ .label = Mostrar chaves inválidas
+ .accesskey = v
+openpgp-key-man-show-others-keys =
+ .label = Mostrar chaves de outras pessoas
+ .accesskey = o
+openpgp-key-man-user-id-label =
+ .label = Nome
+openpgp-key-man-fingerprint-label =
+ .label = Identificador digital
+openpgp-key-man-select-all =
+ .label = Selecionar todas as chaves
+ .accesskey = a
+openpgp-key-man-empty-tree-tooltip =
+ .label = Insira os termos de pesquisa na caixa acima
+openpgp-key-man-nothing-found-tooltip =
+ .label = Nenhuma chave corresponde aos seus termos de pesquisa
+openpgp-key-man-please-wait-tooltip =
+ .label = Aguarde enquanto as chaves estão a ser carregadas...
+openpgp-key-man-filter-label =
+ .placeholder = Pesquisar por chaves
+openpgp-key-man-select-all-key =
+ .key = T
+openpgp-key-man-key-details-key =
+ .key = l
+openpgp-key-details-signatures-tab =
+ .label = Certificações
+openpgp-key-details-structure-tab =
+ .label = Estrutura
+openpgp-key-details-uid-certified-col =
+ .label = ID de utilizador / certificado por
+openpgp-key-details-id-label =
+ .label = ID
+openpgp-key-details-key-type-label = Tipo
+openpgp-key-details-key-part-label =
+ .label = Parte da chave
+openpgp-key-details-algorithm-label =
+ .label = Algoritmo
+openpgp-key-details-size-label =
+ .label = Tamanho
+openpgp-key-details-created-label =
+ .label = Criada
+openpgp-key-details-created-header = Criada
+openpgp-key-details-expiry-label =
+ .label = Validade
+openpgp-key-details-expiry-header = Validade
+openpgp-key-details-usage-label =
+ .label = Utilização
+openpgp-key-details-fingerprint-label = Identificador digital
+openpgp-key-details-sel-action =
+ .label = Selecione a ação…
+ .accesskey = S
+openpgp-card-details-close-window-label =
+ .buttonlabelaccept = Fechar
+openpgp-acceptance-label =
+ .label = A sua aceitação
+openpgp-acceptance-rejected-label =
+ .label = Não, rejeitar esta chave.
+openpgp-acceptance-undecided-label =
+ .label = Ainda não, talvez mais tarde.
+openpgp-acceptance-unverified-label =
+ .label = Sim, mas não verifiquei se é a chave correta.
+openpgp-acceptance-verified-label =
+ .label = Sim, verifiquei pessoalmente que esta chave tem a identificação digital correta.
+key-accept-personal =
+ Para esta chave, você tem a parte pública e a parte secreta. Você pode utilizar a mesma como uma chave pessoal.
+ Se esta chave lhe foi atribuída por outra pessoa, não a utilize como uma chave pessoal.
+openpgp-personal-no-label =
+ .label = Não, não utilizar como a minha chave pessoal.
+openpgp-personal-yes-label =
+ .label = Sim, tratar esta chave como uma chave pessoal.
+openpgp-copy-cmd-label =
+ .label = Copiar
+
+## e2e encryption settings
+
+# $key (String) - the currently selected OpenPGP key
+openpgp-selection-status-error = A sua configuração atual utiliza a chave <b>{ $key }</b>, que expirou.
+openpgp-add-key-button =
+ .label = Adicionar chave...
+ .accesskey = A
+e2e-learn-more = Saber mais
+openpgp-keygen-success = Chave OpenPGP criada com sucesso!
+openpgp-keygen-import-success = Chaves OpenPGP importadas com sucesso!
+openpgp-keygen-external-success = ID da chave GnuPG externa guardada!
+
+## OpenPGP Key selection area
+
+openpgp-radio-none =
+ .label = Nenhuma
+openpgp-radio-none-desc = Não utilizar o OpenPGP para esta identidade.
+# $date (String) - the future expiration date of when the OpenPGP key will expire
+openpgp-radio-key-expires = Expira a: { $date }
+# $date (String) - the past expiration date of when the OpenPGP key expired
+openpgp-radio-key-expired = Expirou a: { $date }
+openpgp-key-expand-section =
+ .tooltiptext = Mais informação
+openpgp-key-revoke-title = Revogar chave
+openpgp-key-edit-title = Alterar chave OpenPGP
+openpgp-key-edit-date-title = Prolongar data de validade
+openpgp-manager-description = Utilizar o gestor de chaves OpenPGP para visualizar e gerir as chaves públicas dos seus correspondentes e todas as outras chaves não listadas acima.
+openpgp-manager-button =
+ .label = Gestor de chaves OpenPGP
+ .accesskey = h
+openpgp-key-remove-external =
+ .label = Remover ID de chave externa
+ .accesskey = e
+key-external-label = Chave GnuPG externa
+
+## Strings in keyDetailsDlg.xhtml
+
+key-type-public = chave pública
+key-type-primary = chave primária
+key-type-subkey = sub-chave
+key-type-pair = par de chaves (chave secreta e chave pública)
+key-expiry-never = Nunca
+key-usage-encrypt = Encriptar
+key-usage-sign = Assinar
+key-usage-certify = Certificar
+key-usage-authentication = Autenticar
+key-does-not-expire = A chave não expira
+# Variables:
+# $keyExpiry (String) - Date the key expired on.
+key-expired-date = A chave expirou a { $keyExpiry }
+key-expired-simple = A chave expirou
+key-revoked-simple = A chave foi revogada
+key-do-you-accept = Aceita esta chave para validar assinaturas digitais e para encriptar mensagens?
+
+## Strings enigmailMsgComposeOverlay.js
+
+# Variables:
+# $problem (String) - Error message from key usability check.
+cannot-use-own-key-because = Não foi possível enviar a mensagem porque existe um problema com a sua chave pessoal. { $problem }
+window-locked = A janela de composição está bloqueada; envio cancelado
+
+## Strings in keyserver.jsm
+
+keyserver-error-aborted = Abortado
+keyserver-error-unknown = Ocorreu um erro desconhecido
+keyserver-error-server-error = O servidor de chaves reportou um erro.
+keyserver-error-import-error = A importação da chave transferida falhou.
+keyserver-error-unavailable = O servidor de chaves não está disponível.
+keyserver-error-security-error = O servidor de chaves não suporta acessos encriptados.
+keyserver-error-certificate-error = O certificado do servidor de chaves não é válido.
+keyserver-error-unsupported = O servidor de chaves não é suportado.
+
+## Strings in mimeWkdHandler.jsm
+
+wkd-message-body-req =
+ O seu fornecedor de e-mail processou o seu pedido para enviar a sua chave pública para o OpenPGP Web Key Directory.
+ Por favor, confirme para concluir a publicação da sua chave pública.
+wkd-message-body-process =
+ Este é um e-mail relacionado com o processamento automático do envio da sua chave pública para o OpenPGP Web Key Directory.
+ Não precisa realizar qualquer ação manual neste momento.
+
+## Strings in persistentCrypto.jsm
+
+# Variables:
+# $subject (String) - Subject of the message.
+converter-decrypt-body-failed =
+ Não foi possível desencriptar a mensagem com assunto
+ { $subject }.
+ Quer tentar novamente com uma frase de acesso diferente ou deseja ignorar a mensagem?
+
+## Strings filters.jsm
+
+filter-folder-required = Tem de escolher uma pasta de destino.
+filter-decrypt-move-warn-experimental =
+ Aviso - a ação do filtro "Desencriptar de forma permanente" pode levar à destruição de mensagens.
+ Recomendamos fortemente que primeiro experimente o filtro "Criar cópia desencriptada", teste cuidadosamente o resultado e só comece a utilizar este filtro quando estiver satisfeito com o resultado.
+filter-term-pgpencrypted-label = Encriptado com o OpenPGP
+filter-key-required = Deve selecionar uma chave do destinatário.
+# Variables:
+# $desc (String) - Email address to look for a key of.
+filter-key-not-found = Não foi possível encontrar uma chave de encriptação para '{ $desc }'.
+# Variables:
+# $desc (String) - The ID of a secret key that is required to read the email after the user executes the current action.
+filter-warn-key-not-secret =
+ Aviso - a ação do filtro "Encriptar para a chave" substitui os destinatários.
+ Se não tiver a chave secreta para '{ $desc }', deixará de conseguir ler os e-mails.
+
+## Strings filtersWrapper.jsm
+
+filter-decrypt-move-label = Desencriptar de forma permanente (OpenPGP)
+filter-decrypt-copy-label = Criar uma cópia desencriptada (OpenPGP)
+filter-encrypt-label = Encriptar para a chave (OpenPGP)
+
+## Strings in enigmailKeyImportInfo.js
+
+import-info-title =
+ .title = Sucesso! Chaves importadas
+import-info-bits = Bits
+import-info-created = Criada
+import-info-fpr = Identificador digital
+import-info-details = Ver detalhes e gerir a aceitação da chave
+import-info-no-keys = Sem chaves importadas.
+
+## Strings in enigmailKeyManager.js
+
+import-from-clip = Pretende importar algumas chaves da área de transferência?
+import-from-url = Transferir a chave pública deste endereço:
+copy-to-clipbrd-failed = Não foi possível copiar a(s) chave(s) selecionada(s) para a área de transferência.
+copy-to-clipbrd-ok = Chave(s) copiada(s) para a área de transferência
+# Variables:
+# $userId (String) - User id of the key.
+delete-secret-key =
+ AVISO: Você está prestes a eliminar uma chave secreta!
+
+ Se excluir a sua chave secreta, deixará de poder desencriptar qualquer mensagem encriptada para esta chave, nem a poderá revogar.
+
+ Você quer mesmo eliminar AMBAS, a chave secreta e a chave pública
+ '{ $userId }'?
+delete-mix =
+ AVISO: Você está prestes a eliminar as chaves secretas!
+ Se excluir a sua chave secreta, deixará de poder desencriptar qualquer mensagem encriptada para esta chave.
+ Tem certeza que pretende eliminar AMBAS, as chaves secretas e públicas selecionadas?
+# Variables:
+# $userId (String) - User id of the key.
+delete-pub-key =
+ Pretende eliminar a chave pública
+ '{ $userId }'?
+delete-selected-pub-key = Pretende eliminar as chaves públicas?
+refresh-all-question = Não selecionou qualquer chave. Gostaria de atualizar TODAS as chaves?
+key-man-button-export-sec-key = Exportar chaves &secretas
+key-man-button-export-pub-key = Exportar apenas chaves &públicas
+key-man-button-refresh-all = Atuali&zar todas as chaves
+key-man-loading-keys = A carregar chaves, por favor aguarde...
+ascii-armor-file = ASCII Armored Files (*.asc)
+no-key-selected = Deve selecionar pelo menos uma chave para realizar a operação selecionada
+export-to-file = Exportar chave pública para um ficheiro
+export-keypair-to-file = Exportar chave pública e chave privada para um ficheiro
+export-secret-key = Pretende incluir a chave secreta no ficheiro de chaves OpenPGP guardado?
+save-keys-ok = As chaves foram guardadas com sucesso
+save-keys-failed = Falha ao guardar as chaves
+default-pub-key-filename = chaves-publicas-exportadas
+default-pub-sec-key-filename = cópia-das-chaves-secretas
+refresh-key-warn = Aviso: dependendo do número de chaves e da velocidade da ligação, a atualização de todas as chaves pode ser um processo bastante demorado!
+preview-failed = Não foi possível ler o ficheiro da chave pública.
+# Variables:
+# $reason (String) - Error description.
+general-error = Erro: { $reason }
+dlg-button-delete = E&liminar
+
+## Account settings export output
+
+openpgp-export-public-success = <b>Chave pública exportada com sucesso!</b>
+openpgp-export-public-fail = <b>Não foi possível exportar a chave pública selecionada!</b>
+openpgp-export-secret-success = <b>Chave secreta exportada com sucesso!</b>
+openpgp-export-secret-fail = <b>Não foi possível exportar a chave secreta selecionada!</b>
+
+## Strings in keyObj.jsm
+## Variables:
+## $userId (String) - The name and/or email address that is mentioned in the key's information.
+## $keyId (String) - Key id for the key entry.
+
+key-ring-pub-key-revoked = A chave { $userId } (ID da chave { $keyId }) foi revogada.
+key-ring-pub-key-expired = A chave { $userId } (ID da chave { $keyId }) expirou.
+key-ring-no-secret-key = Parece que você não tem a chave secreta para { $userId } (ID da chave { $keyId }) no seu chaveiro; você não pode utilizar a chave para assinar.
+key-ring-pub-key-not-for-signing = A chave { $userId } (ID da chave { $keyId }) não pode ser utilizada para assinar.
+key-ring-pub-key-not-for-encryption = A chave { $userId } (ID da chave { $keyId }) não pode ser utilizada para encriptar.
+key-ring-sign-sub-keys-revoked = Todas as sub-chaves de assinatura da chave { $userId } (ID da chave { $keyId }) estão revogadas.
+key-ring-sign-sub-keys-expired = Todas as sub-chaves de assinatura da chave { $userId } (ID da chave { $keyId }) estão expiradas.
+key-ring-enc-sub-keys-revoked = Todas as sub-chaves de encriptação da chave { $userId } (ID da chave { $keyId }) estão revogadas.
+key-ring-enc-sub-keys-expired = Todas as sub-chaves de encriptação da chave { $userId } (ID da chave { $keyId }) estão expiradas.
+
+## Strings in gnupg-keylist.jsm
+
+keyring-photo = Fotografia
+user-att-photo = Atributo do utilizador (imagem JPEG)
+
+## Strings in key.jsm
+
+already-revoked = Esta chave já foi revogada.
+# $identity (String) - the id and associated user identity of the key being revoked
+revoke-key-question =
+ Você está prestes a revogar a chave '{ $identity }'.
+ Deixará de poder assinar utilizando esta chave e, uma vez distribuída, outros deixarão de poder encriptar com esta chave. Ainda pode utilizar a chave para desencriptar mensagens antigas.
+ Pretende continuar?
+# $keyId (String) - the id of the key being revoked
+revoke-key-not-present =
+ Não tem nenhuma chave (0x{ $keyId }) que corresponda a este certificado de revogação!
+ Se perdeu a sua chave, deve importar a mesma (por exemplo, a partir de um servidor de chaves) antes de importar o certificado de revogação!
+# $keyId (String) - the id of the key being revoked
+revoke-key-already-revoked = A chave 0x{ $keyId } já foi revogada.
+key-man-button-revoke-key = &Revogar chave
+openpgp-key-revoke-success = A chave foi revogada com sucesso.
+after-revoke-info =
+ A chave foi revogada.
+ Partilhe novamente esta chave pública, enviando a mesma por e-mail ou para servidores de chaves, para que outros saibam que você revogou a sua chave.
+ Assim que o software utilizado por outros tiver conhecimento da revogação, este deixará de utilizar a sua chave antiga.
+ Se você estiver a utilizar uma nova chave para o mesmo endereço de e-mail e anexar a nova chave pública aos e-mails que envia, as informações sobre a chave antiga revogada serão automaticamente incluídas.
+
+## Strings in keyRing.jsm & decryption.jsm
+
+key-man-button-import = &Importar
+delete-key-title = Eliminar a chave OpenPGP
+delete-external-key-title = Remover a chave externa do GnuPG
+delete-external-key-description = Pretende remover este ID de chave externa do GnuPG?
+key-in-use-title = Chave OpenPGP está a ser utilizada
+delete-key-in-use-description = Não foi possível continuar! A chave que selecionou para ser removida está a ser utilizada por esta identidade. Selecione uma chave diferente ou nenhuma e tente novamente.
+revoke-key-in-use-description = Não foi possível continuar! A chave que selecionou para ser revogada está a ser utilizada por esta identidade. Selecione uma chave diferente ou nenhuma e tente novamente.
+
+## Strings used in errorHandling.jsm
+
+# Variables:
+# $keySpec (String) - Email address.
+key-error-key-spec-not-found = Não foi possível corresponder o endereço de e-mail '{ $keySpec }' a uma chave do seu chaveiro.
+# $keySpec (String) - Key id.
+key-error-key-id-not-found = A ID da chave configurada '{ $keySpec }' não foi encontrada no seu chaveiro.
+# $keySpec (String) - Key id.
+key-error-not-accepted-as-personal = Não confirmou que a chave com ID '{ $keySpec }' é a sua chave pessoal.
+
+## Strings used in enigmailKeyManager.js & windows.jsm
+
+need-online = A função que selecionou não está disponível no modo desligado. Ligue-se à Internet e tente novamente.
+
+## Strings used in keyRing.jsm & keyLookupHelper.jsm
+
+
+## Strings used in keyRing.jsm & GnuPGCryptoAPI.jsm
+
+fail-key-extract = Erro - o comando de extração da chave falhou
+
+## Strings used in keyRing.jsm
+
+fail-cancel = Erro - a receção da chave foi cancelada pelo utilizador
+not-first-block = Erro - o primeiro bloco OpenPGP não é o bloco da chave pública
+import-key-confirm = Importar chave(s) pública(s) incorporada(s) na mensagem?
+fail-key-import = Erro - a importação da chave falhou
+# Variables:
+# $output (String) - File that writing was attempted to.
+file-write-failed = Falha ao escrever no ficheiro { $output }
+no-pgp-block = Erro - não foi encontrado nenhum bloco de dados OpenPGP blindado válido
+confirm-permissive-import = A importação falhou. A chave que está a tentar importar pode estar corrompida ou a utilizar atributos desconhecidos. Gostaria de tentar importar as partes corretas? Isto pode resultar na importação de chaves incompletas e inutilizáveis.
+
+## Strings used in trust.jsm
+
+key-valid-unknown = desconhecida
+key-valid-invalid = inválida
+key-valid-disabled = desativada
+key-valid-revoked = revogada
+key-valid-expired = expirada
+key-trust-untrusted = não confiável
+key-trust-marginal = marginal
+key-trust-full = confiável
+key-trust-ultimate = totalmente
+key-trust-group = (grupo)
+
+## Strings used in commonWorkflows.js
+
+import-key-file = Importar ficheiro de chave OpenPGP
+import-rev-file = Importar ficheiro de revogação OpenPGP
+gnupg-file = Ficheiros GnuPG
+import-keys-failed = A importação das chaves falhou
+file-to-big-to-import = Este ficheiro é demasiado grande. Não importe um grande conjunto de chaves de uma vez.
+
+## Strings used in enigmailKeygen.js
+
+save-revoke-cert-as = Criar e guardar um certificado de revogação
+revoke-cert-ok = O certificado de revogação foi criado com sucesso. Pode utilizar o mesmo para invalidar a sua chave pública, por exemplo, no caso de perder a sua chave secreta.
+revoke-cert-failed = O certificado de revogação não pôde ser criado.
+gen-going = Geração de chave já em curso!
+keygen-missing-user-name = Não existe nenhum nome especificado para a conta/identidade. Por favor, introduza um valor no campo "O seu nome" nas definições da conta.
+expiry-too-short = A sua chave deve ser válida durante, pelo menos, um dia.
+expiry-too-long = Não pode criar uma chave que expire em mais de 100 anos.
+# Variables:
+# $id (String) - Name and/or email address to generate keys for.
+key-confirm = Gerar chave pública e secreta para '{ $id }'?
+key-man-button-generate-key = &Gerar chave
+key-abort = Abortar a geração da chave?
+key-man-button-generate-key-abort = &Abortar a geração da chave
+key-man-button-generate-key-continue = &Continuar a geração da chave
+
+## Strings used in enigmailMessengerOverlay.js
+
+failed-decrypt = Erro - a desencriptação falhou
+fix-broken-exchange-msg-failed = Falha ao reparar a mensagem.
+# Variables:
+# $attachment (String) - File name of the signature file.
+attachment-no-match-from-signature = Não foi possível corresponder o ficheiro de assinatura '{ $attachment }' com um anexo
+# Variables:
+# $attachment (String) - File name of the attachment.
+attachment-no-match-to-signature = Não foi possível corresponder o anexo '{ $attachment }' com um ficheiro de assinatura
+# Variables:
+# $attachment (String) - File name of the attachment
+signature-verified-ok = A assinatura para o anexo { $attachment } foi confirmada com sucesso
+# Variables:
+# $attachment (String) - File name of the attachment
+signature-verify-failed = Não foi possível confirmar a assinatura para o anexo { $attachment }
+decrypt-ok-no-sig =
+ Aviso
+ A desencriptação foi bem-sucedida, mas a assinatura não pôde ser corretamente confirmada
+msg-ovl-button-cont-anyway = &Continuar ainda assim
+enig-content-note = *Os anexos desta mensagem não foram assinados nem encriptados*
+
+## Strings used in enigmailMsgComposeOverlay.js
+
+msg-compose-button-send = &Enviar mensagem
+msg-compose-details-button-label = Detalhes…
+msg-compose-details-button-access-key = D
+send-aborted = Operação de envio cancelada.
+# Variables:
+# $key (String) - Key id.
+key-not-trusted = Não existe confiança suficiente para a chave '{ $key }'
+# Variables:
+# $key (String) - Key id.
+key-not-found = A chave '{ $key }' não foi encontrada
+# Variables:
+# $key (String) - Key id.
+key-revoked = A chave '{ $key }' foi revogada
+# Variables:
+# $key (String) - Key id.
+key-expired = A chave '{ $key }' expirou
+msg-compose-internal-error = Ocorreu um erro interno.
+keys-to-export = Selecionar as chaves OpenPGP a inserir
+msg-compose-partially-encrypted-inlinePGP =
+ A mensagem à qual está a responder continha partes encriptadas e não encriptadas. Se, originalmente, o remetente não foi capaz de desencriptar algumas partes da mensagem, você pode estar divulgar informações confidenciais que o remetente não foi capaz de desencriptar originalmente.
+ Considere remover todo o texto citado da sua resposta para este remetente.
+msg-compose-cannot-save-draft = Erro ao guardar o rascunho
+msg-compose-partially-encrypted-short = Tenha cuidado com a divulgação de informação sensível - e-mail parcialmente encriptado.
+quoted-printable-warn =
+ Ativou a codificação 'quoted-printable' para enviar mensagens. Isto pode resultar na incorreta desencriptação e/ou confirmação da sua mensagem.
+ Deseja desativar o envio de mensagens 'quoted-printable' agora?
+# Variables:
+# $width (Number) - Number of characters per line.
+minimal-line-wrapping =
+ Você definiu a quebra de linha para { $width } caracteres. Para uma correta encriptação e/ou assinatura, este valor deve ser de, pelo menos, 68.
+ Deseja alterar a quebra de linha para 68 caracteres agora?
+sending-news =
+ A operação de envio encriptado foi cancelada.
+ Esta mensagem não pode ser encriptada porque existem destinatários de grupos de notícias. Reenvie a mensagem sem encriptação.
+send-to-news-warning =
+ Aviso: você está prestes a enviar um e-mail encriptado para um grupo de notícias.
+ Isto é desencorajado porque só faz sentido se todos os membros do grupo puderem desencriptar a mensagem, ou seja, a mensagem precisa ser encriptada com as chaves de todos os participantes do grupo. Envie esta mensagem apenas se souber exatamente o que está a fazer.
+ Continuar?
+save-attachment-header = Guardar anexo desencriptado
+possibly-pgp-mime = Possível mensagem encriptada ou assinada por PGP/MIME; utilize a função 'Desencriptar/Verificar' para verificar
+# Variables:
+# $key (String) - Sender email address.
+cannot-send-sig-because-no-own-key = Não é possível assinar digitalmente esta mensagem, porque ainda não configurou a encriptação ponto a ponto para <{ $key }>
+# Variables:
+# $key (String) - Sender email address.
+cannot-send-enc-because-no-own-key = Não é possível enviar esta mensagem encriptada, porque ainda não configurou a encriptação ponto a ponto para <{ $key }>
+
+## Strings used in decryption.jsm
+
+# Variables:
+# $key (String) - Newline separated list of a tab character then name and/or email address mentioned in the key followed by the key id in parenthesis.
+do-import-multiple =
+ Importar as seguintes chaves?
+ { $key }
+# Variables:
+# $name (String) - Name and/or email address mentioned in the key.
+# $id (String) - Key id of the key.
+do-import-one = Importar { $name } ({ $id })?
+cant-import = Erro ao importar a chave pública
+unverified-reply = Parte da mensagem (resposta) indentada foi, provavelmente, modificada
+key-in-message-body = Foi encontrada uma chave no corpo da mensagem. Clique em 'Importar chave' para importar a chave
+sig-mismatch = Erro - erro de correspondência de assinatura
+invalid-email = Erro - endereço(s) de e-mail inválido(s)
+# Variables:
+# $name (String) - File name of the attachment.
+attachment-pgp-key =
+ O anexo '{ $name }' que está abrir parece ser um ficheiro de chave OpenPGP.
+ Clique em 'Importar' para importar as chaves contidas ou em 'Visualizar' para visualizar o conteúdo do ficheiro numa janela do navegador
+dlg-button-view = &Ver
+
+## Strings used in enigmailMsgHdrViewOverlay.js
+
+decrypted-msg-with-format-error = Mensagem desencriptada (o formato de e-mail PGP corrompido foi restaurado, provavelmente devido a um servidor Exchange antigo, pelo que o resultado pode não ser perfeito para ser lido)
+
+## Strings used in encryption.jsm
+
+not-required = Erro - não é necessária encriptação
+
+## Strings used in windows.jsm
+
+no-photo-available = Nenhuma foto disponível
+# Variables:
+# $photo (String) - Path of the photo in the key.
+error-photo-path-not-readable = O caminho da foto '{ $photo }' não é legível
+debug-log-title = Registo de depuração do OpenPGP
+
+## Strings used in dialog.jsm
+
+# This string is followed by either repeat-suffix-singular if $count is 1 or else
+# by repeat-suffix-plural.
+# Variables:
+# $count (Number) - Number of times the alert will repeat.
+repeat-prefix = Este alerta será repetido { $count } vezes
+repeat-suffix-singular = mais tempo.
+repeat-suffix-plural = mais vezes.
+no-repeat = Este alerta não será apresentado novamente.
+dlg-keep-setting = Memorizar a minha resposta e não questionar novamente
+dlg-button-ok = &OK
+dlg-button-close = &Fechar
+dlg-button-cancel = &Cancelar
+dlg-no-prompt = Não voltar a mostrar esta janela
+enig-prompt = Questão OpenPGP
+enig-confirm = Confirmação OpenPGP
+enig-alert = Alerta OpenPGP
+enig-info = Informação OpenPGP
+
+## Strings used in persistentCrypto.jsm
+
+dlg-button-retry = &Repetir
+dlg-button-skip = &Ignorar
+
+## Strings used in enigmailMsgBox.js
+
+enig-alert-title =
+ .title = Alerta do OpenPGP
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/add-finger.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/add-finger.ftl
new file mode 100644
index 0000000000..038288dcd8
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/add-finger.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/.
+
+# Variables:
+# $name (String) - name of a chat contact person
+# Do not translate 'OTR' (name of an encryption protocol)
+otr-add-finger-description = Digite o identificador da chave OTR para { $name }.
+
+otr-add-finger-fingerprint = Identificador:
+otr-add-finger-tooltip-error = Foi introduzido um caractere inválido. Apenas são permitidas letras ABCDEF e números
+
+otr-add-finger-input =
+ .placeholder = A chave de identificação OTR com 40 caracteres
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/am-im-otr.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/am-im-otr.ftl
new file mode 100644
index 0000000000..26e0273e5d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/am-im-otr.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/.
+
+account-encryption =
+ .label = Encriptação ponto a ponto
+account-otr-label = Mensagens fora de registo (OTR)
+otr-encryption-title = Encriptação confirmada
+otr-encryption-caption = Para permitir que outras pessoas confirmem a sua identidade em conversas OTR, partilhe o seu próprio identificador OTR utilizando um canal de comunicação externo (fora da banda).
+otr-fingerprint-label = O seu identificador digital:
+view-fingerprint-button =
+ .label = Gerir identificadores digitais de contactos
+ .accesskey = f
+otr-settings-title = Definições OTR
+otr-require-encryption-info =
+ Ao exigir encriptação ponto a ponto, as mensagens em conversas de um para um
+ não serão enviadas, a menos que possam ser encriptadas. As mensagens não encriptadas recebidas
+ não serão mostradas como parte da conversa normal e também não serão registadas.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/auth.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/auth.ftl
new file mode 100644
index 0000000000..02354b2dea
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/auth.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/.
+
+otr-auth =
+ .title = Confirmar a identidade do contacto
+ .buttonlabelaccept = Confirmar
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+auth-title = Confirmar a identidade de { $name }
+
+# Variables:
+# $own_name (String) - the user's own screen name
+auth-your-fp-value = Identificador digital para si, { $own_name }:
+
+# Variables:
+# $their_name (String) - the screen name of a chat contact
+auth-their-fp-value = Identificador digital para { $their_name }:
+
+auth-help = A confirmação da identidade de um contacto ajuda a garantir que a conversa seja realmente privada, tornando muito difícil para terceiros escutar ou manipular a conversa.
+
+auth-yes =
+ .label = Sim
+
+auth-no =
+ .label = Não
+
+auth-verified = Eu verifiquei que esta é, de facto, a impressão digital correta.
+
+auth-how = Como gostaria de confirmar a identidade do seu contacto?
+
+auth-question = Introduza uma pergunta:
+
+auth-answer = Introduza a resposta (diferencia maiúsculas de minúsculas):
+
+auth-secret = Introduza o segredo:
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/chat.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/chat.ftl
new file mode 100644
index 0000000000..b2025f1b7b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/chat.ftl
@@ -0,0 +1,19 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+state-label = Estado da encriptação:
+
+start-text = Iniciar uma conversa encriptada
+
+start-label =
+ .label = { start-text }
+
+start-tooltip =
+ .tooltiptext = { start-text }
+
+end-label =
+ .label = Terminar a conversa encriptada
+
+auth-label =
+ .label = Confirmar a identidade do seu contacto
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/finger-sync.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/finger-sync.ftl
new file mode 100644
index 0000000000..f7852af45c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/finger-sync.ftl
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+finger-yes = Confirmado
+finger-no = Não-confirmado
+
+finger-subset-title = Remover identificadores digitais
+finger-subset-message = Não foi possível remover pelo menos um identificador digital, porque a chave correspondente está atualmente a ser utilizada numa conversa ativa.
+
+finger-remove-all-title = Remover todos os identificadores digitais
+finger-remove-all-message = Tem certeza de que deseja remover todas os identificadores digitais vistos anteriormente? Todas as confirmações anteriores de identidade OTR serão perdidas.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/finger.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/finger.ftl
new file mode 100644
index 0000000000..4648c7c578
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/finger.ftl
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+finger-intro = Identificadores digitais das chaves OTR de conversas anteriores encriptadas ponto a ponto.
+
+finger-verified =
+ .label = Estado da confirmação
+finger-fingerprint =
+ .label = Identificador digital
+
+finger-remove =
+ .label = Remover selecionado
+
+finger-remove-all =
+ .label = Remover todos
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/otr.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/otr.ftl
new file mode 100644
index 0000000000..3ac82eff31
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/otr.ftl
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+error-enc = Ocorreu um erro ao encriptar a mensagem.
+
+error-unreadable = Transmitiu uma mensagem encriptada ilegível.
+error-malformed = Transmitiu uma mensagem de dados mal codificada.
+
+resent = [reenviar]
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+tlv-disconnected = { $name } terminou a conversa encriptada consigo; você deve fazer o mesmo.
+
+# Do not translate "Off-the-Record" and "OTR" which is the name of an encryption protocol
+# Make sure that this string does NOT contain any numbers, e.g. like "3".
+# Variables:
+# $name (String) - the screen name of a chat contact person
+query-msg = { $name } solicitou uma conversa encriptada Off-the-Record (OTR). No entanto, você não tem um plugin que suporte isto. Consulte https://en.wikipedia.org/wiki/Off-the-Record_Messaging para obter mais informações.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/otrUI.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/otrUI.ftl
new file mode 100644
index 0000000000..da55e6489e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/otr/otrUI.ftl
@@ -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/.
+
+start-label = Iniciar uma conversa encriptada
+refresh-label = Renovar a conversa encriptada
+auth-label = Confirmar a identidade do seu contacto
+reauth-label = Confirmar novamente a identidade do seu contacto
+
+auth-cancel = Cancelar
+
+auth-error = Ocorreu um erro ao confirmar a identidade do seu contacto.
+auth-success = A confirmação da identidade do seu contacto foi concluída com sucesso.
+auth-fail = Falha ao confirmar a identidade do seu contacto.
+auth-waiting = A aguardar que o seu contacto termine a confirmação…
+
+finger-verify = Confirmar
+
+# Do not translate 'OTR' (name of an encryption protocol)
+buddycontextmenu-label = Adicionar identificador OTR
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+alert-start = A tentar iniciar uma conversa encriptada com { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+alert-refresh = A tentar renovar uma conversa encriptada com { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+finger-unseen = A identidade de { $name } ainda não foi confirmada. A escuta casual não é possível, mas com algum esforço alguém pode ter acesso à conversa. Impeça a vigilância confirmando a identidade deste contacto.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+finger-seen = { $name } está a contactá-lo a partir de um computador não reconhecido. A escuta casual não é possível, mas com algum esforço alguém pode ter acesso à conversa. Impeça a vigilância confirmando a identidade deste contacto.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+state-unverified = A conversa atual é encriptada, mas não é privada, pois a identidade de { $name } ainda não foi confirmada.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+state-private = A identidade de { $name } foi verificada. A conversa atual é encriptada e privada.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+state-finished = { $name } terminou a conversa encriptada consigo; você deve fazer o mesmo.
+
+state-unverified-label = Não confirmado
+state-private-label = Privado
+state-finished-label = Concluído
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+verify-request = { $name } solicitou a confirmação da sua identidade.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+afterauth-private = Você confirmou a identidade de { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+afterauth-unverified = A identidade de { $name } não foi confirmada.
+
+# Do not translate 'OTR' (name of an encryption protocol)
+# Variables:
+# $error (String) - contains an error message that describes the cause of the failure
+otr-genkey-failed = Não foi possível gerar a chave OTR privada: { $error }
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/policies/aboutPolicies.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/policies/aboutPolicies.ftl
new file mode 100644
index 0000000000..65aedfb49f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/policies/aboutPolicies.ftl
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-policies-title = Políticas empresariais
+
+# 'Active' is used to describe the policies that are currently active
+active-policies-tab = Ativas
+errors-tab = Erros
+documentation-tab = Documentação
+
+no-specified-policies-message = O serviço de políticas empresariais está ativo, mas não existem políticas ativadas.
+inactive-message = O serviço de políticas empresariais está inativo.
+
+policy-name = Nome da política
+policy-value = Valor da política
+policy-errors = Erros de política
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/policies/policies-descriptions.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/policies/policies-descriptions.ftl
new file mode 100644
index 0000000000..82cafe3de5
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/policies/policies-descriptions.ftl
@@ -0,0 +1,94 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## The Enterprise Policies feature is aimed at system administrators
+## who want to deploy these settings across several Thunderbird installations
+## all at once. This is traditionally done through the Windows Group Policy
+## feature, but the system also supports other forms of deployment.
+## These are short descriptions for individual policies, to be displayed
+## in the documentation section in about:policies.
+
+policy-3rdparty = Defina as políticas que as WebExtensions podem aceder via chrome.storage.managed.
+policy-AppAutoUpdate = Ativar ou desativar as atualizações automáticas da aplicação.
+policy-AppUpdatePin = Impedir que o { -brand-short-name } seja atualizado além da versão especificada.
+policy-AppUpdateURL = Definir um endereço personalizado para a atualização da aplicação.
+policy-Authentication = Configurar autenticação integrada para sites que a suportem.
+policy-BackgroundAppUpdate2 = Ativar ou desativar o serviço de atualização em segundo plano.
+policy-BlockAboutAddons = Bloquear o acesso ao Gestor de extras (about:addons).
+policy-BlockAboutConfig = Bloquear o acesso à página about:config.
+policy-BlockAboutProfiles = Bloquear o acesso à página about:profiles.
+policy-BlockAboutSupport = Bloquear o acesso à página about:support.
+policy-CaptivePortal = Ativar ou desativar o suporte ao portal cativo.
+policy-CertificatesDescription = Adicionar certificados ou usar certificados internos.
+policy-Cookies = Permitir ou impedir que sites definam cookies.
+policy-DisableBuiltinPDFViewer = Desativar o PDF.js, o leitor de PDF incorporado no { -brand-short-name }.
+policy-DisabledCiphers = Desativar cifras.
+policy-DefaultDownloadDirectory = Definir a pasta de transferências predefinida.
+policy-DisableAppUpdate = Impedir que o { -brand-short-name } seja atualizado.
+policy-DisableDefaultClientAgent = Impedir que o agente do cliente predefinido execute qualquer ação. Aplicável apenas ao Windows; as outras plataformas não dispõem deste agente.
+policy-DisableDeveloperTools = Bloquear o acesso às ferramentas do programador.
+policy-DisableFeedbackCommands = Desativar comandos para enviar comentários a partir do menu de Ajuda (enviar feedback e reportar sites fraudulentos)
+policy-DisableForgetButton = Impedir o acesso ao botão Esquecer.
+policy-DisableFormHistory = Não guardar histórico de pesquisas ou de formulários.
+policy-DisableMasterPasswordCreation = Se verdadeiro, a palavra-passe mestra não pode ser criada.
+policy-DisablePasswordReveal = Impedir que as palavras-passe sejam reveladas nas credenciais guardadas.
+policy-DisableProfileImport = Desativar o comando do menu para importar dados de outra aplicação.
+policy-DisableSafeMode = Desativar a funcionalidade de reiniciar no Modo de segurança. Nota: o botão Shift para entrar no Modo de segurança apenas pode ser desativado no Windows com recurso a uma Política de grupo.
+policy-DisableSecurityBypass = Impedir o utilizador de contornar certos avisos de segurança.
+policy-DisableSystemAddonUpdate = Impedir o { -brand-short-name } de instalar e atualizar extras de sistema.
+policy-DisableTelemetry = Desativar a Telemetria.
+policy-DisplayMenuBar = Mostrar a Barra de menu por predefinição.
+policy-DNSOverHTTPS = Configurar DNS por HTTPS.
+policy-DontCheckDefaultClient = Desativar a verificação do cliente predefinido na inicialização.
+policy-DownloadDirectory = Definir e bloquear o diretório de transferências predefinido.
+# “lock” means that the user won’t be able to change this setting
+policy-EnableTrackingProtection = Ativar ou desativar o bloqueio de conteúdo e bloqueá-lo de forma opcional.
+# “lock” means that the user won’t be able to change this setting
+policy-EncryptedMediaExtensions = Ativar ou desativar as Extensões de multimédia encriptada e, opcionalmente, bloquear esta definição.
+# A “locked” extension can’t be disabled or removed by the user. This policy
+# takes 3 keys (“Install”, ”Uninstall”, ”Locked”), you can either keep them in
+# English or translate them as verbs.
+policy-Extensions = Instalar, desinstalar ou bloquear extensões. A opção Instalar utiliza endereços ou caminhos como parâmetros. As opções Desinstalar e Bloquear utilizam identificadores de extensões.
+policy-ExtensionSettings = Gerir todos os aspetos da instalação de extensões.
+policy-ExtensionUpdate = Ativar ou desativar atualizações automáticas de extensões.
+policy-Handlers = Configurar as aplicações operadoras predefinidas.
+policy-HardwareAcceleration = Se falso, desligar aceleração por hardware.
+policy-InstallAddonsPermission = Permitir a instalação de extras a determinados sites.
+policy-LegacyProfiles = Desativar a funcionalidade de forçar um perfil separado para cada instalação.
+
+## Do not translate "SameSite", it's the name of a cookie attribute.
+
+policy-LegacySameSiteCookieBehaviorEnabled = Ativar a definição legada de comportamento predefinido para a cookie SameSite.
+policy-LegacySameSiteCookieBehaviorEnabledForDomainList = Reverter para o comportamento legado de SameSite para as cookies nos sites especificados.
+
+##
+
+policy-LocalFileLinks = Permitir que determinados sites estabeleçam ligações a ficheiros locais.
+policy-ManualAppUpdateOnly = Permitir apenas atualizações manuais e não notificar o utilizador sobre atualizações.
+policy-NetworkPrediction = Ativar ou desativar a previsão de rede (pré-obtenção de DNS).
+policy-OfferToSaveLogins = Forçar a definição para permitir que { -brand-short-name } se ofereça para memorizar as credenciais e as palavras-passe guardadas. São aceites ambos os valores, "true" e "false".
+policy-OfferToSaveLoginsDefault = Definir o valor predefinido para permitir que o { -brand-short-name } sugira credenciais e palavras-passe guardadas. São aceites ambos os valores, true e false.
+policy-OverrideFirstRunPage = Substituir a página de primeira execução. Defina esta política para blank se pretende desativar a página de primeira execução.
+policy-OverridePostUpdatePage = Sobrepor a página "Novidades" após uma atualização. Defina esta política para blank se pretende desativar a página pós-atualização.
+policy-PasswordManagerEnabled = Ativar a opção de guardar as palavras-passe no gestor de palavras-passe.
+# PDF.js and PDF should not be translated
+policy-PDFjs = Desativar ou configurar o PDF.js, o visualizador integrado de PDF do { -brand-short-name }.
+policy-Permissions2 = Configurar as permissões para a câmara, microfone, localização, notificações e reprodução automática.
+policy-Preferences = Definir e bloquear o valor para um subconjunto de preferências.
+policy-PrimaryPassword = Exigir ou impedir a utilização de uma palavra-passe principal.
+policy-PromptForDownloadLocation = Perguntar onde guardar os ficheiros ao transferir.
+policy-Proxy = Configurar as definições de proxy.
+policy-RequestedLocales = Definir a lista de idiomas solicitados para a aplicação por ordem de preferência.
+policy-SanitizeOnShutdown2 = Limpar dados de navegação ao desligar.
+policy-SearchEngines = Configurar as definições do motor de pesquisa. Esta política apenas está disponível na versão de suporte estendido (Extended Support Release - ESR).
+policy-SearchSuggestEnabled = Ativar ou desativar sugestões de pesquisa.
+# For more information, see https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/PKCS11/Module_Installation
+policy-SecurityDevices = Instalar os módulos PKCS #11.
+policy-SSLVersionMax = Definir a versão máxima de SSL.
+policy-SSLVersionMin = Definir a versão mínima de SSL.
+policy-SupportMenu = Adicionar um item de menu de apoio personalizado ao menu de ajuda.
+policy-UserMessaging = Não mostrar determinadas mensagens ao utilizador.
+# “format” refers to the format used for the value of this policy.
+policy-WebsiteFilter = Impedir que sites sejam visitados. Consulte a documentação para mais detalhes sobre o formato.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/am-copies.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/messenger/preferences/am-im.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/am-im.ftl
new file mode 100644
index 0000000000..38017a559c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/am-im.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/.
+
+chat-autologin =
+ .label = Iniciar sessão ao iniciar
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/application-manager.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/application-manager.ftl
new file mode 100644
index 0000000000..def1c14e77
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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 = Remover
+ .accesskey = R
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/attachment-reminder.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/attachment-reminder.ftl
new file mode 100644
index 0000000000..09023dc9e5
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/attachment-reminder.ftl
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+attachment-reminder-window =
+ .title = Lembrete de palavras-chave de anexos
+attachment-reminder-dialog-title = Lembrete de palavras-chave de anexos
+attachment-reminder-label = O { -brand-short-name } irá avisar-lhe acerca de anexos em falta se estiver para enviar uma mensagem eletrónica que possua uma destas palavras-chave.
+keyword-new-button =
+ .label = Nova…
+ .accesskey = N
+keyword-edit-button =
+ .label = Editar…
+ .accesskey = E
+keyword-remove-button =
+ .label = Apagar
+ .accesskey = A
+new-keyword-title = Nova palavra-chave
+new-keyword-label = Palavra-chave:
+edit-keyword-title = Editar palavra-chave
+edit-keyword-label = Palavra-chave:
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/colors.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/colors.ftl
new file mode 100644
index 0000000000..9c7defc0fa
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/colors.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+colors-dialog-window2 =
+ .title = Cores
+colors-dialog-title = Cores
+colors-dialog-legend = Texto e fundo
+text-color-label =
+ .value = Texto:
+ .accesskey = t
+background-color-label =
+ .value = Fundo:
+ .accesskey = d
+use-system-colors =
+ .label = Utilizar cores do sistema
+ .accesskey = s
+colors-link-legend = Cores das ligações
+link-color-label =
+ .value = Ligações não visitadas:
+ .accesskey = L
+visited-link-color-label =
+ .value = Ligações visitadas:
+ .accesskey = v
+underline-link-checkbox =
+ .label = Ligações sublinhadas
+ .accesskey = u
+override-color-label =
+ .value = Sobrepor as cores especificadas pelo conteúdo com as minhas seleções acima:
+ .accesskey = a
+override-color-always =
+ .label = Sempre
+override-color-auto =
+ .label = Apenas para temas de alto contraste
+override-color-never =
+ .label = Nunca
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/connection.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/connection.ftl
new file mode 100644
index 0000000000..783e1839a5
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/connection.ftl
@@ -0,0 +1,88 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+connection-dns-over-https-url-resolver = Utilizar fornecedor
+ .accesskey = r
+# Variables:
+# $name (String) - Display name or URL for the DNS over HTTPS provider
+connection-dns-over-https-url-item-default =
+ .label = { $name } (predefinido)
+ .tooltiptext = Utilize o URL predefinido para resolver DNS por HTTPS
+connection-dns-over-https-url-custom =
+ .label = Personalizar
+ .accesskey = P
+ .tooltiptext = Introduza o seu URL preferido para resolver DNS por HTTPS
+connection-dns-over-https-custom-label = Personalizado
+connection-dialog-window2 =
+ .title = Definições de ligação
+connection-dialog-title = Definições de ligação
+disable-extension-button = Desativar extensão
+# Variables:
+# $name (String) - The extension that is controlling the proxy settings.
+#
+# The extension-icon is the extension's icon, or a fallback image. It should be
+# purely decoration for the actual extension name, with alt="".
+proxy-settings-controlled-by-extension = Uma extensão, <img data-l10n-name="extension-icon" alt="" /> { $name }, controla como { -brand-short-name } se liga à Internet.
+connection-proxy-legend = Configurar proxies para aceder à Internet
+proxy-type-no =
+ .label = Sem proxy
+ .accesskey = y
+proxy-type-wpad =
+ .label = Deteção automática de proxy para esta rede
+ .accesskey = D
+proxy-type-system =
+ .label = Utilizar definições de proxy do sistema
+ .accesskey = U
+proxy-type-manual =
+ .label = Configuração manual do proxy:
+ .accesskey = m
+proxy-http-label =
+ .value = Proxy HTTP:
+ .accesskey = T
+http-port-label =
+ .value = Porta:
+ .accesskey = P
+proxy-http-sharing =
+ .label = Utilizar também este proxy para HTTPS
+ .accesskey = x
+proxy-https-label =
+ .value = Proxy HTTPS:
+ .accesskey = S
+ssl-port-label =
+ .value = Porta:
+ .accesskey = o
+proxy-socks-label =
+ .value = SOCKS:
+ .accesskey = K
+socks-port-label =
+ .value = Porta:
+ .accesskey = t
+proxy-socks4-label =
+ .label = SOCKS v4
+ .accesskey = K
+proxy-socks5-label =
+ .label = SOCKS v5
+ .accesskey = v
+proxy-type-auto =
+ .label = URL de configuração automática do proxy:
+ .accesskey = R
+proxy-reload-label =
+ .label = Recarregar
+ .accesskey = a
+no-proxy-label =
+ .value = Sem proxy para:
+ .accesskey = m
+no-proxy-example = Exemplo: .mozilla.org, .net.nz, 192.168.1.0/24
+# Do not translate "localhost", "127.0.0.1/8" and "::1". (You can translate "and".)
+connection-proxy-noproxy-localhost-desc-2 = As ligações a localhost, 127.0.0.1/8, e ::1 nunca passam pelo proxy.
+proxy-password-prompt =
+ .label = Não solicitar autenticação se a palavra-passe estiver guardada
+ .accesskey = i
+ .tooltiptext = Esta opção autentica-lhe silenciosamente em proxies quando tem credenciais guardadas para os mesmos. Será solicitado(a) se a autenticação falhar.
+proxy-remote-dns =
+ .label = Proxy DNS ao utilizar SOCKS v5
+ .accesskey = d
+proxy-enable-doh =
+ .label = Ativar DNS por HTTPS
+ .accesskey = t
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/cookies.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/cookies.ftl
new file mode 100644
index 0000000000..bc588ddb80
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/cookies.ftl
@@ -0,0 +1,43 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+cookies-window-dialog2 =
+ .title = Cookies
+window-close-key =
+ .key = w
+window-focus-search-key =
+ .key = f
+window-focus-search-alt-key =
+ .key = k
+filter-search-label =
+ .value = Pesquisar:
+ .accesskey = s
+cookies-on-system-label = Estes cookies estão guardados no seu computador:
+treecol-site-header =
+ .label = Site
+treecol-name-header =
+ .label = Nome do cookie
+props-name-label =
+ .value = Nome:
+props-value-label =
+ .value = Conteúdo:
+props-domain-label =
+ .value = Sevidor:
+props-path-label =
+ .value = Caminho:
+props-secure-label =
+ .value = Enviar para:
+props-expires-label =
+ .value = Expira:
+props-container-label =
+ .value = Contentor:
+remove-cookie-button =
+ .label = Remover cookie
+ .accesskey = R
+remove-all-cookies-button =
+ .label = Remover todos os cookies
+ .accesskey = t
+cookie-close-button =
+ .label = Fechar
+ .accesskey = F
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/dock-options.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/dock-options.ftl
new file mode 100644
index 0000000000..67c5269bbc
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/dock-options.ftl
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+bounce-system-dock-icon =
+ .label = Animar o ícone da aplicação quando recebe uma nova mensagem
+ .accesskey = i
+dock-icon-legend = Emblema do ícone da aplicação
+dock-icon-show-label =
+ .value = Adicionar um emblema ao ícone da aplicação com:
+count-unread-messages-radio =
+ .label = N.º de mensagens não lidas
+ .accesskey = m
+count-new-messages-radio =
+ .label = N.º de novas mensagens
+ .accesskey = n
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/fonts.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/fonts.ftl
new file mode 100644
index 0000000000..d1aaab7ad4
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/fonts.ftl
@@ -0,0 +1,134 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+fonts-dialog-title = Tipos de letra
+fonts-window-close =
+ .key = w
+# Variables:
+# $name {string, "Arial"} - Name of the default font
+fonts-label-default =
+ .label = Predefinido ({ $name })
+fonts-label-default-unnamed =
+ .label = Predefinido
+fonts-encoding-dialog-title =
+ .title = Tipos de letra e codificação
+fonts-language-legend =
+ .value = Tipos de letra para:
+ .accesskey = T
+fonts-proportional-label =
+ .value = Proporcional:
+ .accesskey = P
+
+## Languages
+
+# Note: Translate "Latin" as the name of Latin (Roman) script, not as the name of the Latin language.
+font-language-group-latin =
+ .label = Latino
+font-language-group-japanese =
+ .label = Japonês
+font-language-group-trad-chinese =
+ .label = Mandarim tradicional (Taiwan)
+font-language-group-simpl-chinese =
+ .label = Mandarim simplificado
+font-language-group-trad-chinese-hk =
+ .label = Mandarim tradicional (Hong Kong)
+font-language-group-korean =
+ .label = Coreano
+font-language-group-cyrillic =
+ .label = Cirílico
+font-language-group-el =
+ .label = Grego
+font-language-group-other =
+ .label = Outros sistema de escrita
+font-language-group-thai =
+ .label = Tailandês
+font-language-group-hebrew =
+ .label = Hebraico
+font-language-group-arabic =
+ .label = Árabe
+font-language-group-devanagari =
+ .label = Devanagari
+font-language-group-tamil =
+ .label = Tamil
+font-language-group-armenian =
+ .label = Arménio
+font-language-group-bengali =
+ .label = Bengali
+font-language-group-canadian =
+ .label = Silabário canadiano unificado
+font-language-group-ethiopic =
+ .label = Etíope
+font-language-group-georgian =
+ .label = Georgiano
+font-language-group-gujarati =
+ .label = Gujarati
+font-language-group-gurmukhi =
+ .label = Gurmukhi
+font-language-group-khmer =
+ .label = Cambodjano
+font-language-group-malayalam =
+ .label = Malaio
+font-language-group-math =
+ .label = Matemática
+font-language-group-odia =
+ .label = Odia
+font-language-group-telugu =
+ .label = Telugu
+font-language-group-kannada =
+ .label = Kannada
+font-language-group-sinhala =
+ .label = Cingalês
+font-language-group-tibetan =
+ .label = Tibetano
+
+## Default font type
+
+default-font-serif =
+ .label = Serifa
+default-font-sans-serif =
+ .label = Sem serifa
+font-size-proportional-label =
+ .value = Tamanho:
+ .accesskey = h
+font-size-monospace-label =
+ .value = Tamanho:
+ .accesskey = n
+font-serif-label =
+ .value = Serifa:
+ .accesskey = S
+font-sans-serif-label =
+ .value = Sem serifa:
+ .accesskey = e
+font-monospace-label =
+ .value = Monoespaço:
+ .accesskey = M
+font-min-size-label =
+ .value = Tamanho mínimo da letra:
+ .accesskey = i
+min-size-none =
+ .label = Nenhum
+
+## Fonts in message
+
+font-control-legend = Controlo de letras
+use-document-fonts-checkbox =
+ .label = Permitir que as mensagens utilizem outros tipos de letra
+ .accesskey = g
+use-fixed-width-plain-checkbox =
+ .label = Utilizar largura fixa para mensagens sem formatação
+ .accesskey = x
+
+## Language settings
+
+text-encoding-legend = Codificação de texto
+text-encoding-description = Defina a codificação de texto para receção e envio de mensagens
+font-outgoing-email-label =
+ .value = Mensagens enviadas:
+ .accesskey = v
+font-incoming-email-label =
+ .value = Mensagens recebidas:
+ .accesskey = i
+default-font-reply-checkbox =
+ .label = Se possível, utilizar codificação predefinida nas respostas
+ .accesskey = u
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/languages.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/languages.ftl
new file mode 100644
index 0000000000..4af166d99b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/languages.ftl
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+languages-customize-moveup =
+ .label = Mover para cima
+ .accesskey = c
+languages-customize-movedown =
+ .label = Mover para baixo
+ .accesskey = b
+languages-customize-remove =
+ .label = Remover
+ .accesskey = R
+languages-customize-select-language =
+ .placeholder = Selecione um idioma para adicionar…
+languages-customize-add =
+ .label = Adicionar
+ .accesskey = A
+messenger-languages-window2 =
+ .title = Definições de idioma do { -brand-short-name }
+messenger-languages-dialog-title = Definições de idioma do { -brand-short-name }
+messenger-languages-description = O { -brand-short-name } irá mostrar o primeiro idioma como o seu predefinido e irá mostrar idiomas alternativos se necessário na ordem que estes aparecem.
+messenger-languages-search = Pesquisar por mais idiomas...
+messenger-languages-searching =
+ .label = A pesquisar por idiomas...
+messenger-languages-downloading =
+ .label = A transferir...
+messenger-languages-select-language =
+ .label = Selecionar um idioma para adicionar...
+ .placeholder = Selecionar um idioma para adicionar...
+messenger-languages-installed-label = Idiomas instalados
+messenger-languages-available-label = Idiomas disponíveis
+messenger-languages-error = O { -brand-short-name } não pode atualizar os seus idiomas neste momento. Verifique que está ligado(a) à internet ou tente novamente.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/new-tag.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/new-tag.ftl
new file mode 100644
index 0000000000..8cacfa28b6
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/new-tag.ftl
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+tag-dialog-window =
+ .title = Nova etiqueta
+tag-dialog-title = Nova etiqueta
+tag-name-label =
+ .value = Nome da etiqueta:
+ .accesskey = t
+tag-color-label =
+ .value = Cor:
+ .accesskey = C
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/notifications.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/notifications.ftl
new file mode 100644
index 0000000000..e114dce58f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/notifications.ftl
@@ -0,0 +1,29 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+notifications-dialog-window =
+ .title = Personalizar alerta de correio
+notifications-dialog-title = Personalizar alerta de correio
+customize-alert-description = Escolha os campos que devem aparecer na notificação:
+preview-text-checkbox =
+ .label = Resumo da mensagem
+ .accesskey = m
+subject-checkbox =
+ .label = Assunto
+ .accesskey = s
+sender-checkbox =
+ .label = Remetente
+ .accesskey = e
+
+## Note: open-time-label-before is displayed first, then there's a field where
+## the user can enter a number, and open-time-label-after is displayed at the end
+## of the line. The translations of the open-time-label-before and open-time-label-after
+## parts don't have to mean the exact same thing as in English; please try instead
+## to translate the whole sentence.
+
+open-time-label-before =
+ .value = Mostrar alerta de novas mensagens durante
+ .accesskey = n
+open-time-label-after =
+ .value = segundos
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/offline.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/offline.ftl
new file mode 100644
index 0000000000..45c0cd1d37
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/offline.ftl
@@ -0,0 +1,43 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+offline-dialog-window =
+ .title = Definições do modo offline
+offline-dialog-title = Definições do modo offline
+autodetect-online-label =
+ .label = Seguir automaticamente o estado online detetado
+ .accesskey = d
+offline-preference-startup-label = Estado manual ao inicializar:
+status-radio-remember =
+ .label = Memorizar o estado online anterior
+ .accesskey = r
+status-radio-ask =
+ .label = Pergunte-me pelo estado online
+ .accesskey = u
+status-radio-always-online =
+ .label = Online
+ .accesskey = l
+status-radio-always-offline =
+ .label = Offline
+ .accesskey = f
+going-online-label = Enviar mensagens não enviadas ao ficar online?
+going-online-auto =
+ .label = Sim
+ .accesskey = S
+going-online-not =
+ .label = Não
+ .accesskey = N
+going-online-ask =
+ .label = Perguntar
+ .accesskey = P
+going-offline-label = Descarregar mensagens para utilização offline?
+going-offline-auto =
+ .label = Sim
+ .accesskey = i
+going-offline-not =
+ .label = Não
+ .accesskey = o
+going-offline-ask =
+ .label = Perguntar-me
+ .accesskey = e
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/passwordManager.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/passwordManager.ftl
new file mode 100644
index 0000000000..dc520890a3
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/passwordManager.ftl
@@ -0,0 +1,83 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+saved-logins =
+ .title = Credenciais guardadas
+saved-logins-title = Credenciais guardadas
+window-close =
+ .key = w
+focus-search-primary-shortcut =
+ .key = f
+focus-search-alt-shortcut =
+ .key = t
+copy-provider-url-cmd =
+ .label = Copiar endereço
+ .accesskey = n
+copy-username-cmd =
+ .label = Copiar nome de utilizador
+ .accesskey = u
+edit-username-cmd =
+ .label = Editar nome de utilizador
+ .accesskey = d
+copy-password-cmd =
+ .label = Copiar palavra-passe
+ .accesskey = C
+edit-password-cmd =
+ .label = Editar palavra-passe
+ .accesskey = E
+search-filter =
+ .accesskey = s
+ .placeholder = Pesquisar
+column-heading-provider =
+ .label = Fornecedor
+column-heading-username =
+ .label = Nome de utilizador
+column-heading-password =
+ .label = Palavra-passe
+column-heading-time-created =
+ .label = Primeira utilização
+column-heading-time-last-used =
+ .label = Última utilização
+column-heading-time-password-changed =
+ .label = Última alteração
+column-heading-times-used =
+ .label = Número de vezes utilizado
+remove =
+ .label = Remover
+ .accesskey = R
+import =
+ .label = Importar...
+ .accesskey = I
+password-close-button =
+ .label = Fechar
+ .accesskey = c
+show-passwords =
+ .label = Mostrar palavras-passe
+ .accesskey = M
+hide-passwords =
+ .label = Ocultar palavras-passe
+ .accesskey = O
+logins-description-all = Estão guardadas no seu computador credenciais para os seguintes fornecedores
+logins-description-filtered = As seguintes credenciais correspondem à sua pesquisa:
+remove-all =
+ .label = Remover tudo
+ .accesskey = R
+remove-all-shown =
+ .label = Remover todas as mostradas
+ .accesskey = a
+remove-all-passwords-prompt = Tem a certeza que pretende remover todas as palavras-passe?
+remove-all-passwords-title = Remover todas as palavras-passe
+no-master-password-prompt = Tem a certeza que deseja mostrar as suas palavras-passe?
+
+## OS Authentication dialog
+
+# This message can be seen by trying to show or copy the passwords.
+password-os-auth-dialog-message = Confirme a sua identidade para revelar as palavras-passe guardadas.
+# This message can be seen by trying to show or copy the passwords.
+# The macOS strings are preceded by the operating system with "Thunderbird is trying to "
+# and includes subtitle of "Enter password for the user "xxx" to allow this." These
+# notes are only valid for English. Please test in your locale.
+password-os-auth-dialog-message-macosx = revelar as palavras-passe guardadas
+# Don't change this label.
+password-os-auth-dialog-caption = { -brand-full-name }
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/permissions.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/permissions.ftl
new file mode 100644
index 0000000000..bc34cdf94a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/permissions.ftl
@@ -0,0 +1,43 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+permissions-reminder-window2 =
+ .title = Exceções
+permissions-dialog-title = Exceções
+permission-preferences-close-window =
+ .key = j
+website-address-label =
+ .value = Endereço do website:
+ .accesskey = d
+block-button =
+ .label = Bloquear
+ .accesskey = B
+allow-session-button =
+ .label = Permitir nesta sessão
+ .accesskey = n
+allow-button =
+ .label = Permitir
+ .accesskey = i
+treehead-sitename-label =
+ .label = Site
+treehead-status-label =
+ .label = Estado
+remove-site-button =
+ .label = Remover site
+ .accesskey = R
+remove-all-site-button =
+ .label = Remover todos os sites
+ .accesskey = e
+cancel-button =
+ .label = Cancelar
+ .accesskey = C
+save-button =
+ .label = Guardar alterações
+ .accesskey = s
+permission-can-label = Permitir
+permission-can-access-first-party-label = Permitir apenas a primeira parte
+permission-can-session-label = Permitir nesta sessão
+permission-cannot-label = Bloquear
+invalid-uri-message = Introduza um nome de servidor válido
+invalid-uri-title = Nome de servidor inválido
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/preferences.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/preferences.ftl
new file mode 100644
index 0000000000..c6b1edf1b3
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/preferences.ftl
@@ -0,0 +1,653 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+close-button =
+ .aria-label = Fechar
+preferences-doc-title2 = Definições
+category-list =
+ .aria-label = Categorias
+pane-general-title = Geral
+category-general =
+ .tooltiptext = { pane-general-title }
+pane-compose-title = Composição
+category-compose =
+ .tooltiptext = Composição
+pane-privacy-title = Privacidade e segurança
+category-privacy =
+ .tooltiptext = Privacidade e segurança
+pane-chat-title = Chat
+category-chat =
+ .tooltiptext = Chat
+pane-calendar-title = Calendário
+category-calendar =
+ .tooltiptext = Calendário
+general-language-and-appearance-header = Idioma e aparência
+general-incoming-mail-header = Mensagens a receber
+general-files-and-attachment-header = Ficheiros e anexos
+general-tags-header = Etiquetas
+general-reading-and-display-header = Leitura e apresentação
+general-updates-header = Atualizações
+general-network-and-diskspace-header = Rede e espaço em disco
+general-indexing-label = Indexação
+composition-category-header = Composição
+composition-attachments-header = Anexos
+composition-spelling-title = Ortografia
+compose-html-style-title = Estilo HTML
+composition-addressing-header = Endereçamento
+privacy-main-header = Privacidade
+privacy-passwords-header = Palavras-passe
+privacy-junk-header = Lixo
+collection-header = Recolha de dados e utilização do { -brand-short-name }
+collection-description = Nós empenhamo-nos para lhe dar escolhas e recolher apenas o que precisamos para fornecer e melhorar o { -brand-short-name } para todos. Pedimos sempre autorização antes de receber informação pessoal.
+collection-privacy-notice = Informação de privacidade
+collection-health-report-telemetry-disabled = Deixou de permitir que o { -vendor-short-name } recolha dados técnicos e de interação. Todos os dados anteriores serão eliminados dentro de 30 dias.
+collection-health-report-telemetry-disabled-link = Saber mais
+collection-health-report =
+ .label = Permitir ao { -brand-short-name } enviar dados técnicos e de interação para a { -vendor-short-name }
+ .accesskey = r
+collection-health-report-link = Saber mais
+# This message is displayed above disabled data sharing options in developer builds
+# or builds with no Telemetry support available.
+collection-health-report-disabled = A partilha de dados está desativada para a configuração desta compilação
+collection-backlogged-crash-reports =
+ .label = Permitir ao { -brand-short-name } enviar relatórios de falha pendentes em seu nome
+ .accesskey = t
+collection-backlogged-crash-reports-link = Saber mais
+privacy-security-header = Segurança
+privacy-scam-detection-title = Deteção de fraude
+privacy-anti-virus-title = Antivírus
+privacy-certificates-title = Certificados
+chat-pane-header = Conversação
+chat-status-title = Estado
+chat-notifications-title = Notificações
+chat-pane-styling-header = Estilos
+choose-messenger-language-description = Escolha os idiomas utilizados para mostrar menus, mensagens, e notificações do { -brand-short-name }.
+manage-messenger-languages-button =
+ .label = Definir alternativas...
+ .accesskey = l
+confirm-messenger-language-change-description = Reiniciar o { -brand-short-name } para aplicar estas alterações
+confirm-messenger-language-change-button = Aplicar e reiniciar
+update-setting-write-failure-title = Erro ao guardar as preferências de atualização
+# Variables:
+# $path (String) - Path to the configuration file
+# The newlines between the main text and the line containing the path is
+# intentional so the path is easier to identify.
+update-setting-write-failure-message =
+ O { -brand-short-name } encontrou um erro e não guardou esta alteração. Note que definir esta atualização requer permissão para escrever no ficheiro abaixo. Você ou um administrador do sistema pode resolver o erro ao conceder ao grupo Utilizadores controlo total para este ficheiro.
+
+ Não foi possível escrever para o ficheiro: { $path }
+update-in-progress-title = Atualização em curso
+update-in-progress-message = Pretende que o { -brand-short-name } prossiga com esta atualização?
+update-in-progress-ok-button = &Descartar
+# Continue is the cancel button so pressing escape or using a platform standard
+# method of closing the UI will not discard the update.
+update-in-progress-cancel-button = &Continuar
+account-button = Definições de conta
+open-addons-sidebar-button = Extras e temas
+
+## OS Authentication dialog
+
+# This message can be seen by trying to add a Primary Password.
+primary-password-os-auth-dialog-message-win = Para criar uma palavra-passe principal, introduza as suas credenciais de autenticação do Windows. Isto ajuda a proteger a segurança das suas contas.
+# This message can be seen by trying to add a Primary Password.
+# The macOS strings are preceded by the operating system with "Thunderbird is trying to "
+# and includes subtitle of "Enter password for the user "xxx" to allow this." These
+# notes are only valid for English. Please test in your locale.
+primary-password-os-auth-dialog-message-macosx = criar uma palavra-passe principal
+# Don't change this label.
+master-password-os-auth-dialog-caption = { -brand-full-name }
+
+## General Tab
+
+focus-search-shortcut =
+ .key = f
+focus-search-shortcut-alt =
+ .key = k
+general-legend = Página inicial do { -brand-short-name }
+start-page-label =
+ .label = Ao iniciar o { -brand-short-name }, mostrar página inicial na área de mensagens
+ .accesskey = A
+location-label =
+ .value = Localização:
+ .accesskey = o
+restore-default-label =
+ .label = Restaurar predefinição
+ .accesskey = R
+default-search-engine = Motor de pesquisa predefinido
+remove-search-engine =
+ .label = Remover
+ .accesskey = v
+minimize-to-tray-label =
+ .label = Quando o { -brand-short-name } for minimizado, movê-lo para a bandeja
+ .accesskey = m
+new-message-arrival = Ao receber mensagens
+mail-play-sound-label =
+ .label =
+ { PLATFORM() ->
+ [macos] Utilizar este ficheiro áudio:
+ *[other] Reproduzir um som
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] d
+ *[other] d
+ }
+mail-play-button =
+ .label = Reproduzir
+ .accesskey = T
+change-dock-icon = Alterar as preferências para o ícone da aplicação
+app-icon-options =
+ .label = Opções do ícone da aplicação…
+ .accesskey = n
+animated-alert-label =
+ .label = Mostrar um alerta
+ .accesskey = M
+customize-alert-label =
+ .label = Personalizar...
+ .accesskey = P
+biff-use-system-alert =
+ .label = Utilizar notificação do sistema
+tray-icon-unread-label =
+ .label = Mostrar um ícone no tabuleiro para mensagens não lidas
+ .accesskey = t
+tray-icon-unread-description = Recomendado ao utilizar botões pequenos na barra de tarefas
+mail-system-sound-label =
+ .label = Som pré-definido para novo correio
+ .accesskey = d
+mail-custom-sound-label =
+ .label = Utilizar este ficheiro
+ .accesskey = U
+mail-browse-sound-button =
+ .label = Procurar...
+ .accesskey = u
+enable-gloda-search-label =
+ .label = Ativar pesquisa global e indexação
+ .accesskey = e
+datetime-formatting-legend = Formatação de data e hora
+language-selector-legend = Idioma
+allow-hw-accel =
+ .label = Se disponível, utilizar aceleração de hardware
+ .accesskey = h
+store-type-label =
+ .value = Tipo de armazenamento de mensagem para novas contas:
+ .accesskey = T
+mbox-store-label =
+ .label = Ficheiro por pasta (mbox)
+maildir-store-label =
+ .label = Ficheiro por mensagem (maildir)
+scrolling-legend = Deslocamento
+autoscroll-label =
+ .label = Utilizar deslocação automática
+ .accesskey = U
+smooth-scrolling-label =
+ .label = Utilizar deslocação suave
+ .accesskey = u
+system-integration-legend = Integração no sistema
+always-check-default =
+ .label = Verificar sempre se o { -brand-short-name } é o cliente de correio predefinido na inicialização
+ .accesskey = A
+check-default-button =
+ .label = Verificar agora…
+ .accesskey = V
+# 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] Pesquisa do Windows
+ *[other] { "" }
+ }
+search-integration-label =
+ .label = Permitir { search-engine-name } para pesquisa de mensagens
+ .accesskey = s
+config-editor-button =
+ .label = Editor de configurações…
+ .accesskey = c
+return-receipts-description = Determinar como é que o { -brand-short-name } gere os recibos de leitura
+return-receipts-button =
+ .label = Recibos de leitura…
+ .accesskey = R
+update-app-legend = Atualizações do { -brand-short-name }
+# Variables:
+# $version (String): version of Thunderbird, e.g. 68.0.1
+update-app-version = Versão { $version }
+allow-description = Permitir ao { -brand-short-name }
+automatic-updates-label =
+ .label = Instalar atualizações automaticamente (recomendado: segurança melhorada)
+ .accesskey = a
+check-updates-label =
+ .label = Procurar atualizações, mas deixar-me escolher quais instalar
+ .accesskey = c
+update-history-button =
+ .label = Mostrar histórico de atualizações
+ .accesskey = h
+use-service =
+ .label = Utilizar um serviço em segundo plano para instalar atualizações
+ .accesskey = t
+cross-user-udpate-warning = Esta definição irá ser aplicada a todas as contas do Windows e perfis do { -brand-short-name } utilizando esta instalação do { -brand-short-name }.
+networking-legend = Ligação
+proxy-config-description = Configure o modo de ligãção do { -brand-short-name } à Internet.
+network-settings-button =
+ .label = Definições...
+ .accesskey = s
+offline-legend = Offline
+offline-settings = Configurar o modo offline
+offline-settings-button =
+ .label = Offline...
+ .accesskey = O
+diskspace-legend = Espaço em disco
+offline-compact-folder =
+ .label = Compactar todas as pastas se puder libertar pelo menos
+ .accesskey = a
+compact-folder-size =
+ .value = MB no total
+
+## Note: The entities use-cache-before and use-cache-after appear on a single
+## line in preferences as follows:
+## use-cache-before [ textbox for cache size in MB ] use-cache-after
+
+use-cache-before =
+ .value = Utilizar até
+ .accesskey = U
+use-cache-after = MB de espaço para cache
+
+##
+
+smart-cache-label =
+ .label = Sobrepor gestão automática da cache
+ .accesskey = o
+clear-cache-button =
+ .label = Limpar agora
+ .accesskey = L
+fonts-legend = Tipos de letra
+default-font-label =
+ .value = Letra pré-definida:
+ .accesskey = d
+default-size-label =
+ .value = Tamanho:
+ .accesskey = T
+font-options-button =
+ .label = Avançadas...
+ .accesskey = A
+color-options-button =
+ .label = Cores…
+ .accesskey = C
+display-width-legend = Mensagens sem formatação
+# Note : convert-emoticons-label 'Emoticons' are also known as 'Smileys', e.g. :-)
+convert-emoticons-label =
+ .label = Mostrar ícones emotivos como imagens
+ .accesskey = M
+display-text-label = Ao mostrar texto citado:
+style-label =
+ .value = Estilo:
+ .accesskey = E
+regular-style-item =
+ .label = Normal
+bold-style-item =
+ .label = Negrito
+italic-style-item =
+ .label = Itálico
+bold-italic-style-item =
+ .label = Negrito itálico
+size-label =
+ .value = Tamanho:
+ .accesskey = h
+regular-size-item =
+ .label = Normal
+bigger-size-item =
+ .label = Maior
+smaller-size-item =
+ .label = Menor
+quoted-text-color =
+ .label = Cor:
+ .accesskey = C
+search-handler-table =
+ .placeholder = Filtrar tipo de ações e de conteúdo
+save-to-label =
+ .label = Guardar ficheiros em
+ .accesskey = s
+choose-folder-label =
+ .label =
+ { PLATFORM() ->
+ [macos] Escolher…
+ *[other] Explorar…
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] c
+ *[other] x
+ }
+always-ask-label =
+ .label = Perguntar sempre o local para guardar ficheiros
+ .accesskey = a
+display-tags-text = As etiquetas podem ser utilizadas para categorizar ou dar prioridade às mensagens.
+new-tag-button =
+ .label = Nova…
+ .accesskey = N
+edit-tag-button =
+ .label = Editar…
+ .accesskey = E
+delete-tag-button =
+ .label = Apagar
+ .accesskey = A
+auto-mark-as-read =
+ .label = Marcar mensagens como lidas automaticamente
+ .accesskey = a
+mark-read-no-delay =
+ .label = Ao exibir
+ .accesskey = o
+
+## Note: This will concatenate to "After displaying for [___] seconds",
+## using (mark-read-delay) and a number (seconds-label).
+
+mark-read-delay =
+ .label = Ao exibir durante
+ .accesskey = d
+seconds-label = segundos
+
+##
+
+open-msg-label =
+ .value = Abrir mensagens em:
+open-msg-tab =
+ .label = Novo separador
+ .accesskey = s
+open-msg-window =
+ .label = Nova janela
+ .accesskey = v
+open-msg-ex-window =
+ .label = Na janela existente
+ .accesskey = j
+close-move-delete =
+ .label = Fechar janela/separador de mensagem ao mover ou apagar
+ .accesskey = F
+display-name-label =
+ .value = Nome de apresentação:
+condensed-addresses-label =
+ .label = Mostrar apenas o nome para pessoas nos meus contactos
+ .accesskey = m
+
+## Compose Tab
+
+forward-label =
+ .value = Reencaminhar mensagens:
+ .accesskey = r
+inline-label =
+ .label = Inline
+as-attachment-label =
+ .label = Como anexo
+extension-label =
+ .label = adicionar extensão ao nome do ficheiro
+ .accesskey = e
+
+## Note: This will concatenate to "Auto Save every [___] minutes",
+## using (auto-save-label) and a number (auto-save-end).
+
+auto-save-label =
+ .label = Guardar automaticamente a cada
+ .accesskey = a
+auto-save-end = minutos
+
+##
+
+warn-on-send-accel-key =
+ .label = Confirmar quando utilizar atalhos de teclado para enviar mensagem
+ .accesskey = C
+spellcheck-label =
+ .label = Verificar ortografia antes de enviar
+ .accesskey = V
+spellcheck-inline-label =
+ .label = Verificar ortografia ao escrever
+ .accesskey = e
+language-popup-label =
+ .value = Idioma:
+ .accesskey = I
+download-dictionaries-link = Transferir mais dicionários
+font-label =
+ .value = Tipo de letra:
+ .accesskey = l
+font-size-label =
+ .value = Tamanho:
+ .accesskey = z
+default-colors-label =
+ .label = Utilizar as cores predefinidas do leitor
+ .accesskey = d
+font-color-label =
+ .value = Cor do texto:
+ .accesskey = t
+bg-color-label =
+ .value = Cor de fundo:
+ .accesskey = f
+restore-html-label =
+ .label = Restaurar predefinições
+ .accesskey = R
+default-format-label =
+ .label = Utilizar como predefinição o formato Parágrafo em vez de Corpo de texto
+ .accesskey = P
+autocomplete-description = Ao endereçar mensagens, procurar equivalências no:
+ab-label =
+ .label = Livro de endereços local
+ .accesskey = L
+directories-label =
+ .label = Servidor de diretório:
+ .accesskey = d
+directories-none-label =
+ .none = Nenhum
+edit-directories-label =
+ .label = Editar diretórios...
+ .accesskey = E
+email-picker-label =
+ .label = Ao enviar, adicionar endereços de e-mail ao:
+ .accesskey = A
+default-directory-label =
+ .value = Diretório de inicialização predefinido na janela do livro de endereços:
+ .accesskey = a
+default-last-label =
+ .none = Último diretório utilizado
+attachment-label =
+ .label = Verificar por anexos esquecidos
+ .accesskey = f
+attachment-options-label =
+ .label = Palavras-chave…
+ .accesskey = v
+enable-cloud-share =
+ .label = Oferecer partilha de ficheiros maiores que
+cloud-share-size =
+ .value = MB
+add-cloud-account =
+ .label = Adicionar…
+ .accesskey = A
+ .defaultlabel = Adicionar…
+remove-cloud-account =
+ .label = Remover
+ .accesskey = R
+find-cloud-providers =
+ .value = Encontre mais fornecedores…
+cloud-account-description = Adicionar um novo serviço de armazenamento Filelink
+
+## Privacy Tab
+
+mail-content = Conteúdo remoto
+remote-content-label =
+ .label = Permitir conteúdo remoto nas mensagens
+ .accesskey = P
+exceptions-button =
+ .label = Exceções
+ .accesskey = E
+remote-content-info =
+ .value = Saber mais sobre privacidade e conteúdo remoto
+web-content = Conteúdo web
+history-label =
+ .label = Memorizar websites e ligações que eu visitei
+ .accesskey = r
+cookies-label =
+ .label = Aceitar cookies dos sites
+ .accesskey = A
+third-party-label =
+ .value = Aceitar cookies de terceiros:
+ .accesskey = c
+third-party-always =
+ .label = Sempre
+third-party-never =
+ .label = Nunca
+third-party-visited =
+ .label = Dos visitados
+cookies-button =
+ .label = Mostrar cookies
+ .accesskey = s
+do-not-track-label =
+ .label = Enviar aos sites um sinal de “não-monitorização” a indicar que não pretende ser monitorizado
+ .accesskey = n
+dnt-learn-more-button =
+ .value = Saber mais
+passwords-description = O { -brand-short-name } pode memorizar palavras-passe para todas as suas contas.
+passwords-button =
+ .label = Palavras-passe guardadas...
+ .accesskey = s
+primary-password-description = A palavra-passe principal protege todas as suas palavras-passe, mas terá que a indicar uma vez por sessão.
+primary-password-label =
+ .label = Utilizar uma palavra-passe principal
+ .accesskey = U
+primary-password-button =
+ .label = Alterar palavra-passe principal…
+ .accesskey = l
+forms-primary-pw-fips-title = Atualmente, está no modo FIPS. Este modo requer uma palavra-passe principal não vazia.
+forms-master-pw-fips-desc = Falha ao alterar palavra-passe
+junk-description = Configure as predefinições para o lixo eletrónico. As definições específicas de lixo eletrónico podem ser efetuadas nas definições da conta.
+junk-label =
+ .label = Ao marcar uma mensagem como lixo eletrónico:
+ .accesskey = A
+junk-move-label =
+ .label = Mover para a pasta "Lixo eletrónico"
+ .accesskey = o
+junk-delete-label =
+ .label = Apagar
+ .accesskey = A
+junk-read-label =
+ .label = Marcar mensagens consideradas lixo eletrónico como lidas
+ .accesskey = m
+junk-log-label =
+ .label = Ativar registo inteligente do filtro do lixo eletrónico
+ .accesskey = x
+junk-log-button =
+ .label = Mostrar registo
+ .accesskey = s
+reset-junk-button =
+ .label = Repor dados de treino
+ .accesskey = R
+phishing-description = O { -brand-short-name } pode analisar se as mensagens são possíveis engodos (também conhecidas como phishing), detetando as técnicas de falsificação mais comuns.
+phishing-label =
+ .label = Avisar se a mensagem que estou a ler pode ser um engodo
+ .accesskey = a
+antivirus-description = O { -brand-short-name } pode facilitar a análise de novas mensagens por programas antivírus, antes que estas sejam guardadas localmente.
+antivirus-label =
+ .label = Permitir que o antivírus coloque as mensagem recebidas em quarentena
+ .accesskey = a
+certificate-description = Se um servidor pedir o meu certificado pessoal:
+certificate-auto =
+ .label = Selecionar automaticamente
+ .accesskey = m
+certificate-ask =
+ .label = Perguntar sempre
+ .accesskey = P
+ocsp-label =
+ .label = Consultar os servidores de resposta OCSP para confirmar a validade de certificados
+ .accesskey = O
+certificate-button =
+ .label = Gerir certificados…
+ .accesskey = G
+security-devices-button =
+ .label = Dispositivos de segurança…
+ .accesskey = D
+
+## Chat Tab
+
+startup-label =
+ .value = Ao iniciar o { -brand-short-name }:
+ .accesskey = c
+offline-label =
+ .label = Manter a minha conta de chat offline
+auto-connect-label =
+ .label = Ligar automaticamente às contas de chat
+
+## Note: idle-label is displayed first, then there's a field where the user
+## can enter a number, and itemTime is displayed at the end of the line.
+## The translations of the idle-label and idle-time-label parts don't have
+## to mean the exact same thing as in English; please try instead to
+## translate the whole sentence.
+
+idle-label =
+ .label = Informar os meus contactos que estou ausente após
+ .accesskey = I
+idle-time-label = minutos de inatividade
+
+##
+
+away-message-label =
+ .label = e definir o meu estado para ausente com esta mensagem:
+ .accesskey = a
+send-typing-label =
+ .label = Enviar notificações de escrita nas conversas
+ .accesskey = t
+notification-label = Qando chegar uma mensagem para si:
+show-notification-label =
+ .label = Mostrar notificação:
+ .accesskey = c
+notification-all =
+ .label = com o nome do remetente e pré-visualização da mensagem
+notification-name =
+ .label = apenas com o nome do remetente
+notification-empty =
+ .label = sem informação nenhuma
+notification-type-label =
+ .label =
+ { PLATFORM() ->
+ [macos] Animar o ícone da doca
+ *[other] Piscar o item da barra de tarefas
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] o
+ *[other] f
+ }
+chat-play-sound-label =
+ .label = Reproduzir um som
+ .accesskey = d
+chat-play-button =
+ .label = Reproduzir
+ .accesskey = r
+chat-system-sound-label =
+ .label = Som pré-definido para novo correio
+ .accesskey = d
+chat-custom-sound-label =
+ .label = Utilizar este ficheiro áudio
+ .accesskey = U
+chat-browse-sound-button =
+ .label = Navegar…
+ .accesskey = N
+theme-label =
+ .value = Tema:
+ .accesskey = T
+style-bubbles =
+ .label = Bolhas
+style-dark =
+ .label = Escuro
+style-paper =
+ .label = Folhas de papel
+style-simple =
+ .label = Simples
+preview-label = Pré-visualização:
+no-preview-label = Sem pré-visualização disponível
+no-preview-description = Este tema não é válido ou está atualmente indisponível (extra desativado, modo de segurança, …).
+chat-variant-label =
+ .value = Variante:
+ .accesskey = V
+
+## Settings UI Search Results
+
+search-results-header = Resultados da pesquisa
+search-results-help-link = Precisa de ajuda? Visite o <a data-l10n-name="url">Apoio do { -brand-short-name }</a>
+
+## Sync Tab
+
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/receipts.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/receipts.ftl
new file mode 100644
index 0000000000..7542189b22
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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 = Recibos de leitura
+receipts-dialog-title = Recibos de leitura
+receipt-arrive-label = Ao receber um recibo:
+receipt-request-label = Ao receber um pedido de um recibo de leitura:
+receipt-send-never-label =
+ .label = Nunca enviar
+receipt-send-always-label =
+ .label = Enviar sempre
+receipt-send-ask-label =
+ .label = Perguntar
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/sync-dialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/sync-dialog.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/messenger/preferences/system-integration.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/system-integration.ftl
new file mode 100644
index 0000000000..1ac11ed388
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/system-integration.ftl
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+system-integration-title =
+ .title = Integração no sistema
+system-integration-dialog-title = Integração no sistema
+system-integration-dialog =
+ .buttonlabelaccept = Definir como predefinido
+ .buttonlabelcancel = Ignorar integração
+ .buttonlabelcancel2 = Cancelar
+default-client-intro = Utilizar o { -brand-short-name } como aplicação predefinida para:
+unset-default-tooltip = Não pode cancelar a seleção do { -brand-short-name } como aplicação predefinida no { -brand-short-name }. Para definir outra aplicação como predefinida tem de utilizar a janela 'Definir como predefinido'.
+checkbox-email-label =
+ .label = E-mail
+ .tooltiptext = { unset-default-tooltip }
+checkbox-newsgroups-label =
+ .label = Grupos de notícias
+ .tooltiptext = { unset-default-tooltip }
+checkbox-feeds-label =
+ .label = Fontes
+ .tooltiptext = { unset-default-tooltip }
+checkbox-calendar-label =
+ .label = Calendário
+ .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] Pesquisa do Windows
+ *[other] { "" }
+ }
+system-search-integration-label =
+ .label = Permitir que { system-search-engine-name } pesquise as mensagens
+ .accesskey = P
+check-on-startup-label =
+ .label = Realizar sempre esta verificação ao iniciar o { -brand-short-name }
+ .accesskey = a
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/shortcuts.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/shortcuts.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/messenger/treeView.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/treeView.ftl
new file mode 100644
index 0000000000..7f4a88bc95
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/treeView.ftl
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Table
+
+tree-list-view-column-picker =
+ .title = Selecione as colunas a mostrar
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/troubleshootMode.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000..2d05927835
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/troubleshootMode.ftl
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+troubleshoot-mode-window =
+ .title = Modo de diagnóstico do { -brand-short-name }
+ .style = width: 37em;
+troubleshoot-mode-dialog-title = Modo de diagnóstico do { -brand-short-name }
+troubleshoot-mode-description = Utilizar este modo de diagnóstico do { -brand-short-name } para identificar problemas. As suas extensões e personalizações serão temporariamente desativadas.
+troubleshoot-mode-description2 = Pode tornar permanentes algumas ou todas as alterações:
+troubleshoot-mode-disable-addons =
+ .label = Desativar todos os extras
+ .accesskey = D
+troubleshoot-mode-reset-toolbars =
+ .label = Repor as barras de ferramentas e controlos
+ .accesskey = R
+troubleshoot-mode-change-and-restart =
+ .label = Aplicar alterações e reiniciar
+ .accesskey = A
+troubleshoot-mode-continue =
+ .label = Continuar no modo de diagnóstico
+ .accesskey = C
+troubleshoot-mode-quit =
+ .label =
+ { PLATFORM() ->
+ [windows] Sair
+ *[other] Sair
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] i
+ *[other] i
+ }
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/unifiedToolbar.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/unifiedToolbar.ftl
new file mode 100644
index 0000000000..dde7f0c1b4
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/unifiedToolbar.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/.
+
+
+### Unified Toolbar strings
+
+
+## Search bar
+
+search-bar-placeholder = Pesquisar…
+
+## Unified toolbar context menu
+
+customize-menu-customize =
+ .label = Personalizar...
+
+# Unified toolbar get messages button context menu
+
+toolbar-get-all-messages-menuitem =
+ .label = Obter todas as novas mensagens
+ .accesskey = g
+
+## Unified Toolbar customization
+
+customize-button-style-label = Estilo dos botões:
+customize-button-style-icons-beside-text-option = Ícones ao lado do texto
+customize-button-style-icons-above-text-option = Ícones acima do texto
+customize-button-style-icons-only-option = Apenas ícones
+customize-button-style-text-only-option = Apenas texto
+customize-cancel = Cancelar
+customize-save = Guardar
+
+## Unified toolbar customization palette context menu
+
+
+## Unified toolbar customization target context menu
+
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/unifiedToolbarItems.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/unifiedToolbarItems.ftl
new file mode 100644
index 0000000000..2b0c938600
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/unifiedToolbarItems.ftl
@@ -0,0 +1,117 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Unified Toolbar Item Label strings
+
+spacer-label = Espaço flexível
+toolbar-write-message-label = Escrever
+toolbar-write-message =
+ .title = Criar nova mensagem
+toolbar-unifinder-label = Localizar eventos
+toolbar-unifinder =
+ .title = Alternar o painel de localizar eventos
+toolbar-folder-location-label = Localização da pasta
+toolbar-edit-event-label = Editar
+toolbar-edit-event =
+ .title = Apagar evento ou tarefa selecionada
+toolbar-get-messages-label = Obter mensagens
+toolbar-reply-label = Responder
+toolbar-reply =
+ .title = Responder à mensagem
+toolbar-reply-all-label = Responder a todos
+toolbar-reply-all =
+ .title = Responder ao remetente e a todos os destinatários
+toolbar-reply-to-list-label = Responder à lista
+toolbar-reply-to-list =
+ .title = Responder à lista de correio
+toolbar-archive-label = Arquivar
+toolbar-archive =
+ .title = Arquivar mensagens selecionadas
+toolbar-conversation-label = Conversa
+toolbar-conversation =
+ .title = Mostrar a conversação da mensagem selecionada
+toolbar-previous-unread-label = Anterior não lida
+toolbar-previous-unread =
+ .title = Ir para a mensagem anterior não lida
+toolbar-previous-label = Anterior
+toolbar-previous =
+ .title = Ir para a mensagem anterior
+toolbar-next-unread-label = Seguinte não lida
+toolbar-next-unread =
+ .title = Ir para a mensagem seguinte não lida
+toolbar-next-label = Seguinte
+toolbar-next =
+ .title = Ir para a mensagem seguinte
+toolbar-junk-label = Spam
+toolbar-junk =
+ .title = Marcas as mensagens selecionadas como spam
+toolbar-delete-label = Eliminar
+toolbar-delete =
+ .title = Eliminar as mensagens ou pastas selecionadas
+toolbar-compact-label = Compactar
+toolbar-compact =
+ .title = Remover mensagens apagadas da pasta selecionada
+toolbar-add-as-event-label = Adicionar como evento
+toolbar-add-as-event =
+ .title = Extrair informações da mensagem e adicionar ao calendário como evento
+toolbar-add-as-task-label = Adicionar como tarefa
+toolbar-add-as-task =
+ .title = Extrair informações da mensagem e adicionar ao calendário como evento
+toolbar-tag-message-label = Etiqueta
+toolbar-tag-message =
+ .title = Classificar mensagens
+toolbar-forward-inline-label = Reencaminhar
+toolbar-forward-inline =
+ .title = Reencaminhar mensagem selecionada como texto inline
+toolbar-forward-attachment-label = Reencaminhar como anexo
+toolbar-forward-attachment =
+ .title = Reencaminhar mensagem selecionada como anexo
+toolbar-mark-as-label = Marcar
+toolbar-mark-as =
+ .title = Marcar mensagens
+toolbar-address-book =
+ .title = Ir para o livro de endereços
+toolbar-chat-label = Chat
+toolbar-chat =
+ .title = Mostrar o separador de chat
+toolbar-calendar-label = Calendário
+toolbar-calendar =
+ .title = Muda para o separador do calendário
+toolbar-tasks-label = Tarefas
+toolbar-tasks =
+ .title = Muda para o separador de tarefas
+toolbar-print-label = Imprimir
+toolbar-print =
+ .title = Imprimir esta mensagem
+toolbar-synchronize-label = Sincronizar
+toolbar-synchronize =
+ .title = Recarregar calendários e sincronizar alterações
+toolbar-delete-event-label = Apagar
+toolbar-delete-event =
+ .title = Apagar eventos ou tarefas selecionadas
+toolbar-go-to-today-label = Ir para hoje
+toolbar-go-to-today =
+ .title = Ir para hoje
+toolbar-print-event-label = Imprimir
+toolbar-print-event =
+ .title = Imprimir eventos ou tarefas
+toolbar-new-event-label = Evento
+toolbar-new-event =
+ .title = Criar um novo evento
+toolbar-new-task-label = Tarefa
+toolbar-new-task =
+ .title = Criar uma nova tarefa
+toolbar-go-back-label = Recuar
+toolbar-go-back =
+ .title = Recuar uma mensagem
+toolbar-go-forward-label = Avançar
+toolbar-go-forward =
+ .title = Avançar uma mensagem
+toolbar-stop-label = Parar
+toolbar-stop =
+ .title = Parar descarga em curso
+toolbar-throbber-label = Indicador de atividade
+toolbar-throbber =
+ .title = Indicador de atividade
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/viewSource.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/viewSource.ftl
new file mode 100644
index 0000000000..37ccc1a999
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/viewSource.ftl
@@ -0,0 +1,19 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+context-text-action-find =
+ .label = Localizar
+ .accesskey = L
+
+context-text-action-find-again =
+ .label = Localizar novamente
+ .accesskey = n
+
+text-action-find =
+ .label = Localizar
+ .accesskey = L
+
+text-action-find-again =
+ .label = Localizar novamente
+ .accesskey = n
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/security/certificates/certManager.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/security/certificates/certManager.ftl
new file mode 100644
index 0000000000..2a5d88c63f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/security/certificates/certManager.ftl
@@ -0,0 +1,228 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = Gestor de certificados
+
+certmgr-tab-mine =
+ .label = Os seus certificados
+
+certmgr-tab-remembered =
+ .label = Decisões de autenticação
+
+certmgr-tab-people =
+ .label = Pessoas
+
+certmgr-tab-servers =
+ .label = Servidores
+
+certmgr-tab-ca =
+ .label = Autoridades
+
+certmgr-mine = Tem certificados destas organizações que lhe identificam
+certmgr-remembered = Estes certificados são utilizados para o identificar em sites.
+certmgr-people = Tem certificados em ficheiro que identificam estas pessoas
+certmgr-server = Estas entradas identificam exceções de erro do certificado do servidor
+certmgr-ca = Tem certificados em ficheiro que identificam estas autoridades de certificados
+
+certmgr-edit-ca-cert2 =
+ .title = Editar definições de confiança do certificado CA
+ .style = min-width: 48em;
+
+certmgr-edit-cert-edit-trust = Editar definições de confiança:
+
+certmgr-edit-cert-trust-ssl =
+ .label = Este certificado pode identificar sites.
+
+certmgr-edit-cert-trust-email =
+ .label = Este certificado pode identificar utilizadores de e-mail.
+
+certmgr-delete-cert2 =
+ .title = Apagar certificado
+ .style = min-width: 48em; min-height: 24em;
+
+certmgr-cert-host =
+ .label = Anfitrião
+
+certmgr-cert-name =
+ .label = Nome do certificado
+
+certmgr-cert-server =
+ .label = Servidor
+
+certmgr-token-name =
+ .label = Dispositivo de segurança
+
+certmgr-begins-label =
+ .label = Inicia em
+
+certmgr-expires-label =
+ .label = Expira em
+
+certmgr-email =
+ .label = Endereço de e-mail
+
+certmgr-serial =
+ .label = Número de série
+
+certmgr-fingerprint-sha-256 =
+ .label = Impressão digital SHA-256
+
+certmgr-view =
+ .label = Ver…
+ .accesskey = V
+
+certmgr-edit =
+ .label = Editar confiança…
+ .accesskey = E
+
+certmgr-export =
+ .label = Exportar…
+ .accesskey = x
+
+certmgr-delete =
+ .label = Apagar…
+ .accesskey = A
+
+certmgr-delete-builtin =
+ .label = Apagar ou desconfiar…
+ .accesskey = A
+
+certmgr-backup =
+ .label = Cópia de segurança…
+ .accesskey = s
+
+certmgr-backup-all =
+ .label = Copiar todos…
+ .accesskey = t
+
+certmgr-restore =
+ .label = Importar…
+ .accesskey = m
+
+certmgr-add-exception =
+ .label = Adicionar exceção…
+ .accesskey = A
+
+exception-mgr =
+ .title = Adicionar exceção de segurança
+
+exception-mgr-extra-button =
+ .label = Confirmar exceção de segurança
+ .accesskey = C
+
+exception-mgr-supplemental-warning = Bancos, lojas e outros sites públicos legítimos não lhe irão pedir para fazer isto.
+
+exception-mgr-cert-location-url =
+ .value = Localização:
+
+exception-mgr-cert-location-download =
+ .label = Obter certificado
+ .accesskey = O
+
+exception-mgr-cert-status-view-cert =
+ .label = Ver…
+ .accesskey = V
+
+exception-mgr-permanent =
+ .label = Guardar exceção permanentemente
+ .accesskey = p
+
+pk11-bad-password = A palavra-passe introduzida está incorreta.
+pkcs12-decode-err = Falha ao descodificar ficheiro. Ou não está no formato PKCS #12, ou está corrompido, ou a palavra-passe inserida está incorreta.
+pkcs12-unknown-err-restore = Falhou a restauração do ficheiro PKCS #12 for razões desconhecidas.
+pkcs12-unknown-err-backup = Falha ao criar o ficheiro de backup PKCS #12 por razões desconhecidas.
+pkcs12-unknown-err = A operação PKCS #12 falhou por razões desconhecidas.
+pkcs12-info-no-smartcard-backup = Não é possível criar cópias de segurança de certificados a partir de um dispositivos com segurança como, por exemplo, um smart card.
+pkcs12-dup-data = O certificado e a chave privada já existem no dispositivo de segurança.
+
+## PKCS#12 file dialogs
+
+choose-p12-backup-file-dialog = Nome do ficheiro a guardar
+file-browse-pkcs12-spec = Ficheiros PKCS12
+choose-p12-restore-file-dialog = Ficheiro do certificado para importar
+
+## Import certificate(s) file dialog
+
+file-browse-certificate-spec = Ficheiros de certificados
+import-ca-certs-prompt = Selecione o ficheiro que contém o(s) certificado(s) de CA a importar
+import-email-cert-prompt = Selecione o ficheiro que contém o certificado de email de alguém para importar
+
+## For editing certificates trust
+
+# Variables:
+# $certName: the name of certificate
+edit-trust-ca = O certificado “{ $certName }” representa uma autoridade certificadora.
+
+## For Deleting Certificates
+
+delete-user-cert-title =
+ .title = Apagar os meus certificados
+delete-user-cert-confirm = Tem a certeza que pretende eliminar estes certificados?
+delete-user-cert-impact = Se apagar um dos seus certificados, não o poderá mais utilizar para se identificar.
+
+
+delete-ssl-override-title =
+ .title = Eliminar exceção do certificado de servidor
+delete-ssl-override-confirm = Tem a certeza que pretende eliminar esta exceção de servidor?
+delete-ssl-override-impact = Se eliminar uma exceção de servidor, irá restaurar as verificações de segurança habituais para este servidor, obrigando a que o mesmo utilize um certificado válido.
+
+delete-ca-cert-title =
+ .title = Apagar ou desconfiar de certificados CA
+delete-ca-cert-confirm = Pediu para eliminar estes certificados CA. Para certificados integrados, será removida toda a confiança, que tem o mesmo efeito. Tem a certeza que pretende eliminar ou deixar de confiar?
+delete-ca-cert-impact = Se apagar ou desconfiar um certificado de uma autoridade certificada (CA), esta aplicação deixará de confiar de qualquer certificado dessa CA.
+
+
+delete-email-cert-title =
+ .title = Apagar certificados de e-mail
+delete-email-cert-confirm = Tem a certeza que pretende eliminar os certificados de e-mail destas pessoas?
+delete-email-cert-impact = Se apagar o certificado de e-mail de uma pessoa, já não será capaz de enviar e-mails encriptados para essa pessoa.
+
+# 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 = Certificado com número de série: { $serialNumber }
+
+# Used to indicate that the user chose not to send a client authentication certificate to a server that requested one in a TLS handshake.
+send-no-client-certificate = Não enviar nenhum certificado de cliente
+
+# Used when no cert is stored for an override
+no-cert-stored-for-override = (Não armazenada)
+
+# When a certificate is unavailable (for example, it has been deleted or the token it exists on has been removed).
+certificate-not-available = (indisponível)
+
+## Used to show whether an override is temporary or permanent
+
+permanent-override = Permanente
+temporary-override = Temporária
+
+## Add Security Exception dialog
+
+add-exception-branded-warning = Está prestes a sobrepor a forma como o { -brand-short-name } identifica este site.
+add-exception-invalid-header = Este site tenta identificar-se com informação inválida.
+add-exception-domain-mismatch-short = Site errado
+add-exception-domain-mismatch-long = Este certificado pertence a um site diferente, o que pode indiciar que alguém está a tentar fazer-se passar por este site.
+add-exception-expired-short = Informação desatualizada
+add-exception-expired-long = O certificado não é atualmente válido. Pode ter sido furtado ou perdido, e pode ser utilizado por alguém para fazer-se passar por este site.
+add-exception-unverified-or-bad-signature-short = Identidade desconhecida
+add-exception-unverified-or-bad-signature-long = O certificado não é de confiança, uma vez que não foi verificado por uma autoridade reconhecida usando uma assinatura segura.
+add-exception-valid-short = Certificado válido
+add-exception-valid-long = Este site fornece uma identificação válida e verificável. Não é necessário adicionar uma exceção.
+add-exception-checking-short = A verificar a informação
+add-exception-checking-long = A tentar identificar o site…
+add-exception-no-cert-short = Informação indisponível
+add-exception-no-cert-long = Não foi possível obter o estado da identificação para este site.
+
+## Certificate export "Save as" and error dialogs
+
+save-cert-as = Guardar certificado para ficheiro
+cert-format-base64 = Certificado X.509 (PEM)
+cert-format-base64-chain = Certificado X.509 com cadeia (PEM)
+cert-format-der = Certificado X.509 (DER)
+cert-format-pkcs7 = Certificado X.509 (PKCS#7)
+cert-format-pkcs7-chain = Certificado X.509 com cadeia (PKCS#7)
+write-file-failure = Erro no ficheiro
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/security/certificates/deviceManager.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/security/certificates/deviceManager.ftl
new file mode 100644
index 0000000000..f47a2aa9bf
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/security/certificates/deviceManager.ftl
@@ -0,0 +1,133 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Strings used for device manager
+
+devmgr-window =
+ .title = Gestor de dispositivos
+ .style = min-width: 67em; min-height: 32em;
+
+devmgr-devlist =
+ .label = Módulos e dispositivos de segurança
+
+devmgr-header-details =
+ .label = Detalhes
+
+devmgr-header-value =
+ .label = Valor
+
+devmgr-button-login =
+ .label = Iniciar sessão
+ .accesskey = n
+
+devmgr-button-logout =
+ .label = Terminar sessão
+ .accesskey = o
+
+devmgr-button-changepw =
+ .label = Alterar palavra-passe
+ .accesskey = p
+
+devmgr-button-load =
+ .label = Carregar
+ .accesskey = C
+
+devmgr-button-unload =
+ .label = Descarregar
+ .accesskey = D
+
+devmgr-button-enable-fips =
+ .label = Ativar FIPS
+ .accesskey = F
+
+devmgr-button-disable-fips =
+ .label = Desativar FIPS
+ .accesskey = F
+
+## Strings used for load device
+
+load-device =
+ .title = Carregar controlador do dispositivo PKCS#11
+
+load-device-info = Introduza a informação para o módulo que pretende adicionar.
+
+load-device-modname =
+ .value = Nome do módulo
+ .accesskey = m
+
+load-device-modname-default =
+ .value = Novo módulo PKCS#11
+
+load-device-filename =
+ .value = Nome do ficheiro do módulo
+ .accesskey = f
+
+load-device-browse =
+ .label = Procurar…
+ .accesskey = P
+
+## Token Manager
+
+devinfo-status =
+ .label = Estado
+
+devinfo-status-disabled =
+ .label = Desativado
+
+devinfo-status-not-present =
+ .label = Não presente
+
+devinfo-status-uninitialized =
+ .label = Não inicializado
+
+devinfo-status-not-logged-in =
+ .label = Não autenticado
+
+devinfo-status-logged-in =
+ .label = Autenticado
+
+devinfo-status-ready =
+ .label = Pronto
+
+devinfo-desc =
+ .label = Descrição
+
+devinfo-man-id =
+ .label = Fabricante
+
+devinfo-hwversion =
+ .label = Versão de HW
+devinfo-fwversion =
+ .label = Versão de FW
+
+devinfo-modname =
+ .label = Módulo
+
+devinfo-modpath =
+ .label = Caminho
+
+login-failed = Falha de autenticação
+
+devinfo-label =
+ .label = Etiqueta
+
+devinfo-serialnum =
+ .label = Número de série
+
+fips-nonempty-primary-password-required = O modo FIPS requer uma palavra-passe principal definida para cada dispositivo de segurança. Por favor defina a palavra-passe antes de tentar ativar o modo FIPS.
+unable-to-toggle-fips = Não foi possível alterar o modo FIPS para o dispositivo de segurança. É recomendado que saia e reinicie esta aplicação.
+load-pk11-module-file-picker-title = Escolha um controlador do dispositivo PKCS#11 para carregar
+
+# Load Module Dialog
+load-module-help-empty-module-name =
+ .value = O nome do módulo não pode estar vazio.
+
+# Do not translate 'Root Certs'
+load-module-help-root-certs-module-name =
+ .value = ‘Root Certs‘ está reservado e não pode ser utilizado como nome de módulo.
+
+add-module-failure = Não é possível adicionar módulo
+del-module-warning = Tem a certeza que pretende eliminar este módulo de segurança?
+del-module-error = Não foi possível apagar o módulo
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/security/pippki/pippki.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/security/pippki/pippki.ftl
new file mode 100644
index 0000000000..fe8c522179
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/security/pippki/pippki.ftl
@@ -0,0 +1,106 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+password-quality-meter = Indicador de qualidade da palavra-passe
+
+## Change Password dialog
+
+change-device-password-window =
+ .title = Alterar palavra-passe
+# Variables:
+# $tokenName (String) - Security device of the change password dialog
+change-password-token = Dispositivo de segurança: { $tokenName }
+change-password-old = Palavra-passe atual:
+change-password-new = Nova palavra-passe:
+change-password-reenter = Nova palavra-passe (novamente):
+pippki-failed-pw-change = Não foi possível alterar a palavra-passe.
+pippki-incorrect-pw = A palavra-passe que digitou não corresponde à palavra-passe principal atual. Por favor, tente novamente.
+pippki-pw-change-ok = Palavra-passe alterada com sucesso.
+pippki-pw-empty-warning = As suas palavras-passe armazenadas e chaves privadas não serão protegidas.
+pippki-pw-erased-ok = Eliminou a sua palavra-passe. { pippki-pw-empty-warning }
+pippki-pw-not-wanted = Aviso! Decidiu não utilizar uma palavra-passe. { pippki-pw-empty-warning }
+pippki-pw-change2empty-in-fips-mode = Atualmente, está no modo FIPS. Este modo requer uma palavra-passe não vazia.
+
+## Reset Primary Password dialog
+
+reset-primary-password-window2 =
+ .title = Repor palavra-passe principal
+ .style = min-width: 40em
+reset-password-button-label =
+ .label = Repor
+reset-primary-password-text = Se remover a sua palavra-passe principal, todas as suas palavras-passe da Internet e e-mail, certificados pessoais e chaves privadas guardadas serão esquecidas. Tem a certeza de que pretende repor a sua palavra-passe principal?
+pippki-reset-password-confirmation-title = Repor palavra-passe principal
+pippki-reset-password-confirmation-message = A sua palavra-passe principal foi reposta.
+
+## Downloading cert dialog
+
+download-cert-window2 =
+ .title = A transferir certificado
+ .style = min-width: 46em
+download-cert-message = Foi-lhe pedido para confiar numa nova autoridade certificadora (CA).
+download-cert-trust-ssl =
+ .label = Confiar nesta entidade de certificação para identificar sites.
+download-cert-trust-email =
+ .label = Confiar nesta CA para identificar utilizadores de email.
+download-cert-message-desc = Antes de confiar nesta CA para qualquer fim, deve examinar o seu certificado, a sua política e os seus procedimentos (se disponíveis).
+download-cert-view-cert =
+ .label = Ver
+download-cert-view-text = Examinar certificado da CA
+
+## Client Authorization Ask dialog
+
+
+## Client Authentication Ask dialog
+
+client-auth-window =
+ .title = Pedido de identificação do utilizador
+client-auth-site-description = Este site pediu que se identificasse com um certificado:
+client-auth-choose-cert = Escolher um certificado para utilizar como identificação:
+client-auth-send-no-certificate =
+ .label = Não enviar um certificado.
+# Variables:
+# $hostname (String) - The domain name of the site requesting the client authentication certificate
+client-auth-site-identification = “{ $hostname }” solicitou que se identifique com um certificado:
+client-auth-cert-details = Detalhes do certificado selecionado:
+# Variables:
+# $issuedTo (String) - The subject common name of the currently-selected client authentication certificate
+client-auth-cert-details-issued-to = Emitido para: { $issuedTo }
+# Variables:
+# $serialNumber (String) - The serial number of the certificate (hexadecimal of the form "AA:BB:...")
+client-auth-cert-details-serial-number = Número de série: { $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 = Válido de { $notBefore } a { $notAfter }
+# Variables:
+# $keyUsages (String) - A list of already-localized key usages for which the certificate may be used
+client-auth-cert-details-key-usages = Utilizações-chave: { $keyUsages }
+# Variables:
+# $emailAddresses (String) - A list of email addresses present in the certificate
+client-auth-cert-details-email-addresses = Endereços de email: { $emailAddresses }
+# Variables:
+# $issuedBy (String) - The issuer common name of the certificate
+client-auth-cert-details-issued-by = Emitido por: { $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 = Armazenado em: { $storedOn }
+client-auth-cert-remember-box =
+ .label = Memorizar esta decisão
+
+## Set password (p12) dialog
+
+set-password-window =
+ .title = Escolha uma palavra-passe para a cópia do certificado
+set-password-message = A palavra-passe para a cópia do certificado que definir aqui, protege o ficheiro com a cópia que está prestes a criar. Tem de definir esta palavra-passe para prosseguir com a criação da cópia.
+set-password-backup-pw =
+ .value = Palavra-passe da cópia do certificado:
+set-password-repeat-backup-pw =
+ .value = Palavra-passe da cópia do certificado (novamente):
+set-password-reminder = Importante: se esquecer a palavra-passe da cópia do seu certificado, não será possível restaurar esta cópia mais tarde. Por favor guarde-a numa localização segura.
+
+## Protected authentication alert
+
+# Variables:
+# $tokenName (String) - The name of the token to authenticate to (for example, "OS Client Cert Token (Modern)")
+protected-auth-alert = Por favor, autentique-se na chave “{ $tokenName }”. A forma de fazer isto depende da chave (por exemplo, utilizando um leitor de impressão digital ou inserindo um código com um teclado).
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/services/accounts.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/services/accounts.ftl
new file mode 100644
index 0000000000..9e145e4b8f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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 } com { -brand-short-name } em { $system }
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutAbout.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutAbout.ftl
new file mode 100644
index 0000000000..f17b5a22bc
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutAbout.ftl
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-about-title = Acerca de about
+about-about-note =
+ Esta é uma lista de páginas “about” para sua conveniência.<br/>
+ Algumas delas poderão ser confusas. Algumas são apenas para fins de diagnóstico.<br/>
+ E algumas estão omitidas porque requerem strings de consulta.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutAddons.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutAddons.ftl
new file mode 100644
index 0000000000..a55244727c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutAddons.ftl
@@ -0,0 +1,498 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+addons-page-title = Gestor de extras
+search-header =
+ .placeholder = Pesquisar addons.mozilla.org
+ .searchbuttonlabel = Pesquisar
+
+## Variables
+## $domain - Domain name where add-ons are available (e.g. addons.mozilla.org)
+
+list-empty-get-extensions-message = Obter extensões e temas em <a data-l10n-name="get-extensions">{ $domain }</a>
+list-empty-get-dictionaries-message = Obter dicionários em <a data-l10n-name="get-extensions">{ $domain }</a>
+list-empty-get-language-packs-message = Obter pacotes de idioma em <a data-l10n-name="get-extensions">{ $domain }</a>
+
+##
+
+list-empty-installed =
+ .value = Não tem instalado qualquer extra deste tipo
+list-empty-available-updates =
+ .value = Nenhuma atualização encontrada
+list-empty-recent-updates =
+ .value = Não atualizou quaisquer extras recentemente
+list-empty-find-updates =
+ .label = Procurar atualizações
+list-empty-button =
+ .label = Saber mais acerca dos extras
+help-button = Apoio dos extras
+sidebar-help-button-title =
+ .title = Apoio dos extras
+addons-settings-button = Definições do { -brand-short-name }
+sidebar-settings-button-title =
+ .title = Definições do { -brand-short-name }
+show-unsigned-extensions-button =
+ .label = Algumas extensões não foram verificadas
+show-all-extensions-button =
+ .label = Mostrar todas as extensões
+detail-version =
+ .label = Versão
+detail-last-updated =
+ .label = Última atualização
+addon-detail-description-expand = Mostrar mais
+addon-detail-description-collapse = Mostrar menos
+detail-contributions-description = O programador deste extra pede para o ajudar no desenvolvimento com uma pequena contribuição.
+detail-contributions-button = Contribuir
+ .title = Contribua para o desenvolvimento deste extra
+ .accesskey = C
+detail-update-type =
+ .value = Atualizações automáticas
+detail-update-default =
+ .label = Predefinição
+ .tooltiptext = Instalar atualizações automaticamente se for a predefinição
+detail-update-automatic =
+ .label = Ligadas
+ .tooltiptext = Instalar atualizações automaticamente
+detail-update-manual =
+ .label = Desligadas
+ .tooltiptext = Não instalar atualizações automaticamente
+# Used as a description for the option to allow or block an add-on in private windows.
+detail-private-browsing-label = Executar em janelas privadas
+# Some add-ons may elect to not run in private windows by setting incognito: not_allowed in the manifest. This
+# cannot be overridden by the user.
+detail-private-disallowed-label = Não permitido em janelas privadas
+detail-private-disallowed-description2 = Esta extensão não é executada durante a navegação privada. <a data-l10n-name="learn-more">Saber mais</a>
+# Some special add-ons are privileged, run in private windows automatically, and this permission can't be revoked
+detail-private-required-label = Requer acesso a janelas privadas
+detail-private-required-description2 = Esta extensão tem acesso às suas atividades on-line durante a navegação privada. <a data-l10n-name="learn-more">Saber mais</a>
+detail-private-browsing-on =
+ .label = Permitir
+ .tooltiptext = Ativar em navegação privada
+detail-private-browsing-off =
+ .label = Não permitir
+ .tooltiptext = Desativar em navegação privada
+detail-home =
+ .label = Página inicial
+detail-home-value =
+ .value = { detail-home.label }
+detail-repository =
+ .label = Perfil do extra
+detail-repository-value =
+ .value = { detail-repository.label }
+detail-check-for-updates =
+ .label = Procurar atualizações
+ .accesskey = c
+ .tooltiptext = Procurar atualizações para este extra
+detail-show-preferences =
+ .label =
+ { PLATFORM() ->
+ [windows] Opções
+ *[other] Preferências
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] O
+ *[other] P
+ }
+ .tooltiptext =
+ { PLATFORM() ->
+ [windows] Alterar opções deste extra
+ *[other] Mudar as preferências deste extra
+ }
+detail-rating =
+ .value = Avaliação
+addon-restart-now =
+ .label = Reiniciar agora
+disabled-unsigned-heading =
+ .value = Alguns extras foram desativados
+disabled-unsigned-description = Os seguintes extras não foram verificados para utilização no { -brand-short-name }. Pode <label data-l10n-name="find-addons">encontrar substitutos</label> ou solicitar que o programador peça a sua verificação.
+disabled-unsigned-learn-more = Saber mais acerca do nosso esforço para manter os utilizadores seguros.
+disabled-unsigned-devinfo = Os programadores interessados em que o seus extras sejam verificados, devem ler o nosso <label data-l10n-name="learn-more">manual</label>.
+plugin-deprecation-description = Falta alguma coisa? Alguns plugins deixaram de ser suportados pelo { -brand-short-name }. <label data-l10n-name="learn-more">Saber mais.</label>
+legacy-warning-show-legacy = Mostrar extensões de legado
+legacy-extensions =
+ .value = Extensões de legado
+legacy-extensions-description = Estas extensões não atendem aos padrões atuais do { -brand-short-name } por isso foram desativadas <label data-l10n-name="legacy-learn-more">Saber acerca das alterações aos extras</label>
+private-browsing-description2 =
+ O { -brand-short-name } está a mudar a maneira como as extensões funcionam na navegação privada. Quaisquer novas extensões que adicione ao
+ { -brand-short-name } não serão executadas por predefinição em janelas privadas. A menos que permita isso nas definições, a
+ extensão não irá funcionar durante a navegação privada e não irá ter acesso às suas atividades online
+ lá. Fizemos esta alteração para manter a sua navegação privada, privada.
+ <label data-l10n-name = "private-browsing-learn-more">Saber como gerir definições de extensões.</ label>
+addon-category-discover = Recomendações
+addon-category-discover-title =
+ .title = Recomendações
+addon-category-extension = Extensões
+addon-category-extension-title =
+ .title = Extensões
+addon-category-theme = Temas
+addon-category-theme-title =
+ .title = Temas
+addon-category-plugin = Plugins
+addon-category-plugin-title =
+ .title = Plugins
+addon-category-dictionary = Dicionários
+addon-category-dictionary-title =
+ .title = Dicionários
+addon-category-locale = Idiomas
+addon-category-locale-title =
+ .title = Idiomas
+addon-category-available-updates = Atualizações disponíveis
+addon-category-available-updates-title =
+ .title = Atualizações disponíveis
+addon-category-recent-updates = Atualizações recentes
+addon-category-recent-updates-title =
+ .title = Atualizações recentes
+addon-category-sitepermission = Permissões do site
+addon-category-sitepermission-title =
+ .title = Permissões do site
+# String displayed in about:addons in the Site Permissions section
+# Variables:
+# $host (string) - DNS host name for which the webextension enables permissions
+addon-sitepermission-host = Permissões de site para { $host }
+
+## These are global warnings
+
+extensions-warning-safe-mode = Todos os extras foram desativados pelo modo de segurança.
+extensions-warning-check-compatibility = A verificação de compatibilidade de extras está desativada. Poderá ter extras incompatíveis.
+extensions-warning-safe-mode2 =
+ .message = Todos os extras foram desativados pelo modo de segurança.
+extensions-warning-check-compatibility2 =
+ .message = A verificação de compatibilidade de extras está desativada. Poderá ter extras incompatíveis.
+extensions-warning-check-compatibility-button = Ativar
+ .title = Ativar verificação de compatibilidade de extras
+extensions-warning-update-security = A verificação de compatibilidade de extras está desativada. Poderá estar comprometido com atualizações.
+extensions-warning-update-security2 =
+ .message = A verificação de compatibilidade de extras está desativada. Poderá estar comprometido com atualizações.
+extensions-warning-update-security-button = Ativar
+ .title = Ativar verificação de segurança de atualização do extra
+extensions-warning-imported-addons2 =
+ .message = Por favor, finalize a instalação das extensões que foram importadas para o { -brand-short-name }.
+extensions-warning-imported-addons-button = Instalar Extensões
+
+## Strings connected to add-on updates
+
+addon-updates-check-for-updates = Procurar atualizações
+ .accesskey = c
+addon-updates-view-updates = Ver atualizações recentes
+ .accesskey = V
+
+# This menu item is a checkbox that toggles the default global behavior for
+# add-on update checking.
+
+addon-updates-update-addons-automatically = Atualizar extras automaticamente
+ .accesskey = A
+
+## Specific add-ons can have custom update checking behaviors ("Manually",
+## "Automatically", "Use default global behavior"). These menu items reset the
+## update checking behavior for all add-ons to the default global behavior
+## (which itself is either "Automatically" or "Manually", controlled by the
+## extensions-updates-update-addons-automatically.label menu item).
+
+addon-updates-reset-updates-to-automatic = Repor atualização automática para todos os extras
+ .accesskey = R
+addon-updates-reset-updates-to-manual = Repor atualização manual para todos os extras
+ .accesskey = R
+
+## Status messages displayed when updating add-ons
+
+addon-updates-updating = A atualizar extras
+addon-updates-installed = Os seus extras foram atualizados.
+addon-updates-none-found = Nenhuma atualização encontrada
+addon-updates-manual-updates-found = Ver atualizações disponíveis
+
+## Add-on install/debug strings for page options menu
+
+addon-install-from-file = Instalar extra a partir de ficheiro…
+ .accesskey = I
+addon-install-from-file-dialog-title = Selecione o extra a instalar
+addon-install-from-file-filter-name = Extras
+addon-open-about-debugging = Depurar extras
+ .accesskey = p
+
+## Extension shortcut management
+
+# This is displayed in the page options menu
+addon-manage-extensions-shortcuts = Gerir atalhos de extensões
+ .accesskey = s
+shortcuts-no-addons = Não tem quaisquer extensões ativadas.
+shortcuts-no-commands = As seguintes extensões não possuem atalhos:
+shortcuts-input =
+ .placeholder = Escrever um atalho
+shortcuts-browserAction2 = Ativar botão da barra de ferramentas
+shortcuts-pageAction = Ativar ação da página
+shortcuts-sidebarAction = Alternar a barra lateral
+shortcuts-modifier-mac = Incluir Ctrl, Alt ou ⌘
+shortcuts-modifier-other = Incluir Ctrl ou Alt
+shortcuts-invalid = Combinação inválida
+shortcuts-letter = Escrever uma letra
+shortcuts-system = Não é possível sobrepor um atalho do { -brand-short-name }
+# String displayed in warning label when there is a duplicate shortcut
+shortcuts-duplicate = Atalho duplicado
+# String displayed when a keyboard shortcut is already assigned to more than one add-on
+# Variables:
+# $shortcut (string) - Shortcut string for the add-on
+shortcuts-duplicate-warning-message = { $shortcut } está a ser utilizado como um atalho em mais do que um caso. Atalhos duplicados podem causar comportamentos inesperados.
+# String displayed when a keyboard shortcut is already assigned to more than one add-on
+# Variables:
+# $shortcut (string) - Shortcut string for the add-on
+shortcuts-duplicate-warning-message2 =
+ .message = { $shortcut } está a ser utilizado como um atalho em mais do que um caso. Atalhos duplicados podem causar comportamentos inesperados.
+# String displayed when a keyboard shortcut is already used by another add-on
+# Variables:
+# $addon (string) - Name of the add-on
+shortcuts-exists = Já está em uso por { $addon }
+# Variables:
+# $numberToShow (number) - Number of other elements available to show
+shortcuts-card-expand-button =
+ { $numberToShow ->
+ [one] Mostrar mais { $numberToShow }
+ *[other] Mostrar mais { $numberToShow }
+ }
+shortcuts-card-collapse-button = Mostrar menos
+header-back-button =
+ .title = Retroceder
+
+## Recommended add-ons page
+
+# Explanatory introduction to the list of recommended add-ons. The action word
+# ("recommends") in the final sentence is a link to external documentation.
+discopane-intro =
+ As extensões são como aplicações para o seu navegador, estas permitem-lhe
+ proteger palavras-passe, transferir vídeos, encontrar ofertas, bloquear anúncios irritantes, alterar
+ a aparência do seu navegador, e muito mais. Estes pequenos programas de software são
+ muitas vezes programados por terceiros. Aqui está uma seleção que o { -brand-product-name }
+ <a data-l10n-name="learn-more-trigger">recomenda</a> para segurança, desempenho e funcionalidade excecionais.
+# Notice to make user aware that the recommendations are personalized.
+discopane-notice-recommendations =
+ Algumas destas recomendações são personalizadas. Estas são baseadas noutras
+ extensões que instalou, preferências de perfil e estatísticas de utilização.
+# Notice to make user aware that the recommendations are personalized.
+discopane-notice-recommendations2 =
+ .message =
+ Algumas destas recomendações são personalizadas. Estas são baseadas noutras
+ extensões que instalou, preferências de perfil e estatísticas de utilização.
+discopane-notice-learn-more = Saber mais
+privacy-policy = Política de privacidade
+# Refers to the author of an add-on, shown below the name of the add-on.
+# Variables:
+# $author (string) - The name of the add-on developer.
+created-by-author = por <a data-l10n-name="author">{ $author }</a>
+# Shows the number of daily users of the add-on.
+# Variables:
+# $dailyUsers (number) - The number of daily users.
+user-count = Utilizadores: { $dailyUsers }
+install-extension-button = Adicionar ao { -brand-product-name }
+install-theme-button = Instalar tema
+# The label of the button that appears after installing an add-on. Upon click,
+# the detailed add-on view is opened, from where the add-on can be managed.
+manage-addon-button = Gerir
+find-more-addons = Encontrar mais extras
+find-more-themes = Encontrar mais temas
+# This is a label for the button to open the "more options" menu, it is only
+# used for screen readers.
+addon-options-button =
+ .aria-label = Mais opções
+
+## Add-on actions
+
+report-addon-button = Reportar
+remove-addon-button = Remover
+# The link will always be shown after the other text.
+remove-addon-disabled-button = Não pode ser removido <a data-l10n-name="link">Porquê?</a>
+disable-addon-button = Desativar
+enable-addon-button = Ativar
+# This is used for the toggle on the extension card, it's a checkbox and this
+# is always its label.
+extension-enable-addon-button-label =
+ .aria-label = Ativar
+preferences-addon-button =
+ { PLATFORM() ->
+ [windows] Opções
+ *[other] Preferências
+ }
+details-addon-button = Detalhes
+release-notes-addon-button = Notas de lançamento
+permissions-addon-button = Permissões
+extension-enabled-heading = Ativada
+extension-disabled-heading = Desativada
+theme-enabled-heading = Ativado
+theme-disabled-heading2 = Temas Guardados
+plugin-enabled-heading = Ativado
+plugin-disabled-heading = Desativado
+dictionary-enabled-heading = Ativado
+dictionary-disabled-heading = Desativado
+locale-enabled-heading = Ativada
+locale-disabled-heading = Desativada
+sitepermission-enabled-heading = Ativada
+sitepermission-disabled-heading = Desativada
+always-activate-button = Ativar sempre
+never-activate-button = Nunca ativar
+addon-detail-author-label = Autor
+addon-detail-version-label = Versão
+addon-detail-last-updated-label = Última atualização
+addon-detail-homepage-label = Página inicial
+addon-detail-rating-label = Avaliação
+# Message for add-ons with a staged pending update.
+install-postponed-message = Esta extensão será atualizada quando o { -brand-short-name } for reiniciado.
+# Message for add-ons with a staged pending update.
+install-postponed-message2 =
+ .message = Esta extensão será atualizada quando o { -brand-short-name } for reiniciado.
+install-postponed-button = Atualizar agora
+# The average rating that the add-on has received.
+# Variables:
+# $rating (number) - A number between 0 and 5. The translation should show at most one digit after the comma.
+five-star-rating =
+ .title = Avaliado com { NUMBER($rating, maximumFractionDigits: 1) } de 5
+# This string is used to show that an add-on is disabled.
+# Variables:
+# $name (string) - The name of the add-on
+addon-name-disabled = { $name } (desativado)
+# The number of reviews that an add-on has received on AMO.
+# Variables:
+# $numberOfReviews (number) - The number of reviews received
+addon-detail-reviews-link =
+ { $numberOfReviews ->
+ [one] { $numberOfReviews } análise
+ *[other] { $numberOfReviews } análises
+ }
+
+## Pending uninstall message bar
+
+# Variables:
+# $addon (string) - Name of the add-on
+pending-uninstall-description = <span data-l10n-name="addon-name">{ $addon }</span> foi removido.
+# Variables:
+# $addon (string) - Name of the add-on
+pending-uninstall-description2 =
+ .message = { $addon } foi removido.
+pending-uninstall-undo-button = Desfazer
+addon-detail-updates-label = Permitir atualizações automáticas
+addon-detail-updates-radio-default = Predefinido
+addon-detail-updates-radio-on = Ligado
+addon-detail-updates-radio-off = Desligado
+addon-detail-update-check-label = Procurar atualizações
+install-update-button = Atualizar
+# aria-label associated to the updates row to help screen readers to announce the group
+# of input controls being entered.
+addon-detail-group-label-updates =
+ .aria-label = { addon-detail-updates-label }
+# This is the tooltip text for the private browsing badge in about:addons. The
+# badge is the private browsing icon included next to the extension's name.
+addon-badge-private-browsing-allowed2 =
+ .title = Permitido nas janelas privadas
+ .aria-label = { addon-badge-private-browsing-allowed2.title }
+addon-detail-private-browsing-help = Quando permitido, a extensão irá ter acesso às suas atividades online durante a navegação privada. <a data-l10n-name="learn-more">Saber mais</a>
+addon-detail-private-browsing-allow = Permitir
+addon-detail-private-browsing-disallow = Não permitir
+# aria-label associated to the private browsing row to help screen readers to announce the group
+# of input controls being entered.
+addon-detail-group-label-private-browsing =
+ .aria-label = { detail-private-browsing-label }
+
+## "sites with restrictions" (internally called "quarantined") are special domains
+## where add-ons are normally blocked for security reasons.
+
+# Used as a description for the option to allow or block an add-on on quarantined domains.
+addon-detail-quarantined-domains-label = Executar em sites com restrições
+# Used as help text part of the quarantined domains UI controls row.
+addon-detail-quarantined-domains-help = Quando permitido, a extensão terá acesso aos sites restritos por { -vendor-short-name }. Permita apenas se confiar nesta extensão.
+# Used as label and tooltip text on the radio inputs associated to the quarantined domains UI controls.
+addon-detail-quarantined-domains-allow = Permitir
+addon-detail-quarantined-domains-disallow = Não permitir
+# aria-label associated to the quarantined domains exempt row to help screen readers to announce the group.
+addon-detail-group-label-quarantined-domains =
+ .aria-label = { addon-detail-quarantined-domains-label }
+
+## This is the tooltip text for the recommended badges for an extension in about:addons. The
+## badge is a small icon displayed next to an extension when it is recommended on AMO.
+
+addon-badge-recommended2 =
+ .title = O { -brand-product-name } recomenda apenas as extensões que cumpram aos nossos padrões para segurança e desempenho.
+ .aria-label = { addon-badge-recommended2.title }
+# We hard code "Mozilla" in the string below because the extensions are built
+# by Mozilla and we don't want forks to display "by Fork".
+addon-badge-line3 =
+ .title = Extensão oficial desenvolvida pela Mozilla. Cumpre as recomendações de segurança e de desempenho.
+ .aria-label = { addon-badge-line3.title }
+addon-badge-verified2 =
+ .title = Esta extensão foi revista para cumprir com os nossos padrões de segurança e desempenho
+ .aria-label = { addon-badge-verified2.title }
+
+##
+
+available-updates-heading = Atualizações disponíveis
+recent-updates-heading = Atualizações recentes
+release-notes-loading = A carregar…
+release-notes-error = Desculpe mas ocorreu um erro ao carregar as notas de lançamento.
+addon-permissions-empty = Esta extensão não requer quaisquer permissões
+addon-permissions-required = Permissões necessárias para a funcionalidade principal:
+addon-permissions-optional = Permissões opcionais para a funcionalidade adicionada:
+addon-permissions-learnmore = Saber mais sobre permissões
+recommended-extensions-heading = Extensões recomendadas
+recommended-themes-heading = Temas recomendados
+# Variables:
+# $hostname (string) - Host where the permissions are granted
+addon-sitepermissions-required = Concede as seguintes capacidades a <span data-l10n-name="hostname">{ $hostname }</span>:
+# A recommendation for the Firefox Color theme shown at the bottom of the theme
+# list view. The "Firefox Color" name itself should not be translated.
+recommended-theme-1 = A sentir-se criativo(a)? <a data-l10n-name="link">Crie o seu próprio tema com o Firefox Color.</a>
+
+## Page headings
+
+extension-heading = Gira as suas extensões
+theme-heading = Gira os seus temas
+plugin-heading = Gira os seus plugins
+dictionary-heading = Gira os seus dicionários
+locale-heading = Gira os seus idiomas
+updates-heading = Gerir as suas atualizações
+sitepermission-heading = Gerir as suas permissões do site
+discover-heading = Personalize o seu { -brand-short-name }
+shortcuts-heading = Gira atalhos de extensões
+default-heading-search-label = Encontrar mais extras
+addons-heading-search-input =
+ .placeholder = Pesquisar addons.mozilla.org
+addon-page-options-button =
+ .title = Ferramentas para todos os extras
+
+## Detail notifications
+## Variables:
+## $name (string) - Name of the add-on.
+
+# Variables:
+# $version (string) - Application version.
+details-notification-incompatible = { $name } é incompatível com o { -brand-short-name } { $version }.
+# Variables:
+# $version (string) - Application version.
+details-notification-incompatible2 =
+ .message = { $name } é incompatível com o { -brand-short-name } { $version }.
+details-notification-incompatible-link = Mais Informações
+details-notification-unsigned-and-disabled = { $name } não pôde ser verificado para utilização no { -brand-short-name } e foi desativado.
+details-notification-unsigned-and-disabled2 =
+ .message = { $name } não pôde ser verificado para utilização no { -brand-short-name } e foi desativado.
+details-notification-unsigned-and-disabled-link = Mais informação
+details-notification-unsigned = { $name } não pôde ser verificado para utilização no { -brand-short-name }. Proceda com cuidado.
+details-notification-unsigned2 =
+ .message = { $name } não pôde ser verificado para utilização no { -brand-short-name }. Proceda com cuidado.
+details-notification-unsigned-link = Mais informação
+details-notification-blocked = { $name } foi desativado devido a problemas de estabilidade ou de segurança.
+details-notification-blocked2 =
+ .message = { $name } foi desativado devido a problemas de estabilidade ou de segurança.
+details-notification-blocked-link = Mais informação
+details-notification-softblocked = { $name } é conhecido por causar problemas de estabilidade ou de segurança.
+details-notification-softblocked2 =
+ .message = { $name } é conhecido por causar problemas de estabilidade ou de segurança.
+details-notification-softblocked-link = Mais informação
+details-notification-gmp-pending = { $name } será instalado dentro de momentos.
+details-notification-gmp-pending2 =
+ .message = { $name } será instalado dentro de momentos.
+
+## Gecko Media Plugins (GMPs)
+
+plugins-gmp-license-info = Informação da licença
+plugins-gmp-privacy-info = Informação de privacidade
+plugins-openh264-name = Codec de vídeo OpenH264 disponibilizado por Cisco Systems, Inc.
+plugins-openh264-description = Este plugin é instalado automaticamente pela Mozilla para cumprir com a especificação WebRTC e para ativar chamadas WebRTC com dispositivos que requeiram a codificação de vídeo H.264. Visite http://www.openh264.org/ para ver o código fonte do codec e saber mais acerca da implementação.
+plugins-widevine-name = Módulo Widevine Content Decryption disponibilizado por Google Inc.
+plugins-widevine-description = Este plugin ativa a reprodução de multimédia encriptada em conformidade com a especificação Encrypted Media Extensions. A multimédia encriptada é tipicamente utilizada por sites para proteger contra a cópia de conteúdo multimédia premium. Visite https://www.w3.org/TR/encrypted-media/ para mais informação sobre Encrypted Media Extensions.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutCompat.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutCompat.ftl
new file mode 100644
index 0000000000..44819dfad8
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutCompat.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+label-disable = Desativar
+label-enable = Ativar
+label-interventions = Intervenções
+label-more-information = Mais informação: Bug { $bug }
+label-overrides = Sobreposições de User Agent
+text-disabled-in-about-config = Esta funcionalidade foi desativada em about:config
+text-no-interventions = Nenhuma intervenção está a ser utilizada
+text-no-overrides = Nenhuma sobreposição de UA está a ser utilizada
+text-title = about:compat
+
+## Do not translate "SmartBlock". For reference, SmartBlock is a feature
+## of Firefox anti-tracking which fixes website breakage caused when
+## trackers are blocked, by acting just enough like those trackers to fix the
+## breakage. SmartBlock also contains special fixes for sites broken by
+## Firefox's Total Cookie Protection feature.
+
+label-smartblock = Correções SmartBlock
+text-no-smartblock = Não estão a ser utilizadas quaisquer correções SmartBlock
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutGlean.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutGlean.ftl
new file mode 100644
index 0000000000..4e678e8f32
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutGlean.ftl
@@ -0,0 +1,97 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### "FOG", "Glean", and "Glean SDK" should remain in English.
+
+-fog-brand-name = FOG
+-glean-brand-name = Glean
+glean-sdk-brand-name = { -glean-brand-name } SDK
+glean-debug-ping-viewer-brand-name = Depurador de visualização de ping { -glean-brand-name }
+about-glean-page-title2 = Sobre { -glean-brand-name }
+about-glean-header = Sobre { -glean-brand-name }
+about-glean-interface-description =
+ O <a data-l10n-name="glean-sdk-doc-link">{ glean-sdk-brand-name }</a>
+ é uma biblioteca de recolha de dados utilizada em projetos { -vendor-short-name }.
+ Este interface foi projetado para ser utilizado por programadores e testadores para
+ <a data-l10n-name="fog-link">testar instrumentação</a> manualmente.
+about-glean-upload-enabled = O carregamento de dados está ativado.
+about-glean-upload-disabled = O carregamento de dados está desativado.
+about-glean-upload-enabled-local = O carregamento de dados está ativo apenas para o envio para um servidor local.
+about-glean-upload-fake-enabled =
+ O carregamento de dados está desativado,
+ mas estamos a mentir e a dizer que { glean-sdk-brand-name } está ativo
+ para que os dados possam ser registados localmente.
+ Observação: se você definir uma etiqueta de depuração, os pings serão enviados para o
+ <a data-l10n-name="glean-debug-ping-viewer">{ glean-debug-ping-viewer-brand-name }</a> independentemente das configurações.
+# This message is followed by a bulleted list.
+about-glean-prefs-and-defines = As <a data-l10n-name="fog-prefs-and-defines-doc-link">preferências e definições</a> relevantes incluem:
+# Variables:
+# $data-upload-pref-value (String): the value of the datareporting.healthreport.uploadEnabled pref. Typically "true", sometimes "false"
+# Do not translate strings between <code> </code> tags.
+about-glean-data-upload = <code>datareporting.healthreport.uploadEnabled</code>: { $data-upload-pref-value }
+# Variables:
+# $local-port-pref-value (Integer): the value of the telemetry.fog.test.localhost_port pref. Typically 0. Can be negative.
+# Do not translate strings between <code> </code> tags.
+about-glean-local-port = <code>telemetry.fog.test.localhost_port</code>: { $local-port-pref-value }
+# Variables:
+# $glean-android-define-value (Boolean): the value of the MOZ_GLEAN_ANDROID define. Typically "false", sometimes "true".
+# Do not translate strings between <code> </code> tags.
+about-glean-glean-android = <code>MOZ_GLEAN_ANDROID</code>: { $glean-android-define-value }
+# Variables:
+# $moz-official-define-value (Boolean): the value of the MOZILLA_OFFICIAL define.
+# Do not translate strings between <code> </code> tags.
+about-glean-moz-official = <code>MOZILLA_OFFICIAL</code>: { $moz-official-define-value }
+about-glean-about-testing-header = Sobre os testes
+# This message is followed by a numbered list.
+about-glean-manual-testing =
+ As instruções completas estão documentadas na
+ <a data-l10n-name="fog-instrumentation-test-doc-link">documentação de teste de instrumentação { -fog-brand-name } </a>
+ e na <a data-l10n-name="glean-sdk-doc-link">documentação do { glean-sdk-brand-name }</a>,
+ mas, resumindo, para verificar manualmente se a sua instrumentação funciona, você deve:
+# This message is an option in a dropdown filled with untranslated names of pings.
+about-glean-no-ping-label = (não enviar qualquer ping)
+# An in-line text input field precedes this string.
+about-glean-label-for-tag-pings = No campo anterior, certifique-se que existe uma etiqueta de depuração memorável para que você possa reconhecer os seus pings mais tarde.
+# An in-line drop down list precedes this string.
+# Do not translate strings between <code> </code> tags.
+about-glean-label-for-ping-names =
+ Selecione na lista anterior o ping no qual se encontra a sua instrumentação.
+ Se estiver num <a data-l10n-name="custom-ping-link">ping personalizado</a>, escolha esse.
+ Caso contrário, a predefinição para métricas de <code>evento</code> é
+ o ping <code>events</code>
+ e o padrão para todas as outras métricas é
+ o ping <code>metrics</code>.
+# An in-line check box precedes this string.
+about-glean-label-for-log-pings =
+ (Opcional. Marque a caixa anterior se quiser que os pings também sejam registados quando forem enviados.
+ Além disto, irá precisar de <a data-l10n-name="enable-logging-link">ativar o registo</a>.)
+# Variables
+# $debug-tag (String): The user-set value of the debug tag input on this page. Like "about-glean-kV"
+# An in-line button labeled "Apply settings and submit ping" precedes this string.
+about-glean-label-for-controls-submit =
+ Pressione o botão anterior para marcar todos os pings de { -glean-brand-name } com a sua etiqueta e envie o ping selecionado.
+ (Todos os pings enviados até reiniciar a aplicação serão marcados com
+ <code>{ $debug-tag }</code>.)
+about-glean-li-for-visit-gdpv =
+ <a data-l10n-name="gdpv-tagged-pings-link">Visite a página { glean-debug-ping-viewer-brand-name } para consultar os pings com a sua etiqueta</a>.
+ Não deve demorar mais do que alguns segundos desde o momento em que ativar o botão, até o seu ping chegar.
+ Por vezes, pode demorar alguns minutos.
+# Do not translate strings between <code> </code> tags.
+about-glean-adhoc-explanation =
+ Para mais testes <i>ad hoc</i>,
+ também pode determinar o valor atual de uma determinada peça de instrumentação
+ abrindo uma consola devtools em <code>about:glean</code>
+ e utilizando a API <code>testGetValue()</code> como
+ <code>Glean.metricCategory.metricName.testGetValue()</code>.
+# Do not translate strings between <code> </code> tags.
+about-glean-adhoc-note =
+ Por favor, note que está a utilizar a API Glean JS através da consola de ferramentas de desenvolvimento.
+ Isto significa que a categoria da métrica e o nome da métrica estão formatados em
+ <code>camelCase</code> ao contrário das API Rust e C++.
+controls-button-label-verbose = Aplicar configurações e enviar ping
+about-glean-about-data-header = Sobre os dados
+about-glean-about-data-explanation =
+ Para navegar na lista de dados recolhidos, consulte o
+ <a data-l10n-name="glean-dictionary-link">Dicionário { -glean-brand-name }</a>.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutHttpsOnlyError.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutHttpsOnlyError.ftl
new file mode 100644
index 0000000000..7972f9de57
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutHttpsOnlyError.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-httpsonly-title-alert = Alerta modo Apenas HTTPS
+about-httpsonly-title-site-not-available = Site seguro não disponível
+
+# Variables:
+# $websiteUrl (String) - Url of the website that failed to load. Example: www.example.com
+about-httpsonly-explanation-unavailable2 = Ativou o modo Apenas HTTPS para uma maior segurança e não está disponível uma versão HTTPS de <em>{ $websiteUrl }</em>.
+about-httpsonly-explanation-question = O que pode estar na origem disto?
+about-httpsonly-explanation-nosupport = Provavelmente, o site simplesmente não suporta HTTPS.
+about-httpsonly-explanation-risk = Também é possível que um atacante esteja envolvido. Se decidir visitar o site, não deve introduzir quaisquer informações sensíveis, como palavras-passe, e-mails ou detalhes de cartões de crédito.
+about-httpsonly-explanation-continue = Se você continuar, o modo Apenas HTTPS será temporariamente desativado para este site.
+
+about-httpsonly-button-continue-to-site = Continuar para site HTTP
+about-httpsonly-button-go-back = Retroceder
+about-httpsonly-link-learn-more = Saber mais…
+
+## Suggestion Box that only shows up if a secure connection to www can be established
+## Variables:
+## $websiteUrl (String) - Url of the website that can be securely loded with these alternatives. Example: example.com
+
+## Suggestion Box that only shows up if a secure connection to www can be established
+## Variables:
+## $websiteUrl (String) - Url of the website that can be securely loaded with these alternatives. Example: example.com
+
+about-httpsonly-suggestion-box-header = Possível alternativa
+about-httpsonly-suggestion-box-www-text = Existe uma versão segura de <em>www.{ $websiteUrl }</em>. Pode optar por visitar esta página em vez de <em>{ $websiteUrl }</em>.
+about-httpsonly-suggestion-box-www-button = Ir para www.{ $websiteUrl }
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutLogging.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutLogging.ftl
new file mode 100644
index 0000000000..f5360d44a6
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutLogging.ftl
@@ -0,0 +1,67 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This is the title of the page
+about-logging-title = Sobre o registo
+about-logging-page-title = Gestor de registo
+about-logging-current-log-file = Ficheiro de registo atual:
+about-logging-new-log-file = Novo ficheiro de registo:
+about-logging-currently-enabled-log-modules = Módulos de registo atualmente ativos:
+about-logging-log-tutorial = Consulte <a data-l10n-name="logging">HTTP Logging</a> para instruções sobre como utilizar esta ferramenta.
+# This message is used as a button label, "Open" indicates an action.
+about-logging-open-log-file-dir = Abrir diretório
+about-logging-set-log-file = Definir ficheiro de registo
+about-logging-set-log-modules = Definir módulos de registo
+about-logging-start-logging = Começar a registar
+about-logging-stop-logging = Parar de registar
+about-logging-buttons-disabled = Registo ativado através de variáveis de ambiente; configuração dinâmica indisponível.
+about-logging-some-elements-disabled = Registo configurado via URL; algumas opções de configuração estão indisponíveis
+about-logging-info = Informação:
+about-logging-log-modules-selection = Seleção do módulo de registo
+about-logging-new-log-modules = Novos módulos de registo:
+about-logging-logging-output-selection = Saída do registo
+about-logging-logging-to-file = A registar para um ficheiro
+about-logging-logging-to-profiler = A registar para { -profiler-brand-name }
+about-logging-no-log-modules = Nenhum
+about-logging-no-log-file = Nenhum
+about-logging-logging-preset-selector-text = Modelo de registo:
+about-logging-with-profiler-stacks-checkbox = Ativar rastreamentos da stack para as mensagens de registo
+
+## Logging presets
+
+about-logging-preset-networking-label = Rede
+about-logging-preset-networking-description = Módulos de registo para diagnosticar problemas de rede
+about-logging-preset-networking-cookie-label = Cookies
+about-logging-preset-networking-cookie-description = Módulos de registo para diagnosticar problemas de cookies
+about-logging-preset-networking-websocket-label = WebSockets
+about-logging-preset-networking-websocket-description = Módulos de registo para diagnosticar problemas de WebSocket
+about-logging-preset-networking-http3-label = HTTP/3
+about-logging-preset-networking-http3-description = Módulos de registo para diagnosticar HTTPS/3 e problemas de QUIC
+about-logging-preset-media-playback-label = Reprodução de multimédia
+about-logging-preset-media-playback-description = Módulos de registo para diagnosticar problemas de reprodução de media (não incluí problemas de videoconferência)
+about-logging-preset-webrtc-label = WebRTC
+about-logging-preset-webrtc-description = Módulos de registo para diagnosticar chamadas de WebRTC
+about-logging-preset-webgpu-label = WebGPU
+about-logging-preset-webgpu-description = Módulos de registo para diagnosticar problemas no WebGPU
+about-logging-preset-gfx-label = Gráficos
+about-logging-preset-gfx-description = Módulos de registo para diagnosticar problemas gráficos
+# This is specifically "Microsoft Windows". Microsoft normally doesn't localize it, and we should follow their convention here.
+about-logging-preset-windows-label = Windows
+about-logging-preset-windows-description = Módulos de registo para diagnosticar problemas específicos do Microsoft Windows
+about-logging-preset-custom-label = Personalizar
+about-logging-preset-custom-description = Módulos de registo selecionados manualmente
+# Error handling
+about-logging-error = Erro:
+
+## Variables:
+## $k (String) - Variable name
+## $v (String) - Variable value
+
+about-logging-invalid-output = Valor inválido “{ $v }“ para a chave “{ $k }“
+about-logging-unknown-logging-preset = Modelo de registo desconhecida “{ $v }“
+about-logging-unknown-profiler-preset = Modelo de gerador de perfis desconhecido “{ $v }“
+about-logging-unknown-option = Opção about:logging “{ $k }“ desconhecida
+about-logging-configuration-url-ignored = URL de configuração ignorado
+about-logging-file-and-profiler-override = Não é possível forçar a saída para ficheiro e substituir as opções do gerador de perfis em simultâneo
+about-logging-configured-via-url = Opção configurada via URL
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutMozilla.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutMozilla.ftl
new file mode 100644
index 0000000000..62e57c29d7
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutMozilla.ftl
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-mozilla-title-6-27 = O livro da Mozilla, 6:27
+about-mozilla-quote-6-27 =
+ O Monstro continuou os seus estudos com um <em>Foco</em> renovado, construindo grandes trabalhos de <em>Referência</em>
+ e contemplando novas <em>Realidades</em>. O Monstro inspirou os seus seguidores a criar uma forma mais simples de si próprio e, através de meios <em>Astutos</em> distribuiu a mesma pelo mundo.
+about-mozilla-from-6-27 = do <strong>Livro da Mozilla,</strong> 6:27
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutNetworking.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutNetworking.ftl
new file mode 100644
index 0000000000..3e3aaa9658
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutNetworking.ftl
@@ -0,0 +1,68 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-networking-title = Acerca da rede
+about-networking-http = HTTP
+about-networking-sockets = Sockets
+about-networking-dns = DNS
+about-networking-dns-clear-cache-button = Limpar a cache de DNS
+about-networking-dns-trr-url = Endereço DoH
+about-networking-dns-trr-mode = Modo DoH
+about-networking-dns-suffix = Sufixo de DNS
+about-networking-websockets = WebSockets
+about-networking-refresh = Atualizar
+about-networking-auto-refresh = Atualizar a cada 3 segundos
+about-networking-hostname = Servidor
+about-networking-port = Porta
+about-networking-http-version = Versão de HTTP
+about-networking-ssl = SSL
+about-networking-active = Ativo
+about-networking-idle = Inativo
+about-networking-host = Servidor
+about-networking-type = Tipo
+about-networking-sent = Enviado
+about-networking-received = Recebido
+about-networking-family = Família
+about-networking-trr = TRR
+about-networking-addresses = Endereços
+about-networking-expires = Expira (segundos)
+about-networking-originAttributesSuffix = Chave de isolamento
+about-networking-flags = Etiquetas adicionais
+about-networking-messages-sent = Mensagens enviadas
+about-networking-messages-received = Mensagens recebidas
+about-networking-bytes-sent = Bytes enviados
+about-networking-bytes-received = Bytes recebidos
+about-networking-logging = Registos
+about-networking-dns-lookup = Pesquisa de DNS
+about-networking-dns-lookup-button = Resolver
+about-networking-dns-domain = Domínio:
+about-networking-dns-lookup-table-column = IPs
+about-networking-dns-https-rr-lookup-table-column = RR HTTP
+about-networking-rcwn = Estatísticas RCWN
+about-networking-rcwn-status = Estado RCWN
+about-networking-rcwn-cache-won-count = Contagem de cache ganha
+about-networking-rcwn-net-won-count = Contagem de rede ganha
+about-networking-total-network-requests = Contagem total de pedidos de rede
+about-networking-rcwn-operation = Operação de cache
+about-networking-rcwn-perf-open = Abrir
+about-networking-rcwn-perf-read = Ler
+about-networking-rcwn-perf-write = Escrever
+about-networking-rcwn-perf-entry-open = Entrada aberta
+about-networking-rcwn-avg-short = Média curta
+about-networking-rcwn-avg-long = Média longa
+about-networking-rcwn-std-dev-long = Desvio padrão longo
+about-networking-rcwn-cache-slow = Contagem lenta de cache
+about-networking-rcwn-cache-not-slow = Contagem não lenta de cache
+about-networking-networkid = ID de rede
+about-networking-networkid-id = ID de rede
+# Note: do not translate about:logging, as it is a URL.
+about-networking-moved-about-logging = Esta página foi movida para <a data-l10n-name="about-logging-url">about:logging</a>.
+
+## Link is intended as "network link"
+
+about-networking-networkid-is-up = Ligação ativa
+about-networking-networkid-status-known = Estado da ligação é desconhecido
+
+##
+
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutPerformance.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutPerformance.ftl
new file mode 100644
index 0000000000..48f5742a97
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutPerformance.ftl
@@ -0,0 +1,67 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Page title
+about-performance-title = Gestor de tarefas
+
+## Column headers
+
+column-name = Nome
+column-type = Tipo
+column-energy-impact = Impacto energético
+column-memory = Memória
+
+## Special values for the Name column
+
+ghost-windows = Separadores fechados recentemente
+# Variables:
+# $title (String) - the title of the preloaded page, typically 'New Tab'
+preloaded-tab = Pré-carregado: { $title }
+
+## Values for the Type column
+
+type-tab = Separador
+type-subframe = Subframe
+type-tracker = Rastreador
+type-addon = Extra
+type-browser = Navegador
+type-worker = Worker
+type-other = Outro
+
+## Values for the Energy Impact column
+##
+## Variables:
+## $value (Number) - Value of the energy impact, eg. 0.25 (low),
+## 5.38 (medium), 105.38 (high)
+
+energy-impact-high = Alto ({ $value })
+energy-impact-medium = Médio ({ $value })
+energy-impact-low = Baixo ({ $value })
+
+## Values for the Memory column
+##
+## Variables:
+## $value (Number) - How much memory is used
+
+size-KB = { $value } KB
+size-MB = { $value } MB
+size-GB = { $value } GB
+
+## Tooltips for the action buttons
+
+close-tab =
+ .title = Fechar separador
+show-addon =
+ .title = Mostrar no Gestor de extras
+
+# Tooltip when hovering an item of the about:performance table
+# Variables:
+# $totalDispatches (Number) - how many dispatches occurred for this page since it loaded
+# $totalDuration (Number) - how much CPU time was used by this page since it loaded
+# $dispatchesSincePrevious (Number) - how many dispatches occurred in the last 2 seconds
+# $durationSincePrevious (Number) - how much CPU time was used in the last 2 seconds
+item =
+ .title =
+ Despachos desde o carregamento: { $totalDispatches } ({ $totalDuration } ms)
+ Despachos nos últimos segundos: { $dispatchesSincePrevious } ({ $durationSincePrevious } ms)
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutPlugins.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutPlugins.ftl
new file mode 100644
index 0000000000..1bcb91e4a0
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutPlugins.ftl
@@ -0,0 +1,43 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+title-label = Acerca dos plugins
+installed-plugins-label = Plugins instalados
+no-plugins-are-installed-label = Não existem plugins instalados
+deprecation-description = Falta alguma coisa? Alguns plugins deixaram de ser suportados. <a data-l10n-name="deprecation-link">Saber mais.</a>
+deprecation-description2 =
+ .message = Falta alguma coisa? Alguns plugins deixaram de ser suportados.
+
+## 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">Ficheiro:</span> { $pluginLibraries }
+path-dd = <span data-l10n-name="path">Caminho:</span> { $pluginFullPath }
+version-dd = <span data-l10n-name="version">Versão:</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">Estado:</span> Ativado
+state-dd-enabled-block-list-state = <span data-l10n-name="state">Estado:</span> Ativado ({ $blockListState })
+state-dd-Disabled = <span data-l10n-name="state">Estado:</span> Desativado
+state-dd-Disabled-block-list-state = <span data-l10n-name="state">Estado:</span> Desativado ({ $blockListState })
+mime-type-label = Tipo MIME
+description-label = Descrição
+suffixes-label = Sufixos
+
+## Gecko Media Plugins (GMPs)
+
+plugins-gmp-license-info = Informação da licença
+plugins-gmp-privacy-info = Informação de privacidade
+plugins-openh264-name = Codec de vídeo OpenH264 disponibilizado por Cisco Systems, Inc.
+plugins-openh264-description = Este plugin é instalado automaticamente pela Mozilla para cumprir com a especificação WebRTC e para ativar chamadas WebRTC com dispositivos que requeiram a codificação de vídeo H.264. Visite http://www.openh264.org/ para ver o código fonte do codec e saber mais acerca da implementação.
+plugins-widevine-name = Módulo Widevine Content Decryption disponibilizado por Google Inc.
+plugins-widevine-description = Este plugin ativa a reprodução de multimédia encriptada em conformidade com a especificação Encrypted Media Extensions. A multimédia encriptada é tipicamente utilizada por sites para proteger contra a cópia de conteúdo multimédia premium. Visite https://www.w3.org/TR/encrypted-media/ para mais informação sobre Encrypted Media Extensions.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutProcesses.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutProcesses.ftl
new file mode 100644
index 0000000000..6b18feda44
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutProcesses.ftl
@@ -0,0 +1,200 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Page title
+about-processes-title = Gestor de processos
+
+# The Actions column
+about-processes-column-action =
+ .title = Ações
+
+## Tooltips
+
+about-processes-shutdown-process =
+ .title = Remover os separadores da memória e matar o processo
+about-processes-shutdown-tab =
+ .title = Fechar separador
+
+# Profiler icons
+# Variables:
+# $duration (Number) The time in seconds during which the profiler will be running.
+# The value will be an integer, typically less than 10.
+about-processes-profile-process =
+ .title =
+ { $duration ->
+ [one] Perfilar todas as threads deste processo durante { $duration } segundo
+ *[other] Perfilar todas as threads deste processo durante { $duration } segundos
+ }
+
+## Column headers
+
+about-processes-column-name = Nome
+about-processes-column-memory-resident = Memória
+about-processes-column-cpu-total = CPU
+
+## Process names
+## Variables:
+## $pid (String) The process id of this process, assigned by the OS.
+
+about-processes-browser-process = { -brand-short-name } ({ $pid })
+about-processes-web-process = Processo web partilhado ({ $pid })
+about-processes-file-process = Ficheiros ({ $pid })
+about-processes-extension-process = Extensões ({ $pid })
+about-processes-privilegedabout-process = Páginas de informação ({ $pid })
+about-processes-plugin-process = Plug-ins ({ $pid })
+about-processes-privilegedmozilla-process = Sites { -vendor-short-name } ({ $pid })
+about-processes-gmp-plugin-process = Plug-ins de media Gecko ({ $pid })
+about-processes-gpu-process = GPU ({ $pid })
+about-processes-vr-process = VR ({ $pid })
+about-processes-rdd-process = Descodificador de dados ({ $pid })
+about-processes-socket-process = Rede ({ $pid })
+about-processes-remote-sandbox-broker-process = Agente de isolamento remoto ({ $pid })
+about-processes-fork-server-process = Fork do servidor ({ $pid })
+about-processes-preallocated-process = Pré-alocado ({ $pid })
+about-processes-utility-process = Utilitário ({ $pid })
+
+# Unknown process names
+# Variables:
+# $pid (String) The process id of this process, assigned by the OS.
+# $type (String) The raw type for this process.
+about-processes-unknown-process = Outro: { $type } ({ $pid })
+
+## Isolated process names
+## Variables:
+## $pid (String) The process id of this process, assigned by the OS.
+## $origin (String) The domain name for this process.
+
+about-processes-web-isolated-process = { $origin } ({ $pid })
+about-processes-web-serviceworker = { $origin } ({ $pid }, serviceworker)
+about-processes-with-coop-coep-process = { $origin } ({ $pid }, origem cruzada isolada)
+about-processes-web-isolated-process-private = { $origin } — Privado ({ $pid })
+about-processes-with-coop-coep-process-private = { $origin } — Privado ({ $pid }, origem cruzada isolada)
+
+## Details within processes
+
+# Single-line summary of threads (non-idle process)
+# Variables:
+# $number (Number) The number of threads in the process. Typically larger
+# than 30. We don't expect to ever have processes with less
+# than 5 threads.
+# $active (Number) The number of active threads in the process.
+# The value will be greater than 0 and will never be
+# greater than $number.
+# $list (String) Comma separated list of active threads.
+# Can be an empty string if the process is idle.
+about-processes-active-threads =
+ { $active ->
+ [one] { $active } thread ativa de { $number }: { $list }
+ *[other] { $active } threads ativas de { $number }: { $list }
+ }
+
+# Single-line summary of threads (idle process)
+# Variables:
+# $number (Number) The number of threads in the process. Typically larger
+# than 30. We don't expect to ever have processes with less
+# than 5 threads.
+# The process is idle so all threads are inactive.
+about-processes-inactive-threads =
+ { $number ->
+ [one] { $number } thread inativa
+ *[other] { $number } threads inativas
+ }
+
+# Thread details
+# Variables:
+# $name (String) The name assigned to the thread.
+# $tid (String) The thread id of this thread, assigned by the OS.
+about-processes-thread-name-and-id = { $name }
+ .title = Id da thread: { $tid }
+
+# Tab
+# Variables:
+# $name (String) The name of the tab (typically the title of the page, might be the url while the page is loading).
+about-processes-tab-name = Separador: { $name }
+about-processes-preloaded-tab = Novo separador pré-carregado
+
+# Single subframe
+# Variables:
+# $url (String) The full url of this subframe.
+about-processes-frame-name-one = Sub-frame: { $url }
+
+# Group of subframes
+# Variables:
+# $number (Number) The number of subframes in this group. Always ≥ 1.
+# $shortUrl (String) The shared prefix for the subframes in the group.
+about-processes-frame-name-many = Sub-frames ({ $number }): { $shortUrl }
+
+## Utility process actor names
+
+about-processes-utility-actor-unknown = Ator desconhecido
+about-processes-utility-actor-audio-decoder-generic = Descodificador de áudio genérico
+about-processes-utility-actor-audio-decoder-applemedia = Descodificador áudio da Apple
+about-processes-utility-actor-audio-decoder-wmf = Descodificador áudio do Windows Media Framework
+about-processes-utility-actor-mf-media-engine = Motor CDM de media do Windows Media Foundation
+# "Oracle" refers to an internal Firefox process and should be kept in English
+about-processes-utility-actor-js-oracle = Oracle JavaScript
+about-processes-utility-actor-windows-utils = Utilitários do Windows
+
+## Displaying CPU (percentage and total)
+## Variables:
+## $percent (Number) The percentage of CPU used by the process or thread.
+## Always > 0, generally <= 200.
+## $total (Number) The amount of time used by the process or thread since
+## its start.
+## $unit (String) The unit in which to display $total. See the definitions
+## of `duration-unit-*`.
+
+# Common case.
+about-processes-cpu = { NUMBER($percent, maximumSignificantDigits: 2, style: "percent") }
+ .title = Tempo total de CPU: { NUMBER($total, maximumFractionDigits: 0) }{ $unit }
+
+# Special case: data is not available yet.
+about-processes-cpu-user-and-kernel-not-ready = (a calcular)
+
+# Special case: process or thread is almost idle (using less than 0.1% of a CPU core).
+# This case only occurs on Windows where the precision of the CPU times is low.
+about-processes-cpu-almost-idle = < 0.1%
+ .title = Tempo total de CPU: { NUMBER($total, maximumFractionDigits: 0) }{ $unit }
+
+# Special case: process or thread is currently idle.
+about-processes-cpu-fully-idle = inativo
+ .title = Tempo total de CPU: { NUMBER($total, maximumFractionDigits: 0) }{ $unit }
+
+## Displaying Memory (total and delta)
+## Variables:
+## $total (Number) The amount of memory currently used by the process.
+## $totalUnit (String) The unit in which to display $total. See the definitions
+## of `memory-unit-*`.
+## $delta (Number) The absolute value of the amount of memory added recently.
+## $deltaSign (String) Either "+" if the amount of memory has increased
+## or "-" if it has decreased.
+## $deltaUnit (String) The unit in which to display $delta. See the definitions
+## of `memory-unit-*`.
+
+# Common case.
+about-processes-total-memory-size-changed = { NUMBER($total, maximumFractionDigits: 0) }{ $totalUnit }
+ .title = Evolução: { $deltaSign }{ NUMBER($delta, maximumFractionDigits: 0) }{ $deltaUnit }
+
+# Special case: no change.
+about-processes-total-memory-size-no-change = { NUMBER($total, maximumFractionDigits: 0) }{ $totalUnit }
+
+## Duration units
+
+duration-unit-ns = ns
+duration-unit-us = µs
+duration-unit-ms = ms
+duration-unit-s = s
+duration-unit-m = m
+duration-unit-h = h
+duration-unit-d = d
+
+## Memory units
+
+memory-unit-B = B
+memory-unit-KB = KB
+memory-unit-MB = MB
+memory-unit-GB = GB
+memory-unit-TB = TB
+memory-unit-PB = PB
+memory-unit-EB = EB
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutProfiles.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutProfiles.ftl
new file mode 100644
index 0000000000..25730d5042
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutProfiles.ftl
@@ -0,0 +1,74 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+profiles-title = Acerca dos perfis
+profiles-subtitle = Esta página ajuda-lhe a gerir os seus perfis. Cada perfil é um mundo separado que contém histórico, marcadores, definições e extras separados.
+profiles-create = Criar um novo perfil
+profiles-restart-title = Reiniciar
+profiles-restart-in-safe-mode = Reiniciar com os extras desativados…
+profiles-restart-normal = Reiniciar normalmente…
+profiles-conflict = Outra cópia do { -brand-product-name } fez alterações nos perfis. Deve reiniciar o { -brand-short-name } antes de fazer mais alterações.
+profiles-flush-fail-title = Alterações não guardadas
+profiles-flush-conflict = { profiles-conflict }
+profiles-flush-failed = Um erro inesperado impediu as suas alterações de serem guardadas.
+profiles-flush-restart-button = Reiniciar o { -brand-short-name }
+
+# Variables:
+# $name (String) - Name of the profile
+profiles-name = Perfil: { $name }
+profiles-is-default = Perfil predefinido
+profiles-rootdir = Diretório raiz
+
+# 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 = Diretório local
+profiles-current-profile = Este é o perfil atual e não pode ser apagado.
+profiles-in-use-profile = Este perfil está em utilização por outra aplicação e não pode ser apagado.
+
+profiles-rename = Renomear
+profiles-remove = Remover
+profiles-set-as-default = Definir como perfil predefinido
+profiles-launch-profile = Iniciar perfil num novo navegador
+
+profiles-cannot-set-as-default-title = Não é possível definir predefinição
+profiles-cannot-set-as-default-message = O perfil predefinido não pode ser alterado para o { -brand-short-name }.
+
+profiles-yes = sim
+profiles-no = não
+
+profiles-rename-profile-title = Renomear perfil
+# Variables:
+# $name (String) - Name of the profile
+profiles-rename-profile = Renomear perfil { $name }
+
+profiles-invalid-profile-name-title = Nome de perfil inválido
+# Variables:
+# $name (String) - Name of the profile
+profiles-invalid-profile-name = O nome de perfil “{ $name }” não é permitido.
+
+profiles-delete-profile-title = Apagar perfil
+# Variables:
+# $dir (String) - Path to be displayed
+profiles-delete-profile-confirm =
+ Se apagar um perfil, remove-o da lista de perfis disponíveis e não esta ação não pode ser desfeita.
+ Pode também escolher apagar os ficheiros de dados do perfil, incluindo as suas definições, certificados e outros dados relacionados com o utilizador. Esta opção irá apagar a pasta “{ $dir }” e não pode ser desfeita.
+ Gostaria de apagar os ficheiros de dados do perfil?
+profiles-delete-files = Apagar ficheiros
+profiles-dont-delete-files = Não apagar ficheiros
+
+profiles-delete-profile-failed-title = Erro
+profiles-delete-profile-failed-message = Ocorreu um erro ao tentar apagar este perfil.
+
+
+profiles-opendir =
+ { PLATFORM() ->
+ [macos] Mostrar no Finder
+ [windows] Abrir pasta
+ *[other] Abrir diretório
+ }
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutReader.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutReader.ftl
new file mode 100644
index 0000000000..5ca1790955
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutReader.ftl
@@ -0,0 +1,52 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-reader-loading = A carregar…
+about-reader-load-error = Erro ao carregar o artigo da página
+
+about-reader-color-scheme-light = Claro
+ .title = Esquema de cores claro
+about-reader-color-scheme-dark = Escuro
+ .title = Esquema de cores escuro
+about-reader-color-scheme-sepia = Sépia
+ .title = Esquema de cores sépia
+about-reader-color-scheme-auto = Automático
+ .title = Esquema de cores automático
+
+# 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 } minuto
+ *[other] { $range } minutos
+ }
+
+## These are used as tooltips in Type Control
+
+about-reader-toolbar-minus =
+ .title = Diminuir tamanho do tipo de letra
+about-reader-toolbar-plus =
+ .title = Aumentar tamanho do tipo de letra
+about-reader-toolbar-contentwidthminus =
+ .title = Diminuir largura do conteúdo
+about-reader-toolbar-contentwidthplus =
+ .title = Aumentar largura do conteúdo
+about-reader-toolbar-lineheightminus =
+ .title = Diminuir altura da linha
+about-reader-toolbar-lineheightplus =
+ .title = Aumentar altura da linha
+
+## These are the styles of typeface that are options in the reader view controls.
+
+about-reader-font-type-serif = Serifa
+about-reader-font-type-sans-serif = Sem serifa
+
+## Reader View toolbar buttons
+
+about-reader-toolbar-close = Fechar vista de leitura
+about-reader-toolbar-type-controls = Controlos de tipo
+about-reader-toolbar-savetopocket = Guardar em { -pocket-brand-name }
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutRights.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutRights.ftl
new file mode 100644
index 0000000000..437a35cd5e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutRights.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/.
+
+rights-title = Acerca dos seus direitos
+rights-intro = O { -brand-full-name } é um software livre e de código aberto, construído por uma comunidade de milhares de pessoas por todo o mundo. Existem algumas coisas que deve saber:
+rights-intro-point-1 = O { -brand-short-name } é disponibilizado nos termos da <a data-l10n-name="mozilla-public-license-link">Mozilla Public License</a>. Isto significa que pode utilizar, copiar e distribuir o { -brand-short-name } para outras pessoas. Também pode modificar o código fonte do { -brand-short-name } conforme as suas necessidades. A Mozilla Public License também lhe dá o direito de distribuir as suas versões modificadas.
+rights-intro-point-2 =
+ Não lhe são concedidos quaisquer direitos de marcas registadas ou licenças das marcas registadas da
+ Fundação Mozilla ou qualquer outra parte incluindo, sem limitações, o nome ou logótipo do Firefox.
+ Pode encontrar informação adicional sobre as marcas registadas <a data-l10n-name="mozilla-trademarks-link">aqui</a>.
+rights-intro-point-3 = Algumas funcionalidades no { -brand-short-name }, tais como o relator de falhas, dão-lhe a opção de fornecer feedback à { -vendor-short-name }. Ao escolher enviar o feedback, autoriza o { -vendor-short-name } a utilizar o feedback para melhorar os seus produtos, para publicar o feedback nos seus sites e a distribuir o feedback.
+rights-intro-point-4 = Como é que usamos a sua informação pessoal e feedback enviados para a { -vendor-short-name } através do { -brand-short-name } é descrito na <a data-l10n-name="mozilla-privacy-policy-link">Política de privacidade do { -brand-short-name }</a>.
+rights-intro-point-4-unbranded = Quaisquer políticas de privacidade aplicáveis a este produto devem ser colocadas aqui.
+rights-intro-point-5 = Algumas das funcionalidades do { -brand-short-name } fazem uso de serviços de informação baseados na web, no entanto, não podemos garantir que são 100% eficazes ou livres de erros. Mais detalhes, incluindo informação sobre como desativar as funcionalidades que utilizam estes serviços, podem ser encontrados nos <a data-l10n-name="mozilla-service-terms-link">termos do serviço</a>.
+rights-intro-point-5-unbranded = Se este produto incorporar serviços web, quaisquer termos aplicáveis ao serviço devem ser direcionados para <a data-l10n-name="mozilla-website-services-link">a secção de</a> secção.
+rights-intro-point-6 = Para poder reproduzir certos tipos de conteúdo de vídeo, o { -brand-short-name } transfere certos módulos de desencriptação de conteúdo de terceiros.
+rights-webservices-header = Serviços de informação baseados na Web do { -brand-full-name }
+rights-webservices = O { -brand-full-name } usa serviços de informação baseados na web ("Serviços") para disponibilizar algumas das funcionalidades fornecidas para uso próprio com esta versão binária do { -brand-short-name } sobre os termos descritos em baixo. Se não pretende utilizar um mais serviços ou os termos abaixo são inaceitáveis, pode desativar a funcionalidade ou serviço(s). Instruções sobre como desativar uma funcionalidade em particular ou serviço podem ser encontradas <a data-l10n-name="mozilla-disable-service-link">aqui</a>. Pode desativar mais funcionalidades ou serviços nas preferências da aplicação.
+rights-safebrowsing = <strong>SafeBrowsing: </strong>Não é recomendado desativar a funcionalidade de Navegação segura pois pode resultar em que vá para sites inseguros. Se desejar desativar completamente a funcionalidade, siga estes passos:
+rights-safebrowsing-term-1 = Abrir as preferências da aplicação
+rights-safebrowsing-term-2 = Selecione a seleção de segurança
+rights-safebrowsing-term-3 = Desmarque a opção para "{ enableSafeBrowsing-label }"
+enableSafeBrowsing-label = Bloquear conteúdo perigoso e decetivo
+rights-safebrowsing-term-4 = A navegação segura está agora desativada
+rights-locationawarebrowsing = <strong>Navegação com conhecimento da localização: </strong>é sempre de indicação explícita. Não serão enviadas quaisquer informações de localização sem a sua permissão. Se quiser desativar completamente a funcionalidade, siga estes passos:
+rights-locationawarebrowsing-term-1 = Na barra de URL, escreva <code>about:config</code>
+rights-locationawarebrowsing-term-2 = Escreva geo.enabled
+rights-locationawarebrowsing-term-3 = Duplo clique na preferência geo.enabled
+rights-locationawarebrowsing-term-4 = A navegação com conhecimento da localização está agora desativada
+rights-webservices-unbranded =
+ Uma visão dos serviços de sites que o produto incorpora,
+ assim como instruções sobre como os desativar, se necessário, devem ser
+ colocados aqui.
+rights-webservices-term-unbranded = Quaisquer termos de serviço devem ser listados aqui.
+rights-webservices-term-1 = A { -vendor-short-name } os seus colaboradores, licenciadores e parceiros trabalham para fornecer os serviços mais precisos e atualizados. No entanto, não podemos garantir que esta informação é abrangente e isenta de erros. Por exemplo o serviço de navegação segura, por engano, poderá não identificar alguns sites perigosos e pode identificar alguns sites seguros. No serviço de localização, todas as localizações devolvidas pelos nossos fornecedores do serviço são apenas estimativas e nem nós, nem os nossos fornecedores do serviço, garantimos a exatidão das localizações fornecidas.
+rights-webservices-term-2 = A { -vendor-short-name } pode descontinuar ou alterar os serviços a qualquer momento.
+rights-webservices-term-3 = Está à vontade para utilizar estes Serviços que acompanham a sua versão do { -brand-short-name }, e a { -vendor-short-name } concede-lhe os direitos necessários para o fazer. A { -vendor-short-name } e os seus licenciantes reservam todos os outros direitos nos Serviços. Estes termos não têm a intenção de limitar quaisquer direitos sobre as licenças de código aberto aplicáveis ao { -brand-short-name } e às correspondentes versões do código fonte do { -brand-short-name }.
+rights-webservices-term-4 = <strong>Os serviços são disponibilizados "as-is." A { -vendor-short-name }, os seus contribuidores, licenciantes e distribuidores renunciam a todas as garantias, sejam elas explícitas ou implícitas, incluindo sem limites, garantias que o serviço é comercial e serve para os seus objetivos pessoais. Você é responsável por selecionar os serviços para os seus propósitos, assim como a qualidade e o desempenho dos serviços. Algumas jurisdições não permitem a exclusão ou a limitação de garantias implícitas, como tal este aviso poderá não ser adequado para si.</strong>
+rights-webservices-term-5 = <strong>Exceto quando obrigatório por lei, a { -vendor-short-name }, os seus contribuidores, licenciantes e distribuidores não poderão ser responsabilizados por qualquer dano indireto, especial, acidental, consequente, punitivo, exemplares ou danos diretos decorrentes da utilização do { -brand-short-name } e os seus serviços. A responsabilidade coletiva sob estes termos, não poderá exceder $500 (quinhentos dólares). Algumas jurisdições não permitem a exclusão ou a limitação de alguns danos e, como tal, esta exclusão e limitação poderá não ser aplicável a si.</strong>
+rights-webservices-term-6 = A { -vendor-short-name } poderá atualizar os termos conforme necessário de tempos a tempos. Estes termos não poderão ser alterados ou cancelados sem o acordo escrito da { -vendor-short-name }.
+rights-webservices-term-7 = Estes termos são regidos pelas leis do estado da Califórnia, E.U.A., excluindo conflitos de provisão de leis. Se algum destes termos for identificado como inválido ou sem valor jurídico, as restantes porções manterão a sua força e efeito. No evento de um conflito entre uma versão traduzida destes termos e a versão em Inglês, a versão em Inglês é a que prevalece.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutServiceWorkers.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutServiceWorkers.ftl
new file mode 100644
index 0000000000..91c5dc448a
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutServiceWorkers.ftl
@@ -0,0 +1,40 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### The term "Service Workers" and "Workers" should not be translated
+
+about-service-workers-title = Acerca dos Service Workers
+about-service-workers-main-title = Service Workers registados
+about-service-workers-warning-not-enabled = Os Service Workers não estão ativados.
+about-service-workers-warning-no-service-workers = Não existem Service Workers registados.
+
+# The original title of service workers' information
+#
+# Variables:
+# $originTitle: original title
+origin-title = Origem: { $originTitle }
+
+## These strings are for showing the information of workers.
+##
+## Variables:
+## $name: the name of scope, active cache, waiting cache and the push end point.
+## $url: the url of script specification and current worker.
+
+scope = <strong>Âmbito:</strong> { $name }
+script-spec = <strong>Especificação do script:</strong> <a data-l10n-name="link">{ $url }</a>
+current-worker-url = <strong>URL do Worker atual:</strong> <a data-l10n-name="link">{ $url }</a>
+active-cache-name = <strong>Nome da cache ativa:</strong> { $name }
+waiting-cache-name = <strong>Nome da cache em espera:</strong> { $name }
+push-end-point-waiting = <strong>Push Endpoint:</strong> { waiting }
+push-end-point-result = <strong>Push Endpoint:</strong> { $name }
+
+# This term is used as a button label (verb, not noun).
+update-button = Atualizar
+
+unregister-button = Remover registo
+
+unregister-error = Falha ao remover o registo do Service Worker.
+
+waiting = A aguardar…
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutSupport.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutSupport.ftl
new file mode 100644
index 0000000000..03e2575f84
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutSupport.ftl
@@ -0,0 +1,414 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+page-title = Informação para resolução de problemas
+page-subtitle =
+ Esta página contém informação técnica que pode ser útil para quando estiver
+ a tentar resolver um problema. Se estiver à procura de respostas a questões comuns
+ acerca do { -brand-short-name }, aceda ao nosso <a data-l10n-name="support-link">site de apoio</a>.
+crashes-title = Relatórios de falha
+crashes-id = ID do relatório
+crashes-send-date = Enviado
+crashes-all-reports = Todos os relatórios de falha
+crashes-no-config = Esta aplicação não está configurada para mostrar os relatórios de falha.
+support-addons-title = Extras
+support-addons-name = Nome
+support-addons-type = Tipo
+support-addons-enabled = Ativado
+support-addons-version = Versão
+support-addons-id = ID
+legacy-user-stylesheets-title = Folhas de estilo de utilizador legadas
+legacy-user-stylesheets-enabled = Ativo
+legacy-user-stylesheets-stylesheet-types = Folhas de estilo
+legacy-user-stylesheets-no-stylesheets-found = Nenhuma folha de estilo encontrada
+security-software-title = Software de segurança
+security-software-type = Tipo
+security-software-name = Nome
+security-software-antivirus = Antivirus
+security-software-antispyware = Antispyware
+security-software-firewall = Firewall
+features-title = Funcionalidades do { -brand-short-name }
+features-name = Nome
+features-version = Versão
+features-id = ID
+processes-title = Processos remotos
+processes-type = Tipo
+processes-count = Contagem
+app-basics-title = Informações básicas da aplicação
+app-basics-name = Nome
+app-basics-version = Versão
+app-basics-build-id = ID da compilação
+app-basics-distribution-id = ID de distribuição
+app-basics-update-channel = Canal de atualização
+# This message refers to the folder used to store updates on the device,
+# as in "Folder for updates". "Update" is a noun, not a verb.
+app-basics-update-dir =
+ { PLATFORM() ->
+ [linux] Diretório de atualizações
+ *[other] Pasta de atualizações
+ }
+app-basics-update-history = Histórico de atualizações
+app-basics-show-update-history = Mostrar histórico de atualizações
+# Represents the path to the binary used to start the application.
+app-basics-binary = Binário da aplicação
+app-basics-profile-dir =
+ { PLATFORM() ->
+ [linux] Diretório do perfil
+ *[other] Pasta do perfil
+ }
+app-basics-enabled-plugins = Plugins ativados
+app-basics-build-config = Configuração da compilação
+app-basics-user-agent = Agente do utilizador
+app-basics-os = SO
+app-basics-os-theme = Tema do sistema operativo
+# Rosetta is Apple's translation process to run apps containing x86_64
+# instructions on Apple Silicon. This should remain in English.
+app-basics-rosetta = Rosetta Translated
+app-basics-memory-use = Utilização da memória
+app-basics-performance = Desempenho
+app-basics-service-workers = Service Workers registados
+app-basics-third-party = Módulos de terceiros
+app-basics-profiles = Perfis
+app-basics-launcher-process-status = Processo de arranque
+app-basics-multi-process-support = Multi-processamento de janelas
+app-basics-fission-support = Janelas Fission
+app-basics-remote-processes-count = Processos remotos
+app-basics-enterprise-policies = Políticas empresariais
+app-basics-location-service-key-google = Chave do serviço de localização da Google
+app-basics-safebrowsing-key-google = Chave do Google Safebrowsing
+app-basics-key-mozilla = Chave do serviço de localização da Mozilla
+app-basics-safe-mode = Modo de segurança
+app-basics-memory-size = Tamanho da Memória (RAM)
+app-basics-disk-available = Espaço em disco disponível
+app-basics-pointing-devices = Dispositivos Apontadores
+# Variables:
+# $value (number) - Amount of data being stored
+# $unit (string) - The unit of data being stored (e.g. MB)
+app-basics-data-size = { $value } { $unit }
+show-dir-label =
+ { PLATFORM() ->
+ [macos] Mostrar no Finder
+ [windows] Abrir pasta
+ *[other] Abrir diretório
+ }
+environment-variables-title = Variáveis de ambiente
+environment-variables-name = Nome
+environment-variables-value = Valor
+experimental-features-title = Funcionalidades experimentais
+experimental-features-name = Nome
+experimental-features-value = Valor
+modified-key-prefs-title = Preferências importantes modificadas
+modified-prefs-name = Nome
+modified-prefs-value = Valor
+user-js-title = Preferências user.js
+user-js-description = A sua pasta de perfil contém <a data-l10n-name="user-js-link">um ficheiro user.js</a>, que inclui as preferências que não foram criadas pelo { -brand-short-name }.
+locked-key-prefs-title = Preferências importantes bloqueadas
+locked-prefs-name = Nome
+locked-prefs-value = Valor
+graphics-title = Gráficos
+graphics-features-title = Funcionalidades
+graphics-diagnostics-title = Diagnósticos
+graphics-failure-log-title = Registo de falhas
+graphics-gpu1-title = GPU #1
+graphics-gpu2-title = GPU #2
+graphics-decision-log-title = Registo de decisões
+graphics-crash-guards-title = Funcionalidades desativadas do Crash Guard
+graphics-workarounds-title = Alternativas
+graphics-device-pixel-ratios = Proporções de Píxeis da Janela do Dispositivo
+# Windowing system in use on Linux (e.g. X11, Wayland).
+graphics-window-protocol = Protocolo de janela
+# Desktop environment in use on Linux (e.g. GNOME, KDE, XFCE, etc).
+graphics-desktop-environment = Ambiente gráfico
+place-database-title = Base de dados de locais
+place-database-stats = Estatísticas
+place-database-stats-show = Mostrar estatísticas
+place-database-stats-hide = Ocultar estatísticas
+place-database-stats-entity = Entidade
+place-database-stats-count = Contagem
+place-database-stats-size-kib = Tamanho (KiB)
+place-database-stats-size-perc = Tamanho (%)
+place-database-stats-efficiency-perc = Eficiência (%)
+place-database-stats-sequentiality-perc = Sequencialidade (%)
+place-database-integrity = Integridade
+place-database-verify-integrity = Verificar integridade
+a11y-title = Acessibilidade
+a11y-activated = Ativa
+a11y-force-disabled = Impedir acessibilidade
+a11y-handler-used = Gestor acessível utilizado
+a11y-instantiator = Instanciador de acessibilidade
+library-version-title = Versões da biblioteca
+copy-text-to-clipboard-label = Copiar texto para a área de transferência
+copy-raw-data-to-clipboard-label = Copiar dados para a área de transferência
+sandbox-title = Sandbox
+sandbox-sys-call-log-title = Chamadas de sistema rejeitadas
+sandbox-sys-call-index = #
+sandbox-sys-call-age = segundos atrás
+sandbox-sys-call-pid = PID
+sandbox-sys-call-tid = TID
+sandbox-sys-call-proc-type = Tipo de processo
+sandbox-sys-call-number = Syscall
+sandbox-sys-call-args = Argumentos
+troubleshoot-mode-title = Diagnosticar problemas
+restart-in-troubleshoot-mode-label = Modo de diagnóstico…
+clear-startup-cache-title = Tente limpar a cache de arranque
+clear-startup-cache-label = Limpar cache de arranque ...
+startup-cache-dialog-title2 = Reiniciar o { -brand-short-name } para limpar a cache de inicialização?
+startup-cache-dialog-body2 = Isto não irá mudar as suas configurações nem irá remover as extensões.
+restart-button-label = Reiniciar
+
+## Media titles
+
+audio-backend = Backend de áudio
+max-audio-channels = Máximo de canais
+sample-rate = Taxa de amostras preferida
+roundtrip-latency = Latência de ida e volta (desvio padrão)
+media-title = Multimédia
+media-output-devices-title = Dispositivos de saída
+media-input-devices-title = Dispositivos de entrada
+media-device-name = Nome
+media-device-group = Grupo
+media-device-vendor = Fornecedor
+media-device-state = Estado
+media-device-preferred = Preferido
+media-device-format = Formato
+media-device-channels = Canais
+media-device-rate = Taxa
+media-device-latency = Latência
+media-capabilities-title = Recursos de media
+media-codec-support-info = Informações de suporte do codec
+# List all the entries of the database.
+media-capabilities-enumerate = Enumeração de base de dados
+
+## Codec support table
+
+media-codec-support-sw-decoding = Descodificação por Software
+media-codec-support-hw-decoding = Descodificação por Hardware
+media-codec-support-codec-name = Nome do Codec
+media-codec-support-supported = Suportado
+media-codec-support-unsupported = Não suportado
+media-codec-support-error = Informações de suporte de codec indisponíveis. Tente novamente após reproduzir um ficheiro de multimédia.
+
+##
+
+intl-title = Internacionalização e idioma
+intl-app-title = Definições da aplicação
+intl-locales-requested = Idiomas solicitados
+intl-locales-available = Idiomas disponíveis
+intl-locales-supported = Idiomas da aplicação
+intl-locales-default = Idioma predefinido
+intl-os-title = Sistema operativo
+intl-os-prefs-system-locales = Idiomas do sistema
+intl-regional-prefs = Preferências regionais
+
+## Remote Debugging
+##
+## The Firefox remote protocol provides low-level debugging interfaces
+## used to inspect state and control execution of documents,
+## browser instrumentation, user interaction simulation,
+## and for subscribing to browser-internal events.
+##
+## See also https://firefox-source-docs.mozilla.org/remote/
+
+remote-debugging-title = Depuração remota (Protocolo do Chromium)
+remote-debugging-accepting-connections = A aceitar ligações
+remote-debugging-url = Endereço
+
+##
+
+# Variables
+# $days (Integer) - Number of days of crashes to log
+report-crash-for-days =
+ { $days ->
+ [one] Relatórios de falha para { $days } dia
+ *[other] Relatórios de falha para os últimos { $days } dias
+ }
+# Variables
+# $minutes (integer) - Number of minutes since crash
+crashes-time-minutes =
+ { $minutes ->
+ [one] { $minutes } minuto atrás
+ *[other] { $minutes } minutos atrás
+ }
+# Variables
+# $hours (integer) - Number of hours since crash
+crashes-time-hours =
+ { $hours ->
+ [one] { $hours } hora atrás
+ *[other] { $hours } horas atrás
+ }
+# Variables
+# $days (integer) - Number of days since crash
+crashes-time-days =
+ { $days ->
+ [one] { $days } dia atrás
+ *[other] { $days } dias atrás
+ }
+# Variables
+# $reports (integer) - Number of pending reports
+pending-reports =
+ { $reports ->
+ [one] Todos os relatórios de falha (incluindo { $reports } relatório pendente de um dado intervalo de tempo)
+ *[other] Todos os relatórios de falha (incluindo { $reports } relatórios pendentes de um dado intervalo de tempo)
+ }
+raw-data-copied = Dados em bruto copiados para a área de transferência
+text-copied = Texto copiado para a área de transferência
+
+## The verb "blocked" here refers to a graphics feature such as "Direct2D" or "OpenGL layers".
+
+blocked-driver = Bloqueado para a sua versão do controlador gráfico.
+blocked-gfx-card = Bloqueado para a sua placa gráfica devido a um problema no controlador.
+blocked-os-version = Bloqueado para a sua versão do sistema operativo.
+blocked-mismatched-version = Bloqueado por não correspondência do registo e DLL para a sua versão do controlador gráfico.
+# Variables
+# $driverVersion - The graphics driver version string
+try-newer-driver = Bloqueado para a sua versão do controlador gráfico. Tente atualizar o controlador da sua placa gráfica para a versão { $driverVersion } ou mais recente.
+# "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 = Parâmetros ClearType
+compositing = Composição
+hardware-h264 = Descodificação H264 por hardware
+main-thread-no-omtc = thread principal, sem OMTC
+yes = Sim
+no = Não
+unknown = Desconhecido
+virtual-monitor-disp = Ecrã virtual
+
+## The following strings indicate if an API key has been found.
+## In some development versions, it's expected for some API keys that they are
+## not found.
+
+found = Encontrada
+missing = Em falta
+gpu-process-pid = GPUProcessPid
+gpu-process = GPUProcess
+gpu-description = Descrição
+gpu-vendor-id = ID do fornecedor
+gpu-device-id = ID do dispositivo
+gpu-subsys-id = ID do subsistema
+gpu-drivers = Controladores
+gpu-ram = RAM
+gpu-driver-vendor = Fornecedor do controlador
+gpu-driver-version = Versão do controlador
+gpu-driver-date = Data do controlador
+gpu-active = Ativa
+webgl1-wsiinfo = Informação WSI do controlador WebGL 1
+webgl1-renderer = Renderizador do controlador WebGL 1
+webgl1-version = Versão do controlador WebGL 1
+webgl1-driver-extensions = Extensões do controlador WebGL 1
+webgl1-extensions = Extensões WebGL 1
+webgl2-wsiinfo = Informação WSI do controlador WebGL 2
+webgl2-renderer = Renderizador do controlador WebGL 2
+webgl2-version = Versão do controlador WebGL 2
+webgl2-driver-extensions = Extensões do controlador WebGL 2
+webgl2-extensions = Extensões WebGL 2
+webgpu-default-adapter = Adaptador WebGPU predefinido
+webgpu-fallback-adapter = Adaptador WebGPU de recurso
+# Variables
+# $bugNumber (string) - Bug number on Bugzilla
+support-blocklisted-bug = Bloqueado devido a problemas conhecidos: <a data-l10n-name="bug-link">bug { $bugNumber }</a>
+# Variables
+# $failureCode (string) - String that can be searched in the source tree.
+unknown-failure = Na lista de bloqueio; código de falha { $failureCode }
+d3d11layers-crash-guard = Compositor D3D11
+glcontext-crash-guard = OpenGL
+wmfvpxvideo-crash-guard = Descodificador vídeo WMF VPX
+reset-on-next-restart = Repor no próximo reinício
+gpu-process-kill-button = Terminar processo GPU
+gpu-device-reset = Reposição do dispositivo
+gpu-device-reset-button = Acionar reposição do dispositivo
+uses-tiling = Utiliza mosaicos
+content-uses-tiling = Utiliza mosaicos (conteúdo)
+off-main-thread-paint-enabled = Pintura fora da thread principal ativada
+off-main-thread-paint-worker-count = Contagem de workers de pintura fora da thread principal
+target-frame-rate = Taxa de frames alvo
+min-lib-versions = Versão mínima esperada
+loaded-lib-versions = Versão em utilização
+has-seccomp-bpf = Seccomp-BPF (Filtro de chamada do sistema)
+has-seccomp-tsync = Sincronização de threads Seccomp
+has-user-namespaces = Espaço de nomes do utilizador
+has-privileged-user-namespaces = Espaço de nomes do utilizador para processos privilegiados
+can-sandbox-content = Sandboxing do processo de conteúdo
+can-sandbox-media = Sandboxing do plugin multimédia
+content-sandbox-level = Nível da sandbox do processo de conteúdo
+effective-content-sandbox-level = Nível efetivo da sandbox do processo de conteúdo
+content-win32k-lockdown-state = Estado de bloqueio do Win32k para o processo de conteúdo
+support-sandbox-gpu-level = Nível da sandbox do processo da GPU
+sandbox-proc-type-content = conteúdo
+sandbox-proc-type-file = conteúdo de ficheiro
+sandbox-proc-type-media-plugin = plugin multimédia
+sandbox-proc-type-data-decoder = descodificador de dados
+startup-cache-title = Cache de inicialização
+startup-cache-disk-cache-path = Caminho da cache em disco
+startup-cache-ignore-disk-cache = Ignorar cache em disco
+startup-cache-found-disk-cache-on-init = Encontrada cache em disco na inicialização
+startup-cache-wrote-to-disk-cache = Gravado na cache em disco
+launcher-process-status-0 = Ativado
+launcher-process-status-1 = Desativado devido a falha
+launcher-process-status-2 = Desativado forçadamente
+launcher-process-status-unknown = Estado desconhecido
+# Variables
+# $remoteWindows (integer) - Number of remote windows
+# $totalWindows (integer) - Number of total windows
+multi-process-windows = { $remoteWindows }/{ $totalWindows }
+# Variables
+# $fissionWindows (integer) - Number of remote windows
+# $totalWindows (integer) - Number of total windows
+fission-windows = { $fissionWindows }/{ $totalWindows }
+fission-status-experiment-control = Desativado por experimento
+fission-status-experiment-treatment = Ativado por experimento
+fission-status-disabled-by-e10s-env = Desativado pelo ambiente
+fission-status-enabled-by-env = Ativado pelo ambiente
+fission-status-disabled-by-env = Desativada pelo ambiente
+fission-status-enabled-by-default = Ativado por predefinição
+fission-status-disabled-by-default = Desativado por predefinição
+fission-status-enabled-by-user-pref = Ativado pelo utilizador
+fission-status-disabled-by-user-pref = Desativado pelo utilizador
+fission-status-disabled-by-e10s-other = E10 desativados
+fission-status-enabled-by-rollout = Ativado para disponibilização por fases
+async-pan-zoom = Deslocamento panorâmico/zoom assíncronos
+apz-none = nenhum
+wheel-enabled = introdução com roda ativada
+touch-enabled = introdução com toque ativada
+drag-enabled = arrasto da barra de deslocamento ativado
+keyboard-enabled = teclado ativado
+autoscroll-enabled = auto-deslocamento ativado
+zooming-enabled = beliscar para zoom suave ativado
+
+## Variables
+## $preferenceKey (string) - String ID of preference
+
+wheel-warning = introdução assíncrona com roda desativada devido a preferência não suportada: { $preferenceKey }
+touch-warning = introdução assíncrona com toque desativada devido a preferência não suportada: { $preferenceKey }
+
+## Strings representing the status of the Enterprise Policies engine.
+
+policies-inactive = Inativas
+policies-active = Ativas
+policies-error = Erro
+
+## Printing section
+
+support-printing-title = Impressão
+support-printing-troubleshoot = Resolução de problemas
+support-printing-clear-settings-button = Limpar configurações de impressão guardadas
+support-printing-modified-settings = Configurações de impressão modificadas
+support-printing-prefs-name = Nome
+support-printing-prefs-value = Valor
+
+## Normandy sections
+
+support-remote-experiments-title = Experiências remotas
+support-remote-experiments-name = Nome
+support-remote-experiments-branch = Ramo experimental
+support-remote-experiments-see-about-studies = Consulte <a data-l10n-name="support-about-studies-link">about:studies</a> para mais informações, incluindo como desativar experiências individuais ou impedir que o { -brand-short-name } execute este tipo de experiências no futuro.
+support-remote-features-title = Funcionalidades remotas
+support-remote-features-name = Nome
+support-remote-features-status = Estado
+
+## Pointing devices
+
+pointing-device-mouse = Rato
+pointing-device-touchscreen = Ecrã tátil
+pointing-device-pen-digitizer = Caneta Digitalizadora
+pointing-device-none = Sem dispositivos apontadores
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutTelemetry.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutTelemetry.ftl
new file mode 100644
index 0000000000..e905f0a456
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutTelemetry.ftl
@@ -0,0 +1,136 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-telemetry-ping-data-source = Fonte de dados de ping:
+about-telemetry-show-current-data = Dados atuais
+about-telemetry-show-archived-ping-data = Dados de ping arquivados
+about-telemetry-show-subsession-data = Mostrar dados de sub-sessão
+about-telemetry-choose-ping = Escolha o ping:
+about-telemetry-archive-ping-type = Tipo de ping
+about-telemetry-archive-ping-header = Ping
+about-telemetry-option-group-today = Hoje
+about-telemetry-option-group-yesterday = Ontem
+about-telemetry-option-group-older = Antigo
+about-telemetry-previous-ping = <<
+about-telemetry-next-ping = >>
+about-telemetry-page-title = Dados de telemetria
+about-telemetry-current-store = Armazenamento atual:
+about-telemetry-more-information = À procura de mais informação?
+about-telemetry-firefox-data-doc = Os <a data-l10n-name="data-doc-link">dados de documentação do Firefox</a> contém guias acerca de como trabalhar com as nossas ferramentas de dados.
+about-telemetry-telemetry-client-doc = A <a data-l10n-name="client-doc-link">documentação do cliente de telemetria do Firefox</a> incluí definições para conceitos, documentação de API e referências de dados.
+about-telemetry-telemetry-dashboard = Os <a data-l10n-name="dashboard-link">painéis de telemetria</a> permitem-lhe visualizar os dados que a Mozilla recebe via telemetria.
+about-telemetry-telemetry-probe-dictionary = O <a data-l10n-name="probe-dictionary-link">Probe Dictionary</a> providencia detalhes e descrições para as sondas recolhidas pela telemetria.
+about-telemetry-show-in-Firefox-json-viewer = Abrir no visualizador de JSON
+about-telemetry-home-section = Início
+about-telemetry-general-data-section = Dados gerais
+about-telemetry-environment-data-section = Dados do ambiente
+about-telemetry-session-info-section = Informação da sessão
+about-telemetry-scalar-section = Escalares
+about-telemetry-keyed-scalar-section = Escalares legendados
+about-telemetry-histograms-section = Histogramas
+about-telemetry-keyed-histogram-section = Histogramas legendados
+about-telemetry-events-section = Eventos
+about-telemetry-simple-measurements-section = Medições simples
+about-telemetry-slow-sql-section = Instruções SQL lentas
+about-telemetry-addon-details-section = Detalhes de extras
+about-telemetry-late-writes-section = Escritas atrasadas
+about-telemetry-raw-payload-section = Payload em bruto
+about-telemetry-raw = JSON em bruto
+about-telemetry-full-sql-warning = NOTA: A depuração de SQL lenta está ativada. As strings de SQL completas poderão ser mostradas abaixo mas não serão submetidas à telemetria.
+about-telemetry-fetch-stack-symbols = Obter nomes de funções para stacks
+about-telemetry-hide-stack-symbols = Mostrar dados de stacks em bruto
+# Selects the correct release version
+# Variables:
+# $channel (String): represents the corresponding release data string
+about-telemetry-data-type =
+ { $channel ->
+ [release] dados de lançamento
+ *[prerelease] dados de pré-lançamento
+ }
+# Selects the correct upload string
+# Variables:
+# $uploadcase (String): represents a corresponding upload string
+about-telemetry-upload-type =
+ { $uploadcase ->
+ [enabled] ativado
+ *[disabled] desativado
+ }
+# Example Output: 1 sample, average = 0, sum = 0
+# Variables:
+# $sampleCount (Integer): amount of histogram samples
+# $prettyAverage (Integer): average of histogram samples
+# $sum (Integer): sum of histogram samples
+about-telemetry-histogram-stats =
+ { $sampleCount ->
+ [one] { $sampleCount } amostra, média = { $prettyAverage }, soma = { $sum }
+ *[other] { $sampleCount } amostras, média = { $prettyAverage }, soma = { $sum }
+ }
+# Variables:
+# $telemetryServerOwner (String): the value of the toolkit.telemetry.server_owner preference. Typically "Mozilla"
+about-telemetry-page-subtitle = Esta página mostra a informação acerca do desempenho, hardware, utilização e personalizações recolhidas pela telemetria. Esta informação é submetida para a { $telemetryServerOwner } para ajudar a melhorar o { -brand-full-name }.
+about-telemetry-settings-explanation = A telemetria está a recolher { about-telemetry-data-type } e o carregamento está <a data-l10n-name="upload-link">{ about-telemetry-upload-type }</a>.
+# Variables:
+# $name (String): ping name, e.g. “saved-session”
+# $timeStamp (String): ping localized timestamp, e.g. “2017/07/08 10:40:46”
+about-telemetry-ping-details = Cada pedaço de informação é enviado empacotado em “<a data-l10n-name="ping-link">pings</a>”. Está a olhar para o ping { $name }, { $timestamp }.
+about-telemetry-data-details-current = Cada pedaço de informação é enviado empacotado em “<a data-l10n-name="ping-link">pings</a>“. Está a ver os dados atuais.
+# string used as a placeholder for the search field
+# More info about it can be found here:
+# https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/data/main-ping.html
+# Variables:
+# $selectedTitle (String): the section name from the structure of the ping.
+about-telemetry-filter-placeholder =
+ .placeholder = Localizar em { $selectedTitle }
+about-telemetry-filter-all-placeholder =
+ .placeholder = Localizar em todas as secções
+# Variables:
+# $searchTerms (String): the searched terms
+about-telemetry-results-for-search = Resultados para “{ $searchTerms }”
+# More info about it can be found here: https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/data/main-ping.html
+# Variables:
+# $sectionName (String): the section name from the structure of the ping.
+# $currentSearchText (String): the current text in the search input
+about-telemetry-no-search-results = Lamentamos! Não há resultados em { $sectionName } para “{ $currentSearchText }”
+# Variables:
+# $searchTerms (String): the searched terms
+about-telemetry-no-search-results-all = Lamentamos! Não existem resultados em nenhumas das secções para “{ $searchTerms }”
+# This message is displayed when a section is empty.
+# Variables:
+# $sectionName (String): is replaced by the section name.
+about-telemetry-no-data-to-display = Lamentamos! Não existem dados disponíveis em “{ $sectionName }” atualmente
+# used as a tooltip for the “current” ping title in the sidebar
+about-telemetry-current-data-sidebar = dados atuais
+# used in the “Ping Type” select
+about-telemetry-telemetry-ping-type-all = todos
+# button label to copy the histogram
+about-telemetry-histogram-copy = Copiar
+# these strings are used in the “Slow SQL Statements” section
+about-telemetry-slow-sql-main = Instruções SQL lentas na thread principal
+about-telemetry-slow-sql-other = Instruções SQL lentas nas threads de ajuda
+about-telemetry-slow-sql-hits = Ocorrências
+about-telemetry-slow-sql-average = Tempo médio (ms)
+about-telemetry-slow-sql-statement = Instrução
+# these strings are used in the “Add-on Details” section
+about-telemetry-addon-table-id = ID do extra
+about-telemetry-addon-table-details = Detalhes
+# Variables:
+# $addonProvider (String): the name of an Add-on Provider (e.g. “XPI”, “Plugin”)
+about-telemetry-addon-provider = Fornecedor de { $addonProvider }
+about-telemetry-keys-header = Propriedade
+about-telemetry-names-header = Nome
+about-telemetry-values-header = Valor
+# Variables:
+# $lateWriteCount (Integer): the number of the late writes
+about-telemetry-late-writes-title = Escrita atrasada #{ $lateWriteCount }
+about-telemetry-stack-title = Stack:
+about-telemetry-memory-map-title = Mapa de memória:
+about-telemetry-error-fetching-symbols = Ocorreu um erro ao obter os símbolos. Verifique se está ligado(a) à Internet e tente novamente.
+about-telemetry-time-stamp-header = marca temporal
+about-telemetry-category-header = categoria
+about-telemetry-method-header = método
+about-telemetry-object-header = objeto
+about-telemetry-extra-header = extra
+# Variables:
+# $process (String): type of process in subsection headers ( e.g. "content", "parent" )
+about-telemetry-process = { $process } processo
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutThirdParty.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutThirdParty.ftl
new file mode 100644
index 0000000000..9728681084
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutThirdParty.ftl
@@ -0,0 +1,85 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+third-party-page-title = Informações de módulos de terceiros
+third-party-section-title = Lista de módulos de terceiros no { -brand-short-name }
+third-party-intro =
+ Esta página mostra os módulos de terceiros que foram injetados no seu
+ { -brand-short-name }. Qualquer módulo que não seja assinado pela Microsoft ou pela
+ { -vendor-short-name } é considerado um módulo de terceiros.
+third-party-message-empty = Não foram detetados módulos de terceiros.
+third-party-message-no-duration = Sem registo
+third-party-detail-version = Versão do ficheiro
+third-party-detail-vendor = Informação do fornecedor
+third-party-detail-occurrences = Ocorrências
+ .title = Quantas vezes o módulo foi carregado.
+third-party-detail-duration = Tempo médio de bloqueio (ms)
+ .title = Quanto tempo este módulo bloqueou a aplicação
+third-party-detail-app = Aplicação
+third-party-detail-publisher = Editor
+third-party-th-process = Processo
+third-party-th-duration = Duração do carregamento (ms)
+third-party-th-status = Estado
+third-party-tag-ime = IME
+ .title = Este tipo de módulo é carregado quando utiliza um IME de terceiros.
+third-party-tag-shellex = Extensão da Shell
+ .title = Este tipo de módulo é carregado quando abre a janela de sistema para ficheiros.
+third-party-tag-background = Segundo plano
+ .title =
+ Este tipo de módulo não bloqueou a aplicação porque foi carregado
+ em segundo plano.
+third-party-icon-unsigned =
+ .title = Este módulo não está assinado
+ .alt = Este módulo não está assinado
+third-party-icon-warning =
+ .title = O { -brand-short-name } falhou durante a execução de código deste módulo
+ .alt = O { -brand-short-name } falhou durante a execução de código deste módulo
+third-party-status-loaded = Carregado
+third-party-status-blocked = Bloqueado
+third-party-status-redirected = Redirecionado
+third-party-button-copy-to-clipboard = Copiar dados em bruto para a área de transferência
+third-party-loading-data =
+ .alt = A carregar a informação do sistema...
+ .title = A carregar a informação do sistema...
+third-party-button-reload = Recarregar com informações do sistema
+ .title = Recarregar com informações do sistema
+third-party-button-open =
+ .title = Abrir localização do ficheiro…
+third-party-button-to-block =
+ .title = Bloquear este módulo
+ .aria-label = Bloquear este módulo
+third-party-button-to-unblock =
+ .title = Atualmente bloqueado. Clique para desbloqueá-lo.
+ .aria-label = Atualmente bloqueado. Clique para desbloqueá-lo.
+third-party-button-to-unblock-disabled =
+ .title =
+ Atualmente marcado como bloqueado, embora a lista de bloqueio esteja desativada para esta execução
+ do { -brand-short-name }. Clique para desbloquear.
+ .aria-label =
+ Atualmente marcado como bloqueado, embora a lista de bloqueio esteja desativada para esta execução
+ do { -brand-short-name }. Clique para desbloquear.
+third-party-button-to-block-module = Bloquear este módulo
+ .title = Bloquear este módulo
+ .aria-label = Bloquear este módulo
+third-party-button-to-unblock-module = Desbloquear este módulo
+ .title = Atualmente bloqueado. Clique para o desbloquear
+ .aria-label = Atualmente bloqueado. Clique para o desbloquear
+third-party-button-to-unblock-module-disabled = Desbloquear este módulo (lista de bloqueio atualmente desativada)
+ .title =
+ Atualmente marcado como bloqueado, embora a lista de bloqueio esteja desativada nesta execução
+ do { -brand-short-name }. Clique para o desbloquear.
+ .aria-label =
+ Atualmente marcado como bloqueado, embora a lista de bloqueio esteja desativada nesta execução
+ do { -brand-short-name }. Clique para o desbloquear.
+third-party-button-expand =
+ .title = Mostrar informações detalhadas
+third-party-button-collapse =
+ .title = Recolher informações detalhadas
+third-party-blocking-requires-restart = Para bloquear um módulo de terceiros, o { -brand-short-name } deve ser reiniciado.
+third-party-should-restart-title = Reiniciar o { -brand-short-name }
+third-party-restart-now = Reiniciar agora
+third-party-restart-later = Reiniciar mais tarde
+third-party-blocked-by-builtin =
+ .title = Bloqueado pelo { -brand-short-name }
+ .alt = Bloqueado pelo { -brand-short-name }
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutWebauthn.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutWebauthn.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/toolkit/about/aboutWebrtc.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutWebrtc.ftl
new file mode 100644
index 0000000000..1ea860d674
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutWebrtc.ftl
@@ -0,0 +1,316 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Localization for about:webrtc, a troubleshooting and diagnostic page
+### for WebRTC calls. See https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API.
+
+# The text "WebRTC" is a proper noun and should not be translated.
+about-webrtc-document-title = Informações internas do WebRTC
+# "about:webrtc" is a internal browser URL and should not be
+# translated. This string is used as a title for a file save dialog box.
+about-webrtc-save-page-dialog-title = guardar página about:webrtc como
+
+## These labels are for a disclosure which contains the information for closed PeerConnection sections
+
+about-webrtc-closed-peerconnection-disclosure-show-msg = Mostrar PeerConnections Fechadas
+about-webrtc-closed-peerconnection-disclosure-hide-msg = Ocultar PeerConnections Fechadas
+
+## AEC is an abbreviation for Acoustic Echo Cancellation.
+
+about-webrtc-aec-logging-msg-label = Registo AEC
+about-webrtc-aec-logging-off-state-label = Iniciar registo AEC
+about-webrtc-aec-logging-on-state-label = Parar registo AEC
+about-webrtc-aec-logging-on-state-msg = Registo AEC ativo (fale com o remetente da chamada durante alguns minutos e depois pare a captura)
+about-webrtc-aec-logging-toggled-on-state-msg = Registo AEC ativo (fale com o remetente da chamada durante alguns minutos e depois pare a captura)
+about-webrtc-aec-logging-unavailable-sandbox = A variável de ambiente MOZ_DISABLE_CONTENT_SANDBOX=1 é necessária para exportar registos AEC. Defina esta variável apenas se compreender os possíveis riscos.
+# Variables:
+# $path (String) - The path to which the aec log file is saved.
+about-webrtc-aec-logging-toggled-off-state-msg = Os ficheiros do registo da captura podem ser encontrados em: { $path }
+
+##
+
+# The autorefresh checkbox causes a stats section to autorefresh its content when checked
+about-webrtc-auto-refresh-label = Atualizar Automaticamente
+# Determines the default state of the Auto Refresh check boxes
+about-webrtc-auto-refresh-default-label = Atualização Automática por Predefinição
+# A button which forces a refresh of displayed statistics
+about-webrtc-force-refresh-button = Atualizar
+# "PeerConnection" is a proper noun associated with the WebRTC module. "ID" is
+# an abbreviation for Identifier. This string should not normally be translated
+# and is used as a data label.
+about-webrtc-peerconnection-id-label = ID da ligação do par:
+# The number of DataChannels that a PeerConnection has opened
+about-webrtc-data-channels-opened-label = Canais de dados abertos:
+# The number of once open DataChannels that a PeerConnection has closed
+about-webrtc-data-channels-closed-label = Canais de dados fechados:
+
+## "SDP" is an abbreviation for Session Description Protocol, an IETF standard.
+## See http://wikipedia.org/wiki/Session_Description_Protocol
+
+about-webrtc-sdp-heading = SDP
+about-webrtc-local-sdp-heading = SDP local
+about-webrtc-local-sdp-heading-offer = SDP local (Oferta)
+about-webrtc-local-sdp-heading-answer = SDP local (Resposta)
+about-webrtc-remote-sdp-heading = SDP remoto
+about-webrtc-remote-sdp-heading-offer = SDP remoto (Oferta)
+about-webrtc-remote-sdp-heading-answer = SDP remoto (Resposta)
+about-webrtc-sdp-history-heading = Histórico do SDP
+about-webrtc-sdp-parsing-errors-heading = Erros de interpretação do SDP
+
+##
+
+# "RTP" is an abbreviation for the Real-time Transport Protocol, an IETF
+# specification, and should not normally be translated. "Stats" is an
+# abbreviation for Statistics.
+about-webrtc-rtp-stats-heading = Estatísticas RTP
+
+## "ICE" is an abbreviation for Interactive Connectivity Establishment, which
+## is an IETF protocol, and should not normally be translated.
+
+about-webrtc-ice-state = Estado ICE
+# "Stats" is an abbreviation for Statistics.
+about-webrtc-ice-stats-heading = Estatísticas ICE
+about-webrtc-ice-restart-count-label = Reinícios ICE:
+about-webrtc-ice-rollback-count-label = Reversões ICE:
+about-webrtc-ice-pair-bytes-sent = Bytes enviados:
+about-webrtc-ice-pair-bytes-received = Bytes recebidos:
+about-webrtc-ice-component-id = ID de componente
+
+## These adjectives are used to label a line of statistics collected for a peer
+## connection. The data represents either the local or remote end of the
+## connection.
+
+about-webrtc-type-local = Local
+about-webrtc-type-remote = Remoto
+
+##
+
+# This adjective is used to label a table column. Cells in this column contain
+# the localized javascript string representation of "true" or are left blank.
+about-webrtc-nominated = Nomeado
+# This adjective is used to label a table column. Cells in this column contain
+# the localized javascript string representation of "true" or are left blank.
+# This represents an attribute of an ICE candidate.
+about-webrtc-selected = Selecionado
+about-webrtc-save-page-label = Guardar página
+about-webrtc-debug-mode-msg-label = Modo de depuração
+about-webrtc-debug-mode-off-state-label = Iniciar modo de depuração
+about-webrtc-debug-mode-on-state-label = Parar modo de depuração
+about-webrtc-enable-logging-label = Ativar predefinição de registo WebRTC
+about-webrtc-stats-heading = Estatísticas da sessão
+about-webrtc-stats-clear = Limpar histórico
+about-webrtc-log-heading = Registo de ligação
+about-webrtc-log-clear = Limpar registo
+about-webrtc-log-show-msg = mostrar registo
+ .title = clique para expandir esta secção
+about-webrtc-log-hide-msg = ocultar registo
+ .title = clique para colapsar esta secção
+about-webrtc-log-section-show-msg = Mostrar registo
+ .title = Clique para expandir esta secção
+about-webrtc-log-section-hide-msg = Ocultar registo
+ .title = Clique para colapsar esta secção
+about-webrtc-copy-report-button = Copiar Relatório
+about-webrtc-copy-report-history-button = Copiar Histórico de Relatório
+
+## 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 } (fechada) { $now }
+
+## These are used to indicate what direction media is flowing.
+## Variables:
+## $codecs - a list of media codecs
+
+about-webrtc-short-send-receive-direction = Enviar / Receber: { $codecs }
+about-webrtc-short-send-direction = Enviar: { $codecs }
+about-webrtc-short-receive-direction = Receber: { $codecs }
+
+##
+
+about-webrtc-local-candidate = Candidato local
+about-webrtc-remote-candidate = Candidato remoto
+about-webrtc-raw-candidates-heading = Todos os candidatos em bruto
+about-webrtc-raw-local-candidate = Candidato local em bruto
+about-webrtc-raw-remote-candidate = Candidato remoto em bruto
+about-webrtc-raw-cand-show-msg = mostrar candidatos em bruto
+ .title = clique para expandir esta secção
+about-webrtc-raw-cand-hide-msg = ocultar candidatos em bruto
+ .title = clique para colapsar esta secção
+about-webrtc-raw-cand-section-show-msg = Mostrar candidatos em bruto
+ .title = Clique para expandir esta secção
+about-webrtc-raw-cand-section-hide-msg = Ocultar candidatos em bruto
+ .title = Clique para colapsar esta secção
+about-webrtc-priority = Prioridade
+about-webrtc-fold-show-msg = mostrar detalhes
+ .title = clique para expandir esta secção
+about-webrtc-fold-hide-msg = ocultar detalhes
+ .title = clique para colapsar esta secção
+about-webrtc-fold-default-show-msg = Mostrar detalhes
+ .title = Clique para expandir esta secção
+about-webrtc-fold-default-hide-msg = Ocultar detalhes
+ .title = Clique para colapsar esta secção
+about-webrtc-dropped-frames-label = Frames descartadas:
+about-webrtc-discarded-packets-label = Pacotes descartados:
+about-webrtc-decoder-label = Descodificador
+about-webrtc-encoder-label = Codificado
+about-webrtc-show-tab-label = Mostrar separador
+about-webrtc-current-framerate-label = Taxa de fotogramas
+about-webrtc-width-px = Largura (px)
+about-webrtc-height-px = Altura (px)
+about-webrtc-consecutive-frames = Frames consecutivos
+about-webrtc-time-elapsed = Tempo decorrido
+about-webrtc-estimated-framerate = Framerate estimado
+about-webrtc-rotation-degrees = Rotação (graus)
+about-webrtc-first-frame-timestamp = Data/hora da receção do primeiro frame
+about-webrtc-last-frame-timestamp = Data/hora da receção do último frame
+
+## SSRCs are identifiers that represent endpoints in an RTP stream
+
+# This is an SSRC on the local side of the connection that is receiving RTP
+about-webrtc-local-receive-ssrc = Local a receber SSRC
+# This is an SSRC on the remote side of the connection that is sending RTP
+about-webrtc-remote-send-ssrc = Envio remoto de SSRC
+
+## These are displayed on the button that shows or hides the
+## PeerConnection configuration disclosure
+
+about-webrtc-pc-configuration-show-msg = Mostrar Configuração
+about-webrtc-pc-configuration-hide-msg = Esconder Configuração
+
+##
+
+# An option whose value will not be displayed but instead noted as having been
+# provided
+about-webrtc-configuration-element-provided = Fornecida
+# An option whose value will not be displayed but instead noted as having not
+# been provided
+about-webrtc-configuration-element-not-provided = Não fornecida
+# The options set by the user in about:config that could impact a WebRTC call
+about-webrtc-custom-webrtc-configuration-heading = Preferências do WebRTC definidas pelo utilizador
+# Section header for estimated bandwidths of WebRTC media flows
+about-webrtc-bandwidth-stats-heading = Largura de banda estimada
+# The ID of the MediaStreamTrack
+about-webrtc-track-identifier = Identificador de faixa
+# The estimated bandwidth available for sending WebRTC media in bytes per second
+about-webrtc-send-bandwidth-bytes-sec = Largura de banda de envio (bytes/sec)
+# The estimated bandwidth available for receiving WebRTC media in bytes per second
+about-webrtc-receive-bandwidth-bytes-sec = Largura de banda de receção (bytes/sec)
+# Maximum number of bytes per second that will be padding zeros at the ends of packets
+about-webrtc-max-padding-bytes-sec = Preenchimento máximo (bytes/s)
+# The amount of time inserted between packets to keep them spaced out
+about-webrtc-pacer-delay-ms = Atraso em ms do regulador
+# The amount of time it takes for a packet to travel from the local machine to the remote machine,
+# and then have a packet return
+about-webrtc-round-trip-time-ms = Tempo de ida e volta ms
+# This is a section heading for video frame statistics for a MediaStreamTrack.
+# see https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.
+# Variables:
+# $track-identifier (String) - The unique identifier for the MediaStreamTrack.
+about-webrtc-frame-stats-heading = Estatísticas de frames de vídeo - ID do MediaStreamTrack: { $track-identifier }
+
+## These are paths used for saving the about:webrtc page or log files so
+## they can be attached to bug reports.
+## Variables:
+## $path (String) - The path to which the file is saved.
+
+about-webrtc-save-page-msg = página guardada em: { $path }
+about-webrtc-debug-mode-off-state-msg = o registo de execução pode ser encontrado em: { $path }
+about-webrtc-debug-mode-on-state-msg = modo de depuração ativo, registo de rastreio em: { $path }
+about-webrtc-aec-logging-off-state-msg = os ficheiros do registo da captura podem ser encontrados em: { $path }
+# This path is used for saving the about:webrtc page so it can be attached to
+# bug reports.
+# Variables:
+# $path (String) - The path to which the file is saved.
+about-webrtc-save-page-complete-msg = Página guardada em: { $path }
+# This is the total number of frames encoded or decoded over an RTP stream.
+# Variables:
+# $frames (Number) - The number of frames encoded or decoded.
+about-webrtc-frames =
+ { $frames ->
+ [one] { $frames } frame
+ *[other] { $frames } frames
+ }
+# This is the number of audio channels encoded or decoded over an RTP stream.
+# Variables:
+# $channels (Number) - The number of channels encoded or decoded.
+about-webrtc-channels =
+ { $channels ->
+ [one] { $channels } canal
+ *[other] { $channels } canais
+ }
+# This is the total number of packets received on the PeerConnection.
+# Variables:
+# $packets (Number) - The number of packets received.
+about-webrtc-received-label =
+ { $packets ->
+ [one] { $packets } pacote recebido
+ *[other] { $packets } pacotes recebidos
+ }
+# This is the total number of packets lost by the PeerConnection.
+# Variables:
+# $packets (Number) - The number of packets lost.
+about-webrtc-lost-label =
+ { $packets ->
+ [one] { $packets } pacote perdido
+ *[other] { $packets } pacotes perdidos
+ }
+# This is the total number of packets sent by the PeerConnection.
+# Variables:
+# $packets (Number) - The number of packets sent.
+about-webrtc-sent-label =
+ { $packets ->
+ [one] { $packets } pacote enviado
+ *[other] { $packets } pacotes enviados
+ }
+# Jitter is the variance in the arrival time of packets.
+# See: https://w3c.github.io/webrtc-stats/#dom-rtcreceivedrtpstreamstats-jitter
+# Variables:
+# $jitter (Number) - The jitter.
+about-webrtc-jitter-label = Jitter { $jitter }
+# ICE candidates arriving after the remote answer arrives are considered trickled
+# (an attribute of an ICE candidate). These are highlighted in the ICE stats
+# table with light blue background.
+about-webrtc-trickle-caption-msg = Candidatos trickled (a chegar depois da resposta) são destacados a azul
+
+## "SDP" is an abbreviation for Session Description Protocol, an IETF standard.
+## See http://wikipedia.org/wiki/Session_Description_Protocol
+
+# This is used as a header for local SDP.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+about-webrtc-sdp-set-at-timestamp-local = Definir SDP local na indicação { NUMBER($timestamp, useGrouping: "false") }
+# This is used as a header for remote SDP.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+about-webrtc-sdp-set-at-timestamp-remote = Definir SDP remoto na indicação { NUMBER($timestamp, useGrouping: "false") }
+# This is used as a header for an SDP section contained in two columns allowing for side-by-side comparisons.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+# $relative-timestamp (Number) - The timestamp relative to the timestamp of the earliest received SDP.
+about-webrtc-sdp-set-timestamp = Marcador temporal { NUMBER($timestamp, useGrouping: "false") } (+ { $relative-timestamp } ms)
+
+## These are displayed on the button that shows or hides the SDP information disclosure
+
+about-webrtc-show-msg-sdp = Mostrar SDP
+about-webrtc-hide-msg-sdp = Esconder SDP
+
+##
+
+
+## These are displayed on the button that shows or hides the Media Context information disclosure.
+## The Media Context is the set of preferences and detected capabilities that informs
+## the negotiated CODEC settings.
+
+about-webrtc-media-context-show-msg = Mostrar Contexto de Multimédia
+about-webrtc-media-context-hide-msg = Ocultar Contexto de Multimédia
+about-webrtc-media-context-heading = Contexto de Multimédia
+
+##
+
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutWindowsMessages.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutWindowsMessages.ftl
new file mode 100644
index 0000000000..3b4e926da1
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/aboutWindowsMessages.ftl
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Localization for the about:windows-messages page, which is only available
+### on the Windows operating system.
+### This page records and shows messages sent from the operating system to
+### individual browser windows. These messages can be useful in debugging
+### hard-to-reproduce issues with window sizing and position.
+
+# Windows refers to the operating system
+windows-messages-page-title = Informação das Mensagens do Windows
+windows-messages-intro =
+ Esta página mostra as mensagens mais recentes enviadas pelo Windows
+ para as janelas do navegador { -brand-short-name }. A
+ entrada em negrito representa esta janela. Observe que esta página mostra
+ as mensagens mais recentes no momento em que a página foi carregada;
+ para ver as atuais, precisará de atualizar a página.
+windows-messages-copy-to-clipboard = Copiar para a área de transferência
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/abuseReports.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/abuseReports.ftl
new file mode 100644
index 0000000000..ee442c3326
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/abuseReports.ftl
@@ -0,0 +1,116 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Localized string used as the dialog window title.
+# "Report" is a noun in this case, "Report for AddonName".
+#
+# Variables:
+# $addon-name (string) - Name of the add-on being reported
+abuse-report-dialog-title = Reportar para { $addon-name }
+abuse-report-title-extension = Reportar esta extensão à { -vendor-short-name }
+abuse-report-title-sitepermission = Reportar este extra de permissões de site para { -vendor-short-name }
+abuse-report-title-theme = Reportar este tema à { -vendor-short-name }
+abuse-report-subtitle = Qual é o problema?
+# Variables:
+# $author-name (string) - Name of the add-on author
+abuse-report-addon-authored-by = por <a data-l10n-name="author-name">{ $author-name }</a>
+abuse-report-learnmore =
+ Não sabe qual problema selecionar?
+ <a data-l10n-name="learnmore-link">Saber mais acerca de reportar extensões e temas</a>
+abuse-report-learnmore-intro = Não sabe qual problema selecionar?
+abuse-report-learnmore-link = Saber mais acerca de reportar extensões e temas
+abuse-report-submit-description = Descreva o problema (opcional)
+abuse-report-textarea =
+ .placeholder = É mais fácil resolver um problema se tivermos detalhes específicos. Por favor descreva o que está a experienciar. Obrigado por nos ajudar a manter a web saudável.
+abuse-report-submit-note =
+ Nota: não inclua informações pessoais (como nome, endereço de email, número de telefone e endereço físico).
+ A { -vendor-short-name } mantém um registo permanente destes relatórios.
+
+## Panel buttons.
+
+abuse-report-cancel-button = Cancelar
+abuse-report-next-button = Seguinte
+abuse-report-goback-button = Retroceder
+abuse-report-submit-button = Submeter
+
+## Message bars descriptions.
+##
+## Variables:
+## $addon-name (string) - Name of the add-on
+
+abuse-report-messagebar-aborted = Relatório para <span data-l10n-name="addon-name">{ $addon-name }</span> cancelado.
+abuse-report-messagebar-submitting = A enviar relatório para <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-submitted = Obrigado por enviar um relatório. Pretende remover <span data-l10n-name="addon-name">{ $addon-name }</span>?
+abuse-report-messagebar-submitted-noremove = Obrigado por submeter um relatório.
+abuse-report-messagebar-removed-extension = Obrigado por enviar um relatório. Removeu a extensão <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-removed-sitepermission = Obrigado por reportar a situação. Removeu o extra de permissões do site <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-removed-theme = Obrigado por enviar um relatório. Removeu o tema <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-error = Ocorreu um erro ao enviar o relatório para <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-error-recent-submit = O relatório para <span data-l10n-name="addon-name">{ $addon-name }</span> não foi enviado porque outro relatório foi submetido recentemente.
+abuse-report-messagebar-aborted2 =
+ .message = Relatório para { $addon-name } cancelado.
+abuse-report-messagebar-submitting2 =
+ .message = A enviar relatório para { $addon-name }.
+abuse-report-messagebar-submitted2 =
+ .message = Obrigado por enviar um relatório. Pretende remover { $addon-name }?
+abuse-report-messagebar-submitted-noremove2 =
+ .message = Obrigado por submeter um relatório.
+abuse-report-messagebar-removed-extension2 =
+ .message = Obrigado por enviar um relatório. Removeu a extensão { $addon-name }.
+abuse-report-messagebar-removed-sitepermission2 =
+ .message = Obrigado por reportar a situação. Removeu o extra de permissões do site { $addon-name }.
+abuse-report-messagebar-removed-theme2 =
+ .message = Obrigado por enviar um relatório. Removeu o tema { $addon-name }.
+abuse-report-messagebar-error2 =
+ .message = Ocorreu um erro ao enviar o relatório para { $addon-name }.
+abuse-report-messagebar-error-recent-submit2 =
+ .message = O relatório para { $addon-name } não foi enviado porque outro relatório foi submetido recentemente.
+
+## Message bars actions.
+
+abuse-report-messagebar-action-remove-extension = Sim, removê-la
+abuse-report-messagebar-action-keep-extension = Não, vou mantê-la
+abuse-report-messagebar-action-remove-sitepermission = Sim, remover
+abuse-report-messagebar-action-keep-sitepermission = Não, manter
+abuse-report-messagebar-action-remove-theme = Sim, removê-lo
+abuse-report-messagebar-action-keep-theme = Não, vou mantê-lo
+abuse-report-messagebar-action-retry = Voltar a tentar
+abuse-report-messagebar-action-cancel = Cancelar
+
+## Abuse report reasons (optionally paired with related examples and/or suggestions)
+
+abuse-report-damage-reason-v2 = Danificou o meu computador ou comprometeu os meus dados
+abuse-report-damage-example = Exemplo: malware injetado ou dados furtados
+abuse-report-spam-reason-v2 = Contém spam ou insere publicidade não-solicitada
+abuse-report-spam-example = Exemplo: inserir anúncios em páginas da web
+abuse-report-settings-reason-v2 = Alterou o meu motor de pesquisa, página inicial ou o novo separador sem informar ou questionar
+abuse-report-settings-suggestions = Antes de reportar a extensão, pode tentar alterar as suas definições:
+abuse-report-settings-suggestions-search = Alterar o seu motor de pesquisa predefinido
+abuse-report-settings-suggestions-homepage = Alterar a sua página inicial e novo separador
+abuse-report-deceptive-reason-v2 = Alega ser algo que não é
+abuse-report-deceptive-example = Exemplo: descrição ou imagem enganosa
+abuse-report-broken-reason-extension-v2 = Não funciona, quebra sites ou torna o { -brand-product-name } mais lento
+abuse-report-broken-reason-sitepermission-v2 = Não funciona, introduz falhas em sites ou torna o { -brand-product-name } mais lento
+abuse-report-broken-reason-theme-v2 = Não funciona ou quebra a visualização do navegador
+abuse-report-broken-example = Exemplo: funcionalidades lentas, difíceis de utilizar ou que não funcionam; partes de sites que não são carregadas ou parecem estranhas
+abuse-report-broken-suggestions-extension =
+ Parece que identificou um bug. Além de submeter um relatório aqui, a melhor maneira
+ de resolver um problema de funcionalidade é entrar em contacto com o programador da extensão.
+ <a data-l10n-name="support-link">Visite o site da extensão</a> para obter informações sobre o programador.
+abuse-report-broken-suggestions-sitepermission =
+ Parece que identificou um bug. Além de submeter um relatório aqui, a melhor forma
+ de resolver um problema funcional é entrar em contacto com o programador do site.
+ <a data-l10n-name="support-link">Visite o site</a> para obter informações sobre o programador.
+abuse-report-broken-suggestions-theme =
+ Parece que identificou um bug. Além de submeter um relatório aqui, a melhor maneira
+ de resolver um problema de funcionalidade é entrar em contacto com o programador do tema.
+ <a data-l10n-name="support-link">Visite o site do tema</a> para obter informações sobre o programador.
+abuse-report-policy-reason-v2 = Contém conteúdo odioso, violento, ou ilegal
+abuse-report-policy-suggestions =
+ Nota: os problemas de direitos de autor e marcas registadas devem ser reportados num processo em separado.
+ <a data-l10n-name="report-infringement-link">Utilize estas instruções</a> para
+ reportar o problema.
+abuse-report-unwanted-reason-v2 = Eu nunca quis isto e não sei como livrar-me do mesmo
+abuse-report-unwanted-example = Exemplo: uma aplicação instalou-o sem a minha permissão
+abuse-report-other-reason = Outra coisa
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/certviewer.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/certviewer.ftl
new file mode 100644
index 0000000000..7dac965dc6
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/certviewer.ftl
@@ -0,0 +1,122 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+certificate-viewer-certificate-section-title = Certificado
+
+## Error messages
+
+certificate-viewer-error-message = Não foi possível encontrar a informação do certificado ou o certificado está corrompido. Por favor, tente novamente.
+certificate-viewer-error-title = Algo correu mal.
+
+## Certificate information labels
+
+certificate-viewer-algorithm = Algoritmo
+certificate-viewer-certificate-authority = Autoridade de certificação
+certificate-viewer-cipher-suite = Conjunto de cifras
+certificate-viewer-common-name = Nome comum
+certificate-viewer-email-address = Endereço de e-mail
+# Variables:
+# $firstCertName (String) - Common Name for the displayed certificate
+certificate-viewer-tab-title = Certificado para { $firstCertName }
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-country = País de filiação
+certificate-viewer-country = País
+certificate-viewer-curve = Curva
+certificate-viewer-distribution-point = Ponto de distribuição
+certificate-viewer-dns-name = Nome de DNS
+certificate-viewer-ip-address = Endereço de IP
+certificate-viewer-other-name = Outro nome
+certificate-viewer-exponent = Exponente
+certificate-viewer-id = ID
+certificate-viewer-key-exchange-group = Grupo de troca de chaves
+certificate-viewer-key-id = ID da chave
+certificate-viewer-key-size = Tamanho da chave
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-locality = Localidade da empresa
+certificate-viewer-locality = Localidade
+certificate-viewer-location = Localização
+certificate-viewer-logid = ID de registo
+certificate-viewer-method = Método
+certificate-viewer-modulus = Módulos
+certificate-viewer-name = Nome
+certificate-viewer-not-after = Não posterior
+certificate-viewer-not-before = Não anterior
+certificate-viewer-organization = Organização
+certificate-viewer-organizational-unit = Unidade organizacional
+certificate-viewer-policy = Política
+certificate-viewer-protocol = Protocolo
+certificate-viewer-public-value = Valor público
+certificate-viewer-purposes = Propósitos
+certificate-viewer-qualifier = Qualificador
+certificate-viewer-qualifiers = Qualificadores
+certificate-viewer-required = Obrigatório
+certificate-viewer-unsupported = &lt;não suportado&gt;
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-state-province = Concelho/Distrito de filiação
+certificate-viewer-state-province = Concelho/Distrito
+certificate-viewer-sha-1 = SHA-1
+certificate-viewer-sha-256 = SHA-256
+certificate-viewer-serial-number = Número de série
+certificate-viewer-signature-algorithm = Algoritmo da assinatura
+certificate-viewer-signature-scheme = Esquema da assinatura
+certificate-viewer-timestamp = Marcador temporal
+certificate-viewer-value = Valor
+certificate-viewer-version = Versão
+certificate-viewer-business-category = Categoria empresarial
+certificate-viewer-subject-name = Nome do sujeito
+certificate-viewer-issuer-name = Nome do emissor
+certificate-viewer-validity = Validade
+certificate-viewer-subject-alt-names = Nomes alternativos do sujeito
+certificate-viewer-public-key-info = Informação da chave pública
+certificate-viewer-miscellaneous = Diversos
+certificate-viewer-fingerprints = Impressões digitais
+certificate-viewer-basic-constraints = Restrições básicas
+certificate-viewer-key-usages = Principais usos
+certificate-viewer-extended-key-usages = Utilizações estendidas da chave
+certificate-viewer-ocsp-stapling = Marcação OCSP
+certificate-viewer-subject-key-id = ID da chave do sujeito
+certificate-viewer-authority-key-id = ID da chave da autoridade
+certificate-viewer-authority-info-aia = Informações sobre autoridade (AIA)
+certificate-viewer-certificate-policies = Políticas de certificado
+certificate-viewer-embedded-scts = SCTs incorporadas
+certificate-viewer-crl-endpoints = Pontos de invocação da CRL
+
+# This message is used as a row header in the Miscellaneous section.
+# The associated data cell contains links to download the certificate.
+certificate-viewer-download = Transferir
+# This message is used to replace boolean values (true/false) in several certificate fields, e.g. Certificate Authority
+# Variables:
+# $boolean (String) - true/false value for the specific field
+certificate-viewer-boolean =
+ { $boolean ->
+ [true] Sim
+ *[false] Não
+ }
+
+## Variables:
+## $fileName (String) - The file name to save the PEM data in, derived from the common name from the certificate being displayed.
+
+certificate-viewer-download-pem = PEM (certificado)
+ .download = { $fileName }.pem
+certificate-viewer-download-pem-chain = PEM (cadeia)
+ .download = { $fileName }-chain.pem
+
+# The title attribute for Critical Extension icon
+certificate-viewer-critical-extension =
+ .title = Esta extensão foi marcada como crítica, o que significa que os clientes devem rejeitar o certificado se não o entenderem.
+certificate-viewer-export = Exportar
+ .download = { $fileName }.pem
+
+##
+
+# Label for a tab where we haven't found a better label:
+certificate-viewer-unknown-group-label = (desconhecido)
+
+## Labels for tabs displayed in stand-alone about:certificate page
+
+certificate-viewer-tab-mine = Os seus certificados
+certificate-viewer-tab-people = Pessoas
+certificate-viewer-tab-servers = Servidores
+certificate-viewer-tab-ca = Autoridades
+certificate-viewer-tab-unkonwn = Desconhecido
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/config.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/config.ftl
new file mode 100644
index 0000000000..f8d1322f55
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/config.ftl
@@ -0,0 +1,55 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## These strings appear on the warning you see when first visiting about:config.
+
+about-config-intro-warning-title = Prosseguir com cuidado
+about-config-intro-warning-text = Alterar as preferências avançadas de configuração pode interferir com o desempenho ou segurança do { -brand-short-name }.
+about-config-intro-warning-checkbox = Avisar quando eu tento aceder a estas preferências
+about-config-intro-warning-button = Aceitar o risco e continuar
+
+##
+
+# This is shown on the page before searching but after the warning is accepted.
+about-config-caution-text = Alterar estas preferências pode interferir com o desempenho ou segurança do { -brand-short-name }.
+
+about-config-page-title = Preferências avançadas
+
+about-config-search-input1 =
+ .placeholder = Procurar pelo nome da preferência
+about-config-show-all = Mostrar tudo
+
+about-config-show-only-modified = Mostrar apenas preferências modificadas
+
+about-config-pref-add-button =
+ .title = Adicionar
+about-config-pref-toggle-button =
+ .title = Alternar
+about-config-pref-edit-button =
+ .title = Editar
+about-config-pref-save-button =
+ .title = Guardar
+about-config-pref-reset-button =
+ .title = Repor
+about-config-pref-delete-button =
+ .title = Apagar
+
+## Labels for the type selection radio buttons shown when adding preferences.
+
+about-config-pref-add-type-boolean = Booleano
+about-config-pref-add-type-number = Número
+about-config-pref-add-type-string = String
+
+## Preferences with a non-default value are differentiated visually, and at the
+## same time the state is made accessible to screen readers using an aria-label
+## that won't be visible or copied to the clipboard.
+##
+## Variables:
+## $value (String): The full value of the preference.
+
+about-config-pref-accessible-value-default =
+ .aria-label = { $value } (predefinido)
+about-config-pref-accessible-value-custom =
+ .aria-label = { $value } (personalizado)
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/url-classifier.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/url-classifier.ftl
new file mode 100644
index 0000000000..6afd9dc5cc
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/about/url-classifier.ftl
@@ -0,0 +1,58 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+url-classifier-title = Informação do classificador de URL
+url-classifier-search-title = Pesquisa
+url-classifier-search-result-title = Resultados
+url-classifier-search-result-uri = URI: { $uri }
+url-classifier-search-result-list = Lista de tabelas: { $list }
+url-classifier-search-input = URL
+url-classifier-search-error-invalid-url = URL inválido
+url-classifier-search-error-no-features = Nenhuma funcionalidade selecionada
+url-classifier-search-btn = Iniciar pesquisa
+url-classifier-search-features = Funcionalidades
+url-classifier-search-listType = Tipo de lista
+url-classifier-provider-title = Fornecedor
+url-classifier-provider = Fornecedor
+url-classifier-provider-last-update-time = Última vez atualizado
+url-classifier-provider-next-update-time = Próxima atualização
+url-classifier-provider-back-off-time = Tempo de recuo
+url-classifier-provider-last-update-status = Estado da última atualização
+url-classifier-provider-update-btn = Atualizar
+url-classifier-cache-title = Cache
+url-classifier-cache-refresh-btn = Atualizar
+url-classifier-cache-clear-btn = Limpar
+url-classifier-cache-table-name = Nome da tabela
+url-classifier-cache-ncache-entries = Número de entradas de cache negativas
+url-classifier-cache-pcache-entries = Número de entradas de cache positivas
+url-classifier-cache-show-entries = Mostrar entradas
+url-classifier-cache-entries = Entradas de cache
+url-classifier-cache-prefix = Prefixo
+url-classifier-cache-ncache-expiry = Expiração de cache negativa
+url-classifier-cache-fullhash = Hash completa
+url-classifier-cache-pcache-expiry = Expiração de cache positiva
+url-classifier-debug-title = Depuração
+url-classifier-debug-module-btn = Definir módulos de registo
+url-classifier-debug-file-btn = Definir ficheiro de registo
+url-classifier-debug-js-log-chk = Definir registo JS
+url-classifier-debug-sb-modules = Módulos de registo do Safe Browsing
+url-classifier-debug-modules = Módulos de registo atual
+url-classifier-debug-sbjs-modules = Registo JS do Safe Browsing
+url-classifier-debug-file = Ficheiro de registo atual
+
+url-classifier-trigger-update = Acionar atualização
+url-classifier-not-available = N/D
+url-classifier-disable-sbjs-log = Desativar registo JS do Safe Browsing
+url-classifier-enable-sbjs-log = Ativar registo JS do Safe Browsing
+url-classifier-enabled = Ativado
+url-classifier-disabled = Desativado
+url-classifier-updating = a atualizar
+url-classifier-cannot-update = não é possível atualizar
+url-classifier-success = sucesso
+
+## Variables
+## $error (string) - Error message
+
+url-classifier-update-error = erro a atualizar ({ $error })
+url-classifier-download-error = erro de transferência ({ $error })
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/branding/accounts.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/branding/accounts.ftl
new file mode 100644
index 0000000000..5dd266b0ee
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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 = Conta Firefox
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/branding/brandings.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/branding/brandings.ftl
new file mode 100644
index 0000000000..6d22c781b7
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/branding/brandings.ftl
@@ -0,0 +1,45 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## The following feature names must be treated as a brand.
+##
+## They cannot be:
+## - Transliterated.
+## - Translated.
+##
+## Declension should be avoided where possible, leaving the original
+## brand unaltered in prominent UI positions.
+##
+## For further details, consult:
+## https://mozilla-l10n.github.io/styleguides/mozilla_general/#brands-copyright-and-trademark
+
+-facebook-container-brand-name = Facebook Container
+-lockwise-brand-name = Firefox Lockwise
+-lockwise-brand-short-name = Lockwise
+-monitor-brand-name = Firefox Monitor
+-monitor-brand-short-name = Monitor
+-pocket-brand-name = Pocket
+-send-brand-name = Firefox Send
+-screenshots-brand-name = Firefox Screenshots
+-mozilla-vpn-brand-name = Mozilla VPN
+-profiler-brand-name = Firefox Profiler
+-translations-brand-name = Firefox Translations
+-focus-brand-name = Firefox Focus
+-relay-brand-name = Firefox Relay
+-relay-brand-short-name = Relay
+-fakespot-brand-name = Fakespot
+# Note the name of the website is capitalized.
+-fakespot-website-name = Fakespot.com
+# The particle "by" can be localized, "Fakespot" and "Mozilla" should not be localized or transliterated.
+-fakespot-brand-full-name = Fakespot pela Mozilla
+# “Suggest” can be localized, “Firefox” must be treated as a brand
+# and kept in English.
+-firefox-suggest-brand-name = Firefox Suggest
+# ”Home" can be localized, “Firefox” must be treated as a brand
+# and kept in English.
+-firefox-home-brand-name = Início do Firefox
+# View" can be localized, “Firefox” must be treated as a brand
+# and kept in English.
+-firefoxview-brand-name = Visto no Firefox
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/contentanalysis/contentanalysis.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/contentanalysis/contentanalysis.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/toolkit/downloads/downloadUI.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/downloads/downloadUI.ftl
new file mode 100644
index 0000000000..94357b2a95
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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 = Cancelar todas as transferências?
+
+## Variables:
+## $downloadsCount (Number): The current downloads count.
+
+download-ui-confirm-quit-cancel-downloads =
+ { $downloadsCount ->
+ [1] Se sair agora, será cancelada 1 transferência. Tem a certeza que pretende sair?
+ *[other] Se sair agora, serão canceladas { $downloadsCount } transferências. Tem a certeza que pretende sair?
+ }
+download-ui-confirm-quit-cancel-downloads-mac =
+ { $downloadsCount ->
+ [1] Se sair agora, será cancelada 1 transferência. Tem a certeza que pretende sair?
+ *[other] Se sair agora, serão canceladas { $downloadsCount } transferências. Tem a certeza que pretende sair?
+ }
+download-ui-dont-quit-button =
+ { PLATFORM() ->
+ [mac] Não sair
+ *[other] Não sair
+ }
+
+download-ui-confirm-offline-cancel-downloads =
+ { $downloadsCount ->
+ [1] Se ativar o modo desligado agora, será cancelada 1 transferência. Tem a certeza que pretende ficar desligado?
+ *[other] Se ativar o modo desligado agora, serão canceladas { $downloadsCount } transferências. Tem a certeza que pretende ficar desligado?
+ }
+download-ui-dont-go-offline-button = Ficar online
+
+download-ui-confirm-leave-private-browsing-windows-cancel-downloads =
+ { $downloadsCount ->
+ [1] Se fechar agora todas as janelas de Navegação privada, será cancelada 1 transferência. Tem a certeza que pretende sair da Navegação privada?
+ *[other] Se fechar agora todas as janelas de Navegação privada, { $downloadsCount } serão canceladas transferências. Tem a certeza que pretende sair da Navegação privada?
+ }
+download-ui-dont-leave-private-browsing-button = Ficar na navegação privada
+
+download-ui-cancel-downloads-ok =
+ { $downloadsCount ->
+ [1] Cancelar 1 transferência
+ *[other] Cancelar { $downloadsCount } transferências
+ }
+
+##
+
+download-ui-file-executable-security-warning-title = Abrir ficheiro executável?
+# Variables:
+# $executable (String): The executable file to be opened.
+download-ui-file-executable-security-warning = “{ $executable }” é um ficheiro executável. Os ficheiros executáveis podem conter vírus ou outro tipo de código malicioso que pode prejudicar o seu computador. Tenha cuidado ao abrir este ficheiro. Tem a certeza que pretende executar “{ $executable }”?
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/downloads/downloadUtils.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/downloads/downloadUtils.ftl
new file mode 100644
index 0000000000..7532ab895e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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 }/seg)
+# 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 } (Muito depressa)
+# — is the "em dash" (long dash)
+# example: 4 minutes left — 1.1 of 11.1 GB
+# Variables:
+# $timeLeft (String): time left.
+# $transfer (String): transfer progress.
+download-utils-status-no-rate = { $timeLeft } — { $transfer }
+
+download-utils-bytes = bytes
+download-utils-kilobyte = KB
+download-utils-megabyte = MB
+download-utils-gigabyte = GB
+
+# example: 1.1 of 333 MB
+# Variables:
+# $progress (String): progress number.
+# $total (String): total number.
+# $totalUnits (String): total unit.
+download-utils-transfer-same-units = { $progress } de { $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 } de { $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 = Falta(m) { $time }
+# 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 = Falta(m) { $time1 } { $time2 }
+download-utils-time-few-seconds = Faltam alguns segundos
+download-utils-time-unknown = Falta tempo desconhecido
+
+# Variables:
+# $scheme (String): URI scheme like data: jar: about:
+download-utils-done-scheme = Recurso { $scheme }
+# 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 = ficheiro local
+
+# Displayed time for files finished yesterday
+download-utils-yesterday = Ontem
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/featuregates/features.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/featuregates/features.ftl
new file mode 100644
index 0000000000..2e645682e0
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/featuregates/features.ftl
@@ -0,0 +1,48 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-css-masonry2 =
+ .label = CSS: Layout Masonry
+experimental-features-css-masonry-description = Ativa o suporte ao recurso experimental de layout Masonry no CSS. Consulte a <a data-l10n-name="explainer">explicação</a> para obter uma descrição de alto nível do recurso. Para fornecer feedback, comente <a data-l10n-name="w3c-issue">este problema do GitHub</a> ou <a data-l10n-name="bug">este bug</a>.
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-web-gpu2 =
+ .label = API da Web: WebGPU
+experimental-features-web-gpu-description3 = A <a data-l10n-name="wikipedia-webgpu">WebGPU API</a> fornece um suporte de baixo nível para executar computação e renderização gráfica utilizando a <a data-l10n-name="wikipedia-gpu">Unidade de Processamento Gráfico (Graphics Processing Unit - GPU)</a> do dispositivo ou computador do utilizador. A primeira versão da <a data-l10n-name="spec">especificação</a> está quase finalizada. Consulte o <a data-l10n-name="bugzilla">bug 1616739</a> para mais detalhes.
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-media-jxl =
+ .label = Media: JPEG XL
+experimental-features-media-jxl-description = Com esta funcionalidade ativada, o { -brand-short-name } suporta o formato JPEG XL (JXL). Este é um formato de ficheiro de imagem melhorado que suporta uma transição sem perda dos ficheiros JPEG tradicionais. Consulte o <a data-l10n-name="bugzilla">bug 1539075</a> para mais detalhes.
+experimental-features-devtools-compatibility-panel =
+ .label = Ferramentas de programação: Painel de compatibilidade
+experimental-features-devtools-compatibility-panel-description = Um painel lateral para o Inspetor de página que mostra informações que detalham o estado de compatibilidade da sua aplicação entre navegadores. Consulte o <a data-l10n-name="bugzilla">bug 1584464</a> para obter mais detalhes.
+# Do not translate 'SameSite', 'Lax' and 'None'.
+experimental-features-cookie-samesite-none-requires-secure2 =
+ .label = Cookies: SameSite=None requer atributo seguro
+experimental-features-cookie-samesite-none-requires-secure2-description = As cookies com o atributo "SameSite=None" requerem o atributo seguro. Este recurso requer "Cookies: SameSite=Lax por predefinição".
+# about:home should be kept in English, as it refers to the the URI for
+# the internal default home page.
+experimental-features-abouthome-startup-cache =
+ .label = Cache de inicialização de about:home
+experimental-features-abouthome-startup-cache-description = Uma cache para o documento about:home inicial carregado por predefinição na inicialização. O objetivo da cache é melhorar o desempenho da inicialização.
+# "Service Worker" is an API name and is usually not translated.
+experimental-features-devtools-serviceworker-debugger-support =
+ .label = Ferramentas de programação: Depuração de service worker
+# "Service Worker" is an API name and is usually not translated.
+experimental-features-devtools-serviceworker-debugger-support-description = Ativa o suporte experimental para Service Workers no painel Depurador. Este recurso pode diminuir a velocidade das Ferramentas de programação e aumentar o consumo de memória.
+# WebRTC global mute toggle controls
+experimental-features-webrtc-global-mute-toggles =
+ .label = WebRTC Global Mute Toggles
+experimental-features-webrtc-global-mute-toggles-description = Adicionar controlos ao indicador global de partilha do WebRTC que permite que os utilizadores silenciem globalmente fontes como o microfone ou a câmara.
+# JS JIT Warp project
+experimental-features-js-warp =
+ .label = JavaScript JIT: Warp
+experimental-features-js-warp-description = Ativa o Warp, um projeto para melhorar a performance do JavaScript e utilização de memória.
+# Search during IME
+experimental-features-ime-search =
+ .label = Barra de endereços: mostrar resultados durante a composição do IME
+experimental-features-ime-search-description = Um IME (Input Method Editor - editor do método de introdução) é uma ferramenta que lhe permite inserir símbolos complexos, como os utilizados em idiomas escritos do Leste Asiático ou Índico, utilizando um teclado padrão. Ativar esta experiência irá manter o painel da barra de endereço aberto, mostrando resultados e sugestões de pesquisa, enquanto utiliza o IME para inserir texto. Note que o IME pode mostrar um painel que se sobrepõe aos resultados da barra de endereço, portanto, esta preferência apenas é sugerida para o IME que não utilize este tipo de painel.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/formautofill/formAutofill.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/formautofill/formAutofill.ftl
new file mode 100644
index 0000000000..6a777587ce
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/formautofill/formAutofill.ftl
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## OS Prompt Dialog
+
+# The links lead users to Form Autofill browser preferences.
+autofill-options-link = Opções de autopreenchimento de formulários
+autofill-options-link-osx = Preferências de autopreenchimento de formulários
+
+## The credit card capture doorhanger
+
+
+# Used on the doorhanger when an credit card change is detected.
+
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/alert.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/alert.ftl
new file mode 100644
index 0000000000..4546d014fb
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/alert.ftl
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+alert-close =
+ .tooltiptext = Fechar esta notificação
+alert-settings-title =
+ .tooltiptext = Definições
+
+## Reminder Notifications
+
+notification-default-dismiss = Dispensar
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/appPicker.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/appPicker.ftl
new file mode 100644
index 0000000000..84006bd418
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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 = Procurar…
+app-picker-send-msg =
+ .value = Enviar este item para:
+app-picker-no-app-found =
+ .value = Nenhuma aplicação foi encontrada para este tipo de ficheiros.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/browser-utils.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/browser-utils.ftl
new file mode 100644
index 0000000000..56b923b968
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/browser-utils.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/.
+
+# Used for data: URLs where we don't have any useful origin information
+browser-utils-url-data = (dados)
+
+# Used for extension URLs
+# Variables:
+# $extension (string) - Name of the extension that generated the URL
+browser-utils-url-extension = Extensão ({ $extension })
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/commonDialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/commonDialog.ftl
new file mode 100644
index 0000000000..43fdf17fe8
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/commonDialog.ftl
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+common-dialog-title-null = Esta página diz
+common-dialog-title-system = { -brand-short-name }
+# Title displayed when the origin of a web dialog is unknown.
+common-dialog-title-unknown = Desconhecida
+
+common-dialog-username =
+ .value = Nome de utilizador
+common-dialog-password =
+ .value = Palavra-passe
+
+common-dialog-copy-cmd =
+ .label = Copiar
+ .accesskey = C
+common-dialog-select-all-cmd =
+ .label = Selecionar tudo
+ .accesskey = a
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/contextual-identity.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/contextual-identity.ftl
new file mode 100644
index 0000000000..629b75376f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/contextual-identity.ftl
@@ -0,0 +1,29 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Names of the default containers in Firefox.
+## See https://support.mozilla.org/kb/how-use-firefox-containers
+
+user-context-personal =
+ .label = Pessoal
+ .accesskey = P
+user-context-work =
+ .label = Trabalho
+ .accesskey = T
+user-context-banking =
+ .label = Bancário
+ .accesskey = B
+user-context-shopping =
+ .label = Compras
+ .accesskey = s
+
+##
+
+user-context-none =
+ .label = Sem contentor
+ .accesskey = n
+user-context-manage-containers =
+ .label = Gerir contentores
+ .accesskey = O
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/cookieBannerHandling.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/cookieBannerHandling.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/toolkit/global/createProfileWizard.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/createProfileWizard.ftl
new file mode 100644
index 0000000000..f943d196e5
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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 = Assistente de criação de perfil
+ .style = min-width: 45em; min-height: 32em;
+
+## First wizard page
+
+create-profile-first-page-header2 =
+ { PLATFORM() ->
+ [macos] Introdução
+ *[other] Bem-vindo(a) ao { create-profile-window2.title }
+ }
+
+profile-creation-explanation-1 = O { -brand-short-name } armazena informação acerca das suas definições e preferências no seu perfil pessoal.
+
+profile-creation-explanation-2 = Se está a partilhar esta cópia do { -brand-short-name } com outros utilizadores, pode utilizar perfis para manter a informação de cada um dos utilizadores separada. Para fazer isto, cada utilizador deve criar o seu próprio perfil.
+
+profile-creation-explanation-3 = Se é apenas um utilizador a utilizar esta cópia do { -brand-short-name }, deve ter pelo menos um perfil. Se pretender, pode criar múltiplos perfis para armazenar diferentes conjuntos de definições e preferências. Por exemplo, pode querer ter perfis separados para utilização profissional e pessoal.
+
+profile-creation-explanation-4 =
+ { PLATFORM() ->
+ [macos] Para iniciar a criação do seu perfil, clique em Continuar.
+ *[other] Para iniciar a criação do seu perfil, clique em Seguinte.
+ }
+
+## Second wizard page
+
+create-profile-last-page-header2 =
+ { PLATFORM() ->
+ [macos] Conclusão
+ *[other] A completar o { create-profile-window2.title }
+ }
+
+profile-creation-intro = Se já criou vários perfis poderá diferenciá-los pelos nomes. Poderá utilizar o nome automático ou utilizar um à sua escolha.
+
+profile-prompt = Introduza o nome do novo perfil:
+ .accesskey = e
+
+profile-default-name =
+ .value = Utilizador predefinido
+
+profile-directory-explanation = As suas definições de utilizador, preferências e outros dados de utilizador serão armazenados em:
+
+create-profile-choose-folder =
+ .label = Escolher pasta…
+ .accesskey = c
+
+create-profile-use-default =
+ .label = Utilizar pasta predefinida
+ .accesskey = U
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/cspErrors.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/cspErrors.ftl
new file mode 100644
index 0000000000..a14f0cf99e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/cspErrors.ftl
@@ -0,0 +1,32 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+csp-error-missing-directive = Falta uma diretiva '{ $directive }' necessária na política
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $keyword (String): the name of a CSP keyword, usually 'unsafe-inline'.
+csp-error-illegal-keyword = A diretiva ‘{ $directive }’ contém uma palavra-chave { $keyword } proibida
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $scheme (String): a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp-error-illegal-protocol = A diretiva ‘{ $directive }’ contém uma fonte de protocolo { $scheme } proibida
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $scheme (String): a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp-error-missing-host = { $scheme }: o protocolo necessita de um servidor em diretivas '{ $directive }'
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $source (String): the name of a CSP source, usually 'self'.
+csp-error-missing-source = ‘{ $directive }’ tem de incluir a fonte { $source }
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $scheme (String): a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp-error-illegal-host-wildcard = { $scheme }: fontes universais em diretivas '{ $directive }' têm de incluir pelo menos um subdomínio não genérico (exemplo: *.example.com em vez de *.com)
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/datepicker.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/datepicker.ftl
new file mode 100644
index 0000000000..275fd791c8
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/datepicker.ftl
@@ -0,0 +1,50 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Datepicker - Dialog for default HTML's <input type="date">
+
+
+## These labels are used by screenreaders and other assistive technology
+## to indicate the purpose of a date picker calendar and a month-year selection
+## spinner dialogs for HTML's <input type="date">
+
+date-picker-label =
+ .aria-label = Escolha uma data
+date-spinner-label =
+ .aria-label = Escolha um mês e um ano
+
+## Text of the clear button
+
+date-picker-clear-button = Limpar
+
+## These labels are used by screenreaders and other assistive technology
+## to indicate the purpose of buttons that leaf through months of a calendar
+
+date-picker-previous =
+ .aria-label = Mês anterior
+date-picker-next =
+ .aria-label = Próximo mês
+
+## These labels are used by screenreaders and other assistive technology
+## to indicate the type of a value/unit that is being selected within a
+## Month/Year date spinner dialogs on a datepicker calendar dialog
+
+date-spinner-month =
+ .aria-label = Mês
+date-spinner-year =
+ .aria-label = Ano
+
+## These labels are used by screenreaders and other assistive technology
+## to indicate the purpose of buttons that leaf through either months
+## or years of a Month/Year date spinner on a datepicker calendar dialog
+
+date-spinner-month-previous =
+ .aria-label = Mês anterior
+date-spinner-month-next =
+ .aria-label = Próximo mês
+date-spinner-year-previous =
+ .aria-label = Ano anterior
+date-spinner-year-next =
+ .aria-label = Próximo ano
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/datetimebox.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/datetimebox.ftl
new file mode 100644
index 0000000000..ae152d1fb2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/datetimebox.ftl
@@ -0,0 +1,42 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Placeholders for date and time inputs
+
+datetime-year-placeholder = aaaa
+datetime-month-placeholder = mm
+datetime-day-placeholder = dd
+datetime-time-placeholder = --
+
+## Field labels for input type=date
+
+datetime-year =
+ .aria-label = Ano
+datetime-month =
+ .aria-label = Mês
+datetime-day =
+ .aria-label = Dia
+
+## Field labels for input type=time
+
+datetime-hour =
+ .aria-label = Horas
+datetime-minute =
+ .aria-label = Minutos
+datetime-second =
+ .aria-label = Segundos
+datetime-millisecond =
+ .aria-label = Milissegundos
+datetime-dayperiod =
+ .aria-label = AM/PM
+
+## Calendar button for input type=date
+
+
+# This label is used by screenreaders and other assistive technology
+# to indicate the purpose of a toggle button inside of the <input type="date">
+# field that opens/closes a date picker calendar dialog
+
+datetime-calendar =
+ .aria-label = Calendário
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/extensionPermissions.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/extensionPermissions.ftl
new file mode 100644
index 0000000000..3e41477018
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/extensionPermissions.ftl
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Extension permission description keys are derived from permission names.
+## Permissions for which the message has been changed and the key updated
+## must have a corresponding entry in the `PERMISSION_L10N_ID_OVERRIDES` map.
+
+webext-perms-description-bookmarks = Ler e modificar marcadores
+webext-perms-description-browserSettings = Ler e modificar definições do navegador
+webext-perms-description-browsingData = Limpar histórico de navegação recente, cookies, e dados relacionados
+webext-perms-description-clipboardRead = Obter dados da área de transferência
+webext-perms-description-clipboardWrite = Introduzir dados na área de transferência
+webext-perms-description-declarativeNetRequest = Bloquear conteúdo em qualquer página
+webext-perms-description-declarativeNetRequestFeedback = Consultar o seu histórico de navegação
+webext-perms-description-devtools = Estender as ferramentas de programador para aceder aos seus dados em separadores abertos
+webext-perms-description-downloads = Transferir ficheiros, ler e modificar o histórico de transferências do navegador
+webext-perms-description-downloads-open = Abrir ficheiros transferidos para o seu computador
+webext-perms-description-find = Ler o texto de todos os separadores abertos
+webext-perms-description-geolocation = Aceder à sua localização
+webext-perms-description-history = Aceder ao histórico de navegação
+webext-perms-description-management = Monitorizar utilização da extensão e gerir temas
+webext-perms-description-nativeMessaging = Trocar mensagens com programas que não o { -brand-short-name }
+webext-perms-description-notifications = Mostrar-lhe notificações
+webext-perms-description-pkcs11 = Providenciar serviços de autenticação criptográfica
+webext-perms-description-privacy = Ler e modificar definições de privacidade
+webext-perms-description-proxy = Controlar as definições de proxy do navegador
+webext-perms-description-sessions = Aceder aos separadores recentemente fechados
+webext-perms-description-tabs = Aceder aos separadores do navegador
+webext-perms-description-tabHide = Ocultar e mostrar separadores do navegador
+webext-perms-description-topSites = Aceder ao histórico de navegação
+webext-perms-description-webNavigation = Aceder à atividade do navegador durante a navegação
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/extensions.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/extensions.ftl
new file mode 100644
index 0000000000..d55bcdad8c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/extensions.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/.
+
+
+## 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 = Adicionar { $extension }?
+webext-perms-header-with-perms = Adicionar { $extension }? Esta extensão terá permissão para:
+webext-perms-header-unsigned = Adicionar { $extension }? Esta extensão não foi analisada. Extensões maliciosas podem roubar a sua informação privada ou comprometer o seu computador. Adicione esta extensão apenas se confia na fonte.
+webext-perms-header-unsigned-with-perms = Adicionar { $extension }? Esta extensão não foi analisada. Extensões maliciosas podem roubar a sua informação privada ou comprometer o seu computador. Adicione esta extensão apenas se confia na fonte. Esta extensão terá permissão para:
+webext-perms-sideload-header = { $extension } adicionado
+webext-perms-optional-perms-header = { $extension } solicita permissões adicionais.
+
+##
+
+webext-perms-add =
+ .label = Adicionar
+ .accesskey = A
+webext-perms-cancel =
+ .label = Cancelar
+ .accesskey = C
+
+webext-perms-sideload-text = Outro programa no seu computador instalou um extra que pode afetar o seu navegador. Por favor reveja os pedidos de permissões deste extra e escolha Ativar ou Cancelar (para deixá-lo desativado).
+webext-perms-sideload-text-no-perms = Outro programa no seu computador instalou um extra que pode afetar o seu navegador. Por favor escolha Ativar ou Cancelar (para deixá-lo desativado).
+webext-perms-sideload-enable =
+ .label = Ativar
+ .accesskey = A
+webext-perms-sideload-cancel =
+ .label = Cancelar
+ .accesskey = C
+
+# Variables:
+# $extension (String): replaced with the localized name of the extension.
+webext-perms-update-text = { $extension } foi atualizado. Deve aprovar as novas permissões antes da versão atualizada ser instalada. Escolher "Cancelar" irá manter a versão atual do extra. Esta extensão terá permissão para:
+webext-perms-update-accept =
+ .label = Atualizar
+ .accesskey = u
+
+webext-perms-optional-perms-list-intro = Quer:
+webext-perms-optional-perms-allow =
+ .label = Permitir
+ .accesskey = P
+webext-perms-optional-perms-deny =
+ .label = Negar
+ .accesskey = N
+
+webext-perms-host-description-all-urls = Aceder aos seus dados em todos os sites
+
+# 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 = Aceder aos seus dados para sites no domínio { $domain }
+
+# Variables:
+# $domainCount (Number): Integer indicating the number of additional
+# hosts for which this webextension is requesting permission.
+webext-perms-host-description-too-many-wildcards =
+ { $domainCount ->
+ [one] Aceder aos seus dados em { $domainCount } outro domínio
+ *[other] Aceder aos seus dados em { $domainCount } outros domínios
+ }
+# 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 = Aceder aos seus dados para { $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] Aceder aos seus dados em { $domainCount } outro site
+ *[other] Aceder aos seus dados em { $domainCount } outros sites
+ }
+
+## Headers used in the webextension permissions dialog for synthetic add-ons.
+## The part of the string describing what privileges the extension gives should be consistent
+## with the value of webext-site-perms-description-gated-perms-{sitePermission}.
+## Note, this string will be used as raw markup. Avoid characters like <, >, &
+## Variables:
+## $hostname (String): the hostname of the site the add-on is being installed from.
+
+webext-site-perms-header-with-gated-perms-midi = Este extra dá acesso aos seus dispositivos MIDI a { $hostname }.
+webext-site-perms-header-with-gated-perms-midi-sysex = Este extra dá acesso aos seus dispositivos MIDI (com suporte SysEx) a { $hostname }.
+
+##
+
+# This string is used as description in the webextension permissions dialog for synthetic add-ons.
+# Note, the empty line is used to create a line break between the two sections.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webext-site-perms-description-gated-perms-midi =
+ Geralmente, são dispositivos de plug-in, como sintetizadores de áudio, mas também podem estar integrados no seu computador.
+
+ Os sites normalmente não têm permissão para aceder a dispositivos MIDI. Uma utilização inadequada pode causar danos ou comprometer a segurança.
+
+## Headers used in the webextension permissions dialog.
+## Note: This string will be used as raw markup. Avoid characters like <, >, &
+## Variables:
+## $extension (String): replaced with the localized name of the extension being installed.
+## $hostname (String): will be replaced by the DNS host name for which a webextension enables permissions.
+
+webext-site-perms-header-with-perms = Adicionar { $extension }? Esta extensão fornece as seguintes capacidades a { $hostname }:
+webext-site-perms-header-unsigned-with-perms = Adicionar { $extension }? Esta extensão não foi verificada. Extensões maliciosas podem roubar a sua informação privada ou comprometer o seu computador. Adicione esta extensão apenas se confia na fonte. Esta extensão fornece as seguintes capacidades a { $hostname }:
+
+## These should remain in sync with permissions.NAME.label in sitePermissions.properties
+
+webext-site-perms-midi = Aceder a dispositivos MIDI
+webext-site-perms-midi-sysex = Aceder a dispositivos MIDI com suporte SysEx
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/handlerDialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/handlerDialog.ftl
new file mode 100644
index 0000000000..d823654fd1
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/handlerDialog.ftl
@@ -0,0 +1,108 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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.
+
+
+## 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.
+## $extension - Name of extension that initiated the request
+
+## Permission Dialog
+## Variables:
+## $host (string) - The hostname that is initiating the request
+## $scheme (string) - The type of link that's being opened.
+## $appName (string) - Name of the application that will be opened.
+## $extension (string) - Name of extension that initiated the request
+
+permission-dialog-description = Permitir que este site possa abrir a ligação { $scheme }?
+
+permission-dialog-description-file = Permitir que este ficheiro possa abrir a ligação { $scheme }?
+
+permission-dialog-description-host = Permitir que { $host } possa abrir a ligação { $scheme }?
+
+permission-dialog-description-extension = Permitir que a extensão { $extension } abra a ligação { $scheme }?
+
+permission-dialog-description-app = Permitir que este site possa abrir a ligação { $scheme } com { $appName }?
+
+permission-dialog-description-host-app = Permitir que { $host } possa abrir a ligação { $scheme } com { $appName }?
+
+permission-dialog-description-file-app = Permitir que este ficheiro possa abrir a ligação { $scheme } com { $appName }?
+
+permission-dialog-description-extension-app = Permitir que a extensão { $extension } abra a ligação { $scheme } com { $appName }?
+
+## Please keep the emphasis around the hostname and scheme (ie the
+## `<strong>` HTML tags). Please also keep the hostname as close to the start
+## of the sentence as your language's grammar allows.
+
+## Please keep the emphasis around the hostname and scheme (ie the
+## `<strong>` HTML tags). Please also keep the hostname as close to the start
+## of the sentence as your language's grammar allows.
+## Variables:
+## $host (string) - The hostname that is initiating the request
+## $scheme (string) - The type of link that's being opened.
+
+permission-dialog-remember = Permitir sempre que <strong>{ $host }</strong> possa abrir ligações <strong>{ $scheme }</strong>.
+
+permission-dialog-remember-file = Permitir sempre que este ficheiro possa abrir ligações <strong>{ $scheme }</strong>.
+
+permission-dialog-remember-extension = Sempre permitir que esta extensão abra ligações <strong>{ $scheme }</strong>
+
+##
+
+permission-dialog-btn-open-link =
+ .label = Abrir ligação
+ .accessKey = o
+
+permission-dialog-btn-choose-app =
+ .label = Escolher aplicação
+ .accessKey = l
+
+permission-dialog-unset-description = Terá de escolher uma aplicação.
+
+permission-dialog-set-change-app-link = Escolha uma aplicação diferente.
+
+## 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.
+
+chooser-window =
+ .title = Escolher aplicação
+ .style = min-width: 26em; min-height: 26em;
+
+chooser-dialog =
+ .buttonlabelaccept = Abrir ligação
+ .buttonaccesskeyaccept = o
+
+chooser-dialog-description = Escolha uma aplicação para abrir a ligação { $scheme }.
+
+# Please keep the emphasis around the scheme (ie the `<strong>` HTML tags).
+chooser-dialog-remember = Permitir sempre que esta aplicação possa abrir ligações <strong>{ $scheme }</strong>.
+
+chooser-dialog-remember-extra =
+ { PLATFORM() ->
+ [windows] Isto pode ser alterado nas opções do { -brand-short-name }.
+ *[other] Isto pode ser alterado nas preferências do { -brand-short-name }.
+ }
+
+choose-other-app-description = Escolha outra aplicação
+choose-app-btn =
+ .label = Escolher…
+ .accessKey = c
+choose-other-app-window-title = Outra aplicação…
+
+# Displayed under the name of a protocol handler in the Launch Application dialog.
+choose-dialog-privatebrowsing-disabled = Desativado em janelas privadas
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/htmlForm.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/htmlForm.ftl
new file mode 100644
index 0000000000..9d7c558e79
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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] e mais um
+ *[other] e mais { $fileCount }
+ }
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/mozCard.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/mozCard.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/toolkit/global/mozFiveStar.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/mozFiveStar.ftl
new file mode 100644
index 0000000000..fc240cd85b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/mozFiveStar.ftl
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The rating out of 5 stars.
+# Variables:
+# $rating (number) - A number between 0 and 5. The translation should show at most one digit after the comma.
+moz-five-star-rating =
+ .title = Avaliado com { NUMBER($rating, maximumFractionDigits: 1) } de 5
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/mozMessageBar.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/mozMessageBar.ftl
new file mode 100644
index 0000000000..69173b0874
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/mozMessageBar.ftl
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+moz-message-bar-icon-info =
+ .alt = Informação
+moz-message-bar-icon-warning =
+ .alt = Aviso
+moz-message-bar-icon-success =
+ .alt = Sucesso
+moz-message-bar-icon-error =
+ .alt = Erro
+moz-message-bar-close-button =
+ .aria-label = Fechar
+ .title = Fechar
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/mozSupportLink.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/mozSupportLink.ftl
new file mode 100644
index 0000000000..75a1c70d6f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/mozSupportLink.ftl
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+moz-support-link-text = Saber mais
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/notification.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/notification.ftl
new file mode 100644
index 0000000000..f41ad2f069
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/notification.ftl
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+notification-learnmore-default-label =
+ .value = Saber mais
+
+# This label is read by screen readers when focusing the close button for an
+# "infobar" (message shown when for example a popup is blocked),
+# and shown when hovering over the button
+notification-close-button =
+ .aria-label = Fechar
+ .title = Fechar
+
+close-notification-message =
+ .tooltiptext = Fechar esta mensagem
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/popupnotification.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/popupnotification.ftl
new file mode 100644
index 0000000000..070ca0274f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/popupnotification.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+popup-notification-learn-more = Saber mais
+popup-notification-more-actions-button =
+ .aria-label = Mais ações
+popup-notification-default-button =
+ .label = OK!
+ .accesskey = O
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/processTypes.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/processTypes.ftl
new file mode 100644
index 0000000000..7ffefefe62
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/processTypes.ftl
@@ -0,0 +1,61 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+##
+## Localization for remote types defined in RemoteType.h
+##
+
+process-type-web = Conteúdo web
+
+# process used to run privileged about pages,
+# such as about:home
+process-type-privilegedabout = About privilegiado
+
+# process used to run privileged mozilla pages,
+# such as accounts.firefox.com
+process-type-privilegedmozilla = Conteúdo Mozilla privilegiado
+
+process-type-extension = Extensão
+
+# process used to open file:// URLs
+process-type-file = Ficheiro local
+
+# process used to isolate a webpage from other web pages
+# to improve security
+process-type-webisolated = Conteúdo web isolado
+
+# process used to isolate a ServiceWorker to improve
+# performance
+process-type-webserviceworker = Service worker isolado
+
+# process preallocated; may change to other types
+process-type-prealloc = Pré-alocado
+
+##
+## Localization for Gecko process types defined in GeckoProcessTypes.h
+##
+
+process-type-default = Principal
+process-type-tab = Separador
+
+# process used to communicate with the GPU for
+# graphics acceleration
+process-type-gpu = GPU
+
+# process used to perform network operations
+process-type-socket = Socket
+
+# process used to decode media
+process-type-rdd = RDD
+
+# process used to run some IPC actor in their own sandbox
+process-type-utility = Ator IPC em sandbox
+
+##
+## Other
+##
+
+# fallback
+process-type-unknown = Desconhecido
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/profileDowngrade.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/profileDowngrade.ftl
new file mode 100644
index 0000000000..3941823570
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/profileDowngrade.ftl
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+profiledowngrade-window2 =
+ .title = Iniciou uma versão antiga do { -brand-product-name }
+ .style = min-width: 490px;
+profiledowngrade-window-create =
+ .label = Criar novo perfil
+profiledowngrade-sync = Utilizar uma versão antiga do { -brand-product-name } pode corromper marcadores e histórico de navegação já guardado num perfil do { -brand-product-name } existente. Para proteger a sua informação, crie um novo perfil para esta instalação do { -brand-short-name }. Pode sempre iniciar sessão com uma { -fxaccount-brand-name } para sincronizar os seus marcadores e histórico de navegação entre perfis.
+profiledowngrade-sync2 = Utilizar uma versão mais antiga do { -brand-product-name } pode corromper os marcadores e o histórico de navegação já guardados num perfil { -brand-product-name } existente. Para proteger as suas informações, crie um novo perfil para esta instalação do { -brand-short-name }. Pode sempre iniciar sessão com uma conta para sincronizar os seus marcadores e histórico de navegação entre perfis.
+profiledowngrade-nosync = Utilizar uma versão antiga do { -brand-product-name } pode corromper marcadores e histórico de navegação já guardado num perfil do { -brand-product-name } existente. Para proteger a sua informação, crie um novo perfil para esta instalação do { -brand-short-name }.
+profiledowngrade-quit =
+ .label =
+ { PLATFORM() ->
+ [windows] Sair
+ *[other] Sair
+ }
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/profileSelection.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/profileSelection.ftl
new file mode 100644
index 0000000000..daac2cfba7
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/profileSelection.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/.
+
+profile-selection-window =
+ .title = { -brand-short-name } - Escolha o perfil de utilizador
+profile-selection-button-accept =
+ .label = Iniciar o { -brand-short-name }
+profile-selection-button-cancel =
+ .label = Sair
+profile-selection-new-button =
+ .label = Criar um perfil…
+ .accesskey = C
+profile-selection-rename-button =
+ .label = Renomear perfil…
+ .accesskey = R
+profile-selection-delete-button =
+ .label = Apagar perfil…
+ .accesskey = A
+profile-selection-conflict-message = Outra cópia do { -brand-product-name } fez alterações nos perfis. Deve reiniciar o { -brand-short-name } antes de fazer mais alterações.
+
+## Messages used in the profile manager
+
+profile-manager-description = O { -brand-short-name } armazena informação acerca das suas definições, preferências e outros dados no seu perfil de utilizador.
+profile-manager-work-offline =
+ .label = Trabalhar offline
+ .accesskey = o
+profile-manager-use-selected =
+ .label = Utilizar o perfil selecionado na inicialização, sem questionar
+ .accesskey = s
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/resetProfile.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/resetProfile.ftl
new file mode 100644
index 0000000000..95e974c004
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/resetProfile.ftl
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+refresh-profile-dialog-title = Repor o { -brand-short-name } com as definições pré-definidas?
+refresh-profile-dialog-button =
+ .label = Restaurar o { -brand-short-name }
+refresh-profile-dialog-description = Comece do zero para corrigir problemas de desempenho. Isto irá remover as suas extensões e personalizações. Não irá perder informações essenciais, como marcadores e palavras-passe.
+refresh-profile = Otimize o { -brand-short-name }
+refresh-profile-button = Restaurar o { -brand-short-name }…
+refresh-profile-learn-more = Saber mais
+
+refresh-profile-progress =
+ .title = Restaurar o { -brand-short-name }
+refresh-profile-progress-description = Quase lá…
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/resistFingerPrinting.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/resistFingerPrinting.ftl
new file mode 100644
index 0000000000..91859fcdb2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/resistFingerPrinting.ftl
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Spoof Accept-Language prompt
+privacy-spoof-english = Alterar a sua definição de idioma para Inglês irá tornar mais difícil a sua identificação e melhorar a sua privacidade. Deseja solicitar versões de páginas web na língua Inglesa?
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000..009df27688
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,28 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = A concluir a instalação do { -brand-short-name }?
+prompt-to-install-message = Conclua esta instalação em uma etapa para ajudar a manter o { -brand-short-name } atualizado e evitar a perda de dados. O { -brand-short-name } será adicionado à sua pasta de aplicações e doca.
+prompt-to-install-yes-button = Instalar
+prompt-to-install-no-button = Não instalar
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = A instalação do { -brand-short-name } falhou.
+install-failed-message = A instalação do { -brand-short-name } falhou mas irá continuar a funcionar.
+
+## Strings for a dialog that recommends to the user to start an existing
+## installation of the app in the Applications directory if one is detected,
+## rather than the app that was double-clicked in a .dmg.
+
+prompt-to-launch-existing-app-title = Abrir aplicação { -brand-short-name } existente?
+prompt-to-launch-existing-app-message = Já tem o { -brand-short-name } instalado. Utilize a aplicação instalada para se manter atualizado e evitar a perda de dados.
+prompt-to-launch-existing-app-yes-button = Abrir existente
+prompt-to-launch-existing-app-no-button = Não, obrigado
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/tabprompts.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/tabprompts.ftl
new file mode 100644
index 0000000000..0de44f7efe
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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 = Nome de utilizador:
+tabmodalprompt-password =
+ .value = Palavra-passe:
+
+tabmodalprompt-ok-button =
+ .label = OK
+tabmodalprompt-cancel-button =
+ .label = Cancelar
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/textActions.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/textActions.ftl
new file mode 100644
index 0000000000..304718ce72
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/textActions.ftl
@@ -0,0 +1,64 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+text-action-undo =
+ .label = Desfazer
+ .accesskey = D
+text-action-undo-shortcut =
+ .key = Z
+text-action-redo =
+ .label = Refazer
+ .accesskey = R
+text-action-redo-shortcut =
+ .key = Y
+text-action-cut =
+ .label = Cortar
+ .accesskey = t
+text-action-cut-shortcut =
+ .key = X
+text-action-copy =
+ .label = Copiar
+ .accesskey = C
+text-action-copy-shortcut =
+ .key = C
+# This command copies the link, removing additional
+# query parameters used to track users across sites.
+text-action-strip-on-share =
+ .label = Copiar sem monitorização do site
+ .accesskey = n
+text-action-paste =
+ .label = Colar
+ .accesskey = o
+text-action-paste-no-formatting =
+ .label = Colar sem formatação
+ .accesskey = m
+text-action-paste-shortcut =
+ .key = V
+text-action-delete =
+ .label = Apagar
+ .accesskey = A
+text-action-select-all =
+ .label = Selecionar tudo
+ .accesskey = S
+text-action-select-all-shortcut =
+ .key = A
+text-action-spell-no-suggestions =
+ .label = Sem sugestões ortográficas
+text-action-spell-add-to-dictionary =
+ .label = Adicionar ao dicionário
+ .accesskey = A
+text-action-spell-undo-add-to-dictionary =
+ .label = Anular adicionar ao dicionário
+ .accesskey = n
+text-action-spell-check-toggle =
+ .label = Verificação ortográfica
+ .accesskey = V
+text-action-spell-add-dictionaries =
+ .label = Adicionar dicionários…
+ .accesskey = A
+text-action-spell-dictionaries =
+ .label = Idiomas
+ .accesskey = I
+text-action-search-text-box-clear =
+ .title = Limpar
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/timepicker.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/timepicker.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/toolkit/global/tree.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/tree.ftl
new file mode 100644
index 0000000000..4fcc441848
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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 = Restaurar ordem de colunas
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/unknownContentType.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/unknownContentType.ftl
new file mode 100644
index 0000000000..2286e54508
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/unknownContentType.ftl
@@ -0,0 +1,42 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+unknowncontenttype-handleinternally =
+ .label = Abrir com { -brand-short-name }
+ .accesskey = b
+
+unknowncontenttype-settingschange =
+ .value =
+ { PLATFORM() ->
+ [windows] As definições podem ser alteradas nas opções do { -brand-short-name }.
+ *[other] As definições podem ser alteradas nas preferências do { -brand-short-name }.
+ }
+
+unknowncontenttype-intro = Optou por abrir:
+unknowncontenttype-which-is = que é um:
+unknowncontenttype-from = de:
+unknowncontenttype-prompt = Gostaria de guardar este ficheiro?
+unknowncontenttype-action-question = O que deve o { -brand-short-name } fazer com este ficheiro?
+unknowncontenttype-open-with =
+ .label = Abrir com
+ .accesskey = o
+unknowncontenttype-other =
+ .label = Outro…
+unknowncontenttype-choose-handler =
+ .label =
+ { PLATFORM() ->
+ [macos] Escolher…
+ *[other] Procurar…
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] c
+ *[other] P
+ }
+unknowncontenttype-save-file =
+ .label = Guardar ficheiro
+ .accesskey = G
+unknowncontenttype-remember-choice =
+ .label = Memorizar opção para este tipo de ficheiro.
+ .accesskey = a
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/videocontrols.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/videocontrols.ftl
new file mode 100644
index 0000000000..ebfc42c07e
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/videocontrols.ftl
@@ -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/.
+
+# This label is used by screenreaders and other assistive technology to indicate
+# to users how much of the video has been loaded from the network. It will be
+# followed by the percentage of the video that has loaded (e.g. "Loading: 13%").
+videocontrols-buffer-bar-label = A carregar:
+videocontrols-volume-control =
+ .aria-label = Volume
+videocontrols-closed-caption-button =
+ .aria-label = Legendas de áudio
+videocontrols-play-button =
+ .aria-label = Reproduzir
+videocontrols-pause-button =
+ .aria-label = Pausa
+videocontrols-mute-button =
+ .aria-label = Silenciar
+videocontrols-unmute-button =
+ .aria-label = Repor som
+videocontrols-enterfullscreen-button =
+ .aria-label = Ecrã completo
+videocontrols-exitfullscreen-button =
+ .aria-label = Sair de ecrã completo
+videocontrols-casting-button-label =
+ .aria-label = Lançar para o ecrã
+# .offlabel is processed by the video control custom element to be used
+# as a text-track label
+videocontrols-closed-caption-off =
+ .offlabel = Desligado
+# This string is used as part of the Picture-in-Picture video toggle button when
+# the mouse is hovering it.
+videocontrols-picture-in-picture-label = Vídeo em janela flutuante
+# This string is used as the label for a variation of the Picture-in-Picture video
+# toggle button when the mouse is hovering over the video.
+videocontrols-picture-in-picture-toggle-label2 = Fazer este vídeo saltar
+# This string is used as part of a variation of the Picture-in-Picture video toggle
+# button. When using this variation, this string appears below the toggle when the
+# mouse hovers the toggle.
+videocontrols-picture-in-picture-explainer3 = Com mais ecrãs, é mais divertido. Reproduza este vídeo enquanto faz outras coisas.
+videocontrols-error-aborted = O carregamento do vídeo parou.
+videocontrols-error-network = Reprodução de vídeo abortada devido a um erro de rede.
+videocontrols-error-decode = O vídeo não pode ser reproduzido porque o ficheiro está danificado.
+videocontrols-error-src-not-supported = Formato de vídeo ou tipo MIME não suportado.
+videocontrols-error-no-source = Não foi encontrado nenhum vídeo com um formato e tipo MIME suportado.
+videocontrols-error-generic = Reprodução de vídeo abortada devido a um erro desconhecido.
+videocontrols-status-picture-in-picture = Este vídeo está a ser reproduzido numa janela flutuante.
+# This message shows the current position and total video duration
+#
+# Variables:
+# $position (String): The current media position
+# $duration (String): The total video duration
+#
+# For example, when at the 5 minute mark in a 6 hour long video,
+# $position would be "5:00" and $duration would be "6:00:00", result
+# string would be "5:00 / 6:00:00". Note that $duration is not always
+# available. For example, when at the 5 minute mark in an unknown
+# duration video, $position would be "5:00" and the string which is
+# surrounded by <span> would be deleted, result string would be "5:00".
+videocontrols-position-and-duration-labels = { $position }<span data-l10n-name="position-duration-format"> / { $duration }</span>
+# This is a plain text version of the videocontrols-position-and-duration-labels
+# string, used by screenreaders.
+#
+# Variables:
+# $position (String): The current media position
+# $duration (String): The total video duration
+videocontrols-scrubber-position-and-duration =
+ .aria-label = Posição
+ .aria-valuetext = { $position } / { $duration }
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/wizard.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/wizard.ftl
new file mode 100644
index 0000000000..6fbbc4926b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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 = Retroceder
+ .accesskey = R
+wizard-linux-button-back =
+ .label = Anterior
+ .accesskey = A
+wizard-win-button-back =
+ .label = < Anterior
+ .accesskey = A
+
+wizard-macos-button-next =
+ .label = Continuar
+ .accesskey = C
+wizard-linux-button-next =
+ .label = Seguinte
+ .accesskey = S
+wizard-win-button-next =
+ .label = Seguinte >
+ .accesskey = S
+
+wizard-macos-button-finish =
+ .label = Feito
+wizard-linux-button-finish =
+ .label = Concluir
+wizard-win-button-finish =
+ .label = Concluir
+
+wizard-macos-button-cancel =
+ .label = Cancelar
+wizard-linux-button-cancel =
+ .label = Cancelar
+wizard-win-button-cancel =
+ .label = Cancelar
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/intl/languageNames.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/intl/languageNames.ftl
new file mode 100644
index 0000000000..aea8d2eee2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/intl/languageNames.ftl
@@ -0,0 +1,215 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+language-name-aa = Afar
+language-name-ab = Abkhaziano
+language-name-ach = Acholi
+language-name-ae = Avestano
+language-name-af = Africano
+language-name-ak = Akan
+language-name-am = Amharico
+language-name-an = Aragonês
+language-name-ar = Árabe
+language-name-as = Assamês
+language-name-ast = Astúrio
+language-name-av = Avarico
+language-name-ay = Aymara
+language-name-az = Azerbeijanês
+language-name-ba = Bashkir
+language-name-be = Bielorrusso
+language-name-bg = Búlgaro
+language-name-bh = Bihari
+language-name-bi = Bislama
+language-name-bm = Bambara
+language-name-bn = Bengali
+language-name-bo = Tibetano
+language-name-br = Bretão
+language-name-bs = Bósnio
+language-name-ca = Catalão
+language-name-cak = Kaqchikel
+language-name-ce = Tchetcheno
+language-name-ch = Chamorro
+language-name-co = Córseco
+language-name-cr = Cree
+language-name-crh = Tártaro da Crimeia
+language-name-cs = Checo
+language-name-csb = Kashubian
+language-name-cu = Eslávico Religioso
+language-name-cv = Chuvash
+language-name-cy = Galês
+language-name-da = Dinamarquês
+language-name-de = Alemão
+language-name-dsb = Lower Sorbian
+language-name-dv = Divehi
+language-name-dz = Butanês
+language-name-ee = Ewe
+language-name-el = Grego
+language-name-en = Inglês
+language-name-eo = Esperanto
+language-name-es = Espanhol
+language-name-et = Estónio
+language-name-eu = Basco
+language-name-fa = Persa
+language-name-ff = Fulah
+language-name-fi = Finlandês
+language-name-fj = Fijiano
+language-name-fo = Faroês
+language-name-fr = Francês
+language-name-fur = Friulano
+language-name-fy = Frísio
+language-name-ga = Irlandês
+language-name-gd = Gaélico Escocês
+language-name-gl = Galego
+language-name-gn = Guarani
+language-name-gu = Gujarati
+language-name-gv = Manx
+language-name-ha = Hausa
+language-name-haw = Havaiano
+language-name-he = Hebraico
+language-name-hi = Hindu
+language-name-hil = Hiligaynon
+language-name-ho = Hiri Motu
+language-name-hr = Croata
+language-name-hsb = Upper Sorbian
+language-name-ht = Haitiano
+language-name-hu = Húngaro
+language-name-hy = Arménio
+language-name-hz = Herero
+language-name-ia = Interlíngua
+language-name-id = Indonésio
+language-name-ie = Interlingue
+language-name-ig = Igbo
+language-name-ii = Sichuan Yi
+language-name-ik = Inupiak
+language-name-io = Ido
+language-name-is = Islandês
+language-name-it = Italiano
+language-name-iu = Inuktitut
+language-name-ja = Japonês
+language-name-jv = Javanês
+language-name-ka = Georgiano
+language-name-kab = Kabyle
+language-name-kg = Kongo
+language-name-ki = Kikuyu
+language-name-kj = Kuanyama
+language-name-kk = Cazaque
+language-name-kl = Gronelandês
+language-name-km = Cambodjano
+language-name-kn = Kannada
+language-name-ko = Coreano
+language-name-kok = Konkani
+language-name-kr = Kanuri
+language-name-ks = Kashmiri
+language-name-ku = Curdo
+language-name-kv = Komi
+language-name-kw = Córnico
+language-name-ky = Kirghiz
+language-name-la = Latim
+language-name-lb = Luxemburguês
+language-name-lg = Ganda
+language-name-li = Limburgano
+language-name-lij = Ligurian
+language-name-ln = Lingala
+language-name-lo = Laoteano
+language-name-lt = Lituano
+language-name-ltg = Latgalian
+language-name-lu = Luba-Katanga
+language-name-lv = Letónio
+language-name-mai = Maithili
+language-name-meh = Mixteco Tlaxiaco do sudoeste
+language-name-mg = Malagasy
+language-name-mh = Marshalês
+language-name-mi = Maori
+language-name-mix = Mixteco Mixtepec
+language-name-mk = Macedónio
+language-name-ml = Malaio
+language-name-mn = Mongol
+language-name-mr = Marathi
+language-name-ms = Malaio
+language-name-mt = Maltês
+language-name-my = Burmês
+language-name-na = Nauru
+language-name-nb = Norueguês Bokmål
+language-name-nd = Ndebele, Norte
+language-name-ne = Nepalês
+language-name-ng = Ndonga
+language-name-nl = Holandês
+language-name-nn = Norueguês Nynorsk
+language-name-no = Norueguês
+language-name-nr = Ndebele, Sul
+language-name-nso = Sotho, Norte
+language-name-nv = Navajo
+language-name-ny = Chichewa
+language-name-oc = Occitano
+language-name-oj = Ojibwa
+language-name-om = Oromo
+language-name-or = Odia
+language-name-os = Ossetian
+language-name-pa = Punjabi
+language-name-pi = Pali
+language-name-pl = Polaco
+language-name-ps = Pashto
+language-name-pt = Português
+language-name-qu = Quechua
+language-name-rm = Rhaeto-Românico
+language-name-rn = Kirundi
+language-name-ro = Romeno
+language-name-ru = Russo
+language-name-rw = Kinyarwanda
+language-name-sa = Sânscrito
+language-name-sat = Santali
+language-name-sc = Sardenho
+language-name-sco = Escocês
+language-name-sd = Sindhi
+language-name-se = Sami do norte
+language-name-sg = Sangro
+language-name-si = Singalês
+language-name-sk = Eslovaco
+language-name-sl = Esloveno
+language-name-sm = Samoano
+language-name-sn = Shona
+language-name-so = Somali
+language-name-son = Songhay
+language-name-sq = Albanês
+language-name-sr = Sérvio
+language-name-ss = Siswati
+language-name-st = Sotho, Sul
+language-name-su = Sudanês
+language-name-sv = Sueco
+language-name-sw = Swahili
+language-name-szl = Silesiano
+language-name-ta = Tamil
+language-name-te = Telugu
+language-name-tg = Tadjique
+language-name-th = Tailandês
+language-name-ti = Tigrinya
+language-name-tig = Tigre
+language-name-tk = Turkmeno
+language-name-tl = Tagalog
+language-name-tlh = Klingon
+language-name-tn = Tswana
+language-name-to = Tonga
+language-name-tr = Turco
+language-name-trs = Triqui
+language-name-ts = Tsonga
+language-name-tt = Tatar
+language-name-tw = Twi
+language-name-ty = Tahitiano
+language-name-ug = Uighur
+language-name-uk = Ucraniano
+language-name-ur = Urdu
+language-name-uz = Uzbek
+language-name-ve = Venda
+language-name-vi = Vietnamita
+language-name-vo = Volapük
+language-name-wa = Walloon
+language-name-wen = Sorbian
+language-name-wo = Wolof
+language-name-xh = Xhosa
+language-name-yi = Iídiche
+language-name-yo = Yoruba
+language-name-za = Zhuang
+language-name-zam = Miahuatlán Zapotec
+language-name-zh = Chinês
+language-name-zu = Zulu
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/intl/regionNames.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/intl/regionNames.ftl
new file mode 100644
index 0000000000..5675c9b01b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/intl/regionNames.ftl
@@ -0,0 +1,280 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Notice: If you're updating this list, you should also
+### update the list in mozIntl.js.
+
+region-name-ad = Andorra
+region-name-ae = Emirados Árabes Unidos
+region-name-af = Afeganistão
+region-name-ag = Antígua e Barbados
+region-name-ai = Anguila
+region-name-al = Albânia
+region-name-am = Arménia
+region-name-ao = Angola
+region-name-aq = Antártida
+region-name-ar = Argentina
+region-name-as = Samoa Americana
+region-name-at = Áustria
+region-name-au = Austrália
+region-name-aw = Aruba
+region-name-az = Azerbeijão
+region-name-ba = Bósnia-Herzegovina
+region-name-bb = Barbados
+region-name-bd = Bangladesh
+region-name-be = Bélgica
+region-name-bf = Burkina Faso
+region-name-bg = Bulgária
+region-name-bh = Bahrein
+region-name-bi = Burundi
+region-name-bj = Benin
+region-name-bl = Saint Barthelemy
+region-name-bm = Bermuda
+region-name-bn = Brunei
+region-name-bo = Bolívia
+region-name-bq-2018 = Caraíbas dos Países Baixos
+region-name-br = Brasil
+region-name-bs = Bahamas
+region-name-bt = Butão
+region-name-bv = Ilha Bouvet
+region-name-bw = Botswana
+region-name-by = Bielorússia
+region-name-bz = Belize
+region-name-ca = Canadá
+region-name-cc = Ilhas Cocos (Keeling)
+region-name-cd = Congo (Kinshasa)
+region-name-cf = República Centro-Africana
+region-name-cg = Congo (Brazzaville)
+region-name-ch = Suiça
+region-name-ci = Costa do Marfim
+region-name-ck = Ilhas Cook
+region-name-cl = Chile
+region-name-cm = Camarões
+region-name-cn = China
+region-name-co = Colômbia
+region-name-cp = Ilha Clipperton
+region-name-cr = Costa Rica
+region-name-cu = Cuba
+region-name-cv-2020 = Cabo Verde
+region-name-cw = Coração
+region-name-cx = Ilha do Natal
+region-name-cy = Chipre
+region-name-cz-2019 = República Checa
+region-name-de = Alemanha
+region-name-dg = Diego Garcia
+region-name-dj = Jibouti
+region-name-dk = Dinamarca
+region-name-dm = Dominica
+region-name-do = República Dominicana
+region-name-dz = Argélia
+region-name-ec = Equador
+region-name-ee = Estónia
+region-name-eg = Egipto
+region-name-eh = Saara Ocidental
+region-name-er = Eritreia
+region-name-es = Espanha
+region-name-et = Etiópia
+region-name-fi = Finlândia
+region-name-fj = Ilhas Fiji
+region-name-fk = Ilhas Falkland (Ilhas Malvinas)
+region-name-fm = Estados Federados da Micronésia
+region-name-fo = Ilhas Faroé
+region-name-fr = França
+region-name-ga = Gabão
+region-name-gb = Reino Unido
+region-name-gd = Granada
+region-name-ge = Geérgia
+region-name-gf = Guiana Francesa
+region-name-gg = Guernsey
+region-name-gh = Gana
+region-name-gi = Gibraltar
+region-name-gl = Gronelândia
+region-name-gm = Gâmbia
+region-name-gn = Guiné
+region-name-gp = Guadalupe
+region-name-gq = Guiné Equatorial
+region-name-gr = Grécia
+region-name-gs = Ilhas South Georgia e South Sandwich
+region-name-gt = Guatemala
+region-name-gu = Guão
+region-name-gw = Guiné-Bissau
+region-name-gy = Guiana
+region-name-hk = Hong Kong
+region-name-hm = Ilhas Heard e McDonald
+region-name-hn = Honduras
+region-name-hr = Croácia
+region-name-ht = Haiti
+region-name-hu = Hungria
+region-name-id = Indonésia
+region-name-ie = Irlanda
+region-name-il = Israel
+region-name-im = Ilha de Man
+region-name-in = Índia
+region-name-io = Território Britânico Oceânico da Índia
+region-name-iq = Iraque
+region-name-ir = Irão
+region-name-is = Islândia
+region-name-it = Itália
+region-name-je = Jérsia
+region-name-jm = Jamaica
+region-name-jo = Jordânia
+region-name-jp = Japão
+region-name-ke = Quénia
+region-name-kg = Kirziquistão
+region-name-kh = Cambodja
+region-name-ki = Kiribati
+region-name-km = Comores
+region-name-kn = Saint Kitts e Nevis
+region-name-kp = Coreia do Norte
+region-name-kr = Coreia do Sul
+region-name-kw = Kuwait
+region-name-ky = Ilhas Caimão
+region-name-kz = Kazaquistão
+region-name-la = Laos
+region-name-lb = Líbano
+region-name-lc = Santa Luzia
+region-name-li = Liechtenstein
+region-name-lk = Sri Lanka
+region-name-lr = Libéria
+region-name-ls = Lesoto
+region-name-lt = Lituânia
+region-name-lu = Luxemburgo
+region-name-lv = Letónia
+region-name-ly = Líbia
+region-name-ma = Marrocos
+region-name-mc = Mónaco
+region-name-md = Moldávia
+region-name-me = Montenegro
+region-name-mf = Saint Martin
+region-name-mg = Madagáscar
+region-name-mh = Ilhas Marshall
+region-name-mk-2019 = Macedónia do Norte
+region-name-ml = Mali
+region-name-mm = Burma
+region-name-mn = Mongólia
+region-name-mo = Macau
+region-name-mp = Ilhas Marianas do Norte
+region-name-mq = Martinica
+region-name-mr = Mauritânia
+region-name-ms = Montserrate
+region-name-mt = Malta
+region-name-mu = Maurícias
+region-name-mv = Maldivas
+region-name-mw = Malaui
+region-name-mx = México
+region-name-my = Malásia
+region-name-mz = Moçambique
+region-name-na = Namíbia
+region-name-nc = Nova Caledónia
+region-name-ne = Níger
+region-name-nf = Ilha de Norfolk
+region-name-ng = Nigéria
+region-name-ni = Nicarágua
+region-name-nl = Holanda
+region-name-no = Noruega
+region-name-np = Nepal
+region-name-nr = Nauru
+region-name-nu = Niue
+region-name-nz = Nova Zelândia
+region-name-om = Omão
+region-name-pa = Panamá
+region-name-pe = Peru
+region-name-pf = Polinésia Francesa
+region-name-pg = Papua Nova Guiné
+region-name-ph = Filipinas
+region-name-pk = Paquistão
+region-name-pl = Polónia
+region-name-pm = Saint Pierre e Miquelon
+region-name-pn = Ilhas Pitcairn
+region-name-pr = Porto Rico
+region-name-pt = Portugal
+region-name-pw = Palau
+region-name-py = Paraguai
+region-name-qa = Catar
+region-name-qm = Ilhas Midway
+region-name-qs = Bassas da Índia
+region-name-qu = Ilha de Juan de Nova
+region-name-qw = Ilha Wake
+region-name-qx = Ilhas Glorioso
+region-name-qz = Akrotiri
+region-name-re = Reunião
+region-name-ro = Roménia
+region-name-rs = Sérvia
+region-name-ru = Rússia
+region-name-rw = Ruanda
+region-name-sa = Arábia Saudita
+region-name-sb = Ilhas Salomão
+region-name-sc = Seicheles
+region-name-sd = Sudão
+region-name-se = Suécia
+region-name-sg = Singapora
+region-name-sh = Santa Helena, Ascensão e Tristão da Cunha
+region-name-si = Eslovénia
+region-name-sk = Eslováquia
+region-name-sl = Serra Leoa
+region-name-sm = São Marino
+region-name-sn = Senegal
+region-name-so = Somália
+region-name-sr = Suriname
+region-name-ss = Sudão do Sul
+region-name-st = São Tomé e Príncipe
+region-name-sv = El Salvador
+region-name-sx = São Martinho (Sint Maarten)
+region-name-sy = Síria
+region-name-sz-2019 = Essuatíni
+region-name-tc = Ilhas Turks e Caicos
+region-name-td = Chad
+region-name-tf = Territórios Austrais e Antárticos Franceses
+region-name-tg = Togo
+region-name-th = Tailândia
+region-name-tj = Tadjiquistão
+region-name-tk = Toquelau
+region-name-tl = Timor Leste
+region-name-tm = Turqueministão
+region-name-tn = Tunísia
+region-name-to = Tonga
+region-name-tr = Turquia
+region-name-tt = Trinidade e Tobago
+region-name-tv = Tuvalu
+region-name-tw = Formosa
+region-name-tz = Tanzânia
+region-name-ua = Ucrânia
+region-name-ug = Uganda
+region-name-us = Estados Unidos da América
+region-name-uy = Uruguai
+region-name-uz = Usbequistão
+region-name-va = Cidade do Vaticano
+region-name-vc = Saint Vincent e as Grenadines
+region-name-ve = Venezuela
+region-name-vg = Ilhas Virgens Britânicas
+region-name-vi = Ilhas Virgens, E.U.A.
+region-name-vn = Vietname
+region-name-vu = Vanuatu
+region-name-wf = Wallis e Futuna
+region-name-ws = Samoa
+region-name-xa = Ilhas Ashmore e Cartier
+region-name-xb = Ilha Baker
+region-name-xc = Ilhas do Mar de Coral
+region-name-xd = Dhekelia
+region-name-xe = Ilha Europa
+region-name-xg = Faixa de Gaza
+region-name-xh = Ilha Howland
+region-name-xj = Jan Mayen
+region-name-xk = Kosovo
+region-name-xl = Atol Palmira
+region-name-xm = Recife Kingman
+region-name-xp = Ilhas Paracel
+region-name-xq = Ilha Jarvis
+region-name-xr = Svalbard
+region-name-xs = Ilhas Spratly
+region-name-xt = Ilha Tromelin
+region-name-xu = Atol de Johnston
+region-name-xv = Ilha Navassa
+region-name-xw = Banco Ocidental
+region-name-ye = Iémen
+region-name-yt = Mayotte
+region-name-za = África do Sul
+region-name-zm = Zâmbia
+region-name-zw = Zimbabué
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/main-window/autocomplete.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/main-window/autocomplete.ftl
new file mode 100644
index 0000000000..91fdde0199
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/main-window/autocomplete.ftl
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Import Logins Autocomplete
+
+## Variables:
+## $host (String) - Host name of the current site.
+
+autocomplete-import-logins-chrome =
+ <div data-l10n-name = "line1">Importar a sua credencial do Google Chrome </div>
+ <div data-l10n-name = "line2">para o { $host } e outros sites</div>
+autocomplete-import-logins-chromium =
+ <div data-l10n-name = "line1">Importar a sua credencial do Chromium </div>
+ <div data-l10n-name = "line2">para o { $host } e outros sites</div>
+autocomplete-import-logins-chromium-edge =
+ <div data-l10n-name = "line1">Importar a sua credencial do Microsoft Edge </div>
+ <div data-l10n-name = "line2">para o { $host } e outros sites</div>
+
+##
+
+autocomplete-import-learn-more = Saber mais
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/main-window/findbar.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/main-window/findbar.ftl
new file mode 100644
index 0000000000..cef63524f9
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/main-window/findbar.ftl
@@ -0,0 +1,76 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### This file contains the entities needed to use the Find Bar.
+
+findbar-next =
+ .tooltiptext = Localizar a ocorrência seguinte da frase
+findbar-previous =
+ .tooltiptext = Localizar ocorrência anterior da frase
+
+findbar-find-button-close =
+ .tooltiptext = Fechar barra de localização
+
+findbar-highlight-all2 =
+ .label = Destacar tudo
+ .accesskey =
+ { PLATFORM() ->
+ [macos] l
+ *[other] a
+ }
+ .tooltiptext = Destacar todas as ocorrências de uma frase
+
+findbar-case-sensitive =
+ .label = Diferenciar maiúsculas de minúsculas
+ .accesskey = c
+ .tooltiptext = Pesquisar diferenciando maiúsculas/minúsculas
+
+findbar-match-diacritics =
+ .label = Corresponder diacríticos
+ .accesskey = i
+ .tooltiptext = Distinguir entre as letras acentuadas e as suas letras base (por exemplo, quando pesquisa por "currículo", "currículo" não será correspondido)
+
+findbar-entire-word =
+ .label = Palavras completas
+ .accesskey = P
+ .tooltiptext = Pesquisar apenas palavras completas
+
+findbar-not-found = Frase não encontrada
+
+findbar-wrapped-to-top = Fim da página atingido, a continuar a partir do topo
+findbar-wrapped-to-bottom = Topo da página atingido, a continuar a partir do fundo
+
+findbar-normal-find =
+ .placeholder = Localizar na página
+findbar-fast-find =
+ .placeholder = Localização rápida
+findbar-fast-find-links =
+ .placeholder = Localização rápida (só ligações)
+
+findbar-case-sensitive-status =
+ .value = (Diferenciar maiúsculas/minúsculas)
+findbar-match-diacritics-status =
+ .value = (A corresponder diacríticos)
+findbar-entire-word-status =
+ .value = (Apenas palavras completas)
+
+# Variables:
+# $current (Number): Index of the currently selected match
+# $total (Number): Total count of matches
+findbar-found-matches =
+ .value =
+ { $total ->
+ [one] { $current } de { $total } correspondência
+ *[other] { $current } de { $total } correspondências
+ }
+
+# Variables:
+# $limit (Number): Total count of matches allowed before counting stops
+findbar-found-matches-count-limit =
+ .value =
+ { $limit ->
+ [one] Mais de { $limit } correspondência
+ *[other] Mais de { $limit } correspondências
+ }
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/neterror/certError.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/neterror/certError.ftl
new file mode 100644
index 0000000000..c81381cee9
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/neterror/certError.ftl
@@ -0,0 +1,141 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 } utiliza um certificado de segurança inválido.
+
+cert-error-mitm-intro = Os websites provam a sua identidade via certificados, que são emitidos por autoridades certificadoras.
+
+cert-error-mitm-mozilla = O { -brand-short-name } é apoiado pela, sem fins lucrativos, Mozilla, que administra um armazenamento completamente aberto de autoridade certificadora (CA). O armazenamento CA ajuda a assegura que as autoridades certificadoras estão a seguir as melhores práticas para segurança de utilizadores.
+
+cert-error-mitm-connection = O { -brand-short-name } utiliza o armazenamento CA da Mozilla para verificar que uma ligação é segura, em vez dos certificados fornecidos pelo sistema operativo do utilizador. Por isso, se um programa antivírus ou rede estão a intercetar uma ligação com um certificado de segurança emitido por uma CA que não está no armazenamento CA da Mozilla, a ligação é considerada insegura.
+
+cert-error-trust-unknown-issuer-intro = Alguém pode estar a tentar fazer-se passar pelo site e você não deve continuar.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-trust-unknown-issuer = Os websites provam a sua identidade via certificados. O { -brand-short-name } não confia em { $hostname } porque o seu emissor de certificados é desconhecido, o certificado é auto-assinado, ou o servidor não está a enviar os certificados intermediários corretos.
+
+cert-error-trust-cert-invalid = O certificado não é de confiança porque foi emitido por uma AC inválida.
+
+cert-error-trust-untrusted-issuer = O certificado não é de confiança porque o certificado do emissor não é de confiança.
+
+cert-error-trust-signature-algorithm-disabled = O certificado não é de confiança porque foi assinado com um algoritmo que foi desativado por não ser seguro.
+
+cert-error-trust-expired-issuer = O certificado não é de confiança porque o certificado do emissor expirou.
+
+cert-error-trust-self-signed = O certificado não é de confiança porque é auto-assinado.
+
+cert-error-trust-symantec = Certificados emitidos por GeoTrust, RapidSSL, Symantec, Thawte, e VeriSign não são mais considerados seguros porque estas autoridades de certificados não seguiram práticas de segurança no passado.
+
+cert-error-untrusted-default = O certificado não vem de uma fonte confiável.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-domain-mismatch = Os websites provam a sua identidade via certificados. O { -brand-short-name } não confia neste site porque este utiliza um certificado que não é válido para { $hostname }.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $alt-name (string) - Alternate domain name for which the cert is valid.
+cert-error-domain-mismatch-single = Os websites provam a sua identidade via certificados. O { -brand-short-name } não confia neste site porque este utiliza um certificado que não é válido para { $hostname }. O certificado só é válido para <a data-l10n-name="domain-mismatch-link">{ $alt-name }</a>.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $alt-name (string) - Alternate domain name for which the cert is valid.
+cert-error-domain-mismatch-single-nolink = Os websites provam a sua identidade via certificados. O { -brand-short-name } não confia neste site porque este utiliza um certificado que não é válido para { $hostname }. O certificado só é válido para { $alt-name }.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $subject-alt-names (string) - Alternate domain names for which the cert is valid.
+cert-error-domain-mismatch-multiple = Os websites provam a sua identidade via certificados. O { -brand-short-name } não confia neste site porque este utiliza um certificado que não é válido para { $hostname }. O certificado apenas é válido para os seguintes nomes: { $subject-alt-names }
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $not-after-local-time (Date) - Certificate is not valid after this time.
+cert-error-expired-now = Os websites provam a sua identidade via certificados, que são válidos para um período definido de tempo. O certificado para { $hostname } expirou em { $not-after-local-time }.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $not-before-local-time (Date) - Certificate is not valid before this time.
+cert-error-not-yet-valid-now = Os websites provam a sua identidade via certificados, que são válidos para um período definido de tempo. O certificado para { $hostname } não irá ser válido até { $not-before-local-time }.
+
+# Variables:
+# $error (string) - NSS error code string that specifies type of cert error. e.g. unknown issuer, invalid cert, etc.
+cert-error-code-prefix = Código de erro: { $error }
+
+# Variables:
+# $error (string) - NSS error code string that specifies type of cert error. e.g. unknown issuer, invalid cert, etc.
+cert-error-code-prefix-link = Código de erro: <a data-l10n-name="error-code-link">{ $error }</a>
+
+# Variables:
+# $hostname (string) - Hostname of the website with SSL error.
+# $errorMessage (string) - Error message corresponding to the type of error we are experiencing.
+cert-error-ssl-connection-error = Ocorreu um erro durante a ligação a { $hostname }. { $errorMessage }
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-symantec-distrust-description = Os websites provam a sua identidade via certificados, que são emitidos por autoridades certificadoras. A maioria dos navegadores não irão mais confiar em certificados emitidos por GeoTrust, RapidSSL, Symantec, e VeriSign. { $hostname } utiliza um certificado de uma destas autoridades e por isso a identidade do website não pode ser provada.
+
+cert-error-symantec-distrust-admin = Pode notificar o administrador do website acerca deste problema.
+
+cert-error-old-tls-version = Este site poderá não suportar o protocolo TLS 1.2, que é a versão mínima suportada pelo { -brand-short-name }.
+
+# Variables:
+# $hasHSTS (Boolean) - Indicates whether HSTS header is present.
+cert-error-details-hsts-label = Segurança rigorosa de transporte HTTP (HSTS): { $hasHSTS }
+
+# Variables:
+# $hasHPKP (Boolean) - Indicates whether HPKP header is present.
+cert-error-details-key-pinning-label = HTTP Public Key Pinning: { $hasHPKP }
+
+cert-error-details-cert-chain-label = Cadeia de certificados:
+
+open-in-new-window-for-csp-or-xfo-error = Abrir site numa nova janela
+
+# Variables:
+# $hostname (string) - Hostname of the website blocked by csp or xfo error.
+csp-xfo-blocked-long-desc = Para proteger a sua segurança, { $hostname } não permitirá que o { -brand-short-name } apresente a página se a mesma for incorporada noutro site. Para ver esta página, deve abrir a mesma numa nova janela.
+
+## Messages used for certificate error titles
+
+connectionFailure-title = Ligação não estabelecida
+deniedPortAccess-title = Este endereço é restrito
+# "Hmm" is a sound made when considering or puzzling over something.
+# You don't have to include it in your translation if your language does not have a written word like this.
+dnsNotFound-title = Hum. Estamos a ter problemas em encontrar esse site.
+
+dns-not-found-trr-only-title2 = Possível risco de segurança ao verificar este domínio
+dns-not-found-native-fallback-title2 = Possível risco de segurança ao verificar este domínio
+
+fileNotFound-title = Ficheiro não encontrado
+fileAccessDenied-title = O acesso ao ficheiro foi negado
+generic-title = Oops.
+captivePortal-title = Iniciar sessão na rede
+# "Hmm" is a sound made when considering or puzzling over something.
+# You don't have to include it in your translation if your language does not have a written word like this.
+malformedURI-title = Hmm. Esse endereço não parece bem.
+netInterrupt-title = A ligação foi interrompida
+notCached-title = Documento expirado
+netOffline-title = Modo offline
+contentEncodingError-title = Erro de codificação de conteúdo
+unsafeContentType-title = Tipo de ficheiro inseguro
+netReset-title = A ligação foi reposta
+netTimeout-title = A ligação expirou
+unknownProtocolFound-title = O endereço não foi compreendido
+proxyConnectFailure-title = O servidor proxy está a recusar ligações
+proxyResolveFailure-title = Servidor proxy não encontrado
+redirectLoop-title = A página não está a redirecionar corretamente
+unknownSocketType-title = Resposta inesperada do servidor
+nssFailure2-title = A ligação segura falhou
+csp-xfo-error-title = O { -brand-short-name } não pode abrir esta página
+corruptedContentError-title = Conteúdo corrompido
+sslv3Used-title = Não é possível ligar com segurança
+inadequateSecurityError-title = A sua ligação não é segura
+blockedByPolicy-title = Página bloqueada
+clockSkewError-title = O relógio do seu computador está errado
+networkProtocolError-title = Erro de protocolo de rede
+nssBadCert-title = Aviso: Potencial risco de segurança à frente
+nssBadCert-sts-title = Não se ligou: potencial problema de segurança
+certerror-mitm-title = Software está a impedir o { -brand-short-name } de se ligar em segurança a este site
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/neterror/netError.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/neterror/netError.ftl
new file mode 100644
index 0000000000..b353fbae54
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/neterror/netError.ftl
@@ -0,0 +1,147 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Error page titles
+
+neterror-page-title = Problema ao carregar página
+certerror-page-title = Aviso: Potencial risco de segurança à frente
+certerror-sts-page-title = Não se ligou: potencial problema de segurança
+neterror-blocked-by-policy-page-title = Página bloqueada
+neterror-captive-portal-page-title = Iniciar sessão na rede
+neterror-dns-not-found-title = Servidor não encontrado
+neterror-malformed-uri-page-title = URL inválido
+
+## Error page actions
+
+neterror-advanced-button = Avançado…
+neterror-copy-to-clipboard-button = Copiar texto para a área de transferência
+neterror-learn-more-link = Saber mais…
+neterror-open-portal-login-page-button = Abrir página de início de sessão da rede
+neterror-override-exception-button = Aceitar o risco e continuar
+neterror-pref-reset-button = Restaurar definições predefinidas
+neterror-return-to-previous-page-button = Retroceder
+neterror-return-to-previous-page-recommended-button = Retroceder (recomendado)
+neterror-try-again-button = Tentar novamente
+neterror-add-exception-button = Continuar sempre para este site
+neterror-settings-button = Alterar definições de DNS
+neterror-view-certificate-link = Ver certificado
+neterror-trr-continue-this-time = Continuar desta vez
+neterror-disable-native-feedback-warning = Continuar sempre
+
+##
+
+neterror-pref-reset = Parece que as suas definições de segurança de rede podem estar a causar isto. Pretende que as definições predefinidas sejam restauradas?
+neterror-error-reporting-automatic = Comunicar erros como este para ajudar a { -vendor-short-name } a identificar e bloquear sites maliciosos
+
+## Specific error messages
+
+neterror-generic-error = O { -brand-short-name } não conseguiu carregar a página por alguma razão.
+neterror-load-error-try-again = O site pode estar temporariamente indisponível ou demasiado ocupado. Tente novamente dentro de alguns momentos.
+neterror-load-error-connection = Se não conseguir carregar quaisquer páginas, verifique a ligação do seu computador à rede.
+neterror-load-error-firewall = Se o seu computador ou rede estiverem protegidos por uma firewall ou proxy, certifique-se de que o { -brand-short-name } tem permissão para aceder à Web.
+neterror-captive-portal = Tem de iniciar sessão nesta rede antes de poder aceder à Internet.
+# Variables:
+# $hostAndPath (String) - a suggested site (e.g. "www.example.com") that the user may have meant instead.
+neterror-dns-not-found-with-suggestion = Pretendia aceder a <a data-l10n-name="website">{ $hostAndPath }</a>?
+neterror-dns-not-found-hint-header = <strong>Se inseriu o endereço correto, pode:</strong>
+neterror-dns-not-found-hint-try-again = Tentar novamente mais tarde
+neterror-dns-not-found-hint-check-network = Verificar a sua ligação à rede
+neterror-dns-not-found-hint-firewall = Verificar se { -brand-short-name } tem permissão para aceder à Internet (pode estar ligado, mas atrás de uma firewall)
+
+## TRR-only specific messages
+## Variables:
+## $hostname (String) - Hostname of the website to which the user was trying to connect.
+## $trrDomain (String) - Hostname of the DNS over HTTPS server that is currently in use.
+
+neterror-dns-not-found-trr-only-reason = O { -brand-short-name } não pode proteger o seu pedido para o endereço deste site através do nosso tradutor de DNS de confiança. Eis o motivo:
+neterror-dns-not-found-trr-third-party-warning2 = Pode continuar com o seu tradutor de DNS predefinido. No entanto, terceiros poderão conseguir consultar os sites que visita.
+neterror-dns-not-found-trr-only-could-not-connect = { -brand-short-name } não conseguiu conectar-se a { $trrDomain }.
+neterror-dns-not-found-trr-only-timeout = A ligação a { $trrDomain } demorou mais do que era expectável.
+neterror-dns-not-found-trr-offline = Não se encontra ligado à Internet.
+neterror-dns-not-found-trr-unknown-host2 = Este site não foi encontrado por { $trrDomain }.
+neterror-dns-not-found-trr-server-problem = Houve um problema com { $trrDomain }.
+neterror-dns-not-found-bad-trr-url = URL inválido.
+neterror-dns-not-found-trr-unknown-problem = Problema inesperado.
+
+## Native fallback specific messages
+## Variables:
+## $trrDomain (String) - Hostname of the DNS over HTTPS server that is currently in use.
+
+neterror-dns-not-found-native-fallback-reason = O { -brand-short-name } não pode proteger o seu pedido para o endereço deste site através do nosso tradutor de DNS de confiança. Eis o motivo:
+neterror-dns-not-found-native-fallback-heuristic = O DNS sob HTTPS foi desativado na sua rede.
+neterror-dns-not-found-native-fallback-not-confirmed2 = O { -brand-short-name } não conseguiu ligar-se a { $trrDomain }.
+
+##
+
+neterror-file-not-found-filename = Verifique se existem erros de escrita no nome do ficheiro.
+neterror-file-not-found-moved = Verifique se o ficheiro foi movido, renomeado ou apagado.
+neterror-access-denied = Este pode ter sido removido, movido ou as permissões do ficheiro podem estar a impedir o acesso.
+neterror-unknown-protocol = Pode precisar de instalar outro programa para abrir este endereço.
+neterror-redirect-loop = Este problema pode, por vezes, ser causado por desativar ou recusar aceitar cookies.
+neterror-unknown-socket-type-psm-installed = Verifique se o seu sistema tem o Personal Security Manager instalado.
+neterror-unknown-socket-type-server-config = Isto pode ser causado por uma configuração não comum no servidor.
+neterror-not-cached-intro = O documento solicitado não está disponível na cache do { -brand-short-name }.
+neterror-not-cached-sensitive = Como medida de segurança, o { -brand-short-name } não solicita novamente e de forma automática documentos sensíveis.
+neterror-not-cached-try-again = Clique em Tentar novamente para solicitar novamente o documento do site.
+neterror-net-offline = Pressione “Tentar novamente” para trocar para o modo online e recarregar a página.
+neterror-proxy-resolve-failure-settings = Verifique se as definições do proxy estão corretas.
+neterror-proxy-resolve-failure-connection = Verifique se o seu computador tem uma ligação de rede ativa.
+neterror-proxy-resolve-failure-firewall = Se o seu computador ou rede estiverem protegidos por uma firewall ou um proxy, verifique se o { -brand-short-name } tem permissão de acesso à Web.
+neterror-proxy-connect-failure-settings = Verifique as definições do proxy.
+neterror-proxy-connect-failure-contact-admin = Contacte o administrador de rede para ter a certeza de que o servidor proxy está a funcionar.
+neterror-content-encoding-error = Por favor, contacte os proprietários do site para os informar deste problema.
+neterror-unsafe-content-type = Por favor, contacte os proprietários do site para os informar deste problema.
+neterror-nss-failure-not-verified = A página que está a tentar ver não pode ser mostrada porque não foi possível verificar a autenticidade dos dados recebidos.
+neterror-nss-failure-contact-website = Por favor, contacte os proprietários do site para os informar deste problema.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-intro = O { -brand-short-name } detetou um potencial risco de segurança e não continuou para <b>{ $hostname }</b>. Se visitar este site, atacantes podem tentar furtar informação como palavras-passe, emails, ou detalhes de cartão de crédito.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-sts-intro = O { -brand-short-name } detetou uma potencial ameaça de segurança e não continuou para <b>{ $hostname }</b> porque este site requer uma ligação segura.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-expired-cert-intro = O { -brand-short-name } detetou um problema e não continuou para <b>{ $hostname }</b>. O site está mal configurado ou o relógio do computador está definido para a hora errada.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+# $mitm (String) - The name of the software intercepting communications between you and the website (or “man in the middle”)
+certerror-mitm = <b>{ $hostname }</b> é provavelmente um site seguro, mas uma ligação segura não pôde ser estabelecida. O problema é causado por <b>{ $mitm }</b>, que é um software no seu computador ou rede.
+neterror-corrupted-content-intro = A página que está a tentar ver não pode ser mostrada porque foi detetado um erro na transmissão de dados.
+neterror-corrupted-content-contact-website = Por favor contacte os proprietários do site para os informar sobre este problema.
+# Do not translate "SSL_ERROR_UNSUPPORTED_VERSION".
+neterror-sslv3-used = Informação avançada: 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> utiliza tecnologia de segurança que está desatualizada e vulnerável a ataques. Um atacante pode facilmente revelar a informação que você achou que estaria segura. O administrador do site necessita de corrigir o problema no servidor antes de poder visitar o site.
+# Do not translate "NS_ERROR_NET_INADEQUATE_SECURITY".
+neterror-inadequate-security-code = Código de erro: NS_ERROR_NET_INADEQUATE_SECURITY
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+# $now (Date) - The current datetime, to be formatted as a date
+neterror-clock-skew-error = O seu computador pensa que são { DATETIME($now, dateStyle: "medium") }, o que impede que o { -brand-short-name } se ligue corretamente. Para visitar <b>{ $hostname }</b>, atualize o relógio do seu computador nas suas definições de sistema para a data, hora, e fuso horário corretos, e depois atualize <b>{ $hostname }</b>.
+neterror-network-protocol-error-intro = A página que está a tentar ver não pode ser mostrada porque um erro de protocolo de rede foi detetado.
+neterror-network-protocol-error-contact-website = Por favor contacte os proprietários do site para os informar sobre este problema.
+certerror-expired-cert-second-para = É provável que o certificado do site tenha expirado, o que impede o { -brand-short-name } de se ligar com segurança. Se visitar este site, atacantes podem tentar furtar informação como as suas palavras-passe, emails, ou detalhes de cartões de crédito.
+certerror-expired-cert-sts-second-para = É provável que o certificado do site tenha expirado, o que impede o { -brand-short-name } de se ligar com segurança.
+certerror-what-can-you-do-about-it-title = O que pode fazer quanto a isto?
+certerror-unknown-issuer-what-can-you-do-about-it-website = O mais provável é que o problema seja do site e não há nada que possa fazer para o resolver.
+certerror-unknown-issuer-what-can-you-do-about-it-contact-admin = Se está numa rede empresarial ou a utilizar software de anti-vírus, pode entrar em contacto com as equipas de apoio para assistência. Pode também notificar o administrador do site sobre o problema.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+# $now (Date) - The current datetime, to be formatted as a date
+certerror-expired-cert-what-can-you-do-about-it-clock = O relógio do seu computador está definido para { DATETIME($now, dateStyle: "medium") }. Certifique-se que o seu computador está definido para a data, hora e fuso horário corretos nas suas definições de sistema, e depois atualize <b>{ $hostname }</b>.
+certerror-expired-cert-what-can-you-do-about-it-contact-website = Se o seu relógio já está definido para a hora correta, o site deve estar mal configurado e não há nada que possa fazer para resolver o problema. Pode notificar o administrador do site sobre o problema.
+certerror-bad-cert-domain-what-can-you-do-about-it = O mais provável é que o problema seja do site e não há nada que possa fazer para o resolver. Pode notificar o administrador do site sobre o problema.
+certerror-mitm-what-can-you-do-about-it-antivirus = Se o seu software antivírus inclui uma funcionalidade que verifica ligações encriptadas (geralmente chamado “verificação da web” ou “verificação de https”), pode desativar essa funcionalidade. Se isso não funcionar, pode remover ou reinstalar o software antivírus.
+certerror-mitm-what-can-you-do-about-it-corporate = Se está uma rede corporativa, pode contactar o seu departamento de TI.
+# Variables:
+# $mitm (String) - The name of the software intercepting communications between you and the website (or “man in the middle”)
+certerror-mitm-what-can-you-do-about-it-attack = Se não estiver familiarizado(a) com <b>{ $mitm }</b>, então isto pode ser um ataque e não deve continuar para o site.
+# Variables:
+# $mitm (String) - The name of the software intercepting communications between you and the website (or “man in the middle”)
+certerror-mitm-what-can-you-do-about-it-attack-sts = Se não estiver familiarizado(a) com <b>{ $mitm }</b>, então isto pode ser um ataque, e não há nada que possa fazer para aceder ao site.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-what-should-i-do-bad-sts-cert-explanation = <b>{ $hostname }</b> tem uma política de segurança chamada HTTP Strict Transport Security (HSTS), que significa que o { -brand-short-name } apenas pode ligar-se em segurança. Não pode adicionar uma exceção para visitar este site.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/neterror/nsserrors.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/neterror/nsserrors.ftl
new file mode 100644
index 0000000000..d840f15cca
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/neterror/nsserrors.ftl
@@ -0,0 +1,344 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = Não é possível ligar de forma segura porque o protocolo SSL foi desativado.
+psmerr-ssl2-disabled = Não é possível ligar de forma segura porque o site utiliza uma versão do protocolo SSL antiga e é insegura.
+# This is a multi-line message.
+psmerr-hostreusedissuerandserial =
+ Recebeu um certificado inválido. Por favor contacte o administrador do servidor ou endereço de email equivalente e dê-lhes a seguinte informação:
+
+ O seu certificado contém o mesmo número de série que o de outro certificado emitido pela mesma autoridade certificadora. Por favor obtenha um novo certificado com um número de série único.
+ssl-error-export-only-server = Não foi possível comunicar de forma segura. O par não suporta encriptação de alta qualidade.
+ssl-error-us-only-server = Não foi possível comunicar de forma segura. O par requer uma encriptação de alta qualidade que não é suportada.
+ssl-error-no-cypher-overlap = Não foi possível comunicar de forma segura com o par: não existe(m) algoritmo(s) de encriptação em comum.
+ssl-error-no-certificate = Não foi possível localizar o certificado ou chave necessária para a autenticação.
+ssl-error-bad-certificate = Não foi possível comunicar de forma segura com o par: o certificado do par foi rejeitado.
+ssl-error-bad-client = O servidor encontrou dados do cliente danificados.
+ssl-error-bad-server = O cliente encontrou dados do servidor danificados.
+ssl-error-unsupported-certificate-type = Tipo de certificado não suportado.
+ssl-error-unsupported-version = O par está a utilizar uma versão de protocolo de segurança não suportada.
+ssl-error-wrong-certificate = Autenticação do cliente falhou: chave privada na base de dados de chaves não corresponde à chave pública na base de dados de certificados.
+ssl-error-bad-cert-domain = Não foi possível comunicar com o par: domínio pedido não corresponde ao certificado do servidor.
+ssl-error-post-warning = Código de erro SSL desconhecido.
+ssl-error-ssl2-disabled = O par só suporta SSL versão 2, que está desativada localmente.
+ssl-error-bad-mac-read = O SSL recebeu um registo com um código de mensagem de autenticação incorreto.
+ssl-error-bad-mac-alert = O par SSL reporta um código de mensagem de autenticação incorreto.
+ssl-error-bad-cert-alert = O par SSL não consegue verificar o seu certificado.
+ssl-error-revoked-cert-alert = O par SSL rejeitou o seu certificado como revogado.
+ssl-error-expired-cert-alert = O par SSL rejeitou o seu certificado como expirado.
+ssl-error-ssl-disabled = Impossível ligar: SSL está desligado.
+ssl-error-fortezza-pqg = Impossível ligar: O par SSL está noutro domínio FORTEZZA.
+ssl-error-unknown-cipher-suite = Solicitada uma combinação de cifras SSL desconhecida.
+ssl-error-no-ciphers-supported = Não existem conjuntos de cifras presentes e ativadas neste programa.
+ssl-error-bad-block-padding = O SSL recebeu um registo com enchimento de bloco errado.
+ssl-error-rx-record-too-long = O SSL recebeu um registo que excedeu o tamanho máximo permitido.
+ssl-error-tx-record-too-long = SSL tentou enviar um registo que excedeu o tamanho máximo permitido.
+ssl-error-rx-malformed-hello-request = O SSL recebeu uma mensagem handshake Hello Request mal formada.
+ssl-error-rx-malformed-client-hello = O SSL recebeu uma mensagem handshake Client Hello mal formada.
+ssl-error-rx-malformed-server-hello = O SSL recebeu uma mensagem handshake Server Hello mal formada.
+ssl-error-rx-malformed-certificate = O SSL recebeu uma mensagem handshake de certificado mal formada.
+ssl-error-rx-malformed-server-key-exch = O SSL recebeu uma mensagem handshake de troca de chave de servidor mal formada.
+ssl-error-rx-malformed-cert-request = O SSL recebeu uma mensagem handshake de pedido de certificado mal formada.
+ssl-error-rx-malformed-hello-done = O SSL recebeu uma mensagem handshake Server Hello Done mal formada.
+ssl-error-rx-malformed-cert-verify = O SSL recebeu uma mensagem handshake de verificação de certificado mal formada.
+ssl-error-rx-malformed-client-key-exch = O SSL recebeu uma mensagem handshake de troca de chave de cliente mal formada.
+ssl-error-rx-malformed-finished = O SSL recebeu uma mensagem handshake de conclusão malformada.
+ssl-error-rx-malformed-change-cipher = O SSL recebeu um registo de troca de especificação de cifras mal formado.
+ssl-error-rx-malformed-alert = O SSL recebeu um registo de alerta mal formado.
+ssl-error-rx-malformed-handshake = O SSL recebeu um registo handshake mal formado.
+ssl-error-rx-malformed-application-data = O SSL recebeu um registo de dados da aplicação mal formado.
+ssl-error-rx-unexpected-hello-request = O SSL recebeu uma mensagem handshake Hello Request inesperada.
+ssl-error-rx-unexpected-client-hello = O SSL recebeu uma mensagem handshake Client Hello inesperada.
+ssl-error-rx-unexpected-server-hello = O SSL recebeu uma mensagem handshake Server Hello inesperada.
+ssl-error-rx-unexpected-certificate = O SSL recebeu uma mensagem handshake de certificado inesperada.
+ssl-error-rx-unexpected-server-key-exch = O SSL recebeu uma mensagem handshake de troca de chave de servidor inesperada.
+ssl-error-rx-unexpected-cert-request = O SSL recebeu uma mensagem handshake de pedido de certificado inesperada.
+ssl-error-rx-unexpected-hello-done = O SSL recebeu uma mensagem handshake Server Hello Done inesperada.
+ssl-error-rx-unexpected-cert-verify = O SSL recebeu uma mensagem handshake de verificação de certificado inesperada.
+ssl-error-rx-unexpected-client-key-exch = O SSL recebeu uma mensagem handshake de troca de chave de cliente inesperada.
+ssl-error-rx-unexpected-finished = O SSL recebeu uma mensagem handshake de conclusão inesperada.
+ssl-error-rx-unexpected-change-cipher = O SSL recebeu um registo de troca de especificação de cifras inesperado.
+ssl-error-rx-unexpected-alert = O SSL recebeu um registo de alerta inesperado.
+ssl-error-rx-unexpected-handshake = O SSL recebeu um registo handshake inesperado.
+ssl-error-rx-unexpected-application-data = O SSL recebeu um registo de dados da aplicação inesperado.
+ssl-error-rx-unknown-record-type = O SSL recebeu um registo com um tipo de conteúdo desconhecido.
+ssl-error-rx-unknown-handshake = O SSL recebeu uma mensagem handshake com um tipo de mensagem desconhecido.
+ssl-error-rx-unknown-alert = O SSL recebeu um registo de alerta com uma descrição desconhecida.
+ssl-error-close-notify-alert = O par SSL fechou esta ligação.
+ssl-error-handshake-unexpected-alert = O par SSL não esperava a mensagem handshake que recebeu.
+ssl-error-decompression-failure-alert = O par SSL foi incapaz de descomprimir um registo SSL que recebeu.
+ssl-error-handshake-failure-alert = O par SSL foi incapaz de negociar um conjunto aceitável de parâmetros de segurança.
+ssl-error-illegal-parameter-alert = O par SSL rejeitou uma mensagem handshake devido a conteúdo inaceitável.
+ssl-error-unsupported-cert-alert = O par SSL não suporta certificados do tipo que recebeu.
+ssl-error-certificate-unknown-alert = O par SSL teve um problema não especificado com o certificado que recebeu.
+ssl-error-generate-random-failure = SSL teve uma falha no gerador de números aleatórios.
+ssl-error-sign-hashes-failure = Falha ao assinar digitalmente os dados necessários para verificar o seu certificado.
+ssl-error-extract-public-key-failure = SSL foi incapaz de extrair a chave pública do certificado do par.
+ssl-error-server-key-exchange-failure = Falha não especificada ao processar o handshake SSL de troca de chave de servidor.
+ssl-error-client-key-exchange-failure = Falha não especificada ao processar o handshake SSL de troca de chave de cliente.
+ssl-error-encryption-failure = O algoritmo de codificação de dados em lote falhou para o conjunto selecionado.
+ssl-error-decryption-failure = O algoritmo de descodificação de dados em lote falhou para o conjunto selecionado.
+ssl-error-socket-write-failure = Erro ao tentar escrever os dados encriptados no socket subjacente.
+ssl-error-md5-digest-failure = A função de resumo MD5 falhou.
+ssl-error-sha-digest-failure = A função de resumo SHA-1 falhou.
+ssl-error-mac-computation-failure = A computação MAC falhou.
+ssl-error-sym-key-context-failure = Falha ao criar o contexto da chave simétrica.
+ssl-error-sym-key-unwrap-failure = Falha ao "desencapsular" a chave simétrica na mensagem de intercâmbio de chave de cliente.
+ssl-error-pub-key-size-limit-exceeded = O servidor SSL tentou utilizar uma chave pública doméstica com a exportação de pacote de cifra.
+ssl-error-iv-param-failure = O código PKCS11 falhou a tradução de um IV para um param.
+ssl-error-init-cipher-suite-failure = Falha ao iniciar do pacote de cifra selecionado.
+ssl-error-session-key-gen-failure = O cliente falhou a criação de chaves de sessão para a sessão SSL.
+ssl-error-no-server-key-for-alg = O servidor não tem chave para a tentativa de algoritmo de troca de chave.
+ssl-error-token-insertion-removal = O token PKCS#11 foi inserido ou removido enquanto a operação estava a decorrer.
+ssl-error-token-slot-not-found = Não foi encontrado nenhum token PKCS#11 para a operação requerida.
+ssl-error-no-compression-overlap = Não é possível comunicar de forma segura com o par: não existem algoritmos de compressão em comum.
+ssl-error-handshake-not-completed = Não é possível iniciar outro handshake SSL até que o handshake atual seja concluído.
+ssl-error-bad-handshake-hash-value = Recebidos valores hash incorretos de handshakes do par.
+ssl-error-cert-kea-mismatch = O certificado recebido não pode ser utilizado com o algoritmo de intercâmbio de chave fornecido.
+ssl-error-no-trusted-ssl-client-ca = Nenhuma autoridade certificadora é confiada para autenticação SSL do cliente.
+ssl-error-session-not-found = O ID da sessão SSL do cliente não foi encontrado na cache de sessão do servidor.
+ssl-error-decryption-failed-alert = O par não conseguiu desencriptar o registo SSL que recebeu.
+ssl-error-record-overflow-alert = O par recebeu um registo SSL maior do que é permitido.
+ssl-error-unknown-ca-alert = O par não reconhece nem confia na AC que emitiu o seu certificado.
+ssl-error-access-denied-alert = O par recebeu um certificado válido, mas o acesso foi negado.
+ssl-error-decode-error-alert = O par não conseguiu descodificar a mensagem handshake SSL.
+ssl-error-decrypt-error-alert = O par indicou uma falha na verificação da assinatura ou intercâmbio de chave.
+ssl-error-export-restriction-alert = O par indica uma negociação em desacordo com os regulamentos de exportação.
+ssl-error-protocol-version-alert = O par indica uma versão do protocolo não suportada ou incompatível.
+ssl-error-insufficient-security-alert = O servidor requer cifras mais seguras do que as suportadas pelo cliente.
+ssl-error-internal-error-alert = O par indicou que teve um erro interno.
+ssl-error-user-canceled-alert = O utilizador do par cancelou o handshake.
+ssl-error-no-renegotiation-alert = O par não permite a renegociação dos parâmetros de segurança SSL.
+ssl-error-server-cache-not-configured = Cache do servidor SSL não configurado e não desativado para este socket.
+ssl-error-unsupported-extension-alert = O par SSL não tem suporte à extensão TLS hello.
+ssl-error-certificate-unobtainable-alert = O par SSL não conseguiu obter o seu certificado a partir do URL fornecido.
+ssl-error-unrecognized-name-alert = O par SSL não tem um certificado para o nome DNS solicitado.
+ssl-error-bad-cert-status-response-alert = O par SSL não conseguiu obter uma resposta OCSP para este certificado.
+ssl-error-bad-cert-hash-value-alert = O par SSL reportou um erro no valor hash do certificado.
+ssl-error-rx-unexpected-new-session-ticket = O SSL recebeu uma mensagem inesperada de handshake de nova sessão.
+ssl-error-rx-malformed-new-session-ticket = O SSL recebeu uma mensagem mal formada de handshake de nova sessão.
+ssl-error-decompression-failure = O SSL recebeu um registo comprimido que não pode ser descomprimido.
+ssl-error-renegotiation-not-allowed = A renegociação não é permitida neste socket SSL.
+ssl-error-unsafe-negotiation = O par tentou um handshake ao estilo antigo (potencialmente vulnerável).
+ssl-error-rx-unexpected-uncompressed-record = SSL recebeu um registo inesperado não comprimido.
+ssl-error-weak-server-ephemeral-dh-key = O SSL recebeu uma chave fraca e efémera Diffie-Hellman na mensagem handshake de troca de chave de servidor.
+ssl-error-next-protocol-data-invalid = O SSL recebeu dados de extensão NPN inválidos.
+ssl-error-feature-not-supported-for-ssl2 = Funcionalidade SSL não suportada para ligações SSL 2.0.
+ssl-error-feature-not-supported-for-servers = A funcionalidade SSL não é suportada para servidores.
+ssl-error-feature-not-supported-for-clients = Funcionalidade SSL não suportada por clientes.
+ssl-error-invalid-version-range = O intervalo da versão SSL não é válido.
+ssl-error-cipher-disallowed-for-version = O par SSL selecionou um cipher desativado para a versão do protocolo selecionado.
+ssl-error-rx-malformed-hello-verify-request = O SSL recebeu uma mensagem handshake Hello Verify Request mal formada.
+ssl-error-rx-unexpected-hello-verify-request = O SSL recebeu uma mensagem handshake Hello Verify Request inesperada.
+ssl-error-feature-not-supported-for-version = Funcionalidade SSL não suportada para esta versão do protocolo.
+ssl-error-rx-unexpected-cert-status = O SSL recebeu uma mensagem handshake de estado do certificado inesperada.
+ssl-error-unsupported-hash-algorithm = Algoritmo de hash não suportado pelo par TLS.
+ssl-error-digest-failure = A função Digest falhou.
+ssl-error-incorrect-signature-algorithm = Assinatura incorreta do algoritmo especificada num elemento assinado digitalmente.
+ssl-error-next-protocol-no-callback = A negociação de protocolo da extensão seguinte foi ativada, mas a chamada de retorno foi limpa antes de ser necessária.
+ssl-error-next-protocol-no-protocol = O servidor não suporta os protocolos que o cliente informa na extensão ALPN.
+ssl-error-inappropriate-fallback-alert = O servidor rejeitou o handshake porque o cliente alterou para uma versão inferior de TLS não suportada pelo servidor.
+ssl-error-weak-server-cert-key = O certificado do servidor inclui uma chave pública de qualidade fraca.
+ssl-error-rx-short-dtls-read = Sem espaço suficiente no buffer para gravação DTLS.
+ssl-error-no-supported-signature-algorithm = Nenhum algoritmo de assinatura TLS suportado foi configurado.
+ssl-error-unsupported-signature-algorithm = O par utilizou um algoritmo de combinação de assinatura e hash não suportado.
+ssl-error-missing-extended-master-secret = O par tentou resumir sem a extensão extended_master_secret correta.
+ssl-error-unexpected-extended-master-secret = O par tentou resumir com uma extensão extended_master_secret inesperada.
+sec-error-io = Ocorreu um erro de E/S durante a autorização de segurança.
+sec-error-library-failure = falha na biblioteca de segurança.
+sec-error-bad-data = biblioteca de segurança: receção de dados errados.
+sec-error-output-len = biblioteca de segurança: erro no comprimento de saída.
+sec-error-input-len = a biblioteca de segurança sofreu um erro de comprimento de entrada.
+sec-error-invalid-args = biblioteca de segurança: argumentos inválidos.
+sec-error-invalid-algorithm = biblioteca de segurança: algoritmo inválido.
+sec-error-invalid-ava = biblioteca de segurança: AVA inválido.
+sec-error-invalid-time = String com a hora formatada incorretamente.
+sec-error-bad-der = biblioteca de segurança: formatação incorreta da mensagem com codificação DER.
+sec-error-bad-signature = O certificado do par tem uma assinatura inválida.
+sec-error-expired-certificate = O certificado do par expirou.
+sec-error-revoked-certificate = O certificado do par foi revogado.
+sec-error-unknown-issuer = O emissor do certificado do par não é reconhecido.
+sec-error-bad-key = A chave pública do par é inválida.
+sec-error-bad-password = A palavra-passe de segurança introduzida está incorreta.
+sec-error-retry-password = A nova palavra-passe foi introduzida incorretamente. Por favor tente novamente.
+sec-error-no-nodelock = biblioteca de segurança: sem nó trancado.
+sec-error-bad-database = biblioteca de segurança: base de dados corrompida.
+sec-error-no-memory = biblioteca de segurança: falha na atribuição de memória.
+sec-error-untrusted-issuer = O emissor do certificado do par foi marcado como não sendo de confiança pelo utilizador.
+sec-error-untrusted-cert = O certificado do par foi marcado como não sendo de confiança pelo utilizador.
+sec-error-duplicate-cert = O certificado já existe na sua base de dados.
+sec-error-duplicate-cert-name = O nome do certificado transferido é igual a um já existente na sua base de dados.
+sec-error-adding-cert = Erro ao adicionar o certificado à base de dados.
+sec-error-filing-key = Erro ao preencher a chave para este certificado.
+sec-error-no-key = A chave privada para este certificado não foi encontrado na sua base de dados
+sec-error-cert-valid = Este certificado é válido.
+sec-error-cert-not-valid = Este certificado não é válido.
+sec-error-cert-no-response = Biblioteca Cert: Sem resposta
+sec-error-expired-issuer-certificate = O certificado do emissor do certificado expirou. Verifique a data e hora do seu sistema.
+sec-error-crl-expired = A CRL para emissores de certificados expirou. Atualize ou verifique a data e hora do seu sistema.
+sec-error-crl-bad-signature = A CRL para emissores de certificados tem uma assinatura inválida.
+sec-error-crl-invalid = A nova CRL tem um formato inválido.
+sec-error-extension-value-invalid = O valor da extensão do certificado é inválido.
+sec-error-extension-not-found = Extensão do certificado não encontrada.
+sec-error-ca-cert-invalid = O emissor do certificado é inválido.
+sec-error-path-len-constraint-invalid = A restrição ao comprimento do caminho para o certificado é inválida.
+sec-error-cert-usages-invalid = O campo de utilização do certificado é inválido.
+sec-internal-only = **APENAS módulo interno**
+sec-error-invalid-key = A chave não suporta a operação pedida.
+sec-error-unknown-critical-extension = O certificado contém uma extensão crítica desconhecida.
+sec-error-old-crl = A nova CRL não é mais recente que a atual.
+sec-error-no-email-cert = Por encriptar ou assinar: ainda não tem um certificado de email.
+sec-error-no-recipient-certs-query = Por encriptar: não tem certificados para cada um dos destinatários.
+sec-error-not-a-recipient = Não é possível desencriptar: você não é um destinatário ou o certificado correspondente e a chave privada não foram encontrados.
+sec-error-pkcs7-keyalg-mismatch = Não é possível desencriptar: a chave do algoritmo de encriptação não corresponde com o seu certificado.
+sec-error-pkcs7-bad-signature = Falhou a verificação da assinatura: nenhum assinante encontrado, encontrados demasiados assinantes, ou dados impróprios ou corrompidos.
+sec-error-unsupported-keyalg = Algoritmo de chave desconhecido ou não suportado.
+sec-error-decryption-disallowed = Não é possível desencriptar: encriptado utilizando um algoritmo ou tamanho de chave não permitido.
+sec-error-no-krl = Não foi encontrado um KRL para o certificado deste site.
+sec-error-krl-expired = O KRL para o certificado deste site expirou.
+sec-error-krl-bad-signature = O KRL para o certificado deste site tem uma assinatura inválida.
+sec-error-revoked-key = A chave para o certificado deste site foi revogado.
+sec-error-krl-invalid = O novo KRL tem um formato inválido.
+sec-error-need-random = biblioteca de segurança: necessita de dados aleatórios.
+sec-error-no-module = biblioteca de segurança: nenhum módulo de segurança pode realizar a operação pedida.
+sec-error-no-token = O cartão de segurança ou token não existe, precisa de ser inicializado ou foi removido.
+sec-error-read-only = biblioteca de segurança: base de dados apenas de leitura.
+sec-error-no-slot-selected = Nenhuma ranhura ou token selecionado.
+sec-error-cert-nickname-collision = Já existe um certificado com a mesma alcunha.
+sec-error-key-nickname-collision = Já existe uma chave com a mesma alcunha.
+sec-error-safe-not-created = erro ao criar o objeto seguro
+sec-error-baggage-not-created = erro ao criar objeto bagagem
+sec-error-bad-export-algorithm = Algoritmo necessário não é permitido.
+sec-error-exporting-certificates = Erro ao tentar exportar certificados.
+sec-error-importing-certificates = Erro ao tentar importar certificados.
+sec-error-pkcs12-decoding-pfx = Não foi possível importar. Erro de descodificação. Ficheiro inválido.
+sec-error-pkcs12-invalid-mac = Não foi possível importar. MAC inválido. Palavra-passe incorreta ou ficheiro corrompido.
+sec-error-pkcs12-unsupported-mac-algorithm = Não foi possível importar. Algoritmo MAC não suportado.
+sec-error-pkcs12-unsupported-transport-mode = Não foi possível importar. Apenas são suportados os modos de integridade de palavra-passe e de privacidade.
+sec-error-pkcs12-corrupt-pfx-structure = Não foi possível importar. A estrutura do ficheiro está danificada.
+sec-error-pkcs12-unsupported-pbe-algorithm = Não foi possível importar. O algoritmo de encriptação não é suportado.
+sec-error-pkcs12-unsupported-version = Não foi possível importar. A versão do ficheiro não é suportada.
+sec-error-pkcs12-privacy-password-incorrect = Não foi possível importar. Palavra-passe de privacidade incorreta.
+sec-error-pkcs12-cert-collision = Não foi possível importar. A mesma alcunha já existe na base de dados.
+sec-error-user-cancelled = O utilizador pressionou cancelar.
+sec-error-pkcs12-duplicate-data = Não importada, já existe na base de dados.
+sec-error-message-send-aborted = Mensagem não enviada.
+sec-error-inadequate-key-usage = Utilização da chave do certificado inadequada para a operação pretendida.
+sec-error-inadequate-cert-type = Tipo de certificado não aprovado para a aplicação.
+sec-error-cert-addr-mismatch = Endereço do certificado signatário não corresponde ao endereço no cabeçalho da mensagem.
+sec-error-pkcs12-unable-to-import-key = Não foi possível importar. Erro ao tentar importar chave privada.
+sec-error-pkcs12-importing-cert-chain = Não foi possível importar. Erro ao tentar importar cadeia de certificados.
+sec-error-pkcs12-unable-to-locate-object-by-name = Não foi possível exportar. Não foi possível localizar certificado ou chave pela alcunha.
+sec-error-pkcs12-unable-to-export-key = Não foi possível exportar. Chave privada não pôde ser localizada e exportada.
+sec-error-pkcs12-unable-to-write = Não foi possível exportar. Não foi possível escrever o ficheiro a exportar.
+sec-error-pkcs12-unable-to-read = Não foi possível importar. Não foi possível ler o ficheiro a importar.
+sec-error-pkcs12-key-database-not-initialized = Não foi possível exportar. A base de dados das chaves está danificada ou foi apagada.
+sec-error-keygen-fail = Não foi possível gerar um par de chaves públicas/privadas.
+sec-error-invalid-password = A palavra-passe introduzida é inválida. Por favor escolha uma diferente.
+sec-error-retry-old-password = A palavra-passe antiga é inválida. Por favor tente novamente.
+sec-error-bad-nickname = A alcunha do Certificado já está a ser utilizada.
+sec-error-not-fortezza-issuer = A cadeia de pares FORTEZZA possui um certificado não-FORTEZZA.
+sec-error-cannot-move-sensitive-key = Uma chave crítica não pôde ser movida para a ranhura onde é necessária.
+sec-error-js-invalid-module-name = Nome de módulo inválido.
+sec-error-js-invalid-dll = Caminho/nome de ficheiro de módulo inválido
+sec-error-js-add-mod-failure = Não foi possível adicionar o módulo
+sec-error-js-del-mod-failure = Não foi possível apagar o módulo
+sec-error-old-krl = A nova KRL não é mais recente do que o atual.
+sec-error-ckl-conflict = A nova CKL tem um emissor diferente da CKL atual. Apague a CKL atual.
+sec-error-cert-not-in-name-space = A autoridade de certificação para este certificado não está autorizada a emitir um certificado com este nome.
+sec-error-krl-not-yet-valid = A lista de chaves revogadas para este certificado ainda não é válida.
+sec-error-crl-not-yet-valid = A lista de certificados revogados para este certificado ainda não é válida.
+sec-error-unknown-cert = O certificado requisitado não pôde ser encontrado.
+sec-error-unknown-signer = A assinatura do certificado não pôde ser encontrada.
+sec-error-cert-bad-access-location = A localização do servidor de estado do certificado tem um formato inválido.
+sec-error-ocsp-unknown-response-type = A resposta OCSP não pôde ser totalmente descodificada; é de um tipo desconhecido.
+sec-error-ocsp-bad-http-response = O servidor OCSP retornou dados HTTP inesperados/inválidos.
+sec-error-ocsp-malformed-request = O servidor OCSP acha que o pedido está corrupto ou mal formado.
+sec-error-ocsp-server-error = O servidor OCSP sofreu um erro interno.
+sec-error-ocsp-try-server-later = O servidor OCSP sugere que tente mais tarde.
+sec-error-ocsp-request-needs-sig = O servidor OCSP requer uma assinatura para este pedido.
+sec-error-ocsp-unauthorized-request = O servidor OCSP recusou este pedido como não autorizado.
+sec-error-ocsp-unknown-response-status = O servidor OCSP retornou um estado desconhecido.
+sec-error-ocsp-unknown-cert = O servidor OCSP não tem o estado deste certificado.
+sec-error-ocsp-not-enabled = Tem de ativar o OCSP antes de realizar esta operação.
+sec-error-ocsp-no-default-responder = Tem de definir a resposta padrão do OCSP antes de realizar esta operação.
+sec-error-ocsp-malformed-response = A resposta do servidor OCSP foi corrompida ou mal formada.
+sec-error-ocsp-unauthorized-response = O signatário da resposta OCSP não está autorizado a dar o estado deste certificado.
+sec-error-ocsp-future-response = A resposta OCSP ainda não é válida (contem uma data do futuro).
+sec-error-ocsp-old-response = A resposta OCSP contêm informação desatualizada.
+sec-error-digest-not-found = O resumo CMS ou PKCS #7 não foi encontrado na mensagem assinada.
+sec-error-unsupported-message-type = O tipo da mensagem CMS ou PKCS #7 não é suportado.
+sec-error-module-stuck = O módulo PKCS #11 não pôde ser removido porque ainda está a ser utilizado.
+sec-error-bad-template = Não foi possível descodificar dados ASN.1. O modelo especificado era inválido.
+sec-error-crl-not-found = Nenhuma CRL correspondente foi encontrado.
+sec-error-reused-issuer-and-serial = Está a tentar importar um certificado com o mesmo emissor/número de série de um certificado que já existe, mas diferente.
+sec-error-busy = NSS foi incapaz de desligar. Existem objetos que ainda estão a ser utilizados.
+sec-error-extra-input = DER-a mensagem codificada continha dados extra não utilizados.
+sec-error-unsupported-elliptic-curve = Curva elíptica não suportada.
+sec-error-unsupported-ec-point-form = Forma do ponto da curva elíptica não suportada.
+sec-error-unrecognized-oid = Identificador de objeto desconhecido.
+sec-error-ocsp-invalid-signing-cert = Certificado de assinatura OCSP inválido na resposta OCSP.
+sec-error-revoked-certificate-crl = O certificado está revogado na lista de revogação do emissor.
+sec-error-revoked-certificate-ocsp = O servidor OCSP do emissor informa que o certificado encontra-se revogado.
+sec-error-crl-invalid-version = A Lista de Certificados Revogados do emissor possui um número de versão desconhecido.
+sec-error-crl-v1-critical-extension = A Lista de Certificados Revogados V1 do emissor possui uma extensão crítica.
+sec-error-crl-unknown-critical-extension = A Lista de Certificados Revogados V2 do emissor possui uma extensão crítica desconhecida.
+sec-error-unknown-object-type = Especificado um tipo de objeto desconhecido.
+sec-error-incompatible-pkcs11 = O controlador PKCS #11 viola a especificação de uma forma incompatível.
+sec-error-no-event = Não existe nenhuma ranhura de evento disponível no momento.
+sec-error-crl-already-exists = CRL já existe.
+sec-error-not-initialized = NSS não foi inicializado.
+sec-error-token-not-logged-in = A operação falhou porque o token PKCS#11 não está ligado.
+sec-error-ocsp-responder-cert-invalid = O certificado do servidor OCSP de resposta é inválido.
+sec-error-ocsp-bad-signature = A resposta OCSP tem uma assinatura inválida.
+sec-error-out-of-search-limits = A validação do certificado está fora dos limites da pesquisa
+sec-error-invalid-policy-mapping = O mapeamento da política contém anti-política
+sec-error-policy-validation-failed = A cadeia Cert falha a política de validação
+sec-error-unknown-aia-location-type = Tipo de localização desconhecido na extensão AIA do cert
+sec-error-bad-http-response = O servidor retornou uma má resposta HTTP
+sec-error-bad-ldap-response = O servidor retornou uma má resposta LDAP
+sec-error-failed-to-encode-data = Falha ao codificar os dados com o codificador ASN1
+sec-error-bad-info-access-location = Informação incorreta na localização de acesso no certificado da extensão
+sec-error-libpkix-internal = Ocorreu um erro interno Libpkix durante a validação do certificado.
+sec-error-pkcs11-general-error = Um módulo PKCS #11 retornou CKR_GENERAL_ERROR, indicando que ocorreu um erro irrecuperável.
+sec-error-pkcs11-function-failed = Um módulo PKCS #11 retornou CKR_FUNCTION_FAILED, indicando que a função pedida não pôde ser realizada. Tentar a mesma operação novamente poderá funcionar.
+sec-error-pkcs11-device-error = Um módulo PKCS #11 retornou CKR_DEVICE_ERROR, indicando que ocorreu um problema com o token ou ranhura.
+sec-error-bad-info-access-method = Informação do método de acesso desconhecido na extensão do certificado.
+sec-error-crl-import-failed = Erro ao tentar importar o CRL.
+sec-error-expired-password = A palavra-passe expirou.
+sec-error-locked-password = A palavra-passe está bloqueada.
+sec-error-unknown-pkcs11-error = Erro PKCS #11 desconhecido.
+sec-error-bad-crl-dp-url = URL não suportado ou inválido no ponto de distribuição CRL.
+sec-error-cert-signature-algorithm-disabled = O certificado foi assinado usando um algoritmo da assinatura que foi desativado pois não é seguro.
+mozilla-pkix-error-key-pinning-failure = O servidor utiliza uma chave pinning (HPKP) mas não foi possível construir uma cadeia de confiança do certificado que corresponda ao pinset. Violações da chave não podem ser sobrescritas.
+mozilla-pkix-error-ca-cert-used-as-end-entity = O servidor usa um certificado com uma extensão com restrições base identificando-a como uma autoridade de certificação. Para um certificado correto esse problema não se coloca.
+mozilla-pkix-error-inadequate-key-size = O servidor apresentou um certificado com o tamanho da chave demasiado pequeno para estabelecer uma ligação segura.
+mozilla-pkix-error-v1-cert-used-as-ca = Foi utiliado um certificado X.509 versão 1 que não é uma âncora de confiança para emitir o certificado do servidor. Os certificados X.509 versão 1 foram descontinuados e não devem ser utilizados para assinar outros certificados.
+mozilla-pkix-error-not-yet-valid-certificate = O servidor apresentou um certificado que ainda não é válido.
+mozilla-pkix-error-not-yet-valid-issuer-certificate = Um certificado que ainda não é válido foi usado para emitir o certificado do servidor.
+mozilla-pkix-error-signature-algorithm-mismatch = O algoritmo no campo da assinatura do certificado não corresponde ao algoritmo no campo signatureAlgorithm.
+mozilla-pkix-error-ocsp-response-for-cert-missing = A resposta OCSP não inclui um estado para poder verificar o certificado.
+mozilla-pkix-error-validity-too-long = O servidor apresentou um certificado que é válido por demasiado tempo.
+mozilla-pkix-error-required-tls-feature-missing = Está em falta uma função TLS solicitada.
+mozilla-pkix-error-invalid-integer-encoding = O servidor apresentou um certificado que contém uma codificação inválida de um inteiro. Causas comuns incluem números de série negativos, módulos RSA negativos, e codificações que são mais longas que o necessário.
+mozilla-pkix-error-empty-issuer-name = O servidor apresentou um certificado com um nome de emissor distinto vazio.
+mozilla-pkix-error-additional-policy-constraint-failed = Uma restrição de política adicional falhou ao validar este certificado.
+mozilla-pkix-error-self-signed-cert = O certificado não é de confiança porque é auto-assinado.
+xp-java-remove-principal-error = Não foi possível remover o principal
+xp-java-delete-privilege-error = Não foi possível apagar o privilégio
+xp-java-cert-not-exists-error = Este principal não tem um certificado
+xp-sec-fortezza-bad-card = O cartão Fortezza não foi iniciado corretamente. Por favor remova-o e devolva-o ao seu emissor.
+xp-sec-fortezza-no-card = Não foram encontrados cartões Fortezza
+xp-sec-fortezza-none-selected = Nenhum cartão Fortezza selecionado
+xp-sec-fortezza-more-info = Por favor escolha uma personalidade para obter informação de
+xp-sec-fortezza-person-not-found = Personalidade não encontrada
+xp-sec-fortezza-no-more-info = Não existe mais informação sobre essa Personalidade
+xp-sec-fortezza-bad-pin = Pin inválido
+xp-sec-fortezza-person-error = Não foi possível inicializar personalidades Fortezza.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/passwordmgr/passwordmgr.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/passwordmgr/passwordmgr.ftl
new file mode 100644
index 0000000000..c1e46fec32
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/passwordmgr/passwordmgr.ftl
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Save and update password doorhanger
+
+# Variables
+# $host (String) - Hostname for which the password is saved for.
+password-manager-save-password-message = Guardar palavra-passe para { $host }?
+password-manager-save-password-button-allow =
+ .label = Guardar
+ .accesskey = G
+password-manager-save-password-button-never =
+ .label = Nunca guardar
+ .accesskey = a
+# Variables
+# $host (String) - Hostname for which the password is updated for.
+password-manager-update-password-message = Atualizar palavra-passe para { $host }?
+password-manager-update-login-add-username = Adicionar nome de utilizador à palavra-passe guardada?
+password-manager-password-password-button-allow =
+ .label = Atualizar
+ .accesskey = u
+password-manager-update-password-button-deny =
+ .label = Não atualizar
+ .accesskey = N
+# This is displayed in place of the username when it is missing.
+password-manager-no-username-placeholder = Sem nome de utilizador
+password-manager-toggle-password =
+ .label = Mostrar palavra-passe
+ .accesskey = o
+password-manager-confirm-password-change = Confirmar alteração de palavra-passe
+password-manager-select-username = Selecione qual credencial a atualizar:
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/payments/payments.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/payments/payments.ftl
new file mode 100644
index 0000000000..fab17c3896
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/payments/payments.ftl
@@ -0,0 +1,51 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# This value isn't used directly, but is defined to avoid duplication
+# in the "credit-card-label-*" strings.
+#
+# Variables:
+# $month (String): Numeric month the credit card expires
+# $year (String): Four-digit year the credit card expires
+credit-card-expiration = Expira em { $month }/{ $year }
+
+## These labels serve as a description of a credit card.
+## The description must include a credit card number, and may optionally
+## include a cardholder name, an expiration date, or both, so we have
+## four variations.
+
+# Label for a credit card with a number only
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $type (String): Credit card type
+credit-card-label-number-2 = { $number }
+ .aria-label = { $type } { credit-card-label-number-2 }
+
+# Label for a credit card with a number and name
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $name (String): Cardholder name
+# $type (String): Credit card type
+credit-card-label-number-name-2 = { $number }, { $name }
+ .aria-label = { $type } { credit-card-label-number-name-2 }
+
+# Label for a credit card with a number and expiration date
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $type (String): Credit card type
+credit-card-label-number-expiration-2 = { $number }, { credit-card-expiration }
+ .aria-label = { $type } { credit-card-label-number-expiration-2 }
+
+# Label for a credit card with a number, name, and expiration date
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $name (String): Cardholder name
+# $type (String): Credit card type
+credit-card-label-number-name-expiration-2 = { $number }, { $name }, { credit-card-expiration }
+ .aria-label = { $type } { credit-card-label-number-name-expiration-2 }
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/pdfviewer/viewer.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/pdfviewer/viewer.ftl
new file mode 100644
index 0000000000..fc4d31a51d
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/pdfviewer/viewer.ftl
@@ -0,0 +1,349 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Main toolbar buttons (tooltips and alt text for images)
+
+pdfjs-previous-button =
+ .title = Página anterior
+pdfjs-previous-button-label = Anterior
+pdfjs-next-button =
+ .title = Página seguinte
+pdfjs-next-button-label = Seguinte
+# .title: Tooltip for the pageNumber input.
+pdfjs-page-input =
+ .title = Página
+# 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 = de { $pagesCount }
+# Variables:
+# $pageNumber (Number) - the currently visible page
+# $pagesCount (Number) - the total number of pages in the document
+pdfjs-page-of-pages = ({ $pageNumber } de { $pagesCount })
+pdfjs-zoom-out-button =
+ .title = Reduzir
+pdfjs-zoom-out-button-label = Reduzir
+pdfjs-zoom-in-button =
+ .title = Ampliar
+pdfjs-zoom-in-button-label = Ampliar
+pdfjs-zoom-select =
+ .title = Zoom
+pdfjs-presentation-mode-button =
+ .title = Trocar para o modo de apresentação
+pdfjs-presentation-mode-button-label = Modo de apresentação
+pdfjs-open-file-button =
+ .title = Abrir ficheiro
+pdfjs-open-file-button-label = Abrir
+pdfjs-print-button =
+ .title = Imprimir
+pdfjs-print-button-label = Imprimir
+pdfjs-save-button =
+ .title = Guardar
+pdfjs-save-button-label = Guardar
+# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+pdfjs-download-button =
+ .title = Transferir
+# Used in Firefox for Android as a label for the download button (“download” is a verb).
+# Length of the translation matters since we are in a mobile context, with limited screen estate.
+pdfjs-download-button-label = Transferir
+pdfjs-bookmark-button =
+ .title = Página atual (ver URL da página atual)
+pdfjs-bookmark-button-label = Pagina atual
+# Used in Firefox for Android.
+pdfjs-open-in-app-button =
+ .title = Abrir na aplicação
+# Used in Firefox for Android.
+# Length of the translation matters since we are in a mobile context, with limited screen estate.
+pdfjs-open-in-app-button-label = Abrir na aplicação
+
+## Secondary toolbar and context menu
+
+pdfjs-tools-button =
+ .title = Ferramentas
+pdfjs-tools-button-label = Ferramentas
+pdfjs-first-page-button =
+ .title = Ir para a primeira página
+pdfjs-first-page-button-label = Ir para a primeira página
+pdfjs-last-page-button =
+ .title = Ir para a última página
+pdfjs-last-page-button-label = Ir para a última página
+pdfjs-page-rotate-cw-button =
+ .title = Rodar à direita
+pdfjs-page-rotate-cw-button-label = Rodar à direita
+pdfjs-page-rotate-ccw-button =
+ .title = Rodar à esquerda
+pdfjs-page-rotate-ccw-button-label = Rodar à esquerda
+pdfjs-cursor-text-select-tool-button =
+ .title = Ativar ferramenta de seleção de texto
+pdfjs-cursor-text-select-tool-button-label = Ferramenta de seleção de texto
+pdfjs-cursor-hand-tool-button =
+ .title = Ativar ferramenta de mão
+pdfjs-cursor-hand-tool-button-label = Ferramenta de mão
+pdfjs-scroll-page-button =
+ .title = Utilizar deslocamento da página
+pdfjs-scroll-page-button-label = Deslocamento da página
+pdfjs-scroll-vertical-button =
+ .title = Utilizar deslocação vertical
+pdfjs-scroll-vertical-button-label = Deslocação vertical
+pdfjs-scroll-horizontal-button =
+ .title = Utilizar deslocação horizontal
+pdfjs-scroll-horizontal-button-label = Deslocação horizontal
+pdfjs-scroll-wrapped-button =
+ .title = Utilizar deslocação encapsulada
+pdfjs-scroll-wrapped-button-label = Deslocação encapsulada
+pdfjs-spread-none-button =
+ .title = Não juntar páginas dispersas
+pdfjs-spread-none-button-label = Sem spreads
+pdfjs-spread-odd-button =
+ .title = Juntar páginas dispersas a partir de páginas com números ímpares
+pdfjs-spread-odd-button-label = Spreads ímpares
+pdfjs-spread-even-button =
+ .title = Juntar páginas dispersas a partir de páginas com números pares
+pdfjs-spread-even-button-label = Spreads pares
+
+## Document properties dialog
+
+pdfjs-document-properties-button =
+ .title = Propriedades do documento…
+pdfjs-document-properties-button-label = Propriedades do documento…
+pdfjs-document-properties-file-name = Nome do ficheiro:
+pdfjs-document-properties-file-size = Tamanho do ficheiro:
+# Variables:
+# $size_kb (Number) - the PDF file size in kilobytes
+# $size_b (Number) - the PDF file size in bytes
+pdfjs-document-properties-kb = { $size_kb } KB ({ $size_b } bytes)
+# Variables:
+# $size_mb (Number) - the PDF file size in megabytes
+# $size_b (Number) - the PDF file size in bytes
+pdfjs-document-properties-mb = { $size_mb } MB ({ $size_b } bytes)
+pdfjs-document-properties-title = Título:
+pdfjs-document-properties-author = Autor:
+pdfjs-document-properties-subject = Assunto:
+pdfjs-document-properties-keywords = Palavras-chave:
+pdfjs-document-properties-creation-date = Data de criação:
+pdfjs-document-properties-modification-date = Data de modificação:
+# 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 = Criador:
+pdfjs-document-properties-producer = Produtor de PDF:
+pdfjs-document-properties-version = Versão do PDF:
+pdfjs-document-properties-page-count = N.º de páginas:
+pdfjs-document-properties-page-size = Tamanho da página:
+pdfjs-document-properties-page-size-unit-inches = in
+pdfjs-document-properties-page-size-unit-millimeters = mm
+pdfjs-document-properties-page-size-orientation-portrait = retrato
+pdfjs-document-properties-page-size-orientation-landscape = paisagem
+pdfjs-document-properties-page-size-name-a-three = A3
+pdfjs-document-properties-page-size-name-a-four = A4
+pdfjs-document-properties-page-size-name-letter = Carta
+pdfjs-document-properties-page-size-name-legal = Legal
+
+## Variables:
+## $width (Number) - the width of the (current) page
+## $height (Number) - the height of the (current) page
+## $unit (String) - the unit of measurement of the (current) page
+## $name (String) - the name of the (current) page
+## $orientation (String) - the orientation of the (current) page
+
+pdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })
+pdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })
+
+##
+
+# The linearization status of the document; usually called "Fast Web View" in
+# English locales of Adobe software.
+pdfjs-document-properties-linearized = Vista rápida web:
+pdfjs-document-properties-linearized-yes = Sim
+pdfjs-document-properties-linearized-no = Não
+pdfjs-document-properties-close-button = Fechar
+
+## Print
+
+pdfjs-print-progress-message = A preparar o documento para impressão…
+# Variables:
+# $progress (Number) - percent value
+pdfjs-print-progress-percent = { $progress }%
+pdfjs-print-progress-close-button = Cancelar
+pdfjs-printing-not-supported = Aviso: a impressão não é totalmente suportada por este navegador.
+pdfjs-printing-not-ready = Aviso: o PDF ainda não está totalmente carregado.
+
+## Tooltips and alt text for side panel toolbar buttons
+
+pdfjs-toggle-sidebar-button =
+ .title = Alternar barra lateral
+pdfjs-toggle-sidebar-notification-button =
+ .title = Alternar barra lateral (o documento contém contornos/anexos/camadas)
+pdfjs-toggle-sidebar-button-label = Alternar barra lateral
+pdfjs-document-outline-button =
+ .title = Mostrar esquema do documento (duplo clique para expandir/colapsar todos os itens)
+pdfjs-document-outline-button-label = Esquema do documento
+pdfjs-attachments-button =
+ .title = Mostrar anexos
+pdfjs-attachments-button-label = Anexos
+pdfjs-layers-button =
+ .title = Mostrar camadas (clique duas vezes para repor todas as camadas para o estado predefinido)
+pdfjs-layers-button-label = Camadas
+pdfjs-thumbs-button =
+ .title = Mostrar miniaturas
+pdfjs-thumbs-button-label = Miniaturas
+pdfjs-current-outline-item-button =
+ .title = Encontrar o item atualmente destacado
+pdfjs-current-outline-item-button-label = Item atualmente destacado
+pdfjs-findbar-button =
+ .title = Localizar em documento
+pdfjs-findbar-button-label = Localizar
+pdfjs-additional-layers = Camadas adicionais
+
+## Thumbnails panel item (tooltip and alt text for images)
+
+# Variables:
+# $page (Number) - the page number
+pdfjs-thumb-page-title =
+ .title = Página { $page }
+# Variables:
+# $page (Number) - the page number
+pdfjs-thumb-page-canvas =
+ .aria-label = Miniatura da página { $page }
+
+## Find panel button title and messages
+
+pdfjs-find-input =
+ .title = Localizar
+ .placeholder = Localizar em documento…
+pdfjs-find-previous-button =
+ .title = Localizar ocorrência anterior da frase
+pdfjs-find-previous-button-label = Anterior
+pdfjs-find-next-button =
+ .title = Localizar ocorrência seguinte da frase
+pdfjs-find-next-button-label = Seguinte
+pdfjs-find-highlight-checkbox = Destacar tudo
+pdfjs-find-match-case-checkbox-label = Correspondência
+pdfjs-find-match-diacritics-checkbox-label = Corresponder diacríticos
+pdfjs-find-entire-word-checkbox-label = Palavras completas
+pdfjs-find-reached-top = Topo do documento atingido, a continuar a partir do fundo
+pdfjs-find-reached-bottom = Fim do documento atingido, a continuar a partir do topo
+# Variables:
+# $current (Number) - the index of the currently active find result
+# $total (Number) - the total number of matches in the document
+pdfjs-find-match-count =
+ { $total ->
+ [one] { $current } de { $total } correspondência
+ *[other] { $current } de { $total } correspondências
+ }
+# Variables:
+# $limit (Number) - the maximum number of matches
+pdfjs-find-match-count-limit =
+ { $limit ->
+ [one] Mais de { $limit } correspondência
+ *[other] Mais de { $limit } correspondências
+ }
+pdfjs-find-not-found = Frase não encontrada
+
+## Predefined zoom values
+
+pdfjs-page-scale-width = Ajustar à largura
+pdfjs-page-scale-fit = Ajustar à página
+pdfjs-page-scale-auto = Zoom automático
+pdfjs-page-scale-actual = Tamanho real
+# Variables:
+# $scale (Number) - percent value for page scale
+pdfjs-page-scale-percent = { $scale }%
+
+## PDF page
+
+# Variables:
+# $page (Number) - the page number
+pdfjs-page-landmark =
+ .aria-label = Página { $page }
+
+## Loading indicator messages
+
+pdfjs-loading-error = Ocorreu um erro ao carregar o PDF.
+pdfjs-invalid-file-error = Ficheiro PDF inválido ou danificado.
+pdfjs-missing-file-error = Ficheiro PDF inexistente.
+pdfjs-unexpected-response-error = Resposta inesperada do servidor.
+pdfjs-rendering-error = Ocorreu um erro ao processar a página.
+
+## Annotations
+
+# Variables:
+# $date (Date) - the modification date of the annotation
+# $time (Time) - the modification time of the annotation
+pdfjs-annotation-date-string = { $date }, { $time }
+# .alt: This is used as a tooltip.
+# Variables:
+# $type (String) - an annotation type from a list defined in the PDF spec
+# (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+pdfjs-text-annotation-type =
+ .alt = [Anotação { $type }]
+
+## Password
+
+pdfjs-password-label = Introduza a palavra-passe para abrir este ficheiro PDF.
+pdfjs-password-invalid = Palavra-passe inválida. Por favor, tente novamente.
+pdfjs-password-ok-button = OK
+pdfjs-password-cancel-button = Cancelar
+pdfjs-web-fonts-disabled = Os tipos de letra web estão desativados: não é possível utilizar os tipos de letra PDF embutidos.
+
+## Editing
+
+pdfjs-editor-free-text-button =
+ .title = Texto
+pdfjs-editor-free-text-button-label = Texto
+pdfjs-editor-ink-button =
+ .title = Desenhar
+pdfjs-editor-ink-button-label = Desenhar
+pdfjs-editor-stamp-button =
+ .title = Adicionar ou editar imagens
+pdfjs-editor-stamp-button-label = Adicionar ou editar imagens
+# Editor Parameters
+pdfjs-editor-free-text-color-input = Cor
+pdfjs-editor-free-text-size-input = Tamanho
+pdfjs-editor-ink-color-input = Cor
+pdfjs-editor-ink-thickness-input = Espessura
+pdfjs-editor-ink-opacity-input = Opacidade
+pdfjs-editor-stamp-add-image-button =
+ .title = Adicionar imagem
+pdfjs-editor-stamp-add-image-button-label = Adicionar imagem
+pdfjs-free-text =
+ .aria-label = Editor de texto
+pdfjs-free-text-default-content = Começar a digitar…
+pdfjs-ink =
+ .aria-label = Editor de desenho
+pdfjs-ink-canvas =
+ .aria-label = Imagem criada pelo utilizador
+
+## Alt-text dialog
+
+# Alternative text (alt text) helps when people can't see the image.
+pdfjs-editor-alt-text-button-label = Texto alternativo
+pdfjs-editor-alt-text-edit-button-label = Editar texto alternativo
+pdfjs-editor-alt-text-dialog-label = Escolher uma opção
+pdfjs-editor-alt-text-dialog-description = O texto alternativo (texto alternativo) ajuda quando as pessoas não conseguem ver a imagem ou quando a mesma não é carregada.
+pdfjs-editor-alt-text-add-description-label = Adicionar uma descrição
+pdfjs-editor-alt-text-add-description-description = Aponte para 1-2 frases que descrevam o assunto, definição ou ações.
+pdfjs-editor-alt-text-mark-decorative-label = Marcar como decorativa
+pdfjs-editor-alt-text-mark-decorative-description = Isto é utilizado para imagens decorativas, tais como limites ou marcas d'água.
+pdfjs-editor-alt-text-cancel-button = Cancelar
+pdfjs-editor-alt-text-save-button = Guardar
+pdfjs-editor-alt-text-decorative-tooltip = Marcada como decorativa
+# .placeholder: This is a placeholder for the alt text input area
+pdfjs-editor-alt-text-textarea =
+ .placeholder = Por exemplo, “Um jovem senta-se à mesa para comer uma refeição”
+
+## Editor resizers
+## This is used in an aria label to help to understand the role of the resizer.
+
+pdfjs-editor-resizer-label-top-left = Canto superior esquerdo — redimensionar
+pdfjs-editor-resizer-label-top-middle = Superior ao centro — redimensionar
+pdfjs-editor-resizer-label-top-right = Canto superior direito — redimensionar
+pdfjs-editor-resizer-label-middle-right = Centro à direita — redimensionar
+pdfjs-editor-resizer-label-bottom-right = Canto inferior direito — redimensionar
+pdfjs-editor-resizer-label-bottom-middle = Inferior ao centro — redimensionar
+pdfjs-editor-resizer-label-bottom-left = Canto inferior esquerdo — redimensionar
+pdfjs-editor-resizer-label-middle-left = Centro à esquerda — redimensionar
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/pictureinpicture/pictureinpicture.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/pictureinpicture/pictureinpicture.ftl
new file mode 100644
index 0000000000..1f4afcb540
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/pictureinpicture/pictureinpicture.ftl
@@ -0,0 +1,86 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+pictureinpicture-player-title = Vídeo em janela flutuante
+
+## Variables:
+## $shortcut (String) - Keyboard shortcut to execute the command.
+
+## Note that this uses .tooltip rather than the standard '.title'
+## or '.tooltiptext' - but it has the same effect. Code in the
+## picture-in-picture window will read and copy this to an in-document
+## DOM node that then shows the tooltip.
+##
+## Variables:
+## $shortcut (String) - Keyboard shortcut to execute the command.
+
+pictureinpicture-pause-btn =
+ .aria-label = Pausa
+ .tooltip = Pausa (Barra de Espaço)
+pictureinpicture-play-btn =
+ .aria-label = Reproduzir
+ .tooltip = Reproduzir (Barra de Espaço)
+
+pictureinpicture-mute-btn =
+ .aria-label = Silenciar
+ .tooltip = Silenciar ({ $shortcut })
+pictureinpicture-unmute-btn =
+ .aria-label = Repor som
+ .tooltip = Repor som ({ $shortcut })
+
+pictureinpicture-unpip-btn =
+ .aria-label = Enviar para o separador
+ .tooltip = Para o separador
+
+pictureinpicture-close-btn =
+ .aria-label = Fechar
+ .tooltip = Fechar ({ $shortcut })
+
+pictureinpicture-subtitles-btn =
+ .aria-label = Legendas
+ .tooltip = Legendas
+
+pictureinpicture-fullscreen-btn2 =
+ .aria-label = Ecrã completo
+ .tooltip = Ecrã completo (duplo clique ou { $shortcut })
+
+pictureinpicture-exit-fullscreen-btn2 =
+ .aria-label = Sair do ecrã completo
+ .tooltip = Sair do ecrã completo (duplo clique ou { $shortcut })
+
+##
+
+# Keyboard shortcut to toggle fullscreen mode when Picture-in-Picture is open.
+pictureinpicture-toggle-fullscreen-shortcut =
+ .key = F
+
+## Note that this uses .tooltip rather than the standard '.title'
+## or '.tooltiptext' - but it has the same effect. Code in the
+## picture-in-picture window will read and copy this to an in-document
+## DOM node that then shows the tooltip.
+
+pictureinpicture-seekbackward-btn =
+ .aria-label = Retroceder
+ .tooltip = Retroceder (←)
+
+pictureinpicture-seekforward-btn =
+ .aria-label = Avançar
+ .tooltip = Avançar (→)
+
+##
+
+# This string is never displayed on the window. Is intended to be announced by
+# a screen reader whenever a user opens the subtitles settings panel
+# after selecting the subtitles button.
+pictureinpicture-subtitles-panel-accessible = Definições das legendas
+
+pictureinpicture-subtitles-label = Legendas
+
+pictureinpicture-font-size-label = Tamanho do tipo de letra
+
+pictureinpicture-font-size-small = Pequeno
+
+pictureinpicture-font-size-medium = Médio
+
+pictureinpicture-font-size-large = Grande
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/preferences/preferences.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/preferences/preferences.ftl
new file mode 100644
index 0000000000..01e87bb7a4
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/preferences/preferences.ftl
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+password-not-set =
+ .value = (não definida)
+
+failed-pp-change = Não foi possível alterar a palavra-passe principal.
+incorrect-pp = A palavra-passe que digitou não corresponde à palavra-passe principal atual. Por favor, tente novamente.
+pp-change-ok = Palavra-passe principal alterada com sucesso.
+
+settings-pp-erased-ok = Eliminou a sua palavra-passe principal. As palavras-passe armazenadas e chaves privadas de certificados geridas pelo { -brand-short-name } não serão protegidas.
+settings-pp-not-wanted = Aviso! Decidiu não utilizar uma palavra-passe principal. As palavras-passe armazenadas e chaves privadas de certificados geridas pelo { -brand-short-name } não serão protegidas.
+
+pp-change2empty-in-fips-mode = Atualmente, está no modo FIPS. Este modo requer uma palavra-passe principal não vazia.
+pw-change-success-title = Palavra-passe alterada com sucesso
+pw-change-failed-title = Falha ao alterar a palavra-passe
+pw-remove-button =
+ .label = Remover
+
+primary-password-dialog =
+ .title = Palavra-passe principal
+set-password-old-password = Palavra-passe atual:
+set-password-new-password = Introduza a nova palavra-passe:
+set-password-reenter-password = Volte a introduzir a palavra-passe:
+set-password-meter = Indicador de qualidade da palavra-passe
+set-password-meter-loading = A carregar
+primary-password-admin = O seu administrador requer que tenha uma palavra-passe principal definida para poder guardar credenciais e palavras-passe.
+primary-password-description = Uma palavra-passe principal é utilizada para proteger informações sensíveis, tais como credenciais e palavras-passe, neste dispositivo. Se criar uma palavra-passe principal, será solicitado que a especifique uma vez por cada sessão, quando o { -brand-short-name } obtém informação protegida pela palavra-passe principal.
+primary-password-warning = Por favor certifique-se que memoriza a palavra-passe principal definida. Se se esquecer da sua palavra-passe principal, não irá conseguir aceder a qualquer informação protegida pela mesma neste dispositivo.
+
+remove-primary-password =
+ .title = Remover palavra-passe principal
+remove-info =
+ .value = Tem de introduzir a palavra-passe atual para continuar:
+remove-primary-password-warning1 = A sua palavra-passe principal é utilizada para proteger informações sensíveis tais como credenciais e palavras-passe.
+remove-primary-password-warning2 = Se remover a palavra-passe principal, a sua informação não estará protegida se a segurança do seu computador for comprometida.
+remove-password-old-password =
+ .value = Palavra-passe atual:
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/printing/printDialogs.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/printing/printDialogs.ftl
new file mode 100644
index 0000000000..300e860c65
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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 = Configuração da página
+custom-prompt-title = Personalizar…
+custom-prompt-prompt = Introduza o seu texto de cabeçalho/rodapé personalizado
+basic-tab =
+ .label = Formato e opções
+advanced-tab =
+ .label = Margens e cabeçalho/rodapé
+format-group-label =
+ .value = Formato
+orientation-label =
+ .value = Orientação:
+portrait =
+ .label = Vertical
+ .accesskey = V
+landscape =
+ .label = Horizontal
+ .accesskey = H
+scale =
+ .label = Escala:
+ .accesskey = E
+scale-percent =
+ .value = %
+shrink-to-fit =
+ .label = Redimensionar para caber na largura da página
+ .accesskey = l
+options-group-label =
+ .value = Opções
+print-bg =
+ .label = Imprimir fundo (cores e imagens)
+ .accesskey = m
+margin-group-label-inches =
+ .value = Margens (polegadas)
+margin-group-label-metric =
+ .value = Margens (milímetros)
+margin-top =
+ .value = Topo:
+ .accesskey = T
+margin-top-invisible =
+ .value = Topo:
+margin-bottom =
+ .value = Fim:
+ .accesskey = F
+margin-bottom-invisible =
+ .value = Fim:
+margin-left =
+ .value = Esquerda:
+ .accesskey = E
+margin-left-invisible =
+ .value = Esquerda:
+margin-right =
+ .value = Direita:
+ .accesskey = D
+margin-right-invisible =
+ .value = Direita:
+header-footer-label =
+ .value = Cabeçalhos e rodapés
+hf-left-label =
+ .value = Esquerda:
+hf-center-label =
+ .value = Centro:
+hf-right-label =
+ .value = Direita:
+header-left-tip =
+ .tooltiptext = Cabeçalho à esquerda
+header-center-tip =
+ .tooltiptext = Cabeçalho ao centro
+header-right-tip =
+ .tooltiptext = Cabeçalho à direita
+footer-left-tip =
+ .tooltiptext = Rodapé à esquerda
+footer-center-tip =
+ .tooltiptext = Rodapé ao centro
+footer-right-tip =
+ .tooltiptext = Rodapé à direita
+hf-blank =
+ .label = --vazio--
+hf-title =
+ .label = Título
+hf-url =
+ .label = URL
+hf-date-and-time =
+ .label = Data/Hora
+hf-page =
+ .label = Página #
+hf-page-and-total =
+ .label = Página # de #
+hf-custom =
+ .label = Personalizar…
+print-preview-window =
+ .title = Pré-visualização da impressão
+print-title =
+ .value = Título:
+print-preparing =
+ .value = A preparar…
+print-progress =
+ .value = Progresso:
+print-window =
+ .title = A imprimir
+print-complete =
+ .value = A impressão está concluída.
+
+# Variables
+# $percent (integer) - Number of printed percentage
+print-percent =
+ .value = { $percent }%
+dialog-cancel-label = Cancelar
+dialog-close-label = Fechar
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/printing/printPreview.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/printing/printPreview.ftl
new file mode 100644
index 0000000000..7936d1c13c
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/printing/printPreview.ftl
@@ -0,0 +1,73 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+printpreview-simplify-page-checkbox =
+ .label = Simplificar página
+ .accesskey = i
+ .tooltiptext = Esta página não pode ser simplificada automaticamente
+printpreview-simplify-page-checkbox-enabled =
+ .label = { printpreview-simplify-page-checkbox.label }
+ .accesskey = { printpreview-simplify-page-checkbox.accesskey }
+ .tooltiptext = Alterar esquema para uma leitura mais fácil
+printpreview-close =
+ .label = Fechar
+ .accesskey = F
+printpreview-portrait =
+ .label = Vertical
+ .accesskey = V
+printpreview-landscape =
+ .label = Horizontal
+ .accesskey = H
+printpreview-scale =
+ .value = Escala:
+ .accesskey = E
+printpreview-shrink-to-fit =
+ .label = Redimensionar para caber
+printpreview-custom =
+ .label = Personalizar…
+printpreview-print =
+ .label = Imprimir…
+ .accesskey = I
+printpreview-of =
+ .value = de
+printpreview-custom-scale-prompt-title = Escala personalizada
+printpreview-page-setup =
+ .label = Configurar página…
+ .accesskey = C
+printpreview-page =
+ .value = Página:
+ .accesskey = P
+
+# Variables
+# $sheetNum (integer) - The current sheet number
+# $sheetCount (integer) - The total number of sheets to print
+printpreview-sheet-of-sheets = { $sheetNum } de { $sheetCount }
+
+## Variables
+## $percent (integer) - menuitem percent label
+## $arrow (String) - UTF-8 arrow character for navigation buttons
+
+printpreview-percentage-value =
+ .label = { $percent }%
+printpreview-homearrow =
+ .label = { $arrow }
+ .tooltiptext = Primeira página
+printpreview-previousarrow =
+ .label = { $arrow }
+ .tooltiptext = Página anterior
+printpreview-nextarrow =
+ .label = { $arrow }
+ .tooltiptext = Página seguinte
+printpreview-endarrow =
+ .label = { $arrow }
+ .tooltiptext = Última página
+
+printpreview-homearrow-button =
+ .title = Primeira página
+printpreview-previousarrow-button =
+ .title = Página anterior
+printpreview-nextarrow-button =
+ .title = Página seguinte
+printpreview-endarrow-button =
+ .title = Última página
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/printing/printUI.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/printing/printUI.ftl
new file mode 100644
index 0000000000..102e3d956b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/printing/printUI.ftl
@@ -0,0 +1,148 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+printui-title = Imprimir
+# Dialog title to prompt the user for a filename to save print to PDF.
+printui-save-to-pdf-title = Guardar como
+
+# Variables
+# $sheetCount (integer) - Number of paper sheets
+printui-sheets-count =
+ { $sheetCount ->
+ [one] { $sheetCount } folha de papel
+ *[other] { $sheetCount } folhas de papel
+ }
+
+printui-page-range-all = Tudo
+printui-page-range-current = Atual
+printui-page-range-odd = Ímpar
+printui-page-range-even = Par
+printui-page-range-custom = Personalizado
+printui-page-range-label = Páginas
+printui-page-range-picker =
+ .aria-label = Escolha um intervalo de páginas
+printui-page-custom-range-input =
+ .aria-label = Especifique o intervalo personalizado de páginas
+ .placeholder = por exemplo, 2-6, 9, 12-16
+
+# Section title for the number of copies to print
+printui-copies-label = Cópias
+
+printui-orientation = Orientação
+printui-landscape = Horizontal
+printui-portrait = Vertical
+
+# Section title for the printer or destination device to target
+printui-destination-label = Destino
+printui-destination-pdf-label = Guardar como PDF
+
+printui-more-settings = Mais definições
+printui-less-settings = Menos definições
+
+printui-paper-size-label = Tamanho do papel
+
+# Section title (noun) for the print scaling options
+printui-scale = Escala
+printui-scale-fit-to-page-width = Ajustar à largura da página
+# Label for input control where user can set the scale percentage
+printui-scale-pcent = Escala
+
+# Section title (noun) for the two-sided print options
+printui-two-sided-printing = Impressão dos dois lados
+printui-two-sided-printing-off = Desligado
+# Flip the sheet as if it were bound along its long edge.
+printui-two-sided-printing-long-edge = Inverter no limite maior
+# Flip the sheet as if it were bound along its short edge.
+printui-two-sided-printing-short-edge = Inverter no limite menor
+
+# Section title for miscellaneous print options
+printui-options = Opções
+printui-headers-footers-checkbox = Imprimir cabeçalhos e rodapés
+printui-backgrounds-checkbox = Imprimir fundos
+
+## The "Format" section, select a version of the website to print. Radio
+## options to select between the original page, selected text only, or a version
+## where the page is processed with "Reader View".
+
+# The section title.
+printui-source-label = Formato
+# Option for printing the original page.
+printui-source-radio = Original
+# Option for printing just the content a user selected prior to printing.
+printui-selection-radio = Seleção
+# Option for "simplifying" the page by printing the Reader View version.
+printui-simplify-page-radio = Simplificada
+
+##
+
+printui-color-mode-label = Modo de cor
+printui-color-mode-color = Cor
+printui-color-mode-bw = Preto e branco
+
+printui-margins = Margens
+printui-margins-default = Predefinida
+printui-margins-min = Mínima
+printui-margins-none = Nenhuma
+printui-margins-custom-inches = Personalizado (polegadas)
+printui-margins-custom-mm = Personalizado (mm)
+printui-margins-custom-top = Superior
+printui-margins-custom-top-inches = Topo (polegadas)
+printui-margins-custom-top-mm = Superior (mm)
+printui-margins-custom-bottom = Inferior
+printui-margins-custom-bottom-inches = Inferior (polegadas)
+printui-margins-custom-bottom-mm = Inferior (mm)
+printui-margins-custom-left = Esquerda
+printui-margins-custom-left-inches = Esquerda (polegadas)
+printui-margins-custom-left-mm = Esquerda (mm)
+printui-margins-custom-right = Direita
+printui-margins-custom-right-inches = Direita (polegadas)
+printui-margins-custom-right-mm = Direita (mm)
+
+printui-system-dialog-link = Imprimir utilizando a janela do sistema…
+
+printui-primary-button = Imprimir
+printui-primary-button-save = Guardar
+printui-cancel-button = Cancelar
+printui-close-button = Fechar
+
+printui-loading = A preparar a pré-visualização
+
+# Reported by screen readers and other accessibility tools to indicate that
+# the print preview has focus.
+printui-preview-label =
+ .aria-label = Pré-visualização da impressão
+
+printui-pages-per-sheet = Páginas por folha
+
+# This is shown next to the Print button with an indefinite loading spinner
+# when the user prints a page and it is being sent to the printer.
+printui-print-progress-indicator = A imprimir…
+printui-print-progress-indicator-saving = A guardar…
+
+## Paper sizes that may be supported by the Save to PDF destination:
+
+printui-paper-a5 = A5
+printui-paper-a4 = A4
+printui-paper-a3 = A3
+printui-paper-a2 = A2
+printui-paper-a1 = A1
+printui-paper-a0 = A0
+printui-paper-b5 = B5
+printui-paper-b4 = B4
+printui-paper-jis-b5 = JIS-B5
+printui-paper-jis-b4 = JIS-B4
+printui-paper-letter = Carta EUA
+printui-paper-legal = Legal EUA
+printui-paper-tabloid = Tabloide
+
+## Error messages shown when a user has an invalid input
+
+printui-error-invalid-scale = A escala deve ser um número entre 10 e 200.
+printui-error-invalid-margin = Insira uma margem válida para o tamanho de papel selecionado.
+printui-error-invalid-copies = As cópias devem ser um número entre 1 e 10000.
+
+# Variables
+# $numPages (integer) - Number of pages
+printui-error-invalid-range = O intervalo deve ser um número entre 1 e { $numPages }.
+printui-error-invalid-start-overflow = O número da página “de” deve ser menor que o número da página “até”.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/reportBrokenSite/reportBrokenSite.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/reportBrokenSite/reportBrokenSite.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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/pt-PT/localization/pt-PT/toolkit/updates/backgroundupdate.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/updates/backgroundupdate.ftl
new file mode 100644
index 0000000000..9e0f7d6ab2
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/updates/backgroundupdate.ftl
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+backgroundupdate-task-description = A tarefa de atualização em segundo plano procura por atualizações para o { -brand-short-name } quando o { -brand-short-name } não está a ser executado. Esta tarefa é instalada automaticamente pelo { -brand-short-name } e reinstalada quando o { -brand-short-name } é executado. Para desativar esta tarefa, atualize as definições do navegador ou a definição de política empresarial “BackgroundAppUpdate” do { -brand-short-name }.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/updates/elevation.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/updates/elevation.ftl
new file mode 100644
index 0000000000..c8acfbfd4b
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/updates/elevation.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+# This is temporary until bug 1521632 is fixed
+
+elevation-update-wizard =
+ .title = Atualização de software
+elevation-details-link-label =
+ .value = Detalhes
+elevation-error-manual =
+ Pode atualizar manualmente o { -brand-short-name } acedendo a esta ligação
+ e transferindo a versão mais recente da aplicação:
+elevation-finished-page = Atualização pronta para ser instalada
+elevation-finished-background-page =
+ Foi transferida uma atualização de segurança e estabilidade para o { -brand-short-name }
+ e está pronta para ser instalada.
+elevation-finished-background = Atualização:
+elevation-more-elevated =
+ Esta atualização requer privilégios de administrador. A atualização será
+ instalada da próxima vez que o { -brand-short-name } iniciar. Pode reiniciar
+ o { -brand-short-name } agora, e continuar a trabalhar e reiniciar mais tarde, ou rejeitar esta
+ atualização.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/updates/history.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/updates/history.ftl
new file mode 100644
index 0000000000..2d566b17a8
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/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 = Histórico de atualizações
+history-intro = As seguintes atualizações foram instaladas
+
+close-button-label =
+ .buttonlabelcancel = Fechar
+ .title = Histórico de atualizações
+
+no-updates-label = Ainda não foram instaladas atualizações
+name-header = Nome da atualização
+date-header = Data da instalação
+type-header = Tipo
+state-header = Estado
+
+# 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 = Detalhes
+
+update-installed-on = Instalada em: { $date }
+
+update-status = Estado: { $status }
diff --git a/thunderbird-l10n/pt-PT/manifest.json b/thunderbird-l10n/pt-PT/manifest.json
new file mode 100644
index 0000000000..8909e62152
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/manifest.json
@@ -0,0 +1,56 @@
+{
+ "langpack_id": "pt-PT",
+ "manifest_version": 2,
+ "browser_specific_settings": {
+ "gecko": {
+ "id": "langpack-pt-PT@thunderbird.mozilla.org",
+ "strict_min_version": "115.0",
+ "strict_max_version": "115.*"
+ }
+ },
+ "name": "Language: Português (PT) (Portuguese)",
+ "description": "Thunderbird Language Pack for Português (PT) (pt-PT) – Portuguese",
+ "version": "115.7.20240119.95007",
+ "languages": {
+ "pt-PT": {
+ "version": "20240119104709",
+ "chrome_resources": {
+ "alerts": "chrome/pt-PT/locale/pt-PT/alerts/",
+ "autoconfig": "chrome/pt-PT/locale/pt-PT/autoconfig/",
+ "branding": "chrome/pt-PT/locale/branding/",
+ "calendar": "chrome/pt-PT/locale/pt-PT/calendar/",
+ "chat": "chrome/pt-PT/locale/pt-PT/chat/",
+ "communicator": "chrome/pt-PT/locale/pt-PT/communicator/",
+ "devtools": "chrome/pt-PT/locale/pt-PT/devtools/client/",
+ "devtools-shared": "chrome/pt-PT/locale/pt-PT/devtools/shared/",
+ "global": "chrome/pt-PT/locale/pt-PT/global/",
+ "global-platform": {
+ "macosx": "chrome/pt-PT/locale/pt-PT/global-platform/mac/",
+ "linux": "chrome/pt-PT/locale/pt-PT/global-platform/unix/",
+ "android": "chrome/pt-PT/locale/pt-PT/global-platform/unix/",
+ "win": "chrome/pt-PT/locale/pt-PT/global-platform/win/"
+ },
+ "lightning": "chrome/pt-PT/locale/pt-PT/lightning/",
+ "messenger": "chrome/pt-PT/locale/pt-PT/messenger/",
+ "messenger-mapi": "chrome/pt-PT/locale/pt-PT/messenger-mapi/",
+ "messenger-newsblog": "chrome/pt-PT/locale/pt-PT/messenger-newsblog/",
+ "messenger-region": "chrome/pt-PT/locale/pt-PT/messenger-region/",
+ "messenger-smime": "chrome/pt-PT/locale/pt-PT/messenger-smime/",
+ "mozapps": "chrome/pt-PT/locale/pt-PT/mozapps/",
+ "mozldap": "chrome/pt-PT/locale/pt-PT/mozldap/",
+ "necko": "chrome/pt-PT/locale/pt-PT/necko/",
+ "passwordmgr": "chrome/pt-PT/locale/pt-PT/passwordmgr/",
+ "pdf.js": "chrome/pt-PT/locale/pdfviewer/",
+ "pipnss": "chrome/pt-PT/locale/pt-PT/pipnss/",
+ "pippki": "chrome/pt-PT/locale/pt-PT/pippki/",
+ "places": "chrome/pt-PT/locale/pt-PT/places/"
+ }
+ }
+ },
+ "sources": {
+ "browser": {
+ "base_path": "browser/"
+ }
+ },
+ "author": "mozilla.org (contributors: Joe Solon, Suzy Solon)"
+}