summaryrefslogtreecommitdiffstats
path: root/thunderbird-l10n/es-ES
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /thunderbird-l10n/es-ES
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'thunderbird-l10n/es-ES')
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/branding/brand.dtd11
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/branding/brand.properties8
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/alerts/alert.properties12
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/autoconfig/autoconfig.properties12
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-alarms.properties22
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-event-dialog-attendees.properties14
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-event-dialog.dtd355
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-event-dialog.properties126
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-extract.properties103
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-invitations-dialog.dtd10
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-invitations-dialog.properties10
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-occurrence-prompt.dtd7
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-occurrence-prompt.properties46
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar.dtd320
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar.properties696
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendarCreation.dtd36
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendarCreation.properties6
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/categories.properties5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/dateFormat.properties97
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/dialogs/calendar-event-dialog-reminder.dtd16
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/global.dtd47
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/menuOverlay.dtd33
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/migration.dtd9
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/migration.properties10
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/provider-uninstall.dtd12
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/timezones.properties497
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/accounts.dtd36
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/accounts.properties7
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/commands.properties16
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/contacts.properties5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/conversations.properties26
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/facebook.properties6
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/imtooltip.properties12
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/irc.properties117
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/logger.properties5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/matrix.properties255
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/status.properties14
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/twitter.properties9
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/xmpp.properties281
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/yahoo.properties5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/communicator/utilityOverlay.dtd43
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/accessibility.properties314
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/animationinspector.properties183
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/boxmodel.properties48
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/changes.properties64
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/components.properties61
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/debugger.properties1132
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/device.properties21
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/dom.properties23
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/filterwidget.properties31
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/font-inspector.properties69
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/har.properties24
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/inspector.properties602
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/jsonview.properties47
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/layout.properties138
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/memory.properties221
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/menus.properties29
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/netmonitor.properties1679
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/network-throttling.properties27
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/responsive.properties182
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/shared.properties26
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/sourceeditor.properties52
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/startup.properties248
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/styleeditor.properties74
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/toolbox.properties267
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/webconsole.properties601
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/accessibility.properties142
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/debugger.properties36
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/eyedropper.properties12
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/screenshot.properties148
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/shared.properties5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/styleinspector.properties267
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/mac/accessible.properties71
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/mac/intl.properties5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/mac/platformKeys.properties33
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/unix/accessible.properties21
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/unix/intl.properties5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/unix/platformKeys.properties33
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/win/accessible.properties21
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/win/intl.properties5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/win/platformKeys.properties33
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/aboutStudies.properties33
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/appstrings.properties37
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/autocomplete.properties9
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/browser.properties7
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/commonDialogs.properties46
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/contentAreaCommands.properties28
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/css.properties52
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/dialog.properties12
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/dom/dom.properties478
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/extensions.properties27
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/fallbackMenubar.properties8
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/filepicker.properties20
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/global-strres.properties5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/intl.css11
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/intl.properties12
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/keys.properties60
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout/HtmlForm.properties21
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout/MediaDocument.properties22
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout/htmlparser.properties145
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout/xmlparser.properties41
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout_errors.properties53
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/mathml/mathml.properties15
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/narrate.properties25
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/nsWebBrowserPersist.properties17
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/printdialog.properties49
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/printing.properties29
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/resetProfile.properties11
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/security/caps.properties9
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/security/csp.properties125
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/security/security.properties167
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/svg/svg.properties5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/viewSource.properties16
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/wizard.properties8
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/xslt/xslt.properties39
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/xul.properties5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/lightning/lightning-toolbar.dtd51
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/lightning/lightning.dtd114
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/lightning/lightning.properties95
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-mapi/mapi.properties29
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-newsblog/am-newsblog.dtd14
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-newsblog/feed-subscriptions.dtd52
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-newsblog/newsblog.properties56
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-region/region.properties13
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/certFetchingStatus.dtd9
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgCompSMIMEOverlay.dtd16
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgCompSecurityInfo.dtd18
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgCompSecurityInfo.properties13
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgReadSMIMEOverlay.properties7
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgReadSecurityInfo.dtd16
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgSecurityInfo.properties34
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/AccountManager.dtd25
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/AccountWizard.dtd48
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/CustomHeaders.dtd11
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/FilterEditor.dtd69
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/FilterListDialog.dtd40
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/SearchDialog.dtd35
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/aboutDownloads.dtd18
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/aboutRights.properties6
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/aboutSupportMail.properties10
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/accountCreationModel.properties16
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/accountCreationUtil.properties27
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/activity.dtd16
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/activity.properties54
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addbuddy.dtd7
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abAddressBookNameDialog.dtd6
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abContactsPanel.dtd49
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abMailListDialog.dtd18
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abMainWindow.dtd17
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abResultsPane.dtd38
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/addressBook.properties178
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/ldapAutoCompErrs.properties59
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/pref-directory-add.dtd41
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/pref-directory.dtd14
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/replicationProgress.properties18
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-addressing.dtd47
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-advanced.dtd28
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-archiveoptions.dtd21
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-copies.dtd46
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-e2e.properties5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-identities-list.dtd15
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-identity-edit.dtd14
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-im.dtd16
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-junk.dtd31
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-main.dtd45
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-mdn.dtd32
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-mdn.properties5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-offline.dtd51
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-server-advanced.dtd29
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-server-top.dtd78
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-serverwithnoidentities.dtd6
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-smime.dtd46
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-smime.properties35
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/appUpdate.properties31
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/appleMailImportMsgs.properties13
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/baseMenuOverlay.dtd31
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/beckyImportMsgs.properties14
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/charsetTitles.properties80
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/chat.dtd44
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/chat.properties110
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/configEditorOverlay.dtd5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/converterDialog.dtd11
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/converterDialog.properties15
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/custom.properties5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/customizeToolbar.dtd18
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/customizeToolbar.properties11
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/downloadheaders.dtd19
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/editContactOverlay.dtd20
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/editContactOverlay.properties14
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/fieldMapImport.dtd17
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/filter.properties70
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/folderProps.dtd68
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/folderWidgets.properties9
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/folderpane.dtd8
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/gloda.properties175
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/glodaComplete.properties9
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/glodaFacetView.dtd15
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/glodaFacetView.properties57
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/imAccountWizard.dtd32
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/imAccounts.properties35
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/imapMsgs.properties268
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/importDialog.dtd48
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/importMsgs.properties136
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/joinChat.dtd10
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/junkLog.dtd10
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/localMsgs.properties140
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailEditorOverlay.dtd6
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailOverlay.dtd11
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailViewList.dtd7
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailViewSetup.dtd10
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailviews.properties13
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/markByDate.dtd9
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messenger.dtd945
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messenger.properties768
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdAdvancedEdit.dtd18
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdColorPicker.dtd22
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdConvertToTable.dtd14
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdDialogOverlay.dtd17
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdNamedAnchorProperties.dtd8
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorColorProperties.dtd28
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorHLineProperties.dtd26
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorImageProperties.dtd73
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertChars.dtd18
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertMath.dtd20
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertSource.dtd12
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertTOC.dtd16
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertTable.dtd17
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorLinkProperties.dtd6
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorListProperties.dtd19
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorPersonalDictionary.dtd17
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorReplace.dtd27
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorSpellCheck.dtd37
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorTableProperties.dtd74
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/composeMsgs.properties463
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/editor.properties171
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/editorOverlay.dtd284
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/mailComposeEditorOverlay.dtd9
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/messengercompose.dtd306
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/sendProgress.dtd7
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/sendProgress.properties13
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/migration/migration.dtd30
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/migration/migration.properties32
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mime.properties65
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mimeheader.properties32
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/morkImportMsgs.properties18
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgAccountCentral.dtd26
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgHdrViewOverlay.dtd111
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgSynchronize.dtd25
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgViewPickerOverlay.dtd22
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgmdn.properties18
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/multimessageview.dtd8
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/multimessageview.properties25
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/newFolderDialog.dtd15
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/news.properties32
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/newsError.dtd17
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/offline.properties24
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/offlineStartup.properties8
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/outlookImportMsgs.properties33
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/pgpmime.properties9
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/preferences/applicationManager.properties11
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/preferences/applications.properties9
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/preferences/messagestyle.properties12
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/preferences/preferences.properties100
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/prefs.properties67
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/profileDowngrade.dtd13
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/removeAccount.dtd22
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/removeAccount.properties5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/renameFolderDialog.dtd9
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/sanitize.dtd36
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/seamonkeyImportMsgs.properties14
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/search-attributes.properties41
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/search-operators.properties31
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/search.properties26
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/searchTermOverlay.dtd14
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/shutdownWindow.properties9
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/smime.properties9
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/smtpEditOverlay.dtd24
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/subscribe.dtd20
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/subscribe.properties13
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/tabmail.dtd7
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/taskbar.properties8
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/telemetry.properties10
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/templateUtils.properties5
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/textImportMsgs.properties27
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/vCardImportMsgs.properties20
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/viewLog.dtd12
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/viewSource.dtd83
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/viewSource.properties17
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/viewZoomOverlay.dtd30
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/virtualFolderListDialog.dtd8
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/virtualFolderProperties.dtd22
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/wmImportMsgs.properties30
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozapps/downloads/downloads.properties6
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozapps/downloads/unknownContentType.properties23
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozapps/profile/profileSelection.properties55
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozapps/update/updates.properties45
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozldap/ldap.properties141
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/necko/necko.properties100
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/passwordmgr/passwordmgr.properties79
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/pipnss/nsserrors.properties331
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/pipnss/pipnss.properties136
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/pippki/pippki.properties38
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/places/places.properties33
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/pdfviewer/chrome.properties20
-rw-r--r--thunderbird-l10n/es-ES/chrome/es-ES/locale/pdfviewer/viewer.properties302
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/branding/brand.ftl22
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/browser/appExtensionFields.ftl16
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/browser/branding/brandings.ftl18
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/browser/components/mozFiveStar.ftl9
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/browser/components/mozSupportLink.ftl5
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-context-menus.ftl10
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-delete-prompt.ftl35
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-editable-item.ftl30
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-event-dialog-reminder.ftl10
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-event-listing.ftl71
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-ics-file-dialog.ftl46
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-invitation-panel.ftl113
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-invitations-dialog.ftl10
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-itip-identity-dialog.ftl8
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-print.ftl17
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-recurrence-dialog.ftl8
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-summary-dialog.ftl17
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-uri-redirect-dialog.ftl12
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-widgets.ftl111
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/calendar/category-dialog.ftl8
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/calendar/preferences.ftl188
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/chat/matrix.ftl34
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/crashreporter/aboutcrashes.ftl31
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/devtools/client/aboutdebugging.ftl400
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/devtools/client/accessibility.ftl99
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/devtools/client/application.ftl147
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/devtools/client/compatibility.ftl54
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/devtools/client/perftools.ftl161
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/devtools/client/storage.ftl132
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/devtools/client/styleeditor.ftl56
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/devtools/client/toolbox-options.ftl154
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/devtools/client/toolbox.ftl55
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/devtools/client/tooltips.ftl101
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/devtools/shared/debugger-paused-reasons.ftl87
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/devtools/shared/highlighters.ftl67
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/devtools/shared/webconsole-commands.ftl34
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/devtools/startup/key-shortcuts.ftl38
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/dom/XMLPrettyPrint.ftl5
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/dom/media.ftl6
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/locales-preview/aboutTranslations.ftl28
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/about3Pane.ftl421
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutAddonsExtra.ftl11
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutDialog.ftl66
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutImport.ftl283
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutProfilesExtra.ftl5
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutRights.ftl30
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutSupportCalendar.ftl33
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutSupportChat.ftl11
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutSupportMail.ftl31
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/accountCentral.ftl65
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/accountManager.ftl18
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/accountProvisioner.ftl78
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/accountcreation/accountHub.ftl83
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/accountcreation/accountSetup.ftl426
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/addonNotifications.ftl122
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/addressbook/abCardDAVDialog.ftl26
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/addressbook/abCardDAVProperties.ftl33
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/addressbook/aboutAddressBook.ftl323
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/addressbook/fieldMapImport.ftl12
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/addressbook/vcard.ftl138
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/appmenu.ftl210
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/chat-verifySession.ftl17
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/chat.ftl47
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/compactFoldersDialog.ftl20
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/exportDialog.ftl22
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/extensionPermissions.ftl27
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/extensions/popup.ftl14
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/extensionsUI.ftl9
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/firefoxAccounts.ftl32
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/flatpak.ftl24
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/folderprops.ftl10
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/importDialog.ftl30
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/mailWidgets.ftl15
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/menubar.ftl144
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/messageheader/headerFields.ftl49
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/messenger.ftl411
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/messengercompose/messengercompose.ftl424
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/migration.ftl15
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/multimessageview.ftl14
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/backupKeyPassword.ftl17
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/changeExpiryDlg.ftl22
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/composeKeyStatus.ftl24
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/keyAssistant.ftl123
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/keyWizard.ftl140
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/msgReadStatus.ftl86
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/oneRecipientStatus.ftl50
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/openpgp-frontend.ftl54
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/openpgp.ftl780
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/add-finger.ftl16
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/am-im-otr.ftl27
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/auth.ftl59
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/chat.ftl19
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/finger-sync.ftl12
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/finger.ftl20
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/otr.ftl97
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/otrUI.ftl87
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/policies/aboutPolicies.ftl17
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/policies/policies-descriptions.ftl94
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/am-copies.ftl5
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/am-im.ftl23
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/application-manager.ftl10
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/attachment-reminder.ftl21
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/colors.ftl36
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/connection.ftl88
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/cookies.ftl44
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/dock-options.ftl23
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/fonts.ftl134
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/languages.ftl33
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/new-tag.ftl13
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/notifications.ftl29
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/offline.ftl43
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/passwordManager.ftl83
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/permissions.ftl43
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/preferences.ftl785
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/receipts.ftl39
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/sync-dialog.ftl11
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/system-integration.ftl39
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/shortcuts.ftl113
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/syncAccounts.ftl28
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/treeView.ftl65
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/troubleshootMode.ftl33
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/unifiedToolbar.ftl100
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/unifiedToolbarItems.ftl165
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/messenger/viewSource.ftl16
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/security/certificates/certManager.ftl228
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/security/certificates/deviceManager.ftl133
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/security/pippki/pippki.ftl106
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/services/accounts.ftl8
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutAbout.ftl9
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutAddons.ftl495
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutCompat.ftl22
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutGlean.ftl107
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutHttpsOnlyError.ftl31
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutLogging.ftl69
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutMozilla.ftl11
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutNetworking.ftl68
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutPerformance.ftl65
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutPlugins.ftl43
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutProcesses.ftl189
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutProfiles.ftl74
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutReader.ftl52
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutRights.ftl36
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutServiceWorkers.ftl40
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutSupport.ftl426
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutTelemetry.ftl136
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutThirdParty.ftl85
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutWebauthn.ftl130
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutWebrtc.ftl327
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutWindowsMessages.ftl20
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/abuseReports.ftl106
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/certviewer.ftl122
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/config.ftl55
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/url-classifier.ftl58
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/branding/accounts.ftl7
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/branding/brandings.ftl45
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/contentanalysis/contentanalysis.ftl25
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/downloads/downloadUI.ftl51
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/downloads/downloadUtils.ftl106
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/featuregates/features.ftl58
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/formautofill/formAutofill.ftl16
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/alert.ftl12
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/appPicker.ftl10
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/browser-utils.ftl11
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/commonDialog.ftl21
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/contextual-identity.ftl29
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/cookieBannerHandling.ftl5
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/createProfileWizard.ftl53
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/cspErrors.ftl32
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/datepicker.ftl50
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/datetimebox.ftl42
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/extensionPermissions.ftl33
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/extensions.ftl112
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/handlerDialog.ftl70
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/htmlForm.ftl14
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/mozCard.ftl3
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/mozFiveStar.ftl9
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/mozMessageBar.ftl15
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/mozSupportLink.ftl5
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/notification.ftl16
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/popupnotification.ftl10
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/processTypes.ftl61
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/profileDowngrade.ftl18
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/profileSelection.ftl38
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/resetProfile.ftl15
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/resistFingerPrinting.ftl6
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/run-from-dmg.ftl28
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/tabprompts.ftl13
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/textActions.ftl64
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/timepicker.ftl3
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/tree.ftl6
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/unknownContentType.ftl42
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/videocontrols.ftl71
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/wizard.ftl37
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/intl/languageNames.ftl215
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/intl/regionNames.ftl280
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/main-window/autocomplete.ftl23
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/main-window/findbar.ftl76
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/neterror/certError.ftl141
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/neterror/netError.ftl149
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/neterror/nsserrors.ftl350
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/passwordmgr/passwordmgr.ftl33
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/payments/payments.ftl51
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/pdfviewer/viewer.ftl384
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/pictureinpicture/pictureinpicture.ftl86
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/preferences/preferences.ftl39
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/printing/printDialogs.ftl112
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/printing/printPreview.ftl73
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/printing/printUI.ftl148
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/reportBrokenSite/reportBrokenSite.ftl3
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/updates/backgroundupdate.ftl5
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/updates/elevation.ftl18
-rw-r--r--thunderbird-l10n/es-ES/localization/es-ES/toolkit/updates/history.ftl29
-rw-r--r--thunderbird-l10n/es-ES/manifest.json56
518 files changed, 38325 insertions, 0 deletions
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/branding/brand.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/branding/brand.dtd
new file mode 100644
index 0000000000..cc718419a2
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/branding/brand.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 brandShortName "Thunderbird">
+<!ENTITY brandShorterName "Thunderbird">
+<!ENTITY brandFullName "Mozilla Thunderbird">
+<!ENTITY brandProductName "Thunderbird">
+<!ENTITY vendorShortName "Mozilla">
+<!ENTITY trademarkInfo.part1 "Mozilla Thunderbird y los logos de Thunderbird
+son marcas registradas de la Fundación Mozilla.">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/branding/brand.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/branding/brand.properties
new file mode 100644
index 0000000000..4a03be9035
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/branding/brand.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/.
+
+brandShortName = Thunderbird
+brandShorterName = Thunderbird
+brandFullName = Mozilla Thunderbird
+vendorShortName = Mozilla
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/alerts/alert.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/alerts/alert.properties
new file mode 100644
index 0000000000..c8ebb15aad
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/alerts/alert.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/.
+
+closeButton.title = Cerrar
+actionButton.label = …
+webActions.disableForOrigin.label = Desactivar notificaciones de %S
+
+source.label = vía %1$S
+webActions.settings.label = Ajustes de notificaciones
+
+pauseNotifications.label = Pausar las notificaciones hasta que %S se reinicie
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/autoconfig/autoconfig.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/autoconfig/autoconfig.properties
new file mode 100644
index 0000000000..054431cb53
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Error de configuración
+readConfigMsg = No se pudo leer el archivo de configuración. Póngase en contacto con su administrador de sistemas.
+
+autoConfigTitle = Alerta de configuración automática
+autoConfigMsg = Falló Netscape.cfg/AutoConfig. Póngase en contacto con su administrador. \n Error: falló %S:
+
+emailPromptTitle = Dirección de correo electrónico
+emailPromptMsg = Introduzca la dirección de correo electronico
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-alarms.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-alarms.properties
new file mode 100644
index 0000000000..67cf8c4b82
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-alarms.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/.
+
+reminderCustomTitle = %1$S %2$S
+reminderTitleAtStartEvent = El momento en que comienza el evento
+reminderTitleAtStartTask = El momento en que comienza la tarea
+reminderTitleAtEndEvent = El momento en que termina el evento
+reminderTitleAtEndTask = El momento en que termina la tarea
+reminderSnoozeOkA11y = Apagar recordatorio durante %1$S
+reminderCustomOriginBeginBeforeEvent = antes de que comience el evento
+reminderCustomOriginBeginAfterEvent = después de que comience el evento
+reminderCustomOriginEndBeforeEvent = antes de que termine el evento
+reminderCustomOriginEndAfterEvent = después de que termine el evento
+reminderCustomOriginBeginBeforeTask = antes de que comience la tarea
+reminderCustomOriginBeginAfterTask = después de que comience la tarea
+reminderCustomOriginEndBeforeTask = antes de que termine la tarea
+reminderCustomOriginEndAfterTask = después de que termine la tarea
+reminderErrorMaxCountReachedEvent = El calendario seleccionado tiene una limitación de #1 recordatorio por evento.;El calendario seleccionado tiene una limitación de #1 recordatorios por evento.
+reminderErrorMaxCountReachedTask = El calendario seleccionado tiene una limitación de #1 recordatorio por tarea.;El calendario seleccionado tiene una limitación de #1 recordatorios por tarea.
+reminderReadonlyNotification = Los recordatorios de calendarios de solo lectura no se pueden posponer actualmente, solo ocultar - el botón '%1$S' solo pospondrá recordatorios en calendarios escribibles.
+reminderDisabledSnoozeButtonTooltip = Posponer recordatorios no está admitido en calendarios de solo lectura
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-event-dialog-attendees.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-event-dialog-attendees.properties
new file mode 100644
index 0000000000..f1603c3f17
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-event-dialog-attendees.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/.
+
+event.attendee.role.required = Asistente necesario
+event.attendee.role.optional = Asistente opcional
+event.attendee.role.nonparticipant = No participante
+event.attendee.role.chair = Presidencia
+event.attendee.role.unknown = Asistente desconocido (%1$S)
+event.attendee.usertype.individual = Individuo
+event.attendee.usertype.group = Grupo
+event.attendee.usertype.resource = Recurso
+event.attendee.usertype.room = Sala
+event.attendee.usertype.unknown = Tipo desconocido (%1$S)
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-event-dialog.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-event-dialog.dtd
new file mode 100644
index 0000000000..e16cc75266
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-event-dialog.dtd
@@ -0,0 +1,355 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 elemento">
+<!ENTITY event.dialog.keepDurationButton.tooltip "Mantener la duración al cambiar la fecha de final">
+<!ENTITY event.dialog.keepDurationButton.accesskey "M">
+<!ENTITY newevent.from.label "Desde">
+<!ENTITY newevent.to.label "Hasta">
+<!ENTITY newevent.status.label "Estado">
+<!ENTITY newevent.status.accesskey "E">
+<!ENTITY newevent.eventStatus.none.label "No especificado">
+<!ENTITY newevent.eventStatus.none.accesskey "N">
+<!ENTITY newevent.todoStatus.none.label "No especificado">
+<!ENTITY newevent.eventStatus.cancelled.label "Cancelado">
+<!ENTITY newevent.eventStatus.cancelled.accesskey "a">
+<!ENTITY newevent.todoStatus.cancelled.label "Cancelado">
+<!ENTITY newevent.status.tentative.label "Provisional">
+<!ENTITY newevent.status.tentative.accesskey "P">
+<!ENTITY newevent.status.confirmed.label "Confirmado">
+<!ENTITY newevent.status.confirmed.accesskey "C">
+<!ENTITY newevent.status.needsaction.label "Necesita intervención">
+<!ENTITY newevent.status.inprogress.label "En proceso">
+<!ENTITY newevent.status.completed.label "Completado el">
+<!ENTITY newtodo.percentcomplete.label "&#037; completo">
+<!ENTITY event.attendees.notify.label "Notificar a asistentes">
+<!ENTITY event.attendees.notify.accesskey "f">
+<!ENTITY event.attendees.notifyundisclosed.label "Separar la invitación por asistente">
+<!ENTITY event.attendees.notifyundisclosed.accesskey "S">
+<!ENTITY event.attendees.notifyundisclosed.tooltip "Esta opción envía un mensaje de invitación a cada asistente. Cada invitación sólo contiene un asistente como destinatario, de modo que no se revela al resto de asistentes.">
+<!ENTITY event.attendees.disallowcounter.label "Desactivar contrapropuestas">
+<!ENTITY event.attendees.disallowcounter.accesskey "D">
+<!ENTITY event.attendees.disallowcounter.tooltip "Indica que no aceptará contrapropuestas">
+<!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">
+<!ENTITY event.menu.item.new.label "Nuevo">
+<!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 "Tarea">
+<!ENTITY event.menu.item.new.task.accesskey "T">
+<!ENTITY event.menu.item.new.message.label "Mensaje">
+<!ENTITY event.menu.item.new.message.accesskey "M">
+<!ENTITY event.menu.item.new.contact.label "Contacto de la libreta de direcciones">
+<!ENTITY event.menu.item.new.contact.accesskey "C">
+<!ENTITY event.menu.item.close.label "Cerrar">
+<!ENTITY event.menu.item.close.accesskey "C">
+<!ENTITY event.menu.item.save.label "Guardar">
+<!ENTITY event.menu.item.save.accesskey "G">
+<!ENTITY event.menu.item.save.tab.accesskey "a">
+<!ENTITY event.menu.item.saveandclose.label "Guardar y cerrar">
+<!ENTITY event.menu.item.saveandclose.accesskey "d">
+<!ENTITY event.menu.item.saveandclose.tab.accesskey "u">
+<!ENTITY event.menu.item.delete.label "Eliminar…">
+<!ENTITY event.menu.item.delete.accesskey "E">
+<!ENTITY event.menu.item.page.setup.label "Configuración de página">
+<!ENTITY event.menu.item.page.setup.accesskey "a">
+<!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 "Deshacer">
+<!ENTITY event.menu.edit.undo.accesskey "h">
+<!ENTITY event.menu.edit.redo.label "Rehacer">
+<!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 "Pegar">
+<!ENTITY event.menu.edit.paste.accesskey "P">
+<!ENTITY event.menu.edit.select.all.label "Seleccionar todo">
+<!ENTITY event.menu.edit.select.all.accesskey "A">
+<!ENTITY event.menu.view.label "Ver">
+<!ENTITY event.menu.view.accesskey "V">
+<!ENTITY event.menu.view.toolbars.label "Barras de herramientas">
+<!ENTITY event.menu.view.toolbars.accesskey "T">
+<!ENTITY event.menu.view.toolbars.event.label "Barra de herramientas de eventos">
+<!ENTITY event.menu.view.toolbars.event.accesskey "v">
+<!ENTITY event.menu.view.toolbars.customize.label "Personalizar…">
+<!ENTITY event.menu.view.toolbars.customize.accesskey "P">
+<!ENTITY event.menu.view.showlink.label "Mostrar enlace relacionado">
+<!ENTITY event.menu.view.showlink.accesskey "R">
+<!ENTITY event.menu.options.label "Opciones">
+<!ENTITY event.menu.options.accesskey "O">
+<!ENTITY event.menu.options.attendees.label "Invitar a asistentes…">
+<!ENTITY event.menu.options.attendees.accesskey "I">
+<!ENTITY event.menu.options.timezone2.label "Mostrar zonas horarias">
+<!ENTITY event.menu.options.timezone2.accesskey "z">
+<!ENTITY event.menu.options.priority2.label "Prioridad">
+<!ENTITY event.menu.options.priority2.accesskey "r">
+<!ENTITY event.menu.options.priority.notspecified.label "No especificado">
+<!ENTITY event.menu.options.priority.notspecified.accesskey "o">
+<!ENTITY event.menu.options.priority.low.label "Baja">
+<!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 "Privacidad">
+<!ENTITY event.menu.options.privacy.accesskey "P">
+<!ENTITY event.menu.options.privacy.public.label "Evento público">
+<!ENTITY event.menu.options.privacy.public.accesskey "E">
+<!ENTITY event.menu.options.privacy.confidential.label "Mostrar solamente fecha y hora">
+<!ENTITY event.menu.options.privacy.confidential.accesskey "M">
+<!ENTITY event.menu.options.privacy.private.label "Evento privado">
+<!ENTITY event.menu.options.privacy.private.accesskey "v">
+<!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 "Libre">
+<!ENTITY event.menu.options.show.time.free.accesskey "L">
+<!ENTITY event.invite.attendees.label "Invitar a asistentes…">
+<!ENTITY event.invite.attendees.accesskey "e">
+<!ENTITY event.email.attendees.label "Redactar mensaje para todos los asistentes…">
+<!ENTITY event.email.attendees.accesskey "A">
+<!ENTITY event.email.tentative.attendees.label "Redactar mensaje para los asistentes indecisos…">
+<!ENTITY event.email.tentative.attendees.accesskey "d">
+<!ENTITY event.remove.attendees.label2 "Eliminar todos los asistentes">
+<!ENTITY event.remove.attendees.accesskey "E">
+<!ENTITY event.remove.attendee.label "Eliminar asistente">
+<!ENTITY event.remove.attendee.accesskey "E">
+<!ENTITY event.toolbar.save.label2 "Guardar">
+<!ENTITY event.toolbar.saveandclose.label "Guardar y cerrar">
+<!ENTITY event.toolbar.delete.label "Eliminar">
+<!ENTITY event.toolbar.attendees.label "Invitar a asistentes">
+<!ENTITY event.toolbar.privacy.label "Privacidad">
+<!ENTITY event.toolbar.save.tooltip2 "Guardar">
+<!ENTITY event.toolbar.saveandclose.tooltip "Guardar y cerrar">
+<!ENTITY event.toolbar.delete.tooltip "Eliminar">
+<!ENTITY event.toolbar.attendees.tooltip "Invitar a asistentes">
+<!ENTITY event.toolbar.attachments.tooltip "Añadir adjuntos">
+<!ENTITY event.toolbar.privacy.tooltip "Cambiar privacidad">
+<!ENTITY event.toolbar.priority.tooltip "Cambiar prioridad">
+<!ENTITY event.toolbar.status.tooltip "Cambiar estado">
+<!ENTITY event.toolbar.freebusy.tooltip "Cambiar horario libre/ocupado">
+<!ENTITY counter.button.proposal.label "Aplicar propuesta">
+<!ENTITY counter.button.proposal.accesskey "c">
+<!ENTITY counter.button.proposal.tooltip2 "Los campos del evento se rellenarán usando los valores de la contrapropuesta; al guardar con o sin cambios adicionales se notificará a todos los asistentes consecuentemente">
+<!ENTITY counter.button.original.label "Aplicar datos originales">
+<!ENTITY counter.button.original.accesskey "A">
+<!ENTITY counter.button.original.tooltip2 "Los campos se establecerán en los valores del evento original, antes de que se hiciera la contrapropuesta">
+<!ENTITY event.title.textbox.label "Título:">
+<!ENTITY event.title.textbox.accesskey "u">
+<!ENTITY event.location.label "Lugar:">
+<!ENTITY event.location.accesskey "L">
+<!ENTITY event.categories.label "Categoría:">
+<!ENTITY event.categories.accesskey "C">
+<!ENTITY event.categories.textbox.label "Añadir una nueva categoría">
+<!ENTITY event.calendar.label "Calendario:">
+<!ENTITY event.calendar.accesskey "n">
+<!ENTITY event.attendees.label "Asistentes:">
+<!ENTITY event.attendees.accesskey "A">
+<!ENTITY event.alldayevent.label "Evento de día completo">
+<!ENTITY event.alldayevent.accesskey "m">
+<!ENTITY event.from.label "Inicio:">
+<!ENTITY event.from.accesskey "I">
+<!ENTITY task.from.label "Inicio:">
+<!ENTITY task.from.accesskey "I">
+<!ENTITY event.to.label "Final:">
+<!ENTITY event.to.accesskey "F">
+<!ENTITY task.to.label "Fecha límite:">
+<!ENTITY task.to.accesskey "F">
+<!ENTITY task.status.label "Estado:">
+<!ENTITY task.status.accesskey "s">
+<!ENTITY event.repeat.label "Repetir:">
+<!ENTITY event.repeat.accesskey "p">
+<!ENTITY event.until.label "Hasta:">
+<!ENTITY event.until.accesskey "H">
+<!ENTITY event.reminder.label "Recordatorio:">
+<!ENTITY event.reminder.accesskey "R">
+<!ENTITY event.description.label "Descripción:">
+<!ENTITY event.description.accesskey "D">
+<!ENTITY event.attachments.label "Adjuntos:">
+<!ENTITY event.attachments.accesskey "j">
+<!ENTITY event.attachments.menubutton.label "Adjuntar">
+<!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 "Eliminar">
+<!ENTITY event.attachments.popup.remove.accesskey "E">
+<!ENTITY event.attachments.popup.open.label "Abrir">
+<!ENTITY event.attachments.popup.open.accesskey "A">
+<!ENTITY event.attachments.popup.removeAll.label "Eliminar todo">
+<!ENTITY event.attachments.popup.removeAll.accesskey "t">
+<!ENTITY event.attachments.popup.attachPage.label "Adjuntar página web…">
+<!ENTITY event.attachments.popup.attachPage.accesskey "d">
+<!ENTITY event.url.label "Enlace relacionado:">
+<!ENTITY event.priority2.label "Prioridad:">
+<!ENTITY event.reminder.none.label "Sin recordatorio ">
+<!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 día antes">
+<!ENTITY event.reminder.2days.before.label "2 días antes">
+<!ENTITY event.reminder.1week.before.label "1 semana antes">
+<!ENTITY event.reminder.custom.label "Personalizar…">
+<!ENTITY event.reminder.multiple.label "Múltiples recordatorios…">
+<!ENTITY event.statusbarpanel.freebusy.label "Tiempo como:">
+<!ENTITY event.statusbarpanel.privacy.label "Privacidad:">
+<!ENTITY recurrence.title.label "Editar recurrencia">
+<!ENTITY event.repeat.does.not.repeat.label "No se repite">
+<!ENTITY event.repeat.daily.label "Diariamente">
+<!ENTITY event.repeat.weekly.label "Semanalmente">
+<!ENTITY event.repeat.every.weekday.label "Cada día laborable">
+<!ENTITY event.repeat.bi.weekly.label "Cada dos semanas">
+<!ENTITY event.repeat.monthly.label "Mensualmente">
+<!ENTITY event.repeat.yearly.label "Anualmente">
+<!ENTITY event.repeat.custom.label "Personalizar…">
+<!ENTITY event.recurrence.pattern.label "Patrón de repetición">
+<!ENTITY event.recurrence.occurs.label "Repetir">
+<!ENTITY event.recurrence.day.label "diariamente">
+<!ENTITY event.recurrence.week.label "semanalmente">
+<!ENTITY event.recurrence.month.label "mensualmente">
+<!ENTITY event.recurrence.year.label "anualmente">
+<!ENTITY event.recurrence.pattern.every.label "Cada">
+<!ENTITY repeat.units.days.both "Día(s)">
+<!ENTITY event.recurrence.pattern.every.weekday.label "Cada día laborable">
+<!ENTITY event.recurrence.pattern.weekly.every.label "Cada">
+<!ENTITY repeat.units.weeks.both "Semana(s)">
+<!ENTITY event.recurrence.on.label "En:">
+<!ENTITY event.recurrence.pattern.monthly.every.label "Cada">
+<!ENTITY repeat.units.months.both "Mes(es)">
+<!ENTITY event.recurrence.monthly.every.label "Cada">
+<!ENTITY event.recurrence.monthly.first.label "El primero">
+<!ENTITY event.recurrence.monthly.second.label "El segundo">
+<!ENTITY event.recurrence.monthly.third.label "El tercero">
+<!ENTITY event.recurrence.monthly.fourth.label "El cuarto">
+<!ENTITY event.recurrence.monthly.fifth.label "El quinto">
+<!ENTITY event.recurrence.monthly.last.label "El último">
+<!ENTITY event.recurrence.pattern.monthly.week.1.label "Domingo">
+<!ENTITY event.recurrence.pattern.monthly.week.2.label "Lunes">
+<!ENTITY event.recurrence.pattern.monthly.week.3.label "Martes">
+<!ENTITY event.recurrence.pattern.monthly.week.4.label "Miércoles">
+<!ENTITY event.recurrence.pattern.monthly.week.5.label "Jueves">
+<!ENTITY event.recurrence.pattern.monthly.week.6.label "Viernes">
+<!ENTITY event.recurrence.pattern.monthly.week.7.label "Sábado">
+<!ENTITY event.recurrence.repeat.dayofmonth.label "Día del mes">
+<!ENTITY event.recurrence.repeat.recur.label "Repetir los días">
+<!ENTITY event.recurrence.every.label "Cada:">
+<!ENTITY repeat.units.years.both "Año(s)">
+<!ENTITY event.recurrence.pattern.yearly.every.month.label "Cada">
+<!ENTITY event.recurrence.pattern.yearly.of.label "">
+<!ENTITY event.recurrence.pattern.yearly.month.1.label "Enero">
+<!ENTITY event.recurrence.pattern.yearly.month.2.label "Febrero">
+<!ENTITY event.recurrence.pattern.yearly.month.3.label "Marzo">
+<!ENTITY event.recurrence.pattern.yearly.month.4.label "Abril">
+<!ENTITY event.recurrence.pattern.yearly.month.5.label "Mayo">
+<!ENTITY event.recurrence.pattern.yearly.month.6.label "Junio">
+<!ENTITY event.recurrence.pattern.yearly.month.7.label "Julio">
+<!ENTITY event.recurrence.pattern.yearly.month.8.label "Agosto">
+<!ENTITY event.recurrence.pattern.yearly.month.9.label "Septiembre">
+<!ENTITY event.recurrence.pattern.yearly.month.10.label "Octubre">
+<!ENTITY event.recurrence.pattern.yearly.month.11.label "Noviembre">
+<!ENTITY event.recurrence.pattern.yearly.month.12.label "Diciembre">
+<!ENTITY event.recurrence.yearly.every.label "Cada">
+<!ENTITY event.recurrence.yearly.first.label "El primero">
+<!ENTITY event.recurrence.yearly.second.label "El segundo">
+<!ENTITY event.recurrence.yearly.third.label "El tercero">
+<!ENTITY event.recurrence.yearly.fourth.label "El cuarto">
+<!ENTITY event.recurrence.yearly.fifth.label "El quinto">
+<!ENTITY event.recurrence.yearly.last.label "El último">
+<!ENTITY event.recurrence.pattern.yearly.week.1.label "Domingo">
+<!ENTITY event.recurrence.pattern.yearly.week.2.label "Lunes">
+<!ENTITY event.recurrence.pattern.yearly.week.3.label "Martes">
+<!ENTITY event.recurrence.pattern.yearly.week.4.label "Miércoles">
+<!ENTITY event.recurrence.pattern.yearly.week.5.label "Jueves">
+<!ENTITY event.recurrence.pattern.yearly.week.6.label "Viernes">
+<!ENTITY event.recurrence.pattern.yearly.week.7.label "Sábado">
+<!ENTITY event.recurrence.pattern.yearly.day.label "día">
+<!ENTITY event.recurrence.of.label "de">
+<!ENTITY event.recurrence.pattern.yearly.month2.1.label "Enero">
+<!ENTITY event.recurrence.pattern.yearly.month2.2.label "Febrero">
+<!ENTITY event.recurrence.pattern.yearly.month2.3.label "Marzo">
+<!ENTITY event.recurrence.pattern.yearly.month2.4.label "Abril">
+<!ENTITY event.recurrence.pattern.yearly.month2.5.label "Mayo">
+<!ENTITY event.recurrence.pattern.yearly.month2.6.label "Junio">
+<!ENTITY event.recurrence.pattern.yearly.month2.7.label "Julio">
+<!ENTITY event.recurrence.pattern.yearly.month2.8.label "Agosto">
+<!ENTITY event.recurrence.pattern.yearly.month2.9.label "Septiembre">
+<!ENTITY event.recurrence.pattern.yearly.month2.10.label "Octubre">
+<!ENTITY event.recurrence.pattern.yearly.month2.11.label "Noviembre">
+<!ENTITY event.recurrence.pattern.yearly.month2.12.label "Diciembre">
+<!ENTITY event.recurrence.range.label "Rango de repetición">
+<!ENTITY event.recurrence.forever.label "Sin fecha de final">
+<!ENTITY event.recurrence.repeat.for.label "Crear">
+<!ENTITY event.recurrence.appointments.label "Cita(s)">
+<!ENTITY event.repeat.until.label "Repetir hasta">
+<!ENTITY event.recurrence.preview.label "Vista preliminar">
+<!ENTITY invite.title.label "Invitar a asistentes">
+<!ENTITY event.organizer.label "Organizador">
+<!ENTITY event.freebusy.suggest.slot "Sugiera un margen de tiempo:">
+<!ENTITY event.freebusy.button.next.slot "Hueco siguiente">
+<!ENTITY event.freebusy.button.previous.slot "Hueco anterior">
+<!ENTITY event.freebusy.zoom "Ampliación:">
+<!ENTITY event.freebusy.legend.free "Libre">
+<!ENTITY event.freebusy.legend.busy "Ocupado">
+<!ENTITY event.freebusy.legend.busy_tentative "Provisional">
+<!ENTITY event.freebusy.legend.busy_unavailable "Fuera de la oficina">
+<!ENTITY event.freebusy.legend.unknown "Sin información">
+<!ENTITY event.attendee.role.required "Asistente necesario">
+<!ENTITY event.attendee.role.optional "Asistente opcional">
+<!ENTITY event.attendee.role.chair "Presidencia">
+<!ENTITY event.attendee.role.nonparticipant "No participante">
+<!ENTITY event.attendee.usertype.individual "Individuo">
+<!ENTITY event.attendee.usertype.group "Grupo">
+<!ENTITY event.attendee.usertype.resource "Recurso">
+<!ENTITY event.attendee.usertype.room "Sala">
+<!ENTITY event.attendee.usertype.unknown "Desconocido">
+<!ENTITY timezone.title.label "Especifique la zona horaria">
+<!ENTITY event.timezone.custom.label "Más zonas horarias…">
+<!ENTITY read.only.general.label "General">
+<!ENTITY read.only.title.label "Título:">
+<!ENTITY read.only.calendar.label "Calendario:">
+<!ENTITY read.only.event.start.label "Fecha de inicio:">
+<!ENTITY read.only.task.start.label "Fecha de inicio:">
+<!ENTITY read.only.event.end.label "Fecha de finalización:">
+<!ENTITY read.only.task.due.label "Fecha límite:">
+<!ENTITY read.only.repeat.label "Repetir:">
+<!ENTITY read.only.location.label "Lugar:">
+<!ENTITY read.only.category.label "Categoría:">
+<!ENTITY read.only.organizer.label "Organizador:">
+<!ENTITY read.only.reminder.label "Recordatorio:">
+<!ENTITY read.only.attachments.label "Adjuntos:">
+<!ENTITY read.only.attendees.label "Asistentes">
+<!ENTITY read.only.description.label "Descripción">
+<!ENTITY read.only.link.label "Enlace relacionado">
+<!ENTITY summary.dialog.saveclose.label "Guardar y cerrar">
+<!ENTITY summary.dialog.saveclose.tooltiptext "Guardar cambios y cerrar la ventana sin cambiar su estado de participación ni enviar respuesta">
+<!ENTITY summary.dialog.accept.label "Aceptar">
+<!ENTITY summary.dialog.accept.tooltiptext "Aceptar la invitación">
+<!ENTITY summary.dialog.tentative.label "Provisional">
+<!ENTITY summary.dialog.tentative.tooltiptext "Aceptar la invitación provisionalmente">
+<!ENTITY summary.dialog.decline.label "Rechazar">
+<!ENTITY summary.dialog.decline.tooltiptext "Declinar invitación">
+<!ENTITY summary.dialog.dontsend.label "No enviar respuesta">
+<!ENTITY summary.dialog.dontsend.tooltiptext "Cambiar su estado de participación sin enviar respuesta al organizador y cerrar la ventana">
+<!ENTITY summary.dialog.send.label "Enviar respuesta ahora">
+<!ENTITY summary.dialog.send.tooltiptext "Enviar respuesta al organizador y cerrar la ventana">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-event-dialog.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-event-dialog.properties
new file mode 100644
index 0000000000..4fab2cd3ba
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-event-dialog.properties
@@ -0,0 +1,126 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+dailyEveryNth = cada día;cada #1 días
+repeatDetailsRuleDaily4 = cada día laborable
+weeklyNthOnNounclass1 = cada %1$S;cada #2 semanas el %1$S
+weeklyNthOnNounclass2 = cada %1$S;cada #2 semanas el %1$S
+weeklyEveryNth = cada semana;cada #1 semanas
+repeatDetailsDay1 = Domingo
+repeatDetailsDay1Nounclass = nounclass1
+repeatDetailsDay2 = Lunes
+repeatDetailsDay2Nounclass = nounclass1
+repeatDetailsDay3 = Martes
+repeatDetailsDay3Nounclass = nounclass1
+repeatDetailsDay4 = Miércoles
+repeatDetailsDay4Nounclass = nounclass1
+repeatDetailsDay5 = Jueves
+repeatDetailsDay5Nounclass = nounclass1
+repeatDetailsDay6 = Viernes
+repeatDetailsDay6Nounclass = nounclass1
+repeatDetailsDay7 = Sábado
+repeatDetailsDay7Nounclass = nounclass1
+repeatDetailsAnd = y
+monthlyRuleNthOfEveryNounclass1 = %1$S de cada mes;%1$S de cada #2 meses
+monthlyRuleNthOfEveryNounclass2 = %1$S de cada mes;%1$S de cada #2 meses
+ordinalWeekdayOrder = %1$S %2$S
+monthlyEveryOfEveryNounclass1 = cada %1$S de cada mes;cada %1$S de cada #2 meses
+monthlyEveryOfEveryNounclass2 = cada %1$S de cada mes;cada %1$S de cada #2 meses
+monthlyDaysOfNth_day = día %1$S;días %1$S
+monthlyDaysOfNth = %1$S de cada mes;%1$S de cada #2 meses
+monthlyLastDayOfNth = el último día del mes; el último día de cada #1 meses
+monthlyEveryDayOfNth = cada día de cada mes;cada día del mes cada #2 meses
+repeatOrdinal1Nounclass1 = el primero
+repeatOrdinal2Nounclass1 = el segundo
+repeatOrdinal3Nounclass1 = el tercero
+repeatOrdinal4Nounclass1 = el cuarto
+repeatOrdinal5Nounclass1 = el quinto
+repeatOrdinal-1Nounclass1 = el último
+repeatOrdinal1Nounclass2 = el primero
+repeatOrdinal2Nounclass2 = el segundo
+repeatOrdinal3Nounclass2 = el tercero
+repeatOrdinal4Nounclass2 = el cuarto
+repeatOrdinal5Nounclass2 = el quinto
+repeatOrdinal-1Nounclass2 = el último
+yearlyNthOn = cada %2$S de %1$S;el %2$S de %1$S cada #3 años
+yearlyNthOnNthOfNounclass1 = %1$S %2$S de cada %3$S;cada #4 años el %1$S %2$S de %3$S
+yearlyNthOnNthOfNounclass2 = %1$S %2$S de cada %3$S;cada #4 años el %1$S %2$S de %3$S
+yearlyOnEveryNthOfNthNounclass1 = cada %1$S de %2$S;cada %1$S of %2$S de cada #3 años
+yearlyOnEveryNthOfNthNounclass2 = cada %1$S de %2$S;cada %1$S of %2$S de cada #3 años
+yearlyEveryDayOf = cada día de %1$S;cada #2 años cada día de %1$S
+repeatDetailsMonth1 = Enero
+repeatDetailsMonth2 = Febrero
+repeatDetailsMonth3 = Marzo
+repeatDetailsMonth4 = Abril
+repeatDetailsMonth5 = Mayo
+repeatDetailsMonth6 = Junio
+repeatDetailsMonth7 = Julio
+repeatDetailsMonth8 = Agosto
+repeatDetailsMonth9 = Septiembre
+repeatDetailsMonth10 = Octubre
+repeatDetailsMonth11 = Noviembre
+repeatDetailsMonth12 = Diciembre
+repeatCount = Sucede %1$S\n#5 vez a partir de %2$S\ndesde %3$S a %4$S.;Sucede %1$S\n#5 veces a partir de %2$S\ndesde %3$S a %4$S.
+repeatCountAllDay = Sucede %1$S\n#3 vez a partir de %2$S.;Sucede %1$S\n#3 veces a partir de %2$S.
+repeatDetailsUntil = Ocurre %1$S\nefectivo %2$S hasta %3$S\nde %4$S a %5$S.
+repeatDetailsUntilAllDay = Ocurre %1$S\nefectivo %2$S hasta %3$S.
+repeatDetailsInfinite = Ocurre %1$S\nefectivo %2$S\ndesde %3$S a %4$S.
+repeatDetailsInfiniteAllDay = Ocurre %1$S\nefectivo %2$S.
+monthlyLastDay = el último día
+ruleTooComplex = Haga clic aquí para obtener detalles
+ruleTooComplexSummary = Detalles sobre repeticiones desconocidos
+newEvent = Nuevo evento
+newTask = Nueva tarea
+itemMenuLabelEvent = Evento
+itemMenuAccesskeyEvent2 = T
+itemMenuLabelTask = Tarea
+itemMenuAccesskeyTask2 = T
+emailSubjectReply = Re: %1$S
+specifyLinkLocation = Especifique la dirección del enlace
+enterLinkLocation = Introduzca una página web o la ubicación de un documento.
+summaryDueTaskLabel = Vencimiento:
+attachViaFilelink = Archivo usando %1$S
+selectAFile = Seleccione qué archivos desea adjuntar
+removeCalendarsTitle = Eliminar adjuntos
+removeAttachmentsText = ¿Realmente quiere eliminar #1 adjunto?;¿Realmente quiere eliminar #1 adjuntos?
+monthlyOrder = %1$S %2$S
+yearlyOrder = %1$S %3$S %2$S
+yearlyOrder2 = %1$S %2$S %3$S %4$S
+pluralForWeekdays = falso
+repeatDetailsDay1Plural = Domingo
+repeatDetailsDay2Plural = Lunes
+repeatDetailsDay3Plural = Martes
+repeatDetailsDay4Plural = Miércoles
+repeatDetailsDay5Plural = Jueves
+repeatDetailsDay6Plural = Viernes
+repeatDetailsDay7Plural = Sábado
+eventRecurrenceForeverLabel = Para siempre
+eventRecurrenceMonthlyLastDayLabel = Último día
+counterSummaryAccepted = %1$S ha aceptado la invitación, pero ha hecho una contrapropuesta:
+counterSummaryDeclined = %1$S ha declinado la invitación, pero ha hecho una contrapropuesta:
+counterSummaryDelegated = %1$S ha delegado la invitación, pero ha hecho una contrapropuesta:
+counterSummaryNeedsAction = %1$S no ha decidido si participará y ha hecho una contrapropuesta:
+counterSummaryTentative = %1$S ha aceptado la invitación solo provisionalmente y ha hecho una contrapropuesta:
+counterOnPreviousVersionNotification = Esta es una contrapropuesta a una versión previa de este evento.
+counterOnCounterDisallowedNotification = Ha desactivado las contrapropuestas al enviar la invitación.
+eventAccepted = Ha aceptado esta invitación
+eventTentative = Ha aceptado esta invitación provisionalmente
+eventDeclined = Ha declinado esta invitación
+eventDelegated = Ha delegado esta invitación
+eventNeedsAction = Aún no ha respondido a esta invitación
+taskAccepted = Ha aceptado colaborar en esta tarea
+taskTentative = Ha aceptado provisionalmente colaborar en esta tarea
+taskDeclined = Ha declinado colaborar en esta tarea
+taskDelegated = Ha delegado la colaboración en esta tarea
+taskNeedsAction = Aún no ha respondido a esta asignación de tarea
+taskInProgress = Ha comenzado a colaborar en esta tarea asignada
+taskCompleted = Ha completado su colaboración en esta tarea asignada
+sendandcloseButtonLabel = Enviar y cerrar
+sendandcloseButtonTooltip = Notificar asistentes y cerrar
+saveandsendButtonLabel = Guardar y enviar
+saveandsendButtonTooltip = Guardar y notificar a asistentes
+saveandsendMenuLabel = Guardar y enviar
+sendandcloseMenuLabel = Enviar y cerrar
+attendeesTabLabel = Asistentes (%1$S):
+attachmentsTabLabel = Adjuntos (%1$S):
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-extract.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-extract.properties
new file mode 100644
index 0000000000..6a649c218b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-extract.properties
@@ -0,0 +1,103 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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.prefix =
+start.suffix = a | hasta | hasta las | - | y
+end.prefix = a la | a las | hasta | la | las | - | y | vence: | vence el | termina | límite el | límite:
+end.suffix =
+no.datetime.prefix = la semana pasada | enviado | correo | e-mail | en lugar de | > | lamentablemente | en | no
+no.datetime.suffix = piso | planta | : | correo | e-mail | > | % | Eur | euros | €
+from.today = hoy
+from.tomorrow = mañana
+until.tomorrow =
+from.ordinal.date = #1º
+until.ordinal.date =
+from.noon = mediodía
+until.noon =
+from.hour = a las #1 | en torno a las #1 | #1 - | #1 a
+until.hour = - #1 | hasta #1 | hasta las #1
+from.hour.am = #1 am | #1 a.m
+until.hour.am =
+from.hour.pm = #1 pm | #1 p.m | #1 PM | #1 P.M.
+until.hour.pm =
+from.half.hour.before = media hora antes de #1
+until.half.hour.before =
+from.half.hour.after = #1 y media
+until.half.hour.after =
+from.hour.minutes = #1:#2 | a las #1#2
+until.hour.minutes = - #1:#2 | hasta #1:#2 | hasta las #1:#2
+from.hour.minutes.am = #1:#2 am | #1:#2 a.m | #1:#2 AM | #1:#2 A.M.
+until.hour.minutes.am = - #1:#2 am | - #1:#2 a.m | hasta las #1:#2 am | hasta las #1:#2 a.m | - #1:#2 AM | - #1:#2 A.M. | hasta las #1:#2 AM | hasta las #1:#2 A.M.
+from.hour.minutes.pm = #1:#2 pm | #1:#2 p.m | #1:#2 PM | #1:#2 P.M.
+until.hour.minutes.pm = - #1:#2 pm | - #1:#2 p.m | hasta las #1:#2 pm | hasta las #1:#2 p.m | - #1:#2 PM | - #1:#2 P.M. | hasta las #1:#2 PM | hasta las #1:#2 P.M.
+from.monthname.day = #1 #2 | #1 de #2 | #1º #2 | #1 de #2
+until.monthname.day =
+from.month.day = #1/#2 | #1-#2 | #1.#2
+until.month.day =
+from.year.month.day = #1/#2/#3 | #1-#2-#3 | #1.#2.#3 | #3/#2/#1 | #3-#2-#1 | #3.#2.#1
+until.year.month.day =
+from.year.monthname.day = #1 #2 #3 | #1º #2 #3 | #1 de #2 de #3 | #1º de #2 de #3 | #3-#2-#1
+until.year.monthname.day =
+duration.minutes = #1 minutos | #1 min | #1 mins
+duration.hours = #1 hora | #1 horas
+duration.days = #1 días
+month.1 = enero | ene | ene.
+month.2 = febrero | feb | feb.
+month.3 = marzo | mar | mar.
+month.4 = abril | abr | abr.
+month.5 = mayo | may | may.
+month.6 = junio | jun | jun.
+month.7 = julio | jul | jul.
+month.8 = agosto | ago | ago.
+month.9 = septiembre | sep | sep. | sept.
+month.10 = octubre | oct | oct.
+month.11 = noviembre | nov | nov.
+month.12 = diciembre | dic | dic.
+from.weekday.0 = domingo | domingos
+from.weekday.1 = lunes
+from.weekday.2 = martes
+from.weekday.3 = miércoles
+from.weekday.4 = jueves
+from.weekday.5 = viernes
+from.weekday.6 = sábado | sábados
+until.weekday.0 =
+until.weekday.1 =
+until.weekday.2 =
+until.weekday.3 =
+until.weekday.4 =
+until.weekday.5 =
+until.weekday.6 =
+number.0 = cero
+number.1 = uno | primero
+number.2 = dos | segundo
+number.3 = tres | tercero
+number.4 = cuatro | cuarto
+number.5 = cinco | quinto
+number.6 = seis | sexto
+number.7 = siete | séptimo
+number.8 = ocho | octavo
+number.9 = nueve | noveno
+number.10 = diez | décimo
+number.11 = once | undécimo
+number.12 = doce | duodécimo
+number.13 = trece | decimotercero
+number.14 = catorce | decimocuarto
+number.15 = quince | decimoquinto
+number.16 = dieciséis | decimosexto
+number.17 = diecisiete | decimoséptimo
+number.18 = dieciocho | decimoctavo
+number.19 = diecinueve | decimonoveno
+number.20 = veinte | vigésimo
+number.21 = veintiuno | vigésimo primero
+number.22 = veintidos | vigésimo segundo
+number.23 = veintitres | vigésimo tercero
+number.24 = veinticuatro | vigésimo cuarto
+number.25 = veinticinco | vigésimo quinto
+number.26 = veintiséis | vigésimo sexto
+number.27 = veintisiete | vigésimo séptimo
+number.28 = veintiocho | vigésimo octavo
+number.29 = veintinueve | vigésimo noveno
+number.30 = treinta | trigésimo
+number.31 = treinta y uno | trigésimo primero
+alphabet = abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-invitations-dialog.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-invitations-dialog.dtd
new file mode 100644
index 0000000000..38091eade6
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-invitations-dialog.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 calendar.invitations.dialog.invitations.text "Invitaciones">
+<!ENTITY calendar.invitations.dialog.statusmessage.updating.text "Actualizando lista de invitaciones.">
+<!ENTITY calendar.invitations.dialog.statusmessage.noinvitations.text "No se han encontrado invitaciones sin confirmar.">
+<!ENTITY calendar.invitations.list.accept.button.label "Aceptar">
+<!ENTITY calendar.invitations.list.decline.button.label "Rechazar">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-invitations-dialog.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-invitations-dialog.properties
new file mode 100644
index 0000000000..dcb43e465b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 de día completo
+recurrent-event = Evento repetitivo
+location = Lugar: %S
+organizer = Organizador: %S
+attendee = Asistente: %S
+none = Ninguna
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-occurrence-prompt.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-occurrence-prompt.dtd
new file mode 100644
index 0000000000..68749fafb7
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "s">
+<!ENTITY buttons.allfollowing.accesskey "f">
+<!ENTITY buttons.parent.accesskey "E">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-occurrence-prompt.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-occurrence-prompt.properties
new file mode 100644
index 0000000000..ed4cbb6e52
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar-occurrence-prompt.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/.
+
+header.isrepeating.event.label = es un evento repetitivo
+header.isrepeating.task.label = es una tarea repetitiva
+header.containsrepeating.event.label = contiene eventos repetitivos
+header.containsrepeating.task.label = contiene tareas repetitivas
+header.containsrepeating.mixed.label = contiene elementos repetitivos de diferentes tipos
+windowtitle.event.copy = Copiar evento repetitivo
+windowtitle.task.copy = Copiar tarea repetitiva
+windowtitle.mixed.copy = Copiar elementos repetitivos
+windowtitle.event.cut = Cortar evento repetitivo
+windowtitle.task.cut = Cortar tarea repetitiva
+windowtitle.mixed.cut = Cortar elementos repetitivos
+windowtitle.event.delete = Eliminar evento repetitivo
+windowtitle.task.delete = Eliminar tarea repetitiva
+windowtitle.mixed.delete = Eliminar elementos repetitivos
+windowtitle.event.edit = Editar evento repetitivo
+windowtitle.task.edit = Editar tarea repetitiva
+windowtitle.mixed.edit = Editar elementos repetitivos
+windowtitle.multipleitems = Elementos seleccionados
+buttons.single.occurrence.copy.label = Copiar solo esta repetición
+buttons.single.occurrence.cut.label = Cortar solo esta repetición
+buttons.single.occurrence.delete.label = Eliminar sólo esta repetición
+buttons.single.occurrence.edit.label = Editar solo esta repetición
+buttons.multiple.occurrence.copy.label = Copiar solo las repeticiones seleccionadas
+buttons.multiple.occurrence.cut.label = Cortar solo las repeticiones seleccionadas
+buttons.multiple.occurrence.delete.label = Eliminar solo las repeticiones seleccionadas
+buttons.multiple.occurrence.edit.label = Editar solo las repeticiones seleccionadas
+buttons.single.allfollowing.copy.label = Copiar esta y todas las futuras repeticiones
+buttons.single.allfollowing.cut.label = Cortar esta y todas las futuras repeticiones
+buttons.single.allfollowing.delete.label = Eliminar esta repetición y todas las futuras
+buttons.single.allfollowing.edit.label = Editar esta repetición y todas las futuras
+buttons.multiple.allfollowing.copy.label = Copiar la repetición seleccionada y todas las futuras
+buttons.multiple.allfollowing.cut.label = Cortar la repetición seleccionada y todas las futuras
+buttons.multiple.allfollowing.delete.label = Eliminar esta repetición y todas las futuras
+buttons.multiple.allfollowing.edit.label = Editar esta repetición y todas las futuras
+buttons.single.parent.copy.label = Copiar todas las repeticiones
+buttons.single.parent.cut.label = Cortar todas las repeticiones
+buttons.single.parent.delete.label = Eliminar todas las repeticiones
+buttons.single.parent.edit.label = Editar todas las repeticiones
+buttons.multiple.parent.copy.label = Copiar todas las repeticiones de los elementos seleccionados
+buttons.multiple.parent.cut.label = Cortar todas las repeticiones de los elementos seleccionados
+buttons.multiple.parent.delete.label = Eliminar todas las repeticiones de los elementos seleccionados
+buttons.multiple.parent.edit.label = Editar todas las repeticiones de los elementos seleccionados
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar.dtd
new file mode 100644
index 0000000000..822221edf0
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar.dtd
@@ -0,0 +1,320 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 calendar.calendar.label "Calendario">
+<!ENTITY calendar.calendar.accesskey "C">
+<!ENTITY calendar.newevent.button.tooltip "Crear un nuevo evento en el calendario">
+<!ENTITY calendar.newtask.button.tooltip "Crear una tarea nueva">
+<!ENTITY calendar.unifinder.todoitems.label "Tareas">
+<!ENTITY calendar.unifinder.showcompletedtodos.label "Mostrar tareas completadas">
+<!ENTITY calendar.today.button.label "Hoy">
+<!ENTITY calendar.tomorrow.button.label "Mañana">
+<!ENTITY calendar.upcoming.button.label "Próximamente">
+<!ENTITY calendar.events.filter.all.label "Todos los eventos">
+<!ENTITY calendar.events.filter.today.label "Eventos de hoy">
+<!ENTITY calendar.events.filter.future.label "Todos los eventos futuros">
+<!ENTITY calendar.events.filter.current.label "Día seleccionado">
+<!ENTITY calendar.events.filter.currentview.label "Eventos en la vista actual">
+<!ENTITY calendar.events.filter.next7Days.label "Eventos en los próximos 7 días">
+<!ENTITY calendar.events.filter.next14Days.label "Eventos en los próximos 14 días">
+<!ENTITY calendar.events.filter.next31Days.label "Eventos en los próximos 31 días">
+<!ENTITY calendar.events.filter.thisCalendarMonth.label "Eventos en este mes del calendario">
+<!ENTITY calendar.unifinder.tree.done.label "Hecho">
+<!ENTITY calendar.unifinder.tree.done.tooltip2 "Ordenar por progreso">
+<!ENTITY calendar.unifinder.tree.priority.label "Prioridad">
+<!ENTITY calendar.unifinder.tree.priority.tooltip2 "Ordenar por prioridad">
+<!ENTITY calendar.unifinder.tree.title.label "Título">
+<!ENTITY calendar.unifinder.tree.title.tooltip2 "Ordenar por tamaño">
+<!ENTITY calendar.unifinder.tree.percentcomplete.label "&#037; completo">
+<!ENTITY calendar.unifinder.tree.percentcomplete.tooltip2 "Ordenar por &#037; progreso">
+<!ENTITY calendar.unifinder.tree.startdate.label "Inicio">
+<!ENTITY calendar.unifinder.tree.startdate.tooltip2 "Ordenar por fecha de inicio">
+<!ENTITY calendar.unifinder.tree.enddate.label "Fin">
+<!ENTITY calendar.unifinder.tree.enddate.tooltip2 "Ordenar por fecha final">
+<!ENTITY calendar.unifinder.tree.duedate.label "Vencimiento">
+<!ENTITY calendar.unifinder.tree.duedate.tooltip2 "Ordenar por fecha límite">
+<!ENTITY calendar.unifinder.tree.completeddate.label "Completado">
+<!ENTITY calendar.unifinder.tree.completeddate.tooltip2 "Ordenar por fecha en la que se completó">
+<!ENTITY calendar.unifinder.tree.categories.label "Categoría">
+<!ENTITY calendar.unifinder.tree.categories.tooltip2 "Ordenar por categoría">
+<!ENTITY calendar.unifinder.tree.location.label "Lugar">
+<!ENTITY calendar.unifinder.tree.location.tooltip2 "Ordenar por ubicación">
+<!ENTITY calendar.unifinder.tree.status.label "Estado">
+<!ENTITY calendar.unifinder.tree.status.tooltip2 "Ordenar por estado">
+<!ENTITY calendar.unifinder.tree.calendarname.label "Nombre del calendario">
+<!ENTITY calendar.unifinder.tree.calendarname.tooltip2 "Ordenar por nombre de calendario">
+<!ENTITY calendar.unifinder.tree.duration.label "Vence en">
+<!ENTITY calendar.unifinder.tree.duration.tooltip2 "Ordenar por tiempo hasta vencimiento">
+<!ENTITY calendar.unifinder.close.tooltip "Cerrar búsqueda y lista de eventos">
+<!ENTITY calendar.today.button.tooltip "Ir a hoy">
+<!ENTITY calendar.todaypane.button.tooltip "Mostrar panel Para hoy">
+<!ENTITY calendar.day.button.tooltip "Cambiar a vista diaria">
+<!ENTITY calendar.week.button.tooltip "Cambiar a vista semanal">
+<!ENTITY calendar.month.button.tooltip "Cambiar a vista mensual">
+<!ENTITY calendar.multiweek.button.tooltip "Cambiar a vista multisemanal">
+<!ENTITY calendar.nextday.label "Día siguiente">
+<!ENTITY calendar.prevday.label "Día anterior">
+<!ENTITY calendar.nextday.accesskey "s">
+<!ENTITY calendar.prevday.accesskey "t">
+<!ENTITY calendar.nextweek.label "Semana siguiente">
+<!ENTITY calendar.prevweek.label "Semana anterior">
+<!ENTITY calendar.nextweek.accesskey "s">
+<!ENTITY calendar.prevweek.accesskey "t">
+<!ENTITY calendar.nextmonth.label "Mes siguiente">
+<!ENTITY calendar.prevmonth.label "Mes anterior">
+<!ENTITY calendar.nextmonth.accesskey "s">
+<!ENTITY calendar.prevmonth.accesskey "t">
+<!ENTITY calendar.navigation.nextday.tooltip "Un día hacia delante">
+<!ENTITY calendar.navigation.prevday.tooltip "Un día hacia atrás">
+<!ENTITY calendar.navigation.nextweek.tooltip "Una semana hacia delante">
+<!ENTITY calendar.navigation.prevweek.tooltip "Una semana hacia atrás">
+<!ENTITY calendar.navigation.nextmonth.tooltip "Un mes hacia delante">
+<!ENTITY calendar.navigation.prevmonth.tooltip "Un mes hacia atrás">
+<!ENTITY calendar.newevent.button.label "Nuevo evento">
+<!ENTITY calendar.newtask.button.label "Nueva tarea">
+<!ENTITY calendar.print.button.label "Imprimir">
+<!ENTITY calendar.print.button.accesskey "P">
+<!ENTITY calendar.day.button.label "Día">
+<!ENTITY calendar.week.button.label "Semana">
+<!ENTITY calendar.month.button.label "Mes">
+<!ENTITY calendar.multiweek.button.label "Multisemana">
+<!ENTITY calendar.onlyworkday.checkbox.label "Sólo días laborables">
+<!ENTITY calendar.onlyworkday.checkbox.accesskey "d">
+<!ENTITY calendar.displaytodos.checkbox.label "Tareas en la vista">
+<!ENTITY calendar.displaytodos.checkbox.accesskey "T">
+<!ENTITY calendar.completedtasks.checkbox.label "Mostrar tareas completadas">
+<!ENTITY calendar.completedtasks.checkbox.accesskey "c">
+<!ENTITY calendar.orientation.label "Rotar vista">
+<!ENTITY calendar.orientation.accesskey "o">
+<!ENTITY calendar.search.options.searchfor " contienen">
+<!ENTITY calendar.list.header.label "Calendario">
+<!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 "Hoy">
+<!ENTITY calendar.task.filter.today.accesskey "H">
+<!ENTITY calendar.task.filter.next7days.label "Los próximos siete días">
+<!ENTITY calendar.task.filter.next7days.accesskey "L">
+<!ENTITY calendar.task.filter.notstarted.label "Tareas no comenzadas">
+<!ENTITY calendar.task.filter.notstarted.accesskey "a">
+<!ENTITY calendar.task.filter.overdue.label "Tareas vencidas">
+<!ENTITY calendar.task.filter.overdue.accesskey "v">
+<!ENTITY calendar.task.filter.completed.label "Tareas completadas">
+<!ENTITY calendar.task.filter.completed.accesskey "C">
+<!ENTITY calendar.task.filter.open.label "Tareas incompletas">
+<!ENTITY calendar.task.filter.open.accesskey "m">
+<!ENTITY calendar.task.filter.current.label "Tareas actuales">
+<!ENTITY calendar.task.filter.current.accesskey "a">
+<!ENTITY calendar.task-details.title.label "título">
+<!ENTITY calendar.task-details.organizer.label "de">
+<!ENTITY calendar.task-details.priority.label "prioridad">
+<!ENTITY calendar.task-details.priority.low.label "Baja">
+<!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 "categoría">
+<!ENTITY calendar.task-details.repeat.label "repetir">
+<!ENTITY calendar.task-details.attachments.label "adjuntos">
+<!ENTITY calendar.task-details.start.label "fecha de inicio">
+<!ENTITY calendar.task-details.due.label "fecha límite">
+<!ENTITY calendar.task.category.button.tooltip "Categorizar tareas">
+<!ENTITY calendar.task.complete.button.tooltip "Marcar tareas seleccionadas como completadas">
+<!ENTITY calendar.task.priority.button.tooltip "Cambiar la prioridad">
+<!ENTITY calendar.task.text-filter.textbox.emptytext.base1 "Filtrar tareas #1">
+<!ENTITY calendar.task.text-filter.textbox.emptytext.keylabel.nonmac "&lt;Ctrl+Mayús+K&gt;">
+<!ENTITY calendar.task.text-filter.textbox.emptytext.keylabel.mac "&lt;⇧⌘K&gt;">
+<!ENTITY calendar.context.modifyorviewitem.label "Abrir">
+<!ENTITY calendar.context.modifyorviewitem.accesskey "A">
+<!ENTITY calendar.context.modifyorviewtask.label "Abrir tarea…">
+<!ENTITY calendar.context.modifyorviewtask.accesskey "A">
+<!ENTITY calendar.context.newevent.label "Nuevo evento...">
+<!ENTITY calendar.context.newevent.accesskey "N">
+<!ENTITY calendar.context.newtodo.label "Nueva tarea...">
+<!ENTITY calendar.context.newtodo.accesskey "r">
+<!ENTITY calendar.context.deletetask.label "Eliminar tarea">
+<!ENTITY calendar.context.deletetask.accesskey "l">
+<!ENTITY calendar.context.deleteevent.label "Eliminar evento">
+<!ENTITY calendar.context.deleteevent.accesskey "l">
+<!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 "Pegar">
+<!ENTITY calendar.context.pasteevent.accesskey "P">
+<!ENTITY calendar.context.button.label "Panel Para hoy">
+<!ENTITY calendar.context.button.accesskey "P">
+<!ENTITY calendar.context.attendance.menu.label "Asistencia">
+<!ENTITY calendar.context.attendance.menu.accesskey "s">
+<!ENTITY calendar.context.attendance.occurrence.label "Esta aparición">
+<!ENTITY calendar.context.attendance.all2.label "Series completas">
+<!ENTITY calendar.context.attendance.send.label "Enviar una notificación ahora">
+<!ENTITY calendar.context.attendance.send.accesskey "v">
+<!ENTITY calendar.context.attendance.dontsend.label "No enviar una notificación">
+<!ENTITY calendar.context.attendance.dontsend.accesskey "N">
+<!ENTITY calendar.context.attendance.occ.accepted.accesskey "A">
+<!ENTITY calendar.context.attendance.occ.accepted.label "Aceptado">
+<!ENTITY calendar.context.attendance.occ.tentative.accesskey "A">
+<!ENTITY calendar.context.attendance.occ.tentative.label "Aceptado provisionalmente">
+<!ENTITY calendar.context.attendance.occ.declined.accesskey "c">
+<!ENTITY calendar.context.attendance.occ.declined.label "Declinado">
+<!ENTITY calendar.context.attendance.occ.delegated.accesskey "g">
+<!ENTITY calendar.context.attendance.occ.delegated.label "Delegado">
+<!ENTITY calendar.context.attendance.occ.needsaction.accesskey "n">
+<!ENTITY calendar.context.attendance.occ.needsaction.label "Aún necesita intervención">
+<!ENTITY calendar.context.attendance.occ.inprogress.accesskey "E">
+<!ENTITY calendar.context.attendance.occ.inprogress.label "En progreso">
+<!ENTITY calendar.context.attendance.occ.completed.accesskey "C">
+<!ENTITY calendar.context.attendance.occ.completed.label "Completada">
+<!ENTITY calendar.context.attendance.all.accepted.accesskey "e">
+<!ENTITY calendar.context.attendance.all.accepted.label "Aceptado">
+<!ENTITY calendar.context.attendance.all.tentative.accesskey "v">
+<!ENTITY calendar.context.attendance.all.tentative.label "Aceptado provisionalmente">
+<!ENTITY calendar.context.attendance.all.declined.accesskey "D">
+<!ENTITY calendar.context.attendance.all.declined.label "Declinado">
+<!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 "Aún necesita intervención">
+<!ENTITY calendar.context.attendance.all.inprogress.accesskey "p">
+<!ENTITY calendar.context.attendance.all.inprogress.label "En progreso">
+<!ENTITY calendar.context.attendance.all.completed.accesskey "m">
+<!ENTITY calendar.context.attendance.all.completed.label "Completada">
+<!ENTITY calendar.context.progress.label "Progreso">
+<!ENTITY calendar.context.progress.accesskey "P">
+<!ENTITY calendar.context.priority.label "Prioridad">
+<!ENTITY calendar.context.priority.accesskey "r">
+<!ENTITY calendar.context.postpone.label "Postponer tarea">
+<!ENTITY calendar.context.postpone.accesskey "P">
+<!ENTITY percnt " &#037;">
+<!ENTITY calendar.context.markcompleted.label "Marcar como completada">
+<!ENTITY calendar.context.markcompleted.accesskey "o">
+<!ENTITY progress.level.0 "0&percnt; completado">
+<!ENTITY progress.level.0.accesskey "0">
+<!ENTITY progress.level.25 "25&percnt; completado">
+<!ENTITY progress.level.25.accesskey "2">
+<!ENTITY progress.level.50 "50&percnt; completado">
+<!ENTITY progress.level.50.accesskey "5">
+<!ENTITY progress.level.75 "75&percnt; completado">
+<!ENTITY progress.level.75.accesskey "7">
+<!ENTITY progress.level.100 "100&percnt; completado">
+<!ENTITY progress.level.100.accesskey "1">
+<!ENTITY priority.level.none "No especificado">
+<!ENTITY priority.level.none.accesskey "o">
+<!ENTITY priority.level.low "Baja">
+<!ENTITY priority.level.low.accesskey "B">
+<!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 día">
+<!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 la dirección del enlace">
+<!ENTITY calendar.copylink.accesskey "C">
+<!ENTITY calendar.taskview.delete.label "Eliminar">
+<!ENTITY calendar.context.newserver.label "Nuevo calendario…">
+<!ENTITY calendar.context.newserver.accesskey "N">
+<!ENTITY calendar.context.findcalendar.label "Encontrar calendario…">
+<!ENTITY calendar.context.findcalendar.accesskey "c">
+<!ENTITY calendar.context.deleteserver2.label "Eliminar calendario…">
+<!ENTITY calendar.context.deleteserver2.accesskey "E">
+<!ENTITY calendar.context.removeserver.label "Eliminar calendario…">
+<!ENTITY calendar.context.removeserver.accesskey "E">
+<!ENTITY calendar.context.unsubscribeserver.label "Cancelar suscripción a calendario…">
+<!ENTITY calendar.context.unsubscribeserver.accesskey "C">
+<!ENTITY calendar.context.synccalendars.label "Sincronizar calendarios">
+<!ENTITY calendar.context.synccalendars.accesskey "S">
+<!ENTITY calendar.context.publish.label "Publicar calendario…">
+<!ENTITY calendar.context.publish.accesskey "b">
+<!ENTITY calendar.context.export.label "Exportar calendario...">
+<!ENTITY calendar.context.export.accesskey "E">
+<!ENTITY calendar.context.properties.label "Propiedades">
+<!ENTITY calendar.context.properties.accesskey "P">
+<!ENTITY calendar.context.showcalendar.accesskey "M">
+<!ENTITY calendar.context.hidecalendar.accesskey "O">
+<!ENTITY calendar.context.showonly.accesskey "O">
+<!ENTITY calendar.context.showall.label "Mostrar todos los calendarios">
+<!ENTITY calendar.context.showall.accesskey "i">
+<!ENTITY calendar.context.convertmenu.label "Convertir a">
+<!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 "Mensaje…">
+<!ENTITY calendar.context.convertmenu.message.accesskey "M">
+<!ENTITY calendar.context.convertmenu.task.label "Tarea…">
+<!ENTITY calendar.context.convertmenu.task.accesskey "T">
+<!ENTITY calendar.tasks.view.minimonth.label "Mini-mes">
+<!ENTITY calendar.tasks.view.minimonth.accesskey "M">
+<!ENTITY calendar.tasks.view.calendarlist.label "Lista de calendarios">
+<!ENTITY calendar.tasks.view.calendarlist.accesskey "L">
+<!ENTITY calendar.tasks.view.filtertasks.label "Filtrar tareas">
+<!ENTITY calendar.tasks.view.filtertasks.accesskey "F">
+<!ENTITY calendar.alarm.location.label "Lugar:">
+<!ENTITY calendar.alarm.details.label "Detalles…">
+<!ENTITY calendar.alarm.snoozefor.label "Silenciar durante">
+<!ENTITY calendar.alarm.snoozeallfor.label "Silenciar todas las alarmas durante">
+<!ENTITY calendar.alarm.title.label "Aviso del calendario">
+<!ENTITY calendar.alarm.dismiss.label "Descartar">
+<!ENTITY calendar.alarm.dismissall.label "Descartar todo">
+<!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 día">
+<!ENTITY calendar.alarm.snooze.cancel "Cancelar apagado">
+<!ENTITY calendar.server.dialog.title.edit "Editar calendario">
+<!ENTITY calendar.server.dialog.name.label "Nombre del calendario:">
+<!ENTITY calendarproperties.color.label "Color:">
+<!ENTITY calendarproperties.webdav.label "iCalendar (ICS)">
+<!ENTITY calendarproperties.caldav.label "CalDAV">
+<!ENTITY calendarproperties.wcap.label "Sun Java System Calendar Server (WCAP)">
+<!ENTITY calendarproperties.format.label "Formato:">
+<!ENTITY calendarproperties.location.label "Lugar:">
+<!ENTITY calendarproperties.refreshInterval.label "Refrescar calendario:">
+<!ENTITY calendarproperties.refreshInterval.manual.label "Manualmente">
+<!ENTITY calendarproperties.name.label "Nombre:">
+<!ENTITY calendarproperties.readonly.label "Sólo lectura">
+<!ENTITY calendarproperties.firealarms.label "Mostrar avisos">
+<!ENTITY calendarproperties.cache3.label "Compatible con el modo sin conexión">
+<!ENTITY calendarproperties.enabled.label "Activar este calendario">
+<!ENTITY calendarproperties.enabled2.label "Activar este calendario">
+<!ENTITY calendarproperties.forceDisabled.label "No se ha encontrado el proveedor de este calendario. Esto sucede a menudo si ha desactivado o desinstalado ciertos complementos.">
+<!ENTITY calendarproperties.unsubscribe.label "Cancelar suscripción">
+<!ENTITY calendarproperties.unsubscribe.accesskey "U">
+<!ENTITY calendar.publish.dialog.title "Publicar calendario">
+<!ENTITY calendar.publish.url.label "URL de publicación">
+<!ENTITY calendar.publish.publish.button "Publicar">
+<!ENTITY calendar.publish.close.button "Cerrar">
+<!ENTITY calendar.publish.example.url.description "Algo como http://www.myserver.com/webdav/test.ics">
+<!ENTITY calendar.select.dialog.title "Seleccionar calendario">
+<!ENTITY calendar.print.window.title "Imprimir un calendario">
+<!ENTITY calendar.print.title.label "Título:">
+<!ENTITY calendar.print.layout.label "Disposición:">
+<!ENTITY calendar.print.range.label "Qué imprimir">
+<!ENTITY calendar.print.currentView2.label "Vista actual">
+<!ENTITY calendar.print.selectedEventsAndTasks.label "Eventos/tareas seleccionados">
+<!ENTITY calendar.print.tasks.label "Tareas">
+<!ENTITY calendar.print.events.label "Eventos">
+<!ENTITY calendar.print.custom.label "Rango de fechas personalizado:">
+<!ENTITY calendar.print.from.label "De:">
+<!ENTITY calendar.print.to.label "A:">
+<!ENTITY calendar.print.settingsGroup.label "Configuración de impresión">
+<!ENTITY calendar.print.optionsGroup.label "Opciones">
+<!ENTITY calendar.print.taskswithnoduedate.label "Tareas sin fecha límite">
+<!ENTITY calendar.print.completedtasks.label "Tareas completadas">
+<!ENTITY calendar.error.detail "Detalles…">
+<!ENTITY calendar.error.code "Código de error:">
+<!ENTITY calendar.error.description "Descripción:">
+<!ENTITY calendar.error.title "Ha ocurrido un error">
+<!ENTITY calendar.extract.event.button "Añadir como evento">
+<!ENTITY calendar.extract.task.button "Añadir como tarea">
+<!ENTITY calendar.extract.event.button.tooltip "Extraer información de calendario del mensaje y añadirla a su calendario como un evento">
+<!ENTITY calendar.extract.task.button.tooltip "Extraer información de calendario del mensaje y añadirla a su calendario como una tarea">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendar.properties
new file mode 100644
index 0000000000..47e074622a
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Nuevo evento
+
+# Titles for the event/task dialog
+newEventDialog=Nuevo evento
+editEventDialog=Editar evento
+newTaskDialog=Nueva tarea
+editTaskDialog=Editar tarea
+
+# Do you want to save changes?
+askSaveTitleEvent=Guardar evento
+askSaveTitleTask=Guardar tarea
+askSaveMessageEvent=El evento no ha sido guardado. ¿Quiere guardar el evento?
+askSaveMessageTask=La tarea no ha sido guardada. ¿Quiere guardar la tarea?
+
+# Event Dialog Warnings
+warningEndBeforeStart=La fecha final que ha introducido tiene lugar antes de la de inicio
+warningUntilDateBeforeStart=La fecha final sucede antes de la de inicio
+
+# The name of the calendar provided with the application by default
+homeCalendarName=Casa
+
+# The name given to a calendar if an opened calendar has an empty filename
+untitledCalendarName=Calendario sin título
+
+# Event status: Tentative, Confirmed, Cancelled
+# ToDo task status: NeedsAction, InProcess, Completed, Cancelled
+statusTentative =Provisional
+statusConfirmed =Confirmado
+eventStatusCancelled=Cancelado
+todoStatusCancelled =Cancelado
+statusNeedsAction =Necesita intervención
+statusInProcess =En proceso
+statusCompleted =Completado
+
+# Task priority, these should match the priority.level.* labels in calendar.dtd
+highPriority=Alta
+normalPriority=Normal
+lowPriority=Baja
+
+importPrompt=¿En qué calendario quiere importar estos elementos?
+exportPrompt=¿De qué calendario desea exportar?
+pastePrompt=¿En cuál de sus calendarios actualmente editables quiere pegar?
+publishPrompt=¿Qué calendario quiere publicar?
+
+# LOCALIZATION NOTE (pasteEventAlso): The users pasting operation includes among
+# others also a meeting invitation - this is used as a affix in
+# pasteNotifyAbout
+pasteEventAlso=El contenido que ha pegado incluye un evento
+# LOCALIZATION NOTE (pasteEventsAlso): The users pasting operation includes among
+# others also several meeting invitations - this is used as a affix in
+# pasteNotifyAbout
+pasteEventsAlso=El contenido que ha pegado incluye eventos
+# LOCALIZATION NOTE (pasteTaskAlso): The users pasting operation includes among
+# others also an assigned task - this is used as a affix in pasteNotifyAbout
+pasteTaskAlso=El contenido que ha pegado incluye una tarea asignada
+# LOCALIZATION NOTE (pasteTasksAlso): The users pasting operation include among
+# others also several assigned tasks - this is used as a affix in
+# pasteNotifyAbout
+pasteTasksAlso=El contenido que ha pegado incluye tareas asignadas
+# 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=El contenido que ha pegado incluye eventos y tareas asignadas
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting a meeting -
+# this is used as a affix in pasteNotifyAbout
+pasteEventOnly=Está pegando un evento
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several meetings -
+# this is used as a affix in pasteNotifyAbout
+pasteEventsOnly=Está pegando eventos
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting an assigned task -
+# this is used as a affix in pasteNotifyAbout
+pasteTaskOnly=Está pegando una tarea asignada
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several assigned
+# tasks - this is used as a affix in pasteNotifyAbout
+pasteTasksOnly=Está pegando tareas asignadas
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting assigned task(s) and
+# meeting(s) - this is used as a affix in pasteNotifyAbout
+pasteItemsOnly=Está pegando eventos y tareas asignadas
+
+# LOCALIZATION NOTE (pasteNotifyAbout): Text displayed if pasting an invitation
+# or assigned task
+# %1$S - pasteEvent* or pasteTask*
+pasteNotifyAbout=%1$S - ¿desea enviar una actualización a todos los involucrados?
+
+# LOCALIZATION NOTE (pasteAndNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteAndNotifyLabel=Pegar y enviar ahora
+# LOCALIZATION NOTE (pasteDontNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteDontNotifyLabel=Pegar sin 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=No se pudieron importar %1$S elementos. El último error ha sido: %2$S
+# LOCALIZATION NOTE (noItemsInCalendarFile2):
+# %1$S will be replaced with file path
+noItemsInCalendarFile2=No se puede importar desde %1$S. No hay elementos importables en este archivo.
+
+#spaces needed at the end of the following lines
+eventDescription=Descripción:
+
+unableToRead=No se puede leer del archivo:
+unableToWrite=No se puede escribir en el archivo:
+defaultFileName=MozillaCalEvents
+HTMLTitle=Calendario de 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=Se ha encontrado una zona horaria desconocida e indefinida mientras se leía %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=Se ha(n) ignorado %1$S elemento(s) puesto que ya existen tanto en el calendario de destino como en %2$S.
+
+unableToCreateProvider=Se ha encontrado un error preparando el calendario situado en %1$S para su uso. No estará disponible.
+
+# Sample: Unknown timezone "USPacific" in "Dentist Appt". Using the 'floating' local timezone instead: 2008/02/28 14:00:00
+unknownTimezoneInItem=Zona horaria desconocida "%1$S" en "%2$S". Se tratará en su lugar como la zona horaria local 'flotante': %3$S
+TimezoneErrorsAlertTitle=Errores en zonas horarias
+TimezoneErrorsSeeConsole=Ver consola de errores: las zonas horarias desconocidas se tratan como la zona horaria local 'flotante'.
+
+# The following strings are for the prompt to delete/unsubscribe from the calendar
+removeCalendarTitle=Eliminar calendario
+removeCalendarButtonDelete=Eliminar calendario
+removeCalendarButtonUnsubscribe=Cancelar suscripción
+
+# LOCALIZATION NOTE (removeCalendarMessageDeleteOrUnsubscribe): Shown for
+# calendar where both deleting and unsubscribing is possible.
+# %1$S: The name of a calendar
+removeCalendarMessageDeleteOrUnsubscribe=¿Desea eliminar el calendario "%1$S"? Cancelar la suscripción eliminará el calendario de la lista, vaciarlo también purgará los datos que contiene de forma permanente.
+
+# LOCALIZATION NOTE (removeCalendarMessageDelete): Shown for calendar where
+# deleting is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageDelete=¿Desea eliminar permanentemente el calendario "%1$S"?
+
+# LOCALIZATION NOTE (removeCalendarMessageUnsubscribe): Shown for calendar
+# where unsubscribing is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageUnsubscribe=¿Desea cancelar la suscripción al calendario "%1$S"?
+
+WeekTitle=Semana %1$S
+None=Ninguna
+
+# 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=Sus datos de calendario no son compatibles con esta versión de %1$S. Los datos de calendario en su perfil han sido actualizados por una versión más reciente de %1$S. Se ha creado una copia de seguridad del archivo de datos llamada "%2$S". Continuando con un nuevo archivo de datos.
+
+# List of events or todos (unifinder)
+eventUntitled=Sin título
+
+# Tooltips of events or todos
+tooltipTitle=Título:
+tooltipLocation=Lugar:
+# 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=Fecha:
+# event calendar name
+tooltipCalName=Nombre del calendario:
+# event status: tentative, confirmed, cancelled
+tooltipStatus=Estado:
+# event organizer
+tooltipOrganizer=Organizador:
+# task/todo fields
+# start date time, due date time, task priority number, completed date time
+tooltipStart=Inicio:
+tooltipDue=Vencimiento:
+tooltipPriority=Prioridad:
+tooltipPercent=% completo:
+tooltipCompleted=Completado:
+
+#File commands and dialogs
+New=Nuevo
+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=Ha ocurrido un error
+httpPutError=La publicación del archivo de calendario ha fallado.\nCódigo de estado: %1$S: %2$S
+otherPutError=La publicación del archivo de calendario ha fallado.\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=Ha habido un error al leer datos del calendario: %1$S. Se ha pasado a modo de sólo lectura, ya que los cambios en este calendario probablemente provocarían pérdida de datos. Puede cambiar esta configuración si elige 'Editar calendario'.
+
+# 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=Ha habido un error al leer datos del calendario: %1$S. Ha sido desactivado hasta que sea seguro usarlo.
+
+# 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=Ha habido un error al leer datos del calendario: %1$S. Sin embargo, este error parece menor, por lo que el programa intentará 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=Ha habido un error al leer datos del calendario: %1$S.
+utf8DecodeError=Ha ocurrido un error al decodificar un archivo iCalendar (ics) como UTF-8. Compruebe que el archivo está codificado usando UTF-8, incluyendo símbolos y letras acentuadas.
+icsMalformedError=La interpretación de un archivo iCalendar (ics) ha fallado. Compruebe que el archivo es conforme a la sintaxis de archivo iCalendar (ics).
+itemModifiedOnServerTitle=Elemento modificado en el servidor
+itemModifiedOnServer=Este elemento ha sido modificado recientemente en el servidor.\n
+modifyWillLoseData=Enviar sus cambios provocará que se sobreescriban los cambios hechos en el servidor.
+deleteWillLoseData=Borrar este elemento hará que se pierdan los cambios en el servidor.
+updateFromServer=Descartar mis cambios y recargar
+proceedModify=Enviar mis cambios de todas formas
+proceedDelete=Borrar de todas formas
+dav_notDav=El recurso en %1$S o no es una colección DAV o no está disponible
+dav_davNotCaldav=El recurso en %1$S es una colección DAV pero no un calendario CalDAV
+itemPutError=Ha sucedido un error al guardar el elemento en el servidor.
+itemDeleteError=Ha sucedido un error al eliminar el elemento del servidor.
+caldavRequestError=Ha ocurrido un error al enviar la invitación.
+caldavResponseError=Ha ocurrido un error al enviar la respuesta.
+caldavRequestStatusCode=Código de estado: %1$S
+caldavRequestStatusCodeStringGeneric=La solicitud no puede ser procesada.
+caldavRequestStatusCodeString400=La solicitud contiene errores de sintaxis y no puede ser procesada.
+caldavRequestStatusCodeString403=El usuario no tiene los permisos necesario para ejecutar la solicitud.
+caldavRequestStatusCodeString404=Recurso no encontrado.
+caldavRequestStatusCodeString409=Conflicto de recursos.
+caldavRequestStatusCodeString412=Precondición fallida.
+caldavRequestStatusCodeString500=Error interno del servidor.
+caldavRequestStatusCodeString502=Pasarela errónea (¿configuración del proxy?).
+caldavRequestStatusCodeString503=Error interno del servidor (¿caída temporal del servidor?).
+caldavRedirectTitle=¿Actualizar dirección del calendario %1$S?
+caldavRedirectText=Las solicitudes para %1$S están siendo redirigidas a una nueva dirección. ¿Le gustaría cambiar la dirección al siguiente valor?
+caldavRedirectDisableCalendar=Desactivar calendario
+
+
+# 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=Europe/Madrid, Africa/Ceuta, Atlantic/Canary, America/Mexico_City, America/Argentina/Buenos_Aires, America/Santiago, America/Tijuana, America/Santo_Domingo, America/Puerto_Rico, America/Panama, America/Merida, America/Montevideo, America/Monterrey, America/La_Paz, America/Lima
+
+# 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=Advertencia: la zona horaria del sistema operativo "%1$S"\nya no coincide con la zona horaria interna 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=Se ignora la zona horaria '%1$S' del sistema operativo.
+
+# "Skipping locale timezone 'America/New_Yawk'."
+# Testing note: Skipping occurs if a likelyTimezone id is unknown or misspelled.
+SkippingLocaleTimezone=Se ignora la zona horaria '%1$S' del idioma.
+
+# 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=Advertencia: se usa una zona horaria "flotante".\nNinguna zona horaria ZoneInfo coincide con los datos de la zona horaria del 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=Advertencia: se infiere la zona horaria\n %1$S (UTC%2$S).\n%3$S\n%4$S
+
+# Testing note: "Almost match" timezones include Cairo on W2k.
+TZAlmostMatchesOSDifferAtMostAWeek=Esta zona horaria ZoneInfo coincide casi por completo con la zona horaria \ndel sistema operativo. Para esta regla, las próximas transiciones entre la \nhora de verano e invierno difieren en, como mucho, una semana respecto de las \n transiciones de la zona horaria del sistema operativo. Puede haber \n discrepancias en los datos, como una fecha de inicio diferente, o una regla\n diferente, o una aproximación a una regla de un calendario no gregoriano.
+
+TZSeemsToMatchOS=Esta zona horaria ZoneInfo parece coincidir con la zona horaria del sistema operativo este año.
+
+# LOCALIZATION NOTE (TZFromOS):
+# used for a display of a chosen timezone
+# %1$S will be replaced with the name of a timezone
+TZFromOS=Esta zona horaria ZoneInfo se ha elegido basándose en el identificador de \nzona horaria del sistema operativo "%1$S".
+
+# Localization note (TZFromLocale): Substitute name of your locale language.
+TZFromLocale=Esta zona horaria ZoneInfo se ha elegido por coincidencia entre la zona \nhoraria del sistema operativo con zonas horarias probablemente usadas por los usuarios de \nInternet que utilizan español de España.
+
+TZFromKnownTimezones=Esta zona horaria ZoneInfo se ha elegido por coincidencia entre la zona horaria \ndel sistema operativo entre una lista de zonas horarias conocidas ordenada \nalfabética de identificador de zona horaria.
+
+# Print Layout
+tasksWithNoDueDate = Tareas sin fecha límite
+
+# Providers
+caldavName=CalDAV
+compositeName=Compuesto
+icsName=iCalendar (ICS)
+memoryName=Temporal (memoria)
+storageName=Local (SQLite)
+
+# Used in created html code for export
+htmlPrefixTitle=Título
+htmlPrefixWhen=Cuándo
+htmlPrefixLocation=Ubicación
+htmlPrefixDescription=Descripción
+htmlTaskCompleted=%1$S (completada)
+
+# Categories
+addCategory=Añadir categoría
+multipleCategories=Múltiples categorías
+
+today=Hoy
+tomorrow=Mañana
+yesterday=Ayer
+
+#Today pane
+eventsonly=Eventos
+eventsandtasks=Eventos y tareas
+tasksonly=Tareas
+shortcalendarweek=SC
+
+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=siguiente
+next2=siguiente
+last1=último
+last2=último
+
+# Alarm Dialog
+# LOCALIZATION NOTE (alarmWindowTitle.label): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+alarmWindowTitle.label=#1 Recordatorio;#1 Recordatorios
+
+# 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=Comienza: %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=Hoy a la(s) %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=Mañana a la(s) %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=Ayer a la(s) %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=Descripción predeterminada de Mozilla
+alarmDefaultSummary=Resumen predeterminado de Mozilla
+
+# LOCALIZATION NOTE (alarmSnoozeLimitExceeded): Semi-colon list of plural
+# forms.
+alarmSnoozeLimitExceeded=No puede silenciar una alarma durante más de un mes.;No puede silenciar una alarma durante más de #1 meses.
+
+taskDetailsStatusNeedsAction=Necesita intervención
+
+# 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%% completada
+taskDetailsStatusCompleted=Completada
+
+# 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=Completada el %1$S
+taskDetailsStatusCancelled=Cancelada
+
+gettingCalendarInfoCommon=Comprobando calendarios…
+
+# 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=Comprobando calendario %1$S de %2$S
+
+# LOCALIZATION NOTE (errorCode):
+# %1$S will be replaced with the number of an error code
+errorCode=Código de error: %1$S
+
+# LOCALIZATION NOTE (errorDescription):
+# %1$S will be replaced with the description of an error
+errorDescription=Descripción: %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=¡Ha sucedido un error al escribir en el calendario %1$S! Debajo encontrará más información.
+
+# LOCALIZATION NOTE (errorWritingDetails):
+# This will be displayed in the detail section of the error dialog
+errorWritingDetails=Si ve este mensaje tras posponer u ocultar un recordatorio y es para un calendario en el que no quiere añadir o editar eventos, puede marcar este calendario como de solo lectura para evitar este comportamiento en el futuro. Para ello, acceda a las propiedades del calendario haciendo clic con el botón derecho en este calendario en la lista de las vistas de calendario o tareas.
+
+# 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=El calendario %1$S está momentáneamente no disponible
+
+# 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=El calendario %1$S es sólo de lectura
+
+taskEditInstructions=Pulse aquí para añadir una nueva tarea
+taskEditInstructionsReadonly=Seleccione un calendario en el que sea posible escribir
+taskEditInstructionsCapability=Seleccione un calendario que admita tareas
+
+eventDetailsStartDate=Inicio:
+eventDetailsEndDate=Final:
+
+# 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 del calendario: %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 del calendario %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=SC: %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=Sem: %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=Sem. %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 día;#1 días
+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 %2$S
+
+# LOCALIZATION NOTE (monthInYear.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+monthInYear.monthFormat=nominative
+
+# LOCALIZATION NOTE (formatDateLong):
+# used for display dates in long format like 'Mon 15 Oct 2008' when it's
+# impossible to retrieve the formatatted date from the OS.
+# %1$S will be replaced with name of the day in short format;
+# %2$S will be replaced with the day-index of the month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties);
+# %3$S will be replaced with the name of the month in short format;
+# %4$S will be replaced with the year.
+formatDateLong=%1$S %2$S %3$S %4$S
+
+# LOCALIZATION NOTE (dayHeaderLabel):
+# used for display the labels in the header of the days in day/week views in short
+# or long format. For example: 'Monday 6 Oct.' or 'Mon. 6 Oct.'
+# %1$S will be replaced with name of the day in short or long format
+# %2$S will be replaced with the day-index of the month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties), plus the name
+# of the month in short format (the day/month order depends on the OS settings).
+dayHeaderLabel=%1$S %2$S
+
+# LOCALIZATION NOTE (daysIntervalInMonth):
+# used for display of intervals in the form of 'March 3 - 9, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %4$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalInMonth=%1$S %2$S – %3$S, %4$S
+
+# LOCALIZATION NOTE (daysIntervalInMonth.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalInMonth.monthFormat=nominative
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths):
+# used for display of intervals in the form 'September 29 - October 5, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with name of the month of the end date
+# %4$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %5$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenMonths=%1$S %2$S – %3$S %4$S, %5$S
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalBetweenMonths.monthFormat=nominative
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears):
+# used for display of intervals in the form 'December 29, 2008 - January 4, 2009'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the year of the start date
+# %4$S will be replaced with name of the month of the end date
+# %5$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %6$S will be replaced with the year of the end date
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenYears=%1$S %2$S, %3$S – %4$S %5$S, %6$S
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalBetweenYears.monthFormat=nominative
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDateTime):
+# used for intervals where end is equals to start
+# displayed form is '5 Jan 2006 13:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+datetimeIntervalOnSameDateTime=%1$S %2$S
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDay):
+# used for intervals where end is on the same day as start, so we can leave out the
+# end date but still include end time
+# displayed form is '5 Jan 2006 13:00 - 17:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the time of the end date
+datetimeIntervalOnSameDay=%1$S %2$S – %3$S
+
+# LOCALIZATION NOTE (datetimeIntervalOnSeveralDays):
+# used for intervals spanning multiple days by including date and time
+# displayed form is '5 Jan 2006 13:00 - 7 Jan 2006 9:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the date of the end date
+# %4$S will be replaced with the time of the end date
+datetimeIntervalOnSeveralDays=%1$S %2$S – %3$S %4$S
+
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDate):
+# used for task without start and due date
+# (showed only in exported calendar in Html format)
+datetimeIntervalTaskWithoutDate= sin fecha de inicio ni final
+# 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=con inicio el %1$S a las %2$S
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutStartDate):
+# used for intervals in task with only due date
+# displayed form is 'due date 5 Jan 2006 13:00'
+# (showed only in exported calendar in Html format)
+# %1$S will be replaced with the date of the due date
+# %2$S will be replaced with the time of the due date
+datetimeIntervalTaskWithoutStartDate=finalización prevista el %1$S a las %2$S
+
+# LOCALIZATION NOTE (dragLabelTasksWithOnlyEntryDate
+# dragLabelTasksWithOnlyDueDate)
+# Labels that appear while dragging a task with only
+# entry date OR due date
+dragLabelTasksWithOnlyEntryDate=Hora de inicio
+dragLabelTasksWithOnlyDueDate=Vence en
+
+deleteTaskLabel=Eliminar tarea
+deleteTaskAccesskey=l
+deleteItemLabel=Eliminar
+deleteItemAccesskey=l
+deleteEventLabel=Eliminar evento
+deleteEventAccesskey=l
+
+calendarPropertiesEveryMinute=Cada minuto;Cada #1 minutos
+
+# LOCALIZATION NOTE (extractUsing)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+extractUsing=Usando %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=Usando %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 día;#1 días
+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 sólo %1$S
+
+# LOCALIZATION NOTE (modifyConflict)
+# Used by the event dialog to resolve item modification conflicts.
+modifyConflictPromptTitle=Conflicto en la modificación del elemento.
+modifyConflictPromptMessage=El elemento que se está editando en el diálogo ha sido modificado desde que se abrió.
+modifyConflictPromptButton1=Sobreescribir los otros cambios
+modifyConflictPromptButton2=Descartar estos cambios
+
+# Accessible description of a grid calendar with no selected date
+minimonthNoSelectedDate=No hay fecha seleccionada
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendarCreation.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendarCreation.dtd
new file mode 100644
index 0000000000..bef2cbb43b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendarCreation.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 wizard.title "Crear nuevo calendario">
+<!ENTITY wizard.label "Crear un nuevo calendario">
+<!ENTITY wizard.description "Ubique su calendario">
+<!ENTITY initialpage.description "Su calendario puede guardarse en su ordenador o en un servidor, permitiendo así acceder a él remotamente o compartirlo con sus amigos o compañeros de trabajo.">
+<!ENTITY initialpage.computer.label "En mi ordenador">
+<!ENTITY initialpage.network.label "En la red">
+<!ENTITY locationpage.description "Proporcione información necesaria para acceder a su calendario remoto">
+<!ENTITY locationpage.login.description "Opcional: introduzca un nombre de usuario y una contraseña">
+<!ENTITY locationpage.username.label "Nombre de usuario:">
+<!ENTITY locationpage.password.label "Contraseña:">
+<!ENTITY custompage.shortdescription "Personalizar su calendario">
+<!ENTITY custompage.longdescription "Puede dar un apodo a su calendario y colorear los eventos de éste.">
+<!ENTITY finishpage.shortdescription "Calendario creado">
+<!ENTITY finishpage.longdescription "Se ha creado su calendario.">
+<!ENTITY sourcetabs.other.label "Otro">
+<!ENTITY buttons.create.label "Crear calendario">
+<!ENTITY buttons.create.accesskey "r">
+<!ENTITY buttons.find.label "Encontrar calendarios">
+<!ENTITY buttons.find.accesskey "E">
+<!ENTITY buttons.back.label "Atrás">
+<!ENTITY buttons.back.accesskey "A">
+<!ENTITY buttons.subscribe.label "Suscribirse">
+<!ENTITY buttons.subscribe.accesskey "S">
+<!ENTITY calendartype.label "Tipo del calendario:">
+<!ENTITY location.label "Dirección:">
+<!ENTITY location.placeholder "URL o nombre del servidor de calendario">
+<!ENTITY network.nocredentials.label "Esta dirección no requiere credenciales">
+<!ENTITY network.loading.description "Espere mientras se descubren sus calendarios.">
+<!ENTITY network.notfound.description "No se han podido encontrar calendarios en esta dirección. Revise su configuración.">
+<!ENTITY network.authfail.description "Las credenciales que ha introducido no han sido aceptadas. Revise su configuración.">
+<!ENTITY network.subscribe.single.description "Seleccione los calendario a los que desea suscribirse.">
+<!ENTITY network.subscribe.multiple.description "Hay disponibles múltiples tipos de calendario en esta dirección. Seleccione el tipo de calendario y luego marque los calendario a los que desea suscribirse.">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendarCreation.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/calendarCreation.properties
new file mode 100644
index 0000000000..78d4e44cb6
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Introduzca una dirección válida.
+error.alreadyExists = Ya está suscrito al calendario en esta dirección.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/categories.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/categories.properties
new file mode 100644
index 0000000000..79e6274562
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/categories.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/.
+
+categories2 = Aniversarios,Clientes,Competencia,Cumpleaños,Estado,Favoritos,Festivos,Ideas,Llamadas,Miscelánea,Negocios,Personal,Problemas,Proveedores,Proyectos,Regalos,Reuniones,Seguimiento,Usuarios,Vacaciones,Viajes
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/dateFormat.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/dateFormat.properties
new file mode 100644
index 0000000000..b4d09b7906
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/dateFormat.properties
@@ -0,0 +1,97 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+month.1.name = Enero
+month.2.name = Febrero
+month.3.name = Marzo
+month.4.name = Abril
+month.5.name = Mayo
+month.6.name = Junio
+month.7.name = Julio
+month.8.name = Agosto
+month.9.name = Septiembre
+month.10.name = Octubre
+month.11.name = Noviembre
+month.12.name = Diciembre
+month.1.genitive = Enero
+month.2.genitive = Febrero
+month.3.genitive = Marzo
+month.4.genitive = Abril
+month.5.genitive = Mayo
+month.6.genitive = Junio
+month.7.genitive = Julio
+month.8.genitive = Agosto
+month.9.genitive = Septiembre
+month.10.genitive = Octubre
+month.11.genitive = Noviembre
+month.12.genitive = Diciembre
+month.1.Mmm = Ene
+month.2.Mmm = Feb
+month.3.Mmm = Mar
+month.4.Mmm = Abr
+month.5.Mmm = May
+month.6.Mmm = Jun
+month.7.Mmm = Jul
+month.8.Mmm = Ago
+month.9.Mmm = Sep
+month.10.Mmm = Oct
+month.11.Mmm = Nov
+month.12.Mmm = Dic
+day.1.name = Domingo
+day.2.name = Lunes
+day.3.name = Martes
+day.4.name = Miércoles
+day.5.name = Jueves
+day.6.name = Viernes
+day.7.name = Sábado
+day.1.Mmm = Dom
+day.2.Mmm = Lun
+day.3.Mmm = Mar
+day.4.Mmm = Mié
+day.5.Mmm = Jue
+day.6.Mmm = Vie
+day.7.Mmm = Sáb
+day.1.short = Do
+day.2.short = L
+day.3.short = Ma
+day.4.short = X
+day.5.short = Ju
+day.6.short = V
+day.7.short = Sa
+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
+dayOrdinalSymbol =
+noon = Mediodía
+midnight = Medianoche
+AllDay = Todo el día
+Repeating = (Repitiendo)
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/dialogs/calendar-event-dialog-reminder.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/dialogs/calendar-event-dialog-reminder.dtd
new file mode 100644
index 0000000000..884e2e7d0c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/dialogs/calendar-event-dialog-reminder.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 reminderdialog.title "Configurar recordatorios">
+<!ENTITY reminder.add.label "Añadir">
+<!ENTITY reminder.add.accesskey "A">
+<!ENTITY reminder.remove.label "Eliminar">
+<!ENTITY reminder.remove.accesskey "E">
+<!ENTITY reminder.reminderDetails.label "Detalles del recordatorio">
+<!ENTITY reminder.action.label "Elija una acción de recordatorio">
+<!ENTITY reminder.action.alert.label "Mostrar una alerta">
+<!ENTITY reminder.action.email.label "Enviar un correo-e">
+<!ENTITY alarm.units.minutes "minutos">
+<!ENTITY alarm.units.hours "horas">
+<!ENTITY alarm.units.days "días">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/global.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/global.dtd
new file mode 100644
index 0000000000..4129e31c9b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/global.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 time.midnight "Medianoche">
+<!ENTITY time.noon "Mediodía">
+<!ENTITY day.1.Ddd "Dom">
+<!ENTITY day.1.Ddd.accesskey "D">
+<!ENTITY day.2.Ddd "Lun">
+<!ENTITY day.2.Ddd.accesskey "L">
+<!ENTITY day.3.Ddd "Mar">
+<!ENTITY day.3.Ddd.accesskey "M">
+<!ENTITY day.4.Ddd "Mié">
+<!ENTITY day.4.Ddd.accesskey "i">
+<!ENTITY day.5.Ddd "Jue">
+<!ENTITY day.5.Ddd.accesskey "J">
+<!ENTITY day.6.Ddd "Vie">
+<!ENTITY day.6.Ddd.accesskey "V">
+<!ENTITY day.7.Ddd "Sáb">
+<!ENTITY day.7.Ddd.accesskey "S">
+<!ENTITY day.1.name "Domingo">
+<!ENTITY day.2.name "Lunes">
+<!ENTITY day.3.name "Martes">
+<!ENTITY day.4.name "Miércoles">
+<!ENTITY day.5.name "Jueves">
+<!ENTITY day.6.name "Viernes">
+<!ENTITY day.7.name "Sábado">
+<!ENTITY month.1.name "Enero">
+<!ENTITY month.2.name "Febrero">
+<!ENTITY month.3.name "Marzo">
+<!ENTITY month.4.name "Abril">
+<!ENTITY month.5.name "Mayo">
+<!ENTITY month.6.name "Junio">
+<!ENTITY month.7.name "Julio">
+<!ENTITY month.8.name "Agosto">
+<!ENTITY month.9.name "Septiembre">
+<!ENTITY month.10.name "Octubre">
+<!ENTITY month.11.name "Noviembre">
+<!ENTITY month.12.name "Diciembre">
+<!ENTITY onemonthbackward.tooltip "Un mes hacia atrás">
+<!ENTITY onemonthforward.tooltip "Un mes hacia delante">
+<!ENTITY oneyearbackward.tooltip "Un año hacia atrás">
+<!ENTITY oneyearforward.tooltip "Un año hacia delante">
+<!ENTITY showToday.tooltip "Ir a hoy">
+<!ENTITY onedayforward.tooltip "Un día hacia delante">
+<!ENTITY onedaybackward.tooltip "Un día hacia atrás">
+<!ENTITY showselectedday.tooltip "Mostrar eventos para el día seleccionado">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/menuOverlay.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/menuOverlay.dtd
new file mode 100644
index 0000000000..32a6b0766b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/menuOverlay.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 event.new.event "Nuevo evento...">
+<!ENTITY event.new.event.accesskey "N">
+<!ENTITY event.new.task "Nueva tarea...">
+<!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 "Eliminar calendario seleccionado…">
+<!ENTITY calendar.deletecalendar.accesskey "a">
+<!ENTITY calendar.unsubscribecalendar.label "Cancelar suscripción al calendario seleccionado…">
+<!ENTITY calendar.unsubscribecalendar.accesskey "C">
+<!ENTITY calendar.removecalendar.label "Eliminar calendario seleccionado…">
+<!ENTITY calendar.removecalendar.accesskey "E">
+<!ENTITY calendar.menu.customize.label "Personalizar…">
+<!ENTITY calendar.menu.customize.accesskey "P">
+<!ENTITY showUnifinderCmd.label "Buscar eventos">
+<!ENTITY showUnifinderCmd.accesskey "B">
+<!ENTITY showUnifinderCmd.tooltip "Alternar el panel de búsqueda de eventos">
+<!ENTITY calendar.displaytodos.checkbox.label "Mostrar tareas en el calendario">
+<!ENTITY calendar.displaytodos.checkbox.accesskey "T">
+<!ENTITY goTodayCmd.label "Ir a hoy">
+<!ENTITY goTodayCmd.accesskey "h">
+<!ENTITY showCurrentView.label "Vista actual">
+<!ENTITY showCurrentView.accesskey "V">
+<!ENTITY calendar.properties.label "Propiedades del calendario…">
+<!ENTITY calendar.properties.accesskey "d">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/migration.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/migration.dtd
new file mode 100644
index 0000000000..c5760328ca
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/migration.dtd
@@ -0,0 +1,9 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY migration.title "&brandFullName;: importación de datos">
+<!ENTITY migration.welcome "Bienvenido">
+<!ENTITY migration.importing "Importando">
+<!ENTITY migration.list.description "&brandShortName; puede importar datos de calendario de muchas aplicaciones populares. Se han encontrado datos de las siguientes aplicaciones en su ordenador. Seleccione de cuáles de ellas le gustaría importar datos.">
+<!ENTITY migration.progress.description "Importando datos seleccionados">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/migration.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/migration.properties
new file mode 100644
index 0000000000..81a7d58e74
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/migration.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/.
+
+migratingApp = Migrando %1$S…
+migrationTitle = %1$S: importación de datos
+migrationDescription = %1$S puede importar datos de calendario de muchas aplicaciones populares. Se han encontrado datos de las siguientes aplicaciones en su ordenador. Seleccione de cuáles de ellas le gustaría importar datos.
+finished = Completo
+disableExtTitle = Encontrada extensión incompatible
+disableExtText = Tiene instalada la antigua extensión Mozilla Calendar que no es compatible con Lightning. Será desactivada y %1$S se reiniciará.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/provider-uninstall.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/provider-uninstall.dtd
new file mode 100644
index 0000000000..4356a77399
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Desinstalar un proveedor">
+<!ENTITY providerUninstall.accept.label "Cancelar la suscripción de los seleccionados">
+<!ENTITY providerUninstall.accept.accesskey "U">
+<!ENTITY providerUninstall.cancel.label "Conservar complemento">
+<!ENTITY providerUninstall.cancel.accesskey "C">
+<!ENTITY providerUninstall.preName.label "Ha solicitado desinstalar o desactivar:">
+<!ENTITY providerUninstall.postName.label "Esto causará que se desactiven los calendarios siguientes.">
+<!ENTITY providerUninstall.reinstallNote.label "A menos que planee reinstalar este proveedor, puede elegir desuscribirse de los calendarios de este proveedor.">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/timezones.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/calendar/timezones.properties
new file mode 100644
index 0000000000..127d5774be
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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/Abiyán
+pref.timezone.Africa.Accra=África/Accra
+pref.timezone.Africa.Addis_Ababa=África/Addis Ababa
+pref.timezone.Africa.Algiers=África/Argel
+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/Buyumbura
+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/Lomé
+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/Mogadiscio
+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/Nuakchot
+pref.timezone.Africa.Ouagadougou=África/Ouagadougou
+pref.timezone.Africa.Porto-Novo=África/Porto Novo
+pref.timezone.Africa.Sao_Tome=África/Santo Tomé
+pref.timezone.Africa.Tripoli=África/Trípoli
+pref.timezone.Africa.Tunis=África/Túnez
+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/Córdoba
+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/Río Gallegos
+pref.timezone.America.Argentina.San_Juan=América/Argentina/San Juan
+pref.timezone.America.Argentina.Tucuman=América/Argentina/Tucumán
+pref.timezone.America.Argentina.Ushuaia=América/Argentina/Ushuaia
+pref.timezone.America.Aruba=América/Aruba
+pref.timezone.America.Asuncion=América/Asunción
+pref.timezone.America.Atikokan=América/Atikokan
+pref.timezone.America.Bahia=América/Bahía
+pref.timezone.America.Barbados=América/Barbados
+pref.timezone.America.Belem=América/Belem
+pref.timezone.America.Belize=América/Belice
+pref.timezone.America.Blanc-Sablon=América/Blanc-Sablon
+pref.timezone.America.Boa_Vista=América/Boa Vista
+pref.timezone.America.Bogota=América/Bogotá
+pref.timezone.America.Boise=América/Boise
+pref.timezone.America.Cambridge_Bay=América/Bahía de Cambridge
+pref.timezone.America.Campo_Grande=América/Campo Grande
+pref.timezone.America.Cancun=América/Cancún
+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/Guadalupe
+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/Indianápolis
+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 Ángeles
+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/Martinica
+pref.timezone.America.Mazatlan=América/Mazatlan
+pref.timezone.America.Menominee=América/Menominee
+pref.timezone.America.Merida=América/Mérida
+pref.timezone.America.Mexico_City=América/Ciudad de México
+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/Nueva 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/Dakota del Norte/Centro
+pref.timezone.America.North_Dakota.New_Salem=América/Dakota del Norte/Nuevo Salem
+pref.timezone.America.Panama=América/Panamá
+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/Puerto de España
+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/San Juan
+pref.timezone.America.St_Kitts=América/St. Kitts
+pref.timezone.America.St_Lucia=América/St. Lucía
+pref.timezone.America.St_Thomas=América/San Tomás
+pref.timezone.America.St_Vincent=América/San Vincente
+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/Bahía del Trueno
+pref.timezone.America.Tijuana=América/Tijuana
+pref.timezone.America.Toronto=América/Toronto
+pref.timezone.America.Tortola=América/Tórtola
+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ártica/Polo Sur
+pref.timezone.Antarctica.Syowa=Antártida/Syowa
+pref.timezone.Antarctica.Vostok=Antártida/Vostok
+pref.timezone.Arctic.Longyearbyen=Ártico/Longyearbyen
+pref.timezone.Asia.Aden=Asia/Aden
+pref.timezone.Asia.Almaty=Asia/Almaty
+pref.timezone.Asia.Amman=Asia/Amman
+pref.timezone.Asia.Anadyr=Asia/Anadyr
+pref.timezone.Asia.Aqtau=Asia/Aqtau
+pref.timezone.Asia.Aqtobe=Asia/Aqtobe
+pref.timezone.Asia.Ashgabat=Asia/Ashgabat
+pref.timezone.Asia.Baghdad=Asia/Bagdad
+pref.timezone.Asia.Bahrain=Asia/Bahréin
+pref.timezone.Asia.Baku=Asia/Baku
+pref.timezone.Asia.Bangkok=Asia/Bangkok
+pref.timezone.Asia.Beirut=Asia/Beirut
+pref.timezone.Asia.Bishkek=Asia/Bishkek
+pref.timezone.Asia.Brunei=Asia/Brunei
+pref.timezone.Asia.Choibalsan=Asia/Choibalsan
+pref.timezone.Asia.Chongqing=Asia/Chongqing
+pref.timezone.Asia.Colombo=Asia/Colombo
+pref.timezone.Asia.Damascus=Asia/Damasco
+pref.timezone.Asia.Dhaka=Asia/Dhaka
+pref.timezone.Asia.Dili=Asia/Dili
+pref.timezone.Asia.Dubai=Asia/Dubái
+pref.timezone.Asia.Dushanbe=Asia/Dushanbe
+pref.timezone.Asia.Gaza=Asia/Gaza
+pref.timezone.Asia.Harbin=Asia/Harbin
+pref.timezone.Asia.Hong_Kong=Asia/Hong Kong
+pref.timezone.Asia.Hovd=Asia/Hovd
+pref.timezone.Asia.Irkutsk=Asia/Irkutsk
+pref.timezone.Asia.Istanbul=Asia/Estambul
+pref.timezone.Asia.Jakarta=Asia/Jakarta
+pref.timezone.Asia.Jayapura=Asia/Jayapura
+pref.timezone.Asia.Jerusalem=Asia/Jerusalén
+pref.timezone.Asia.Kabul=Asia/Kabul
+pref.timezone.Asia.Kamchatka=Asia/Kamchatka
+pref.timezone.Asia.Karachi=Asia/Karachi
+pref.timezone.Asia.Kashgar=Asia/Kashgar
+pref.timezone.Asia.Kathmandu=Asia/Kathmandú
+pref.timezone.Asia.Krasnoyarsk=Asia/Krasnoyarsk
+pref.timezone.Asia.Kuala_Lumpur=Asia/Kuala Lumpur
+pref.timezone.Asia.Kuching=Asia/Kuching
+pref.timezone.Asia.Kuwait=Asia/Kuwait
+pref.timezone.Asia.Macau=Asia/Macau
+pref.timezone.Asia.Magadan=Asia/Magadan
+pref.timezone.Asia.Makassar=Asia/Makassar
+pref.timezone.Asia.Manila=Asia/Manila
+pref.timezone.Asia.Muscat=Asia/Muscat
+pref.timezone.Asia.Nicosia=Asia/Nicosia
+pref.timezone.Asia.Novosibirsk=Asia/Novosibirsk
+pref.timezone.Asia.Omsk=Asia/Omsk
+pref.timezone.Asia.Oral=Asia/Oral
+pref.timezone.Asia.Phnom_Penh=Asia/Phnom Penh
+pref.timezone.Asia.Pontianak=Asia/Pontianak
+pref.timezone.Asia.Pyongyang=Asia/Pyongyang
+pref.timezone.Asia.Qatar=Asia/Qatar
+pref.timezone.Asia.Qyzylorda=Asia/Qyzylorda
+pref.timezone.Asia.Rangoon=Asia/Rangoon
+pref.timezone.Asia.Riyadh=Asia/Riyadh
+pref.timezone.Asia.Sakhalin=Asia/Sakhalin
+pref.timezone.Asia.Samarkand=Asia/Samarkanda
+pref.timezone.Asia.Seoul=Asia/Seúl
+pref.timezone.Asia.Shanghai=Asia/Shangai
+pref.timezone.Asia.Singapore=Asia/Singapur
+pref.timezone.Asia.Taipei=Asia/Taipéi
+pref.timezone.Asia.Tashkent=Asia/Tashkent
+pref.timezone.Asia.Tbilisi=Asia/Tbilisi
+pref.timezone.Asia.Tehran=Asia/Teherán
+pref.timezone.Asia.Thimphu=Asia/Thimphu
+pref.timezone.Asia.Tokyo=Asia/Tokio
+pref.timezone.Asia.Ulaanbaatar=Asia/Ulán Bator
+pref.timezone.Asia.Urumqi=Asia/Urumqi
+pref.timezone.Asia.Vientiane=Asia/Vientiane
+pref.timezone.Asia.Vladivostok=Asia/Vladivostok
+pref.timezone.Asia.Yakutsk=Asia/Yakutsk
+pref.timezone.Asia.Yekaterinburg=Asia/Yekaterinburg
+pref.timezone.Asia.Yerevan=Asia/Yerevan
+pref.timezone.Atlantic.Azores=Atlántico/Azores
+pref.timezone.Atlantic.Bermuda=Atlántico/Bermudas
+pref.timezone.Atlantic.Canary=Atlántico/Canarias
+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/Georgia del Sur
+pref.timezone.Atlantic.St_Helena=Atlántico/Santa Elena
+pref.timezone.Atlantic.Stanley=Atlántico/Stanley
+pref.timezone.Australia.Adelaide=Australia/Adelaida
+pref.timezone.Australia.Brisbane=Australia/Brisbane
+pref.timezone.Australia.Broken_Hill=Australia/Broken Hill
+pref.timezone.Australia.Currie=Australia/Currie
+pref.timezone.Australia.Darwin=Australia/Darwin
+pref.timezone.Australia.Eucla=Australia/Eucla
+pref.timezone.Australia.Hobart=Australia/Hobart
+pref.timezone.Australia.Lindeman=Australia/Lindeman
+pref.timezone.Australia.Lord_Howe=Australia/Lord Howe
+pref.timezone.Australia.Melbourne=Australia/Melbourne
+pref.timezone.Australia.Perth=Australia/Perth
+pref.timezone.Australia.Sydney=Australia/Sidney
+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/Berlín
+pref.timezone.Europe.Bratislava=Europa/Bratislava
+pref.timezone.Europe.Brussels=Europa/Bruselas
+pref.timezone.Europe.Bucharest=Europa/Bucarest
+pref.timezone.Europe.Budapest=Europa/Budapest
+pref.timezone.Europe.Chisinau=Europa/Chisinau
+pref.timezone.Europe.Copenhagen=Europa/Copenhague
+pref.timezone.Europe.Dublin=Europa/Dublín
+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/Isla de Man
+pref.timezone.Europe.Istanbul=Europa/Estambul
+pref.timezone.Europe.Jersey=Europa/Jersey
+pref.timezone.Europe.Kaliningrad=Europa/Kaliningrado
+pref.timezone.Europe.Kiev=Europa/Kiev
+pref.timezone.Europe.Lisbon=Europa/Lisboa
+pref.timezone.Europe.Ljubljana=Europa/Ljubljana
+pref.timezone.Europe.London=Europa/Londres
+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/Moscú
+pref.timezone.Europe.Nicosia=Europa/Nicosia
+pref.timezone.Europe.Oslo=Europa/Oslo
+pref.timezone.Europe.Paris=Europa/París
+pref.timezone.Europe.Podgorica=Europa/Podgorica
+pref.timezone.Europe.Prague=Europa/Praga
+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/Sofía
+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/Varsovia
+pref.timezone.Europe.Zagreb=Europa/Zagreb
+pref.timezone.Europe.Zaporozhye=Europa/Zaporozhye
+pref.timezone.Europe.Zurich=Europa/Zurich
+pref.timezone.Indian.Antananarivo=Índico/Antananarivo
+pref.timezone.Indian.Chagos=Índico/Chagos
+pref.timezone.Indian.Christmas=Índico/Christmas
+pref.timezone.Indian.Cocos=Índico/Cocos
+pref.timezone.Indian.Comoro=Índico/Comoro
+pref.timezone.Indian.Kerguelen=Índico/Kerguelen
+pref.timezone.Indian.Mahe=Índico/Mahe
+pref.timezone.Indian.Maldives=Índico/Maldivas
+pref.timezone.Indian.Mauritius=Índico/Mauricio
+pref.timezone.Indian.Mayotte=Índico/Mayotte
+pref.timezone.Indian.Reunion=Índico/Reunión
+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/Galápagos
+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/Puerto Moresby
+pref.timezone.Pacific.Rarotonga=Pacífico/Rarotonga
+pref.timezone.Pacific.Saipan=Pacífico/Saipan
+pref.timezone.Pacific.Tahiti=Pacífico/Tahití
+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/San Bartolomé
+
+# 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=Asia/Ho Chi Minh
+pref.timezone.Asia.Kolkata=Asia/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=Antartida/Macquarie
+pref.timezone.Asia.Novokuznetsk=Asia/Novokuznetsk
+
+#added with 2011b
+pref.timezone.America.Bahia_Banderas=América/Bahía Banderas
+pref.timezone.America.North_Dakota.Beulah=América/Dakota del Norte/Beulah
+pref.timezone.Pacific.Chuuk=Pacífico/Chuuk
+pref.timezone.Pacific.Pohnpei=Pacífico/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=Asia/Hebrón
+
+#added with 2013a
+pref.timezone.America.Creston=América/Creston
+pref.timezone.Asia.Khandyga=Asia/Khandyga
+pref.timezone.Asia.Ust-Nera=Asia/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=Asia/Srednekolymsk
+pref.timezone.Pacific.Bougainville=Pacífico/Bougainville
+
+#added with 2.2015g
+pref.timezone.America.Fort_Nelson=América/Fort Nelson
+
+#added with 2.2016b
+pref.timezone.Europe.Ulyanovsk=Europa/Uliánovsk
+pref.timezone.Europe.Astrakhan=Europa/Astracán
+pref.timezone.Asia.Barnaul=Asia/Barnaul
+
+#added with 2.2016i
+pref.timezone.Asia.Yangon=Asia/Yangon
+pref.timezone.Asia.Tomsk=Asia/Tomsk
+pref.timezone.Asia.Famagusta=Asia/Famagusta
+pref.timezone.Europe.Kirov=Europa/Kirov
+
+#added with 2.2016j
+pref.timezone.Europe.Saratov=Europa/Saratov
+pref.timezone.Asia.Atyrau=Asia/Atyrau
+
+#added with 2.2017b
+pref.timezone.America.Punta_Arenas=América/Punta Arenas
+
+#added with 2.2018i
+pref.timezone.Asia.Qostanay=Asia/Kostanái
+
+#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=Europa/Kiev
+
+#added with 2.2023c
+pref.timezone.America.Ciudad_Juarez=América/Ciudad Juárez
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/accounts.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/accounts.dtd
new file mode 100644
index 0000000000..c424a87b8a
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/accounts.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 accounts.title "Cuentas - &brandShortName;">
+<!ENTITY accountManager.width "450">
+<!ENTITY accountsWindow.title "Estado de la mensajería instantánea">
+<!ENTITY accountsWindow2.style "width: 41em; height: 27em;">
+<!ENTITY accountManager.newAccount.label "Nueva cuenta">
+<!ENTITY accountManager.newAccount.accesskey "N">
+<!ENTITY accountManager.close.label "Cerrar">
+<!ENTITY accountManager.close.accesskey "C">
+<!ENTITY accountManager.close.commandkey "a">
+<!ENTITY accountManager.noAccount.title "No hay ninguna cuenta configurada aún">
+<!ENTITY accountManager.noAccount.description "Pulse en el botón &accountManager.newAccount.label; para permitir a &brandShortName; guiarle a través del proceso de configuración de una.">
+<!ENTITY account.autoSignOn.label "Iniciar sesión al arrancar">
+<!ENTITY account.autoSignOn.accesskey "I">
+<!ENTITY account.connect.label "Conectar">
+<!ENTITY account.connect.accesskey "a">
+<!ENTITY account.disconnect.label "Desconectar">
+<!ENTITY account.disconnect.accesskey "D">
+<!ENTITY account.delete.label "Eliminar">
+<!ENTITY account.delete.accesskey "E">
+<!ENTITY account.edit.label "Propiedades">
+<!ENTITY account.edit.accesskey "P">
+<!ENTITY account.moveup.label "Arriba">
+<!ENTITY account.movedown.label "Abajo">
+<!ENTITY account.cancelReconnection.label "Cancelar reconexión">
+<!ENTITY account.cancelReconnection.accesskey "o">
+<!ENTITY account.copyDebugLog.label "Copiar registro de depuración">
+<!ENTITY account.copyDebugLog.accesskey "s">
+<!ENTITY account.showDebugLog.label "Mostrar registro de depuración">
+<!ENTITY account.showDebugLog.accesskey "M">
+<!ENTITY account.connecting "Conectando…">
+<!ENTITY account.disconnecting "Desconectando…">
+<!ENTITY account.disconnected "No conectado">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/accounts.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/accounts.properties
new file mode 100644
index 0000000000..c1afa11eb2
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/accounts.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/.
+
+passwordPromptTitle = Contraseña de %S
+passwordPromptText = Introduzca su contraseña de %S para conectarse.
+passwordPromptSaveCheckbox = Guardar esta contraseña usando el administrador de contraseñas.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/commands.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/commands.properties
new file mode 100644
index 0000000000..629b2d26f4
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/commands.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/.
+
+commands = Órdenes: %S.\nUse /help &lt;orden&gt; para más información.
+noCommand = No existe la orden '%S'.
+noHelp = No hay mensaje de ayuda para la orden '%S', ¡lo sentimos!
+sayHelpString = say &lt;message;&gt;: envía un mensaje sin procesar ninguna orden.
+rawHelpString = raw &lt;mensaje&gt;: envía un mensaje sin escapar las entidades HTML.
+helpHelpString = help &lt;nombre&gt;: muestra el mensaje de ayuda para la orden &lt;nombre&gt;, o la lista de posibles órdenes si se usa sin parámetro.
+statusCommand = %1$S &lt;mensaje de estado&gt;: establece el estado en %2$S con un mensaje de estado opcional.
+back = disponible
+away = ausente
+busy = no disponible
+dnd = no disponible
+offline = desconectado
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/contacts.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/contacts.properties
new file mode 100644
index 0000000000..19aafd9671
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/contacts.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/.
+
+defaultGroup = Contactos
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/conversations.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/conversations.properties
new file mode 100644
index 0000000000..9e7280f720
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/conversations.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/.
+
+targetChanged = La conversación continuará con %1$S, usando %2$S.
+statusChanged = %1$S es ahora %2$S.
+statusChangedWithStatusText = %1$S es ahora %2$S: %3$S.
+statusChangedFromUnknown = %1$S es %2$S.
+statusChangedFromUnknownWithStatusText = %1$S es %2$S: %3$S.
+statusKnown = Su cuenta ha sido reconectada (%1$S es %2$S).
+statusKnownWithStatusText = Su cuenta ha sido reconectada (%1$S es %2$S: %3$S).
+statusUnknown = Su cuenta está desconectada (el estado de %S ya no es conocido).
+accountDisconnected = Su cuenta está desconectada.
+accountReconnected = Su cuenta ha sido reconectada.
+autoReply = Autorrespuesta - %S
+noTopic = No hay tema en esta sala.
+topicSet = El tema de %1$S es: %2$S.
+topicNotSet = No hay tema en %S.
+topicChanged = %1$S ha cambiado el tema a: %2$S.
+topicCleared = %1$S ha eliminado el tema.
+nickSet = %1$S es conocido ahora como %2$S.
+nickSet.you = Ahora es conocido como %S.
+messenger.conversations.selections.ellipsis = […]
+messenger.conversations.selections.systemMessagesTemplate = %time% - %message%
+messenger.conversations.selections.contentMessagesTemplate = %time% - %sender%: %message%
+messenger.conversations.selections.actionMessagesTemplate = %time% * %sender% %message%
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/facebook.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/facebook.properties
new file mode 100644
index 0000000000..0aff88ed8f
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/facebook.properties
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+facebook.chat.name = Facebook Chat
+facebook.disabled = Facebook Chat ya no se admite debido a que Facebook ha cerrado su pasarela XMPP.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/imtooltip.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/imtooltip.properties
new file mode 100644
index 0000000000..5948e3984b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Nombre de usuario
+buddy.account=Cuenta
+contact.tags=Etiquetas
+
+otr.tag=Estado OTR
+
+encryption.tag=Estado de cifrado
+message.status=Mensaje cifrado
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/irc.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/irc.properties
new file mode 100644
index 0000000000..852fe7eabe
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/irc.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/.
+
+irc.usernameHint = apodo
+connection.error.lost = Se ha perdido la conexión con el servidor
+connection.error.timeOut = Conexión caducada
+connection.error.invalidUsername = %S no es un nombre de usuario permitido
+connection.error.invalidPassword = Contraseña de servidor no válida
+connection.error.passwordRequired = Contraseña requerida
+joinChat.channel = _Canal
+joinChat.password = Contra_seña:
+options.server = Servidor
+options.port = Puerto
+options.ssl = Usar SSL
+options.encoding = Juego de caracteres
+options.quitMessage = Mensaje al cerrar
+options.partMessage = Mensaje de partida
+options.showServerTab = Mostrar mensajes del servidor
+options.alternateNicks = Apodos alternativos
+ctcp.version = %1$S está usando "%2$S".
+ctcp.time = El tiempo para %1$S es %2$S.
+command.action = %S &lt;acción a realizar&gt;: realiza una acción.
+command.ban = %S &lt;apodo!usuario@servidor&gt;: Expulsa a los usuarios que cumplen el patrón dado.
+command.ctcp = %S &lt;apodo&gt; &lt;msj&gt;: envía un mensaje CTCP al usuario con ese apodo.
+command.chanserv = %S &lt;orden&gt;: envía una orden a ChanServ.
+command.deop = %S &lt;apodo1&gt;[,&lt;apodo2&gt;]*: eliminar estado de operador del canal de alguien. Debe ser un operador del canal para hacer esto.
+command.devoice = %S &lt;apodo1&gt;[,&lt;apodo2&gt;]*: eliminar estado de voz en el canal de alguien, impidiéndole hablar si el canal es moderado (+m). Debe ser un operador del canal para hacer esto.
+command.invite2 = %S &lt;apodo&gt;[ &lt;apodo&gt;]* [&lt;canal&gt;]: invita a uno o más apodos a unirse a usted en el canal actual, o a unirse al canal especificado.
+command.join = %S &lt;sala1&gt;[ &lt;clave1&gt;][,&lt;sala2&gt;[ &lt;clave2&gt;]]: entrar en uno o más canales, proporcionando opcionalmente una clave de canal para cada uno si es necesario.
+command.kick = %S &lt;apodo&gt; [&lt;mensaje&gt;]: eliminar a alguien de un canal. Debe ser un operador del canal para hacer esto.
+command.list = %S: muestra una lista de salas de chat en la red. Atención, algunos servidores pueden desconectarle por hacer esto.
+command.memoserv = %S &lt;orden&gt;: enviar una orden a MemoServ.
+command.modeUser2 = %S &lt;apodo&gt; [(+|-)&lt;modo&gt;]: Obtiene, fija o elimina un modo de usuario.
+command.modeChannel2 = %S [&lt;canal&gt;] [(+|-)&lt;nuevo modo&gt; [&lt;parámetro&gt;][,&lt;parámetro&gt;]*]: Obtiene, fija o elimina un modo de canal.
+command.msg = %S &lt;apodo&gt; &lt;mensaje&gt;: enviar un mensaje privado a un usuario (en contraposición a un canal).
+command.nick = %S &lt;apodo nuevo&gt;: cambiar su apodo.
+command.nickserv = %S &lt;orden&gt;: enviar una orden a NickServ.
+command.notice = %S &lt;destino&gt; &lt;mensaje&gt;: enviar un aviso a un usuario o canal.
+command.op = %S &lt;apodo1&gt;[,&lt;apodo2&gt;]*: concede estado de operador del canal a alguien. Debe ser un operador del canal para hacer esto.
+command.operserv = %S &lt;orden&gt;: enviar una orden a OperServ.
+command.part = %S [mensaje]: abandona el canal actual, opcionalmente con un mensaje.
+command.ping = %S [&lt;apodo&gt;]: pregunta cuánto retraso tiene un usuario (o el servidor si no se especifica usuario).
+command.quit = %S &lt;mensaje&gt;: se desconecta del servidor, opcionalmente con un mensaje.
+command.quote = %S &lt;orden&gt;: envía una orden sin procesar al servidor.
+command.time = %S: muestra la hora local actual en servidor IRC.
+command.topic = %S [&lt;tema nuevo&gt;]: cambiar el tema de este canal.
+command.umode = %S (+|-)&lt;modo nuevo&gt;: establece o elimina un modo de usuario.
+command.version = %S &lt;apodo&gt;: solicita la versión del cliente de un usuario.
+command.voice = %S &lt;apodo1&gt;[,&lt;apodo2&gt;]*: concede estado de voz en el canal a alguien. Debe ser operador del canal para hacer esto.
+command.whois2 = %S [&lt;apodo&gt;]: obtener información de un usuario.
+message.join = %1$S [%2$S] ha entrado en la sala.
+message.rejoined = Te has vuelto a unir a la sala.
+message.kicked.you = Ha sido pateado por %1$S%2$S.
+message.kicked = %1$S ha sido expulsado por %2$S%3$S.
+message.kicked.reason = : %S
+message.usermode = Modo %1$S para %2$S establecido por %3$S.
+message.channelmode = Modo de canal %1$S establecido por %2$S.
+message.yourmode = Su modo es %S.
+message.nick.fail = No se ha podido usar el apodo que desea. Su apodo continúa siendo %S.
+message.parted.you = Ha abandonado la sala (Part%1$S).
+message.parted = %1$S ha abandonado la sala (Part%2$S).
+message.parted.reason = : %S
+message.quit = %1$S ha abandonado la sala (Quit%2$S).
+message.quit2 = : %S
+message.inviteReceived = %1$S le ha invitado a %2$S.
+message.invited = %1$S ha sido invitado a %2$S con éxito.
+message.alreadyInChannel = %1$S ya está en %2$S.
+message.summoned = %S ha sido convocado.
+message.whois = Información WHOIS de %S:
+message.whowas = %1$S está desconectado. Información WHOWAS de %1$S:
+message.whoisEntry =     %1$S: %2$S
+message.unknownNick = %S no es un apodo conocido.
+message.channelKeyAdded = %1$S ha cambiado la contraseña del canal a %2$S.
+message.channelKeyRemoved = %S ha eliminado la contraseña del canal.
+message.banMasks = Los usuarios conectados desde las siguientes direcciones están expulsados por %S:
+message.noBanMasks = No hay direcciones expulsadas de %S.
+message.banMaskAdded = Los usuarios conectados desde direcciones coincidentes con %1$S han sido expulsados por %2$S.
+message.banMaskRemoved = Los usuarios conectados desde direcciones coincidentes con %1$S ya no serán expulsados por %2$S.
+message.ping = Respuesta de ping desde %1$S en #2 milisegundo.;Respuesta de ping desde %1$S en #2 milisegundos.
+error.noChannel = No existe el canal: %S.
+error.tooManyChannels = No es posible unirse a %S; ya se ha unido a demasiados canales.
+error.nickCollision = Apodo ya en uso, cambiando el apodo a %1$S [%2$S].
+error.erroneousNickname = %S no es un apodo permitido.
+error.banned = Ha sido expulsado de este servidor.
+error.bannedSoon = Va a ser expulsado en breve de este servidor.
+error.mode.wrongUser = No puede cambiar modos de otros usuarios.
+error.noSuchNick = %S no está conectado.
+error.wasNoSuchNick = No existía el apodo: %S
+error.noSuchChannel = No existe el canal: %S.
+error.unavailable = %S está temporalmente no disponible.
+error.channelBanned = Ha sido expulsado de %S.
+error.cannotSendToChannel = No puede enviar mensajes a %S.
+error.channelFull = El canal %S está lleno.
+error.inviteOnly = Tiene que ser invitado para entrar en %S.
+error.nonUniqueTarget = %S no es un usuario@servidor o apodo únicos, o bien ha intentado conectarse a demasiados canales al mismo tiempo.
+error.notChannelOp = No es operador del canal %S.
+error.notChannelOwner = No es un propietario del canal %S.
+error.wrongKey = No es posible entrar en %S, contraseña del canal no válida.
+error.sendMessageFailed = Ha sucedido un error al enviar su último mensaje. Vuelva a intentarlo una vez que la conexión haya sido restablecida.
+error.channelForward = No puede unirse a %1$S y ha sido redirigido automáticamente a %2$S.
+error.unknownMode = '%S' no es un modo de usuario válido en este servidor.
+tooltip.realname = Nombre
+tooltip.server = Conectado a
+tooltip.connectedFrom = Conectado desde
+tooltip.registered = Registrado
+tooltip.registeredAs = Registrado como
+tooltip.secure = Usando una conexión segura
+tooltip.away = Ausente
+tooltip.ircOp = Operador IRC
+tooltip.bot = Bot
+tooltip.lastActivity = Última actividad
+tooltip.timespan = hace %S
+tooltip.channels = Actualmente en
+tooltip.serverValue = %1$S (%2$S)
+yes = Sí
+no = No
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/logger.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/logger.properties
new file mode 100644
index 0000000000..a90f6fb922
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/logger.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/.
+
+badLogfile = Archivo de registro vacío o dañado: %S
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/matrix.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/matrix.properties
new file mode 100644
index 0000000000..3a1123e545
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/matrix.properties
@@ -0,0 +1,255 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (matrix.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Matrix account.
+matrix.usernameHint=Matrix ID
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.saveToken=Guardar el token de acceso
+options.deviceDisplayName=Nombre para mostrar del dispositivo
+options.homeserver=Servidor
+options.backupPassphrase=Contraseña de la copia de seguridad de la clave
+
+# 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=Funciones criptográficas: %S
+options.encryption.secretStorage=Almacenamiento secreto: %S
+options.encryption.keyBackup=Copia de seguridad de la clave de cifrado: %S
+options.encryption.crossSigning=Firma cruzada: %S
+options.encryption.statusOk=ok
+options.encryption.statusNotOk=no está listo
+options.encryption.needBackupPassphrase=Introduce la frase de contraseña de tu clave de respaldo en las opciones de protocolo.
+options.encryption.setUpSecretStorage=Para configurar el almacenamiento secreto, utilice otro cliente y luego introduzca la frase de contraseña de la clave de respaldo generada en la pestaña "General".
+options.encryption.setUpBackupAndCrossSigning=Para activar las copias de seguridad de la clave de cifrado y la firma cruzada, introduzca su frase de contraseña de la clave de respaldo en la pestaña "General" o verifique la identidad de una de las sesiones a continuación.
+# %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=Esperando su autorización
+connection.requestAccess=Finalizando autentificación
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.noSupportedFlow=El servidor no ofrece ningún flujo de inicio de sesión compatible.
+connection.error.authCancelled=Ha cancelado el proceso de autorización.
+connection.error.sessionEnded=La sesión se ha cerrado.
+connection.error.serverNotFound=No se ha podido identificar el servidor Matrix para la cuenta Matrix indicada.
+
+# 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=Nombre mostrado
+# %S is the timespan elapsed since the last activity.
+tooltip.timespan=hace %S
+tooltip.lastActive=Última actividad
+
+# 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=Predeterminado
+powerLevel.moderator=Moderador
+powerLevel.admin=Administrador
+powerLevel.restricted=Restringido
+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=Rol predeterminado: %S
+powerLevel.inviteUser=Invitar usuarios: %S
+powerLevel.kickUsers=Expulsar usuarios: %S
+powerLevel.ban=Bloquear usuarios: %S
+powerLevel.roomAvatar=Cambiar avatar de sala: %S
+powerLevel.mainAddress=Cambiar dirección principal de la sala: %S
+powerLevel.history=Cambiar la visibilidad del historial: %S
+powerLevel.roomName=Cambiar nombre de la sala: %S
+powerLevel.changePermissions=Cambiar permisos: %S
+powerLevel.server_acl=Enviar eventos m.room.server_acl: %S
+powerLevel.upgradeRoom=Actualizar la sala: %S
+powerLevel.remove=Eliminar mensajes: %S
+powerLevel.events_default=Eventos predeterminados: %S
+powerLevel.state_default=Cambiar la configuración: %S
+powerLevel.encryption=Activar el cifrado de la sala: %S
+powerLevel.topic=Establecer el tema de la 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=Nombre: %S
+# Example placeholder: "My first room"
+detail.topic=Tema: %S
+# Example placeholder: "5"
+detail.version=Versión de la 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=Alias: %S
+# Example placeholder: "can_join"
+detail.guest=Acceso de invitado: %S
+# This is a heading, followed by the powerLevel.* strings
+detail.power=Niveles 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;userId&gt; [&lt;motivo&gt;]: Excluir de la sala al usuario con el userId con un mensaje opcional de motivo. Requiere permiso para prohibir usuarios.
+command.invite=%S &lt;userId&gt;: Invitar usuario a la sala.
+command.kick=%S & lt;userId &gt; [&lt;motivo& gt;]: Echar al usuario con el userId de la sala con un mensaje de motivo opcional. Requiere permiso para echar a usuarios.
+command.nick=%S &lt;nombre_para_mostrar&gt;: Cambiar su nombre para mostrar.
+command.op=%S &lt;userId&gt; [&lt;nivel de poder&gt;]: Define el nivel de poder del usuario. Escribir un valor entero, Usuario: 0, Moderador: 50 y Administrador: 100. El valor predeterminado será de 50 si no se indica. Requiere permiso para cambiar los niveles de poder de los miembros. No funciona en administradores que no sean usted mismo.
+command.deop=%S &lt;userId&gt;: Restablecer el usuario al nivel de poder 0 (Usuario). Requiere permiso para cambiar los niveles de poder de los miembros. No funciona en otros administradores que no sea usted mismo.
+command.leave=%S: Salir de la sala actual.
+command.topic=%S &lt;topic&gt;: Establecer el tema de la sala. Requiere permisos para cambiar el tema de la sala.
+command.unban=%S &lt;userId&gt;: Eliminar la prohibición a un usuario que está prohibido en la sala. Requiere permiso para prohibir usuarios.
+command.visibility=%S [&lt;visibility&gt;]: Establece la visibilidad de la sala actual en el directorio actual del servidor de inicio. Escribir un valor entero, Privado: 0 y Público: 1. El valor predeterminado, será privado (0) si no se proporciona ningún argumento. Requiere permiso para cambiar la visibilidad de la sala.
+command.guest=%S &lt;acceso invitado&gt; &lt;visibilidad de historial&gt;: Establecer el acceso y la visibilidad del historial de la sala actual para los usuarios invitados. Introducir dos valores enteros, el primero para el acceso de los invitados (no permitido: 0 y permitido: 1) y el segundo para la visibilidad del historial (no visible: 0 y visible: 1). Requiere permiso para cambiar la visibilidad del historial.
+command.roomname=%S &lt;nombre&gt;: Establecer el nombre de la sala. Requiere permisos para cambiar el nombre de la sala.
+command.detail=%S: Mostrar los detalles de la sala.
+command.addalias=%S &lt;alias&gt;: Crear un alias para la sala. Se esperaba un alias de la sala de la forma '#localname:domain'. Requiere permiso para añadir alias.
+command.removealias=%S &lt;alias&gt;: Eliminar el alias de la sala. Se esperaba un alias de la sala de la forma '#localname:domain'. Requiere permiso para eliminar alias.
+command.upgraderoom=%S &lt;newVersion&gt;: Actualizar la sala a determinada versión. Requiere permiso para actualizar la sala.
+command.me=%S &lt;acción a ejecutar&gt;: Realizar una acción.
+command.msg=%S &lt;userId&gt; &lt;mensaje&gt;: Enviar un mensaje directo al usuario dado.
+command.join=%S &lt;roomId&gt;: Unirse a la sala dada.
+
+# 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 ha bloqueado a %2$S.
+# Same as message.banned but with a reason.
+# %3$S is the reason the user was banned.
+message.bannedWithReason=%1$S bloqueó a %2$S. Razón: %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 aceptó la invitación para %2$S.
+# %S is the name of the user who accepted an invitation.
+message.acceptedInvite=$S aceptó una invitación.
+# %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 invitó a %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 cambió su nombre mostrado de %2$S a %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 estableció su nombre a mostrar a %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 eliminó su nombre a mostrar %2$S.
+# %S is the name of the user who has joined the room.
+message.joined=%S se ha unido a la sala.
+# %S is the name of the user who has rejected the invitation.
+message.rejectedInvite=%S ha rechazado la invitación.
+# %S is the name of the user who has left the room.
+message.left=%S ha abandonado la 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 desbloqueó a %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 expulsó a %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 expulsado %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 retiró la invitación 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 retiró la invitación de %2$S. Motivo: %3$S
+# %S is the name of the user who has removed the room name.
+message.roomName.remove=%S eliminó el nombre de la 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 cambió el nombre de la sala a %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 cambió el nivel 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 a %3$S
+# %S is the name of the user who has allowed guests to join the room.
+message.guest.allowed=%S ha permitido que los invitados se unan a la sala.
+# %S is the name of the user who has prevented guests to join the room.
+message.guest.prevented=%S ha evitado que invitados se unieran a la sala.
+# %S is the name of the user who has made future room history visible to anyone.
+message.history.anyone=%S hizo que el historial futuro de la sala sea visible para cualquiera.
+# %S is the name of the user who has made future room history visible to all room members.
+message.history.shared=%S hizo que el historial futuro de la sala sea visible para todos los miembros de la 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 hizo que el historial futuro de la sala sea visible para todos los miembros de la sala desde el momento en que sean invitados.
+# %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 hizo que el historial futuro de la sala sea visible para todos los miembros de la sala desde el momento en que se unieron.
+# %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 estableció la dirección principal para esta sala de %2$S a %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 añadió %2$S como dirección alternativa 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 eliminó %2$S como dirección alternativa 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 eliminó %2$S y añadió %3$S como dirección para esta sala.
+message.spaceNotSupported=Esta sala es un espacio, lo que no está soportado.
+message.encryptionStart=Los mensajes en esta conversación ahora están cifrados de extremo a extremo.
+# %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 quiere verificar a %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 canceló la verificación por la razón: %2$S
+message.verification.done=Verificación completada.
+message.decryptionError=No se pudo descifrar el contenido de este mensaje. Para solicitar claves de cifrado de sus otros dispositivos, haga clic en este mensaje con el botón derecho.
+message.decrypting=Descifrando...
+message.redacted=El mensaje fue redactado.
+# %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 reaccionó a %2$S con %3$S.
+
+# Label in the message context menu
+message.action.requestKey=Volver a solicitar claves
+message.action.redact=Redactar
+message.action.report=Reportar mensaje
+message.action.retry=Reintentar envío
+message.action.cancel=Cancelar mensaje
+
+# LOCALIZATION NOTE (error.*)
+# These are strings shown as system messages when an action the user took fails.
+error.sendMessageFailed=Ha ocurrido un error mientras se enviaba su mensaje "%1$S".
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/status.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/status.properties
new file mode 100644
index 0000000000..c34e0db1c5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/status.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/.
+
+availableStatusType = Disponible
+awayStatusType = Ausente
+unavailableStatusType = No disponible
+offlineStatusType = Sin conexión
+invisibleStatusType = Invisible
+idleStatusType = Está inactivo
+mobileStatusType = Móvil
+unknownStatusType = Desconocido
+statusWithStatusMessage = %1$S - %2$S
+messenger.status.defaultIdleAwayMessage = En este momento estoy lejos del equipo.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/twitter.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/twitter.properties
new file mode 100644
index 0000000000..e558409ec1
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/twitter.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 (twitter.protocolName)
+# This name is used whenever the name of the protocol is shown.
+twitter.protocolName=Twitter
+
+twitter.disabled=Twitter ya no está disponible debido a que Twitter deshabilitó su protocolo de transmisión.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/xmpp.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/xmpp.properties
new file mode 100644
index 0000000000..383a34fea7
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/xmpp.properties
@@ -0,0 +1,281 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If 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=Inicializando flujo
+connection.initializingEncryption=Inicializando cifrado
+connection.authenticating=Autenticando
+connection.gettingResource=Obteniendo recurso
+connection.downloadingRoster=Descargando lista de contactos
+connection.srvLookup=Buscando el registro SRV
+
+# LOCALIZATION NOTE (connection.error.*)
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.invalidUsername=Nombre de usuario no válido (su nombre de usuario debe contener un carácter '@')
+connection.error.failedToCreateASocket=no se ha podido crear un socket (¿está desconectado?)
+connection.error.serverClosedConnection=el servidor ha cerrado la conexión
+connection.error.resetByPeer=conexión reiniciada por la otra parte
+connection.error.timedOut=la conexión ha caducado
+connection.error.receivedUnexpectedData=recibidos datos no esperados
+connection.error.incorrectResponse=se ha recibido una respuesta incorrecta
+connection.error.startTLSRequired=el servidor requiere cifrado pero usted la tiene desactivada
+connection.error.startTLSNotSupported=el servidor no admite cifrado pero usted ha configurado que sea obligatorio
+connection.error.failedToStartTLS=no se ha podido iniciar el cifrado
+connection.error.noAuthMec=el servidor no ofrece ningún mecanismo de identificación
+connection.error.noCompatibleAuthMec=ninguno de los mecanismos de identificación ofrecidos por el servidor es compatible
+connection.error.notSendingPasswordInClear=el servidor sólo admite identificación enviando la contraseña como texto sin cifrar
+connection.error.authenticationFailure=fallo de identificación
+connection.error.notAuthorized=no autorizado (¿ha introducido una contraseña errónea?)
+connection.error.failedToGetAResource=no se ha podido obtener un recurso
+connection.error.failedMaxResourceLimit=Esta cuenta está conectada desde demasiados lugares al mismo tiempo.
+connection.error.failedResourceNotValid=El recurso no es válido.
+connection.error.XMPPNotSupported=Este servidor no admite 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=Este mensaje no ha podido ser entregado: %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=No fue posible unirse: %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=No ha podido entrar en %S porque está expulsado de esta sala.
+conversation.error.joinFailedNotAuthorized=Registro necesario: no está autorizado a unirse a esta sala.
+conversation.error.creationFailedNotAllowed=Acceso restringido: no tiene permitido crear 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=No se ha podido entrar en la sala %S ya que no se ha podido contactar con el servidor en el que se aloja la sala.
+conversation.error.changeTopicFailedNotAuthorized=No está autorizado a cambiar el tema de esta 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=El mensaje no se ha podido enviar a %1$S porque ya no está en la 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=El mensaje no se ha podido enviar a %1$S porque el destinatario ya no está en la sala: %2$S
+# These are displayed in a conversation as a system error message.
+conversation.error.remoteServerNotFound=No se ha podido encontrar el servidor del destinatario.
+conversation.error.unknownSendError=Ha sucedido un error desconocido al enviar este mensaje.
+# %S is the name of the message recipient.
+conversation.error.sendServiceUnavailable=No es posible enviar mensajes a %S en este momento.
+# %S is the nick of participant that is not in room.
+conversation.error.nickNotInRoom=%S no está en la sala.
+conversation.error.banCommandAnonymousRoom=No puede expulsar a participantes de salas anónimas. Pruebe /kick en su lugar.
+conversation.error.banKickCommandNotAllowed=No tiene los privilegios requeridos para eliminar este participante de la sala.
+conversation.error.banKickCommandConflict=Lo sentimos, no es posible eliminarse a sí mismo de la sala.
+conversation.error.changeNickFailedConflict=No se ha podido cambiar su apodo a %S porque este apodo ya está en uso.
+conversation.error.changeNickFailedNotAcceptable=No se ha podido cambiar su apodo a %S porque los apodos están bloqueados en esta sala.
+conversation.error.inviteFailedForbidden=No tiene los privilegios necesarios para invitar usuarios a esta sala.
+# %S is the jid of user that is invited.
+conversation.error.failedJIDNotFound=No se ha podido contactar con %S.
+# %S is the jid that is invalid.
+conversation.error.invalidJID=%S no es un jid válido (los identificadores Jabber deben ser de la forma user@domain).
+conversation.error.commandFailedNotInRoom=Tiene que volver a unirse a la sala para poder usar esta orden.
+# %S is the name of the recipient.
+conversation.error.resourceNotAvailable=Debe hablar primero ya que %S podría estar conectado con más de un cliente.
+
+# LOCALIZATION NOTE (conversation.error.version.*):
+# %S is the name of the recipient.
+conversation.error.version.unknown=El cliente de %S no admite que se le solicite la versión del 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=Subscripción
+tooltip.fullName=Nombre completo
+tooltip.nickname=Apodo
+tooltip.email=Correo electrónico
+tooltip.birthday=Cumpleaños
+tooltip.userName=Nombre de usuario
+tooltip.title=Título
+tooltip.organization=Organización
+tooltip.locality=Localidad
+tooltip.country=País
+tooltip.telephone=Número de teléfono
+
+# 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=S_ervidor
+chatRoomField.nick=_Apodo
+chatRoomField.password=Contra_seña
+
+# 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 le ha invitado a unirse a %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 le ha invitado a unirse a %2$S con la contraseña %3$S: %4$S
+conversation.muc.invitationWithoutReason=%1$S le ha invitado a unirse a %2$S
+# %3$S is the password of the room.
+conversation.muc.invitationWithoutReason.password=%1$S le ha invitado a unirse a %2$S con la contraseña %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 ha entrado en la sala.
+
+# LOCALIZATION NOTE (conversation.muc.rejoined):
+# This is displayed as a system message when a participant rejoins room after
+# parting it.
+conversation.message.rejoined=Te has vuelto a unir a la 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=Ha abandonado la sala.
+conversation.message.parted.you.reason=Ha abandonado la 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 ha abandonado la sala.
+conversation.message.parted.reason=%1$S ha abandonado la 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 ha declinado su invitación.
+conversation.message.invitationDeclined.reason=%1$S ha declinado su invitación: %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 ha sido expulsado de la sala.
+conversation.message.banned.reason=%1$S ha sido expulsado de la 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 ha expulsado a %2$S de la sala.
+conversation.message.banned.actor.reason=%1$S ha expulsado a %2$S de la sala: %3$S
+conversation.message.banned.you=Ha sido expulsado de la sala.
+# %1$S is the reason.
+conversation.message.banned.you.reason=Ha sido expulsado de la sala: %1$S
+# %1$S is the person who is banning.
+# %2$S is the reason.
+conversation.message.banned.you.actor=%1$S le ha expulsado de la sala.
+conversation.message.banned.you.actor.reason=%1$S le ha expulsado de la 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 ha sido pateado de la sala.
+conversation.message.kicked.reason=%1$S ha sido pateado de la 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 ha pateado a %2$S de la sala.
+conversation.message.kicked.actor.reason=%1$S ha pateado a %2$S de la sala: %3$S
+conversation.message.kicked.you=Ha sido pateado de la sala.
+# %1$S is the reason.
+conversation.message.kicked.you.reason=Ha sido pateado de la sala: %1$S
+# %1$S is the person who is kicking.
+# %2$S is the reason.
+conversation.message.kicked.you.actor=%1$S le ha pateado de la sala.
+conversation.message.kicked.you.actor.reason=%1$S le ha pateado de la 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 ha sido eliminado de la sala porque su configuración ha cambiado a solo para miembros.
+conversation.message.removedNonMember.actor=%1$S ha sido eliminado de la sala porque %2$S la ha cambiado a solo para miembros.
+conversation.message.removedNonMember.you=Ha sido eliminado de la sala porque su configuración ha cambiado a solo para miembros.
+# %1$S is the person who changed the room configuration.
+conversation.message.removedNonMember.you.actor=Ha sido eliminado de la sala porque %1$S la ha cambiado a solo para miembros.
+
+# 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=Ha sido eliminado de la sala por un apagado de 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á usando "%2$S %3$S".
+conversation.message.versionWithOS=%1$S está usando "%2$S %3$S" en %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=Prioridad
+options.connectionSecurity=Seguridad de la conexión
+options.connectionSecurity.requireEncryption=Requerir cifrado
+options.connectionSecurity.opportunisticTLS=Usar cifrado si está disponible
+options.connectionSecurity.allowUnencryptedAuth=Permitir enviar la contraseña sin cifrar
+options.connectServer=Servidor
+options.connectPort=Puerto
+options.domain=Dominio
+
+# 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=dirección de correo electŕonico
+
+# LOCALIZATION NOTE (gtalk.disabled):
+# It is reported that Google Talk will be disabled on June 16, 2022. The message
+# below is being pre-emptively included so a localized error message can be
+# displayed to users if this happens.
+gtalk.disabled=Google Talk ya no se admite debido a que Google ha cerrado su pasarela 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 de perfil
+
+# LOCALZIATION NOTE (command.*):
+# These are the help messages for each command.
+command.join3=%S [&lt;sala&gt;[@&lt;servidor&gt;][/&lt;apodo&gt;]] [&lt;contraseña&gt;]: unirse a una sala, opcionalmente proporcionando un servidor diferente, un apodo o la contraseña de la sala.
+command.part2=%S [&lt;mensaje&gt;]: salir de la sala actual con un mensaje opcional.
+command.topic=%S [&lt;tema nuevo&gt;]: cambiar el tema de esta sala.
+command.ban=%S &lt;apodo&gt; [&lt;mensaje&gt;]: expulsar a alguien de una sala. Debe ser un operador del canal para hacer esto.
+command.kick=%S &lt;apodo&gt; [&lt;mensaje&gt;]: eliminar a alguien de la sala. Debe ser un operador del canal para hacer esto.
+command.invite=%S &lt;jid&gt;[&lt;mensaje&gt;]: invita a un usuario a unirser a la sala actual, opcionalmente con un mensaje.
+command.inviteto=%S &lt;sala jid&gt;[&lt;contraseña&gt;]: invita a su compañero de conversación a unirse a una sala, junto con su contraseña si es necesario.
+command.me=%S &lt;acción para realizar&gt;: realiza una acción.
+command.nick=%S &lt;apodo nuevo&gt;: cambiar su apodo.
+command.msg=%S &lt;apodo&gt; &lt;mensaje&gt;: envía un mensaje privado a un participante de la sala.
+command.version=%S: solicita información sobre el cliente que está usando su interlocutor.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/yahoo.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/yahoo.properties
new file mode 100644
index 0000000000..84025f4b3e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/chat/yahoo.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+yahoo.disabled = Yahoo Messenger ya no se admite debido a que Yahoo ha cerrado su protocolo antiguo.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/communicator/utilityOverlay.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/communicator/utilityOverlay.dtd
new file mode 100644
index 0000000000..8c020726ed
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Archivo">
+<!ENTITY fileMenu.accesskey "a">
+<!ENTITY newMenu.label "Nuevo">
+<!ENTITY newMenu.accesskey "N">
+
+<!ENTITY editMenu.label "Editar">
+<!ENTITY editMenu.accesskey "E">
+<!ENTITY undoCmd.label "Deshacer">
+<!ENTITY undoCmd.accesskey "h">
+<!ENTITY redoCmd.label "Rehacer">
+<!ENTITY redoCmd.accesskey "R">
+<!ENTITY deleteCmd.label "Eliminar">
+<!ENTITY deleteCmd.accesskey "m">
+
+<!ENTITY customizeCmd.label "Personalizar">
+<!ENTITY customizeCmd.accesskey "o">
+
+<!ENTITY viewMenu.label "Ver">
+<!ENTITY viewMenu.accesskey "V">
+<!ENTITY viewToolbarsMenu.label "Barras de herramientas">
+<!ENTITY viewToolbarsMenu.accesskey "h">
+<!ENTITY showTaskbarCmd.label "Barra de estado">
+<!ENTITY showTaskbarCmd.accesskey "B">
+
+<!ENTITY closeCmd.label "Cerrar">
+<!ENTITY closeCmd.key "W">
+<!ENTITY closeCmd.accesskey "C">
+
+<!ENTITY quitApplicationCmd.label "Salir">
+<!ENTITY quitApplicationCmd.key "Q">
+<!ENTITY quitApplicationCmd.accesskey "S">
+
+<!ENTITY quitApplicationCmdUnix.label "Salir">
+<!ENTITY quitApplicationCmdUnix.accesskey "S">
+
+<!ENTITY quitApplicationCmdMac.label "Salir de &brandShortName;">
+<!ENTITY quitApplicationCmdMac.accesskey "S">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/accessibility.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/accessibility.properties
new file mode 100644
index 0000000000..0697df1d3c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Rol
+
+# LOCALIZATION NOTE (accessibility.name): A title text used for Accessibility
+# tree header column that represents accessible element name.
+accessibility.name=Nombre
+
+# LOCALIZATION NOTE (accessibility.logo): A title text used for Accessibility
+# logo used on the accessibility panel landing page.
+accessibility.logo=Logo de accesibilidad
+
+# LOCALIZATION NOTE (accessibility.properties): A title text used for header
+# for Accessibility details sidebar.
+accessibility.properties=Propiedades
+
+# LOCALIZATION NOTE (accessibility.treeName): A title text used for
+# Accessibility tree (that represents accessible element name) container.
+accessibility.treeName=Esquema de accesibilidad
+
+# 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=Clic para seleccionar el nodo en el árbol de accesibilidad
+
+# 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=Clic para seleccionar el nodo en el inspector
+
+# LOCALIZATION NOTE (accessibility.accessible.notAvailable): A title text
+# displayed when accessible sidebar panel does not have an accessible object to
+# display.
+accessibility.accessible.notAvailable=Información de accesibilidad no disponible
+
+# LOCALIZATION NOTE (accessibility.enable): A title text for Enable
+# accessibility button used to enable accessibility service.
+accessibility.enable=Activar funciones de accesibilidad
+
+# LOCALIZATION NOTE (accessibility.enabling): A title text for Enable
+# accessibility button used when accessibility service is being enabled.
+accessibility.enabling=Activando funciones de accesibilidad…
+
+# LOCALIZATION NOTE (accessibility.disable): A title text for Disable
+# accessibility button used to disable accessibility service.
+accessibility.disable=Desactivar funciones de accesibilidad
+
+# LOCALIZATION NOTE (accessibility.disabling): A title text for Disable
+# accessibility button used when accessibility service is being
+# disabled.
+accessibility.disabling=Desactivando funciones de accesibilidad…
+
+# LOCALIZATION NOTE (accessibility.pick): A title text for Picker button
+# button used to pick accessible objects from the page.
+accessibility.pick=Elegir un objeto accesible de la 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=No se puede desactivar el servicio de accesibilidad. Está en uso fuera de las herramientas de desarrollo.
+
+# 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=Se desactivará el servicio de accesibilidad en todas las pestañas y ventanas.
+
+# 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=No se puede activar el servicio de accesibilidad. Se ha desactivado mediante la preferencia de privacidad de los servicios de accesibilidad.
+
+# 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=Se activará el servicio de accesibilidad en todas las pestañas y ventanas.
+
+# 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 más
+
+# 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=El inspector de accesibilidad le permite examinar el árbol de accesibilidad de la página actual, que es utilizado por los lectores de pantalla y otras tecnologías de asistencia. %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=Las funciones de accesibilidad pueden afectar al rendimiento de otros paneles de herramientas para desarrolladores y deben desactivarse cuando no se utilicen.
+
+# 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 en JSON
+
+# LOCALIZATION NOTE (accessibility.checks): A title text used for header for checks
+# section in Accessibility details sidebar.
+accessibility.checks=Verificaciones
+
+# LOCALIZATION NOTE (accessibility.checks.empty2): A title text used for indicating that
+# accessibility checks for a node yielded no results and another node should be
+# selected.
+accessibility.checks.empty2=No hay verificaciones para este nodo.
+
+# LOCALIZATION NOTE (accessibility.contrast.header): A title text used for header for
+# checks related to color and contrast.
+accessibility.contrast.header=Color y 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=Imposible de 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=El texto es de 14 puntos y en negrita o más grande, o de 18 puntos o más grande.
+
+# 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=Cumple con las normas WCAG AA para texto accesible. %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=Cumple con las normas AAA de WCAG para texto accesible. %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=No cumple con los estándares de WCAG sobre texto accesible. %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=Elija un color que no sea 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=Comprobación de accesibilidad
+
+# 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=Ninguno
+
+# 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 los 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=advertencia 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=etiqueta 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=No cumple los estándares de WCAG para texto accesible.
+
+# 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=No cumple con los estándares de WCAG sobre accesibilidad del 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=No cumple con los estándares WCAG para texto alternativo.
+
+# 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=Comprobar 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=Preferencias de configuración
+
+# LOCALIZATION NOTE (accessibility.progress.initializing): A title text for the
+# accessibility panel overlay shown when accessibility audit is starting up.
+accessibility.progress.initializing=Inicializando…
+
+# 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=Verificando #1 nodo;Verificando #1 nodos
+
+# LOCALIZATION NOTE (accessibility.progress.finishing): A title text for the
+# accessibility panel overlay shown when accessibility audit is finishing up.
+accessibility.progress.finishing=Finalizando…
+
+# 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=Desplazar automáticamente el nodo seleccionado a la vista
+
+# 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=Desplazar a la vista
+
+# LOCALIZATION NOTE (accessibility.documentation.label): This is the label for
+# the Documentation menu item.
+accessibility.documentation.label=Documentación…
+
+# 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 (sin rojo)
+
+# 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 (sin 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 (sin 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=Pérdida 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 (sin color)
+
+# LOCALIZATION NOTE (accessibility.toolbar.displayTabbingOrder.label): A title text for a checkbox label
+# in the accessibility panel toolbar that turns on/off the overlay of focusable elements in their
+# tabbing order.
+accessibility.toolbar.displayTabbingOrder.label=Mostrar orden de tabulación
+
+# 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=Mostrar el orden de tabulación de los elementos y su índice de tabulación.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/animationinspector.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/animationinspector.properties
new file mode 100644
index 0000000000..54013b6a38
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=No se han encontrado animaciones en el elemento actual.\nElija otro elemento de la 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=Duración:
+
+# 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=Retraso:
+
+# LOCALIZATION NOTE (player.animationEndDelayLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation endDelay.
+player.animationEndDelayLabel=Retraso final:
+
+# 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=Tasa de reproducción:
+
+# 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=Repeticiones:
+
+# 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=Inicio de iteración: %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=Suavizado total:
+
+# 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=Función de temporización de animación:
+
+# 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=Relleno:
+
+# 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=Dirección:
+
+# 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 animación se está ejecutando en el hilo del compositor
+
+# 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 las propiedades de animación están optimizadas
+
+# 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=Algunas propiedades de animación están optimizadas
+
+# 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=Reanudar las animaciones
+
+# 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 las animaciones
+
+# 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 las animaciones
+
+# 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 - Animación 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 - Transición 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 - Animación de 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=Animación de 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/es-ES/chrome/es-ES/locale/es-ES/devtools/client/boxmodel.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/boxmodel.properties
new file mode 100644
index 0000000000..33855dbfa4
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 caja
+
+# 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 posición
+
+# 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=Propiedades del modelo de caja
+
+# 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=offset
+
+# LOCALIZATION NOTE: (boxmodel.offsetParent.title) This label is displayed as a
+# tooltip that appears when hovering over the offset label, inside the list of properties,
+# below the box model, in the layout view. This label tells users
+# what the DOM node previewed next to it is: an offset parent for the position element.
+boxmodel.offsetParent.title=Desplazamiento del padre del elemento seleccionado
+
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/changes.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/changes.properties
new file mode 100644
index 0000000000..9ace0f6a04
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/changes.properties
@@ -0,0 +1,64 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE This file contains the strings for the Changes panel accessible from
+# the Inspector sidebar.
+
+# LOCALIZATION NOTE (changes.noChanges): This text is shown when no changes are available.
+changes.noChanges=No se han encontrado cambios.
+
+# 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=Los cambios realizados en el inspector CSS aparecerán aquí.
+
+# 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=En línea %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 todos los cambios
+
+# 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 una lista de todos los cambios de CSS al portapapeles.
+
+# 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 declaración
+
+# 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=Regla para copiar
+
+# 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 los contenidos de esta regla CSS al portapapeles.
+
+# LOCALIZATION NOTE (changes.contextmenu.selectAll): Label for "Select All" option in the
+# Changes panel context menu to select all text content.
+changes.contextmenu.selectAll=Seleccionar todo
+
+# LOCALIZATION NOTE (changes.contextmenu.selectAll.accessKey): Access key for "Select All"
+# option in the Changes panel.
+changes.contextmenu.selectAll.accessKey=A
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/components.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/components.properties
new file mode 100644
index 0000000000..d059abfcc7
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/components.properties
@@ -0,0 +1,61 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used in the 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=(desconocido)
+
+# 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 fuente en el 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 fuente en el Editor de estilo → %S
+
+# LOCALIZATION NOTE (notificationBox.closeTooltip): The content of a tooltip that
+# appears when hovering over the close button in a notification box.
+notificationBox.closeTooltip=Cerrar este mensaje
+
+# 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=El panel %S ha fallado.
+
+# LOCALIZATION NOTE (appErrorBoundary.fileBugButton): This is the text that appears in
+# the button to visit the bug filing link.
+appErrorBoundary.fileBugButton=Informar de un error
+
+# LOCALIZATION NOTE (appErrorBoundary.reloadPanelInfo): This is the text that appears
+# after the panel errors to instruct the user to reload the panel.
+appErrorBoundary.reloadPanelInfo=Cierre y vuelva a abrir la caja de herramientas para eliminar este error.
+
+# LOCALIZATION NOTE(searchModifier.regExpModifier): A search option
+# when searching text in a file
+searchModifier.regExpModifier=Usar expresión regular
+
+# LOCALIZATION NOTE(searchModifier.caseSensitiveModifier): A search option
+# when searching text in a file
+searchModifier.caseSensitiveModifier=Coincidencia de mayúsculas/minúsculas
+
+# LOCALIZATION NOTE(searchModifier.wholeWordModifier): A search option
+# when searching text in a file
+searchModifier.wholeWordModifier=Palabras completas
+
+# LOCALIZATION NOTE (searchBox.clearButtonTitle): The title of the SearchBox clear input
+# button, which is displayed when the input is not empty.
+searchBox.clearButtonTitle=Borrar filtro
+
+# LOCALIZATION NOTE treeNode.collapseButtonTitle): The title of the Tree node toggle
+# button when the node is expanded.
+treeNode.collapseButtonTitle=Contraer
+
+# LOCALIZATION NOTE treeNode.expandButtonTitle): The title of the Tree node toggle
+# button when the node is collapsed.
+treeNode.expandButtonTitle=Expandir
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/debugger.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/debugger.properties
new file mode 100644
index 0000000000..0b7edab9bd
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/debugger.properties
@@ -0,0 +1,1132 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If 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=Contraer paneles de fuentes y esquema
+
+# LOCALIZATION NOTE (collapseBreakpoints): This is the tooltip for the button
+# that collapses the Breakpoints panes in the debugger UI.
+collapseBreakpoints=Contraer panel de puntos de ruptura
+
+# 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 al portapapeles
+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 el texto original
+copySource.accesskey=o
+
+# LOCALIZATION NOTE (copySourceUri2): This is the text that appears in the
+# context menu to copy the source URI of file open.
+copySourceUri2=Copiar URI del código fuente
+copySourceUri2.accesskey=u
+
+# LOCALIZATION NOTE (collapseAll.label): This is the text that appears in the
+# context menu to collapse a directory and all of its subdirectories.
+collapseAll.label=Contraer todo
+
+# 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 todo
+
+# LOCALIZATION NOTE (setDirectoryRoot.label): This is the text that appears in the
+# context menu to set a directory as root directory
+setDirectoryRoot.label=Establecer raíz del directorio
+setDirectoryRoot.accesskey=E
+
+# LOCALIZATION NOTE (removeDirectoryRoot.label): This is the text that appears in the
+# context menu to remove a directory as root directory
+removeDirectoryRoot.label=Eliminar raíz del directorio
+
+# 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 archivos en este 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=Dejar de ignorar archivos en este 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 archivos fuera de este 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=Dejar de ignorar archivos fuera de este 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 archivos en este directorio
+
+# 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=Dejar de ignorar archivos en este directorio
+
+# 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 archivos fuera de este directorio
+
+# 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=Dejar de ignorar archivos fuera de este directorio
+
+# LOCALIZATION NOTE (copyFunction.label): This is the text that appears in the
+# context menu to copy the function the user selected
+copyFunction.label=Copiar función
+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 traza de la pila
+copyStackTrace.accesskey=z
+
+# LOCALIZATION NOTE (restartFrame): This is the text that appears in the
+# context menu to restart a frame.
+restartFrame=Reiniciar marco
+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 paneles de fuentes y esquema
+
+# LOCALIZATION NOTE (expandBreakpoints): This is the tooltip for the button
+# that expands the Breakpoints panes in the debugger UI.
+expandBreakpoints=Expandir panel de puntos de ruptura
+
+# LOCALIZATION NOTE (evaluateInConsole.label): Editor right-click menu item
+# to execute selected text in browser console.
+evaluateInConsole.label=Evaluar en la 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=Esperando la siguiente ejecución
+
+# 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=Rastrear todos los marcos de JavaScript a %S.\nHaz clic con el botón derecho para cambiar la salida.
+
+# 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=Dejar de rastrear los marcos de 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=Rastrear todos los marcos de JavaScript a %2$S. (%1$S)\nHaga clic con el botón derecho para cambiar la salida.
+
+# 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=Dejar de rastrear los marcos 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 en la 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 en stdout
+
+# LOCALIZATION NOTE (resumeButtonTooltip): The label that is displayed on the pause
+# button when the debugger is in a paused state.
+resumeButtonTooltip=Reanudar %S
+
+# LOCALIZATION NOTE (stepOverTooltip): The label that is displayed on the
+# button that steps over a function call.
+stepOverTooltip=Pasar sobre %S
+
+# LOCALIZATION NOTE (stepInTooltip): The label that is displayed on the
+# button that steps into a function call.
+stepInTooltip=Entrar en %S
+
+# LOCALIZATION NOTE (stepOutTooltip): The label that is displayed on the
+# button that steps out of a function call.
+stepOutTooltip=Salir de %S
+
+# LOCALIZATION NOTE (skipPausingTooltip.label): The tooltip text for disabling all
+# breakpoints and pausing triggers
+skipPausingTooltip.label=Desactivar puntos de ruptura
+
+# LOCALIZATION NOTE (undoSkipPausingTooltip.label): The tooltip text for enabling all
+# breakpoints and pausing triggers
+undoSkipPausingTooltip.label=Activar puntos de ruptura
+
+# LOCALIZATION NOTE (pauseOnDebuggerStatement): The pause on debugger statement checkbox label
+pauseOnDebuggerStatement=Pausar en sentencia del depurador
+
+# LOCALIZATION NOTE (pauseOnExceptionsItem2): The pause on exceptions checkbox description
+# when the debugger will pause on all exceptions.
+pauseOnExceptionsItem2=Detenerse en excepciones
+
+# LOCALIZATION NOTE (pauseOnCaughtExceptionsItem): The pause on exceptions checkbox description
+# when the debugger should pause on caught exceptions
+pauseOnCaughtExceptionsItem=Hacer una pausa en las excepciones capturadas
+
+# LOCALIZATION NOTE (threadsHeader): The text to describe the threads header
+threadsHeader=Hilos
+
+# LOCALIZATION NOTE (mainThread): The text to describe the thread of the
+# program as opposed to worker threads.
+mainThread=Hilo principal
+
+# LOCALIZATION NOTE (pausedThread): The text to describe the status of paused threads
+pausedThread=pausado
+
+# LOCALIZATION NOTE (noSourcesText): The text to display in the sources list
+# when there are no sources.
+noSourcesText=Esta página no tiene fuentes.
+
+# LOCALIZATION NOTE (ignoredSourcesHidden): Notification message displayed in the
+# sources list footer when ignored sources are hidden.
+ignoredSourcesHidden=Las fuentes ignoradas están 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 las fuentes
+
+# 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=Esto mostrará en el árbol todas las fuentes ignoradas (que actualmente están ocultas).
+
+# LOCALIZATION NOTE (eventListenersHeader1): The text to display in the events
+# header.
+eventListenersHeader1=Puntos de ruptura de escucha 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=Haga clic con el botón derecho sobre un elemento en el %S y seleccione “Interrumpir en...” para añadir un punto de ruptura
+
+# LOCALIZATION NOTE (inspectorTool): The text to describe the the Inspector tool
+inspectorTool=Inspector
+
+# LOCALIZATION NOTE (eventListenersHeader1.placeholder): The placeholder text in
+# the event search input bar
+eventListenersHeader1.placeholder=Filtrar por tipo de evento
+
+# LOCALIZATION NOTE (domMutationHeader): The text to display in the
+# DOM Mutation Breakpoints header
+domMutationHeader=Puntos de ruptura de mutación DOM
+
+# LOCALIZATION NOTE (domMutationTypes.attribute): The text to display in the
+# DOM Mutation Breakpoints panel for an attribute change
+domMutationTypes.attribute=Modificación de atributo
+
+# LOCALIZATION NOTE (domMutationTypes.removal): The text to display in the
+# DOM Mutation Breakpoints panel for a DOM node removal
+domMutationTypes.removal=Eliminación de nodo
+
+# LOCALIZATION NOTE (domMutationTypes.subtree): The text to display in the
+# DOM Mutation Breakpoints panel for a DOM subtree change
+domMutationTypes.subtree=Modificación de subárbol
+
+# 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=Paso a paso
+
+# LOCALIZATION NOTE (shortcuts.header.search): Sections header in
+# the shortcuts modal for keyboard shortcuts related to search.
+shortcuts.header.search=Buscar
+
+# LOCALIZATION NOTE (projectTextSearch.placeholder): A placeholder shown
+# when searching across all of the files in a project.
+projectTextSearch.placeholder=Buscar en archivos…
+
+# 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=archivos 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=p.ej. **/node_modules/**,app.js
+
+# LOCALIZATION NOTE (projectTextSearch.noResults): The center pane Text Search
+# message when the query did not match any text of all files in a project.
+projectTextSearch.noResults=No se han encontrado 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=Haga clic para actualizar los resultados de la búsqueda
+
+# 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=La página navegó a un nuevo documento. Haga clic para actualizar resultados de búsqueda
+
+# 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 fuente ya no está disponible.\nActualice la búsqueda para tener las fuentes más recientes.
+
+# 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=Buscar en archivo…
+
+# LOCALIZATION NOTE (sourceSearch.search.placeholder2): placeholder text in
+# the source search input bar
+sourceSearch.search.placeholder2=Buscar en archivo…
+
+# 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=Activar puntos de ruptura
+breakpointHeadingsMenuItem.enableInSource.accesskey=A
+breakpointHeadingsMenuItem.disableInSource.label=Desactivar puntos de ruptura
+breakpointHeadingsMenuItem.disableInSource.accesskey=D
+breakpointHeadingsMenuItem.removeInSource.label=Eliminar puntos de ruptura
+breakpointHeadingsMenuItem.removeInSource.accesskey=E
+
+# LOCALIZATION NOTE (breakpointMenuItem): The text for all the elements that
+# are displayed in the breakpoints menu item popup.
+breakpointMenuItem.enableSelf2.label=Activar
+breakpointMenuItem.enableSelf2.accesskey=A
+breakpointMenuItem.disableSelf2.label=Desactivar
+breakpointMenuItem.disableSelf2.accesskey=D
+breakpointMenuItem.deleteSelf2.label=Eliminar
+breakpointMenuItem.deleteSelf2.accesskey=r
+breakpointMenuItem.disabledbg.label=Nunca pausar aquí
+breakpointMenuItem.enabledbg.label=Pausar aquí
+breakpointMenuItem.enableOthers2.label=Activar otros
+breakpointMenuItem.enableOthers2.accesskey=o
+breakpointMenuItem.disableOthers2.label=Desactivar otros
+breakpointMenuItem.disableOthers2.accesskey=s
+breakpointMenuItem.deleteOthers2.label=Eliminar otros
+breakpointMenuItem.deleteOthers2.accesskey=m
+breakpointMenuItem.enableAll2.label=Activar todo
+breakpointMenuItem.enableAll2.accesskey=t
+breakpointMenuItem.disableAll2.label=Desactivar todo
+breakpointMenuItem.disableAll2.accesskey=t
+breakpointMenuItem.deleteAll2.label=Eliminar todos
+breakpointMenuItem.deleteAll2.accesskey=t
+breakpointMenuItem.removeCondition2.label=Eliminar condición
+breakpointMenuItem.removeCondition2.accesskey=c
+breakpointMenuItem.addCondition2.label=Añadir condición
+breakpointMenuItem.addCondition2.accesskey=A
+breakpointMenuItem.editCondition2.label=Editar condición
+breakpointMenuItem.editCondition2.accesskey=n
+breakpointMenuItem.enableSelf=Activar punto de ruptura
+breakpointMenuItem.disableSelf=Desactivar punto de ruptura
+breakpointMenuItem.deleteSelf=Eliminar punto de ruptura
+breakpointMenuItem.enableOthers=Activar otros
+breakpointMenuItem.disableOthers=Desactivar otros
+breakpointMenuItem.deleteOthers=Eliminar otros
+breakpointMenuItem.enableAll=Activar todos los puntos de ruptura
+breakpointMenuItem.disableAll=Desactivar todos los puntos de ruptura
+breakpointMenuItem.deleteAll=Eliminar todos los puntos de ruptura
+breakpointMenuItem.disableAllAtLine.label=Desactivar los puntos de ruptura en la línea
+breakpointMenuItem.disableAllAtLine.accesskey=D
+breakpointMenuItem.enableAllAtLine.label=Activar los puntos de ruptura en la línea
+breakpointMenuItem.enableAllAtLine.accesskey=L
+breakpointMenuItem.removeAllAtLine.label=Eliminar puntos de ruptura en la línea
+breakpointMenuItem.removeAllAtLine.accesskey=E
+
+# LOCALIZATION NOTE (breakpoints.header): Breakpoints right sidebar pane header.
+breakpoints.header=Puntos de ruptura
+
+# LOCALIZATION NOTE (breakpoints.removeBreakpointTooltip): The tooltip that is displayed
+# for remove breakpoint button in right sidebar
+breakpoints.removeBreakpointTooltip=Eliminar punto de ruptura
+
+# LOCALIZATION NOTE (callStack.header): Call Stack right sidebar pane header.
+callStack.header=Pila de llamadas
+
+# LOCALIZATION NOTE (callStack.notPaused): Call Stack right sidebar pane
+# message when not paused.
+callStack.notPaused=No pausado
+
+# LOCALIZATION NOTE (callStack.collapse): Call Stack right sidebar pane
+# message to hide some of the frames that are shown.
+callStack.collapse=Contraer filas
+
+# LOCALIZATION NOTE (callStack.expand): Call Stack right sidebar pane
+# message to show more of the frames.
+callStack.expand=Expandir filas
+
+# 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 marcos de %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=Contraer marcos de %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=No se han encontrado resultados
+
+# LOCALIZATION NOTE (editor.searchResults.nextResult): Editor Search bar
+# tooltip for traversing to the Next Result
+editor.searchResults.nextResult=Resultado siguiente
+
+# 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 hasta aquí
+editor.continueToHere.accesskey=C
+
+# LOCALIZATION NOTE (editor.addBreakpoint): Editor gutter context menu item
+# for adding a breakpoint on a line.
+editor.addBreakpoint=Añadir punto de ruptura
+
+# LOCALIZATION NOTE (editor.disableBreakpoint): Editor gutter context menu item
+# for disabling a breakpoint on a line.
+editor.disableBreakpoint=Desactivar punto de ruptura
+editor.disableBreakpoint.accesskey=D
+
+# LOCALIZATION NOTE (editor.enableBreakpoint): Editor gutter context menu item
+# for enabling a breakpoint on a line.
+editor.enableBreakpoint=Activar punto de ruptura
+
+# LOCALIZATION NOTE (editor.removeBreakpoint): Editor gutter context menu item
+# for removing a breakpoint on a line.
+editor.removeBreakpoint=Eliminar punto de ruptura
+
+# LOCALIZATION NOTE (editor.addConditionBreakpoint): Editor gutter context
+# menu item for adding a breakpoint condition on a line.
+editor.addConditionBreakpoint=Añadir condición
+editor.addConditionBreakpoint.accesskey=c
+
+# LOCALIZATION NOTE (editor.editConditionBreakpoint): Editor gutter context menu item
+# for setting a breakpoint condition on a line.
+editor.editConditionBreakpoint=Editar condición
+
+# LOCALIZATION NOTE (editor.addLogPoint): Editor gutter context
+# menu item for adding a log point on a line.
+editor.addLogPoint=Añadir registro
+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 registro
+editor.editLogPoint.accesskey=E
+
+# LOCALIZATION NOTE (editor.removeLogPoint): Context menu item for removing
+# a log point on a line.
+editor.removeLogPoint.label=Eliminar registro
+editor.removeLogPoint.accesskey=l
+
+# LOCALIZATION NOTE (editor.conditionalPanel.placeholder2): Placeholder text for
+# input element inside ConditionalPanel component
+editor.conditionalPanel.placeholder2=Punto de ruptura condicional; por ejemplo, longitud > 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=Mensaje de registro; por ejemplo, displayName
+
+# LOCALIZATION NOTE (editor.jumpToMappedLocation1): Context menu item
+# for navigating to a source mapped location
+editor.jumpToMappedLocation1=Saltar a la ubicación %S
+editor.jumpToMappedLocation1.accesskey=S
+
+# LOCALIZATION NOTE (downloadFile.label): Context menu item
+# for downloading a source's content
+downloadFile.label=Descargar archivo
+downloadFile.accesskey=d
+
+# LOCALIZATION NOTE (inlinePreview.show.label): Context menu item
+# for showing the inline preview blocks
+inlinePreview.show.label=Mostrar vista previa integrada
+
+# LOCALIZATION NOTE (inlinePreview.hide.label): Context menu item
+# for hiding the inline preview block
+inlinePreview.hide.label=Ocultar vista previa integrada
+
+# LOCALIZATION NOTE (inlinePreview.toggle.label): Context menu item
+# that will toggle display of inline preview
+inlinePreview.toggle.label=Vista previa de variable en línea
+
+# LOCALIZATION NOTE (inlinePreview.toggle.tooltip): Context menu item
+# tooltip that will describe toggling inline preview
+inlinePreview.toggle.tooltip=Mostrar vista previa en línea en el editor del depurador
+
+# LOCALIZATION NOTE (editorWrapping.show.label): Context menu item
+# for showing the wrap lines block
+editorWrapping.show.label=Ajustar líneas
+
+# LOCALIZATION NOTE (editorWrapping.hide.label): Context menu item
+# for showing the wrap lines block
+editorWrapping.hide.label=No ajustar líneas
+
+# LOCALIZATION NOTE (editorWrapping.toggle.label): Context menu item
+# label for toggling the lines wrapping feature
+editorWrapping.toggle.label=Ajustar líneas
+
+# LOCALIZATION NOTE (editorWrapping.toggle.tooltip): Context menu item
+# tooltip for toggling the lines wrapping feature
+editorWrapping.toggle.tooltip=Ajustar líneas en el editor del depurador
+
+# LOCALIZATION NOTE (settings.button.label): Label for Settings button
+settings.button.label=Ajustes del depurador
+
+# LOCALIZATION NOTE (settings.disableJavaScript.label): Context menu item
+# label for disabling JavaScript
+settings.disableJavaScript.label=Desactivar JavaScript
+
+# LOCALIZATION NOTE (settings.disableJavaScript.tooltip): Context menu item
+# tooltip for disabling JavaScript
+settings.disableJavaScript.tooltip=Desactivar JavaScript (requiere recargar)
+
+# LOCALIZATION NOTE (settings.toggleSourceMaps.tooltip): Context menu item
+# tooltip for toggling the source maps feature
+settings.toggleSourceMaps.tooltip=Activar los mapas de origen para permitir que DevTools cargue las fuentes originales además de las generadas
+
+# LOCALIZATION NOTE (settings.toggleSourceMaps.label): Context menu item
+# label for toggling the source maps feature
+settings.toggleSourceMaps.label=Mapas de origen
+
+# LOCALIZATION NOTE (settings.hideIgnoredSources.tooltip): Context menu item
+# tooltip for hiding and showing all the ignored sources
+settings.hideIgnoredSources.tooltip=Oculta todas las fuentes ignoradas en el panel Fuentes
+
+# 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 fuentes 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=Ignorar todas las fuentes en el campo x_google_ignoreList del mapa de fuentes.
+
+# 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 de terceros conocidos
+
+# LOCALIZATION NOTE (preview.noProperties): Label shown in the preview
+# popup when there are no properties to show.
+preview.noProperties=Sin propiedades
+
+# LOCALIZATION NOTE (framework.disableGrouping): This is the text that appears in the
+# context menu to disable framework grouping.
+framework.disableGrouping=Desactivar agrupación por framework
+framework.disableGrouping.accesskey=v
+
+# LOCALIZATION NOTE (framework.enableGrouping): This is the text that appears in the
+# context menu to enable framework grouping.
+framework.enableGrouping=Activar agrupación por framework
+framework.enableGrouping.accesskey=A
+
+# LOCALIZATION NOTE (generated): Source Map term for a server source location
+generated=generado
+
+# 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=Añadir expresión de vigilancia
+
+# LOCALIZATION NOTE (expressions.noOriginalScopes): Expressions right sidebar pane message
+# for when the`map variable names`is off and the debugger is paused in an original source
+expressions.noOriginalScopes=La asignación de nombres de variables originales está desactivada. Es posible que los valores de expresión no sean precisos.
+
+# LOCALIZATION NOTE (expressions.errorMsg): Error text for expression
+# input element
+expressions.errorMsg=Expresión no válida…
+expressions.label=Añadir expresión de vigilancia
+expressions.accesskey=A
+expressions.remove.tooltip=Eliminar la expresión de vigilancia
+
+# LOCALIZATION NOTE (xhrBreakpoints.header): The pause on any XHR breakpoints headings
+xhrBreakpoints.header=Puntos de ruptura XHR
+xhrBreakpoints.placeholder=Interrumpir cuando la URL contenga
+xhrBreakpoints.label=Añadir punto de ruptura XHR
+
+# LOCALIZATION NOTE (xhrBreakpoints.removeAll.tooltip): For the `Remove all XHR breakpoints' button in the header of the XHR breakpoints panel
+xhrBreakpoints.removeAll.tooltip=Eliminar todos los puntos de ruptura 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=La URL contiene “%S”
+
+# LOCALIZATION NOTE (pauseOnAnyXHR): The pause on any XHR checkbox description
+# when the debugger will pause on any XHR requests.
+pauseOnAnyXHR=Pausar en cualquier URL
+
+# LOCALIZATION NOTE (watchpoints.submenu): This is the text for the watchpoints sub-menu.
+watchpoints.submenu=Interrumpir en…
+
+# 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=Lectura de una propiedad
+
+# 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=Establecer una propiedad
+
+# 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=Obtener o establecer la propiedad
+
+# LOCALIZATION NOTE (watchpoints.removeWatchpoint): This is the text that appears in the
+# context menu to delete a watchpoint on an object property.
+watchpoints.removeWatchpoint=Eliminar punto de observación
+
+# LOCALIZATION NOTE (watchpoints.removeWatchpointTooltip): This is the text that appears in the
+# tooltip to delete a watchpoint on an object property.
+watchpoints.removeWatchpointTooltip=Eliminar punto de observación
+
+# LOCALIZATION NOTE (sourceTabs.closeTab): Editor source tab context menu item
+# for closing the selected tab below the mouse.
+sourceTabs.closeTab=Cerrar pestaña
+sourceTabs.closeTab.accesskey=a
+sourceTabs.closeTab.key=CmdOrCtrl+W
+
+# LOCALIZATION NOTE (sourceTabs.closeOtherTabs): Editor source tab context menu item
+# for closing the other tabs.
+sourceTabs.closeOtherTabs=Cerrar las otras pestañas
+sourceTabs.closeOtherTabs.accesskey=e
+
+# 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=Cerrar pestañas a la derecha
+sourceTabs.closeTabsToEnd.accesskey=d
+
+# LOCALIZATION NOTE (sourceTabs.closeAllTabs): Editor source tab context menu item
+# for closing all tabs.
+sourceTabs.closeAllTabs=Cerrar todas las pestañas
+sourceTabs.closeAllTabs.accesskey=t
+
+# LOCALIZATION NOTE (sourceTabs.revealInTree): Editor source tab context menu item
+# for revealing source in tree.
+sourceTabs.revealInTree=Resaltar en árbol
+sourceTabs.revealInTree.accesskey=R
+
+# LOCALIZATION NOTE (sourceTabs.prettyPrint): Editor source tab context menu item
+# for pretty printing the source.
+sourceTabs.prettyPrint=Imprimir código fuente mejorado
+sourceTabs.prettyPrint.accesskey=I
+
+# 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=No se puede imprimir, el archivo ya ha sido impreso
+
+# 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=No se pueden imprimir las fuentes originales, el archivo ya es legible
+
+# 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=No se pueden imprimir fuentes generadas con mapas de fuente válidos. Utilice las fuentes originales.
+
+# 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=No se puede imprimir, el archivo no tiene contenido
+
+# 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=No se puede imprimir, el archivo no es JavaScript
+
+# LOCALIZATION NOTE (sourceFooter.ignores): Tooltip text associated
+# with the ignores button
+sourceFooter.ignore=Ignorar fuente
+
+# LOCALIZATION NOTE (sourceFooter.unignore): Tooltip text associated
+# with the ignore button
+sourceFooter.unignore=Dejar de ignorar fuente
+
+# LOCALIZATION NOTE (sourceFooter.ignoreList): Tooltip text associated
+# with the ignore source button when the selected source is on the ignore list
+sourceFooter.ignoreList=Esta fuente está en la lista de ignorados. Desactive la opción `Ignorar scripts de terceros conocidos` para habilitarla.
+
+# LOCALIZATION NOTE (editorNotificationFooter.noOriginalScopes): The notification message displayed in the editor notification footer
+# when paused in an original file and original variable mapping is turned off
+# %S is text from the label for checkbox to show original scopes
+editorNotificationFooter.noOriginalScopes=La asignación de nombres de variables originales está desactivada, por lo que todas las vistas previas en línea y de información sobre herramientas están desactivadas. Haga clic en la casilla de verificación `%S` en el panel de ámbitos para activarlas.
+
+# LOCALIZATION NOTE (ignoreContextItem.ignore): Text associated
+# with the ignore context menu item
+ignoreContextItem.ignore=Ignorar fuente
+ignoreContextItem.ignore.accesskey=I
+
+# LOCALIZATION NOTE (ignoreContextItem.unignore): Text associated
+# with the unignore context menu item
+ignoreContextItem.unignore=Dejar de ignorar fuente
+ignoreContextItem.unignore.accesskey=U
+
+# LOCALIZATION NOTE (overridesContextItem.override): Text associated
+# with the add overrides context menu item
+overridesContextItem.override=Añadir anulación de secuencia de comandos
+overridesContextItem.override.accesskey=o
+
+# LOCALIZATION NOTE (overridesContextItem.removeOverride): Text associated
+# with the remove override context menu item
+overridesContextItem.removeOverride=Eliminar anulación de secuencia de comandos
+overridesContextItem.removeOverride.accesskey=o
+
+# LOCALIZATION NOTE (ignoreContextItem.ignoreLine): Text associated
+# with the ignore line context menu item
+ignoreContextItem.ignoreLine=Ignorar línea
+ignoreContextItem.ignoreLine.accesskey=l
+
+# LOCALIZATION NOTE (ignoreContextItem.unignoreLine): Text associated
+# with the unignore line context menu item
+ignoreContextItem.unignoreLine=Dejar de ignorar línea
+ignoreContextItem.unignoreLine.accesskey=n
+
+# LOCALIZATION NOTE (ignoreContextItem.ignoreLines): Text associated
+# with the ignore lines context menu item
+ignoreContextItem.ignoreLines=Ignorar líneas
+ignoreContextItem.ignoreLines.accesskey=i
+
+# LOCALIZATION NOTE (ignoreContextItem.unignoreLines): Text associated
+# with the unignore lines context menu item
+ignoreContextItem.unignoreLines=Dejar de ignorar líneas
+ignoreContextItem.unignoreLines.accesskey=u
+
+# 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=(Fuente mapeado 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=(%1$S, %2$S)
+
+# LOCALIZATION NOTE (sourceFooter.currentCursorPosition.tooltip): Text associated
+# with the current cursor line and column
+sourceFooter.currentCursorPosition.tooltip=(Línea %1$S, columna %2$S)
+
+# LOCALIZATION NOTE (sourceTabs.closeTabButtonTooltip): The tooltip that is displayed
+# for close tab button in source tabs.
+sourceTabs.closeTabButtonTooltip=Cerrar pestaña
+
+# 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 no disponibles
+
+# LOCALIZATION NOTE (scopes.noOriginalScopes): Scopes right sidebar pane message
+# for when original variable mapping is disabled. This is only displayed when paused in an original source.
+# %S is text from the label for checkbox to show original scopes
+scopes.noOriginalScopes=El mapeo de nombres de variables originales está desactivado. No se pueden mostrar los ámbitos. Haga clic en la casilla de verificación `%S` de arriba para activar.
+
+# LOCALIZATION NOTE (scopes.loadingOriginalScopes): Scopes right sidebar pane message
+# for when the debugger is still loading the original variable mapping information.
+scopes.loadingOriginalScopes=Cargando variables para la fuente original…
+
+# LOCALIZATION NOTE (scopes.notPaused): Scopes right sidebar pane message
+# for when the debugger is not paused.
+scopes.notPaused=No pausado
+
+# LOCALIZATION NOTE (scopes.mapping.label): Scopes right sidebar pane
+# tooltip for checkbox and label
+scopes.mapping.label=Asociar los nombres originales de variables
+
+# LOCALIZATION NOTE (eventlisteners.log.label): Event listeners tooltip for
+# checkbox and label
+eventlisteners.log.label=Registrar eventos en la consola
+
+# LOCALIZATION NOTE (eventlisteners.log): Checkbox label for logging events
+eventlisteners.log=Registro
+
+# LOCALIZATION NOTE (scopes.helpTooltip.label): Scopes right sidebar pane
+# icon tooltip for link to MDN
+scopes.helpTooltip.label=Saber más sobre los ámbitos del mapa
+
+# LOCALIZATION NOTE (scopes.map.label): Checkbox label to map scopes
+scopes.map.label=Mapa
+
+# LOCALIZATION NOTE (scopes.showOriginalScopesHelpTooltip): Scopes right sidebar pane
+# icon tooltip for link to MDN
+scopes.showOriginalScopesHelpTooltip=Saber más sobre cómo asignar variables y mostrar los ámbitos originales
+
+# LOCALIZATION NOTE (scopes.showOriginalScopesTooltip): Scopes right sidebar pane
+# tooltip for checkbox and label
+scopes.showOriginalScopesTooltip=Mostrar los ámbitos con nombres de variables asignadas para la fuente original.
+
+# LOCALIZATION NOTE (scopes.showOriginalScopes): Checkbox label to show original scopes
+scopes.showOriginalScopes=Mostrar variables originales
+
+# LOCALIZATION NOTE (scopes.block): Refers to a block of code in
+# the scopes pane when the debugger is paused.
+scopes.block=Bloque
+
+# LOCALIZATION NOTE (sources.header): Sources left sidebar header
+sources.header=Fuentes
+
+# LOCALIZATION NOTE (outline.header): Outline left sidebar header
+outline.header=Contorno
+
+# LOCALIZATION NOTE (search.header): Search left sidebar header
+search.header=Buscar
+
+# LOCALIZATION NOTE (outline.placeholder): Placeholder text for the filter input
+# element
+outline.placeholder=Filtrar funciones
+
+# LOCALIZATION NOTE (outline.sortLabel): Label for the sort button
+outline.sortLabel=Ordenar por nombre
+
+# LOCALIZATION NOTE (outline.noFunctions): Outline text when there are no functions to display
+outline.noFunctions=No hay funciones
+
+# LOCALIZATION NOTE (outline.noFileSelected): Outline text when there are no files selected
+outline.noFileSelected=No se ha seleccionado ningún archivo
+
+# 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 buscar
+
+# LOCALIZATION NOTE (watchExpressions.header): Watch Expressions right sidebar
+# pane header.
+watchExpressions.header=Expresiones vigiladas
+
+# LOCALIZATION NOTE (watchExpressions.refreshButton): Watch Expressions header
+# button for refreshing the expressions.
+watchExpressions.refreshButton=Refrescar
+
+# 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 buscar archivos fuente
+
+# 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 al archivo
+
+# 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 buscar en archivos
+
+# 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 Buscar en archivos
+
+# LOCALIZATION NOTE (welcome.allShortcuts): The label to open the modal of
+# shortcuts, displayed in the welcome panel.
+welcome.allShortcuts=Mostrar todos los accesos directos
+
+# LOCALIZATION NOTE (sourceSearch.search): The center pane Source Search
+# prompt for searching for files.
+sourceSearch.search=Buscar orígenes…
+
+# LOCALIZATION NOTE (sourceSearch.search2): The center pane Source Search
+# prompt for searching for files.
+sourceSearch.search2=Ir al archivo…
+
+# LOCALIZATION NOTE (pauseOnExceptions): The pause on exceptions button tooltip
+# when the debugger will pause on all exceptions.
+pauseOnExceptions=Detenerse en todas las excepciones. Haga clic para ignorar excepciones
+
+# 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=Cargando…
+
+# LOCALIZATION NOTE (wasmIsNotAvailable): The text that is displayed in the
+# script editor when the WebAssembly source is not available.
+wasmIsNotAvailable=Refresque 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=Error al cargar esta URI: %S
+
+# LOCALIZATION NOTE(gotoLineModal.placeholder): The placeholder
+# text displayed when the user searches for specific lines in a file
+gotoLineModal.placeholder=Ir a la línea…
+
+# LOCALIZATION NOTE(gotoLineModal.title): The message shown to users
+# to open the go to line modal
+gotoLineModal.title=Ir a un número de línea en un archivo
+
+# 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=Buscar funciones…
+symbolSearch.search.functionsPlaceholder.title=Buscar una función en un archivo
+
+# LOCALIZATION NOTE(symbolSearch.search.variablesPlaceholder): The placeholder
+# text displayed when the user searches for variables in a file
+symbolSearch.search.variablesPlaceholder=Buscar variables…
+symbolSearch.search.variablesPlaceholder.title=Buscar una variable en un archivo
+
+# 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 es una funcionalidad 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=<anonymous>
+
+# LOCALIZATION NOTE (stacktrace.asyncStack): this string is used to
+# indicate that a given stack frame has an async parent.
+# %S is the "Async Cause" of the frame.
+stacktrace.asyncStack=(Asíncrono: %S)
+
+# LOCALIZATION NOTE (shortcuts.toggleBreakpoint): text describing
+# keyboard shortcut action for toggling breakpoint
+shortcuts.toggleBreakpoint=Alternar punto de ruptura
+shortcuts.toggleBreakpoint.accesskey=A
+
+# LOCALIZATION NOTE (shortcuts.toggleCondPanel.breakpoint): text describing
+# keyboard shortcut action for toggling conditional panel for breakpoints
+shortcuts.toggleCondPanel.breakpoint=Editar punto de ruptura condicional
+
+# LOCALIZATION NOTE (shortcuts.toggleCondPanel.logPoint): text describing
+# keyboard shortcut action for toggling conditional panel for log points
+shortcuts.toggleCondPanel.logPoint=Editar punto de registro
+
+# LOCALIZATION NOTE (shortcuts.pauseOrResume): text describing
+# keyboard shortcut action for pause of resume
+shortcuts.pauseOrResume=Pausar/Reanudar
+
+# LOCALIZATION NOTE (shortcuts.stepOver): text describing
+# keyboard shortcut action for stepping over
+shortcuts.stepOver=Ejecutar sin entrar
+
+# LOCALIZATION NOTE (shortcuts.stepIn): text describing
+# keyboard shortcut action for stepping in
+shortcuts.stepIn=Entrar
+
+# LOCALIZATION NOTE (shortcuts.stepOut): text describing
+# keyboard shortcut action for stepping out
+shortcuts.stepOut=Salir
+
+# LOCALIZATION NOTE (shortcuts.fileSearch): text describing
+# keyboard shortcut action for source file search
+shortcuts.fileSearch=Buscar en archivo fuente
+
+# LOCALIZATION NOTE (shortcuts.fileSearch2): text describing
+# keyboard shortcut action for source file search
+shortcuts.fileSearch2=Ir al archivo
+
+# LOCALIZATION NOTE (shortcuts.gotoLine): text describing
+# keyboard shortcut for jumping to a specific line
+shortcuts.gotoLine=Ir a la línea
+
+# LOCALIZATION NOTE (shortcuts.projectSearch): text describing
+# keyboard shortcut action for full project search
+shortcuts.projectSearch=Buscar en todo el proyecto
+
+# LOCALIZATION NOTE (shortcuts.projectSearch2): text describing
+# keyboard shortcut action for full project search
+shortcuts.projectSearch2=Buscar en archivos
+
+# LOCALIZATION NOTE (shortcuts.functionSearch): text describing
+# keyboard shortcut action for function search
+shortcuts.functionSearch=Buscar en función
+
+# LOCALIZATION NOTE (shortcuts.functionSearch2): text describing
+# keyboard shortcut action for function search
+shortcuts.functionSearch2=Buscar función
+
+# LOCALIZATION NOTE (shortcuts.buttonName): text describing
+# keyboard shortcut button text
+shortcuts.buttonName=Atajos de teclado
+
+# LOCALIZATION NOTE (variablesSeparatorLabel): The text that is displayed
+# in the variables list as a separator between the name and value.
+variablesSeparatorLabel=:
+variablesViewOptimizedOut=(optimizado externamente)
+variablesViewUninitialized=(no inicializado)
+variablesViewMissingArgs=(no disponible)
+
+# 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=Pulse para seleccionar el nodo en el inspector
+
+# LOCALIZATION NOTE (variablesEditButtonTooltip): The text that is displayed
+# in the variables list on a getter or setter which can be edited.
+variablesEditButtonTooltip=Haga clic para configurar el valor
+
+# LOCALIZATION NOTE (variablesViewErrorStacktrace): This is the text that is
+# shown before the stack trace in an error.
+variablesViewErrorStacktrace=Traza de la pila:
+
+# LOCALIZATION NOTE (variablesViewMoreObjects): the text that is displayed
+# when you have an object preview that does not show all of the elements. At the end of the list
+# you see "N more..." in the web console output.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of remaining items in the object
+# example: 3 more…
+variablesViewMoreObjects=#1 más…;#1 más…
+
+# LOCALIZATION NOTE (variablesEditableNameTooltip): The text that is displayed
+# in the variables list on an item with an editable name.
+variablesEditableNameTooltip=Haga doble clic para editar
+
+# LOCALIZATION NOTE (variablesEditableValueTooltip): The text that is displayed
+# in the variables list on an item with an editable value.
+variablesEditableValueTooltip=Haga clic para cambiar el valor
+
+# LOCALIZATION NOTE (variablesCloseButtonTooltip): The text that is displayed
+# in the variables list on an item which can be removed.
+variablesCloseButtonTooltip=Pulse para eliminar
+
+# LOCALIZATION NOTE (configurable|...|Tooltip): The text that is displayed
+# in the variables list on certain variables or properties as tooltips.
+# Explanations of what these represent can be found at the following links:
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed
+# It's probably best to keep these in English.
+configurableTooltip=configurable
+enumerableTooltip=enumerable
+writableTooltip=escribible
+frozenTooltip=congelado
+sealedTooltip=sellado
+extensibleTooltip=extensible
+overriddenTooltip=sobrescrito
+WebIDLTooltip=WebIDL
+
+# LOCALIZATION NOTE (serviceWorkerInfo.parsed): State displayed for a service
+# worker that has been parsed.
+serviceWorkerInfo.parsed=analizado
+# LOCALIZATION NOTE (serviceWorkerInfo.installing): State displayed for a
+# service worker that is being installed.
+serviceWorkerInfo.installing=instalando
+# 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=activando
+# LOCALIZATION NOTE (serviceWorkerInfo.activated): State displayed for a
+# service worker that has finished being activated.
+serviceWorkerInfo.activated=activado
+# 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=desconocido
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/device.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/device.properties
new file mode 100644
index 0000000000..c547b19fa2
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Teléfonos
+device.tablets=Tabletas
+device.laptops=Portátiles
+device.televisions=TVs
+device.consoles=Consolas de videojuegos
+device.watches=Relojes
+device.custom=Personalizado
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/dom.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/dom.properties
new file mode 100644
index 0000000000..3b21f6789e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/dom.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 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.
+
+dom.filterDOMPanel = Filtrar panel DOM
+
+dom.refresh = Refrescar
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/filterwidget.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/filterwidget.properties
new file mode 100644
index 0000000000..f950d98959
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/filterwidget.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/.
+
+# 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)'.
+
+emptyFilterList = No se ha especificado filtro
+
+emptyPresetList = No tiene guardada ninguna preconfiguración. \
+Puede guardar filtros preconfigurados eligiendo un nombre y guardándolos. \
+Las preconfiguraciones son accesibles rápidamente y puede reutilizarlas con facilidad.
+
+addUsingList = Añada un filtro usando la lista de debajo
+
+dropShadowPlaceholder = color del radio x y
+
+dragHandleTooltipText = Arrastre arriba o abajo para reordenar el filtro
+
+labelDragTooltipText = Arrastre a izquierda o derecha para reducir o aumentar el volumen
+
+filterListSelectPlaceholder = Seleccione un filtro
+
+addNewFilterButton = Añadir
+
+newPresetPlaceholder = Nombre de la preconfiguración
+
+savePresetButton = Guardar
+
+presetsToggleButton = Preconfiguraciones
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/font-inspector.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/font-inspector.properties
new file mode 100644
index 0000000000..865c86c0dd
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=No se utilizan tipografías en el elemento actual.
+
+# 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=Ejemplo
+
+# 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=Tamaño
+
+# 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=Peso
+
+# 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=Cursiva
+
+# LOCALIZATION NOTE (fontinspector.showMore): Label for a collapsed list of fonts.
+fontinspector.showMore=Mostrar más
+
+# 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=Espaciado
+
+# LOCALIZATION NOTE (fontinspector.lineHeightLabelCapitalized): Label for the UI to change the line height in the font editor.
+fontinspector.lineHeightLabelCapitalized=Altura de la línea
+
+# LOCALIZATION NOTE (fontinspector.allFontsOnPageHeader): Header for the section listing
+# all the fonts on the current page.
+fontinspector.allFontsOnPageHeader=Todas las tipografías de la página
+
+# LOCALIZATION NOTE (fontinspector.fontsUsedLabel): Label for the Font Editor section
+# which shows the fonts used on the selected element.
+fontinspector.fontsUsedLabel=Tipografías utilizadas
+
+# 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 la vista previa de la tipografía
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/har.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/har.properties
new file mode 100644
index 0000000000..e5686b4dfb
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/har.properties
@@ -0,0 +1,24 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE 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.
+
+har.responseBodyNotIncluded = Los cuerpos de la respuesta no están incluidos.
+
+har.requestBodyNotIncluded = Los cuerpos de la solicitud no están incluidos.
+
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/inspector.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/inspector.properties
new file mode 100644
index 0000000000..3aa65d3ff7
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 etiquetas
+
+# 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=Algunos nodos fueron 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 un nodo más;Mostrar los #1 nodos
+
+# LOCALIZATION NOTE (markupView.whitespaceOnly.label)
+# Used in the badge that appears when whitespace-only text nodes are displayed in the
+# inspector.
+markupView.whitespaceOnly.label=espacio en blanco
+
+# 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=no disponible
+
+# 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=Los hijos de este elemento no están disponibles con el modo actual de caja de herramientas del navegador
+
+# 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=Nodo de texto en blanco: %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 se comporta como un elemento de bloque y presenta su contenido de acuerdo con el modelo flexbox. Haga clic para alternar la superposición de 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 se comporta como un elemento en línea y presenta su contenido de acuerdo con el modelo flexbox. Haga clic para alternar la superposición de 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 se comporta como un elemento de bloque y presenta su contenido de acuerdo con el modelo de rejilla. Haga clic para alternar la superposición de rejilla 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 se comporta como un elemento en línea y presenta su contenido de acuerdo con el modelo de rejilla. Haga clic para alternar la superposición de rejilla 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 establece su contenido en base al modelo de cuadrícula pero deriva la definición de sus filas y/o columnas al contenedor de cuadrícula padre.
+
+# 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 genera una caja de elemento de bloque que establece un nuevo contexto de formateo de bloque.
+
+# 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 no produce una caja específica por sí mismo, pero dibuja su contenido.
+
+# 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=Escuchador 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=Haga clic para mostrar los escuchadores 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 definición de 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=Nuevo 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=Mostrar
+
+#LOCALIZATION NOTE: Used in the image preview tooltip when the image could not be loaded
+previewTooltip.image.brokenImage=No se ha podido cargar la imagen
+
+# LOCALIZATION NOTE: Used in color picker tooltip when the eyedropper is disabled for
+# non-HTML documents
+eyedropper.disabled.title=No disponible en documentos no HTML
+
+#LOCALIZATION NOTE: Used in the event tooltip to allow the debugger to be opened
+eventsTooltip.openInDebugger=Abrir en el 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 de escucha de eventos “%S”
+
+#LOCALIZATION NOTE: Used in the event tooltip to allow the debugger to be opened
+eventsTooltip.openInDebugger2=Abrir “%S” en el depurador
+
+#LOCALIZATION NOTE: Used in the event tooltip when a script's filename cannot be detected
+eventsTooltip.unknownLocation=Ubicación desconocida
+
+#LOCALIZATION NOTE: Used in the mouseover tooltip when hovering "Unknown location."
+eventsTooltip.unknownLocationExplanation=No se puede detectar la ubicación original de este escuchador. Quizá el código ha sido transcompilado por una utilidad como 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=Activar el escuchador de eventos “%S”
+
+#LOCALIZATION NOTE: Used in the tooltip for Bubbling
+eventsTooltip.Bubbling=Demorando
+
+#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 de escucha de eventos “%S”
+
+# LOCALIZATION NOTE (allTabsMenuButton.tooltip): The tooltip that gets
+# displayed when hovering over the tabs overflow button.
+allTabsMenuButton.tooltip=Mostrar todas las pestañas
+
+# LOCALIZATION NOTE (inspector.showThreePaneMode): This is the tooltip for the button
+# that toggles on the 3 pane inspector mode.
+inspector.showThreePaneMode=Activar el inspector de 3 paneles
+
+# LOCALIZATION NOTE (inspector.hideThreePaneMode): This is the tooltip for the button
+# that toggles off the 3 pane inspector mode.
+inspector.hideThreePaneMode=Desactivar el inspector de 3 paneles
+
+# 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=Sin coincidencias
+
+# 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 enlace en una pestaña nueva
+
+# 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 dirección del enlace
+
+# 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=Seleccionar 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=Eliminar atributo "%S"
+inspectorRemoveAttribute.accesskey=b
+
+# 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 del 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=Pulse para resaltar este nodo en la 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 HTML
+inspectorHTMLEdit.label=Editar como HTML
+inspectorSVGEdit.label=Editar como SVG
+inspectorMathMLEdit.label=Editar como MathML
+inspectorHTMLEdit.accesskey=H
+
+# 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 interno
+inspectorCopyInnerHTML.accesskey=L
+
+# 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 externo
+inspectorCopyOuterHTML.accesskey=M
+
+# 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=Selector CSS
+inspectorCopyCSSSelector.accesskey=C
+
+# 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=Ruta CSS
+inspectorCopyCSSPath.accesskey=R
+
+# 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 externo
+inspectorPasteOuterHTML.accesskey=T
+
+# 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 interno
+inspectorPasteInnerHTML.accesskey=n
+
+# 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=A
+
+# 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=Detrás
+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 primer hijo
+inspectorHTMLPasteFirstChild.accesskey=o
+
+# 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 hijo
+inspectorHTMLPasteLastChild.accesskey=j
+
+# 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=Desplazarse a la vista
+inspectorScrollNodeIntoView.accesskey=v
+
+# 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=Eliminar nodo
+inspectorHTMLDelete.accesskey=r
+
+# 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=u
+
+# 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=Añadir 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=Cambiar pseudoclase
+
+# LOCALIZATION NOTE (inspectorBreakpointSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the DOM breakpoints.
+inspectorBreakpointSubmenu.label=Interrumpir en…
+
+# 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=Modificación de subárbol
+
+# 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=Modificación 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=Eliminación de nodo
+
+# LOCALIZATION NOTE (inspectorSearchHTML.label3): This is the label that is
+# shown as the placeholder for the markup view search in the inspector.
+inspectorSearchHTML.label3=Buscar en 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=Data-URL de imagen
+
+# 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 propiedades 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 propiedades de accesibilidad
+
+# 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=Usar en consola
+
+# LOCALIZATION NOTE (inspectorExpandNode.label): This is the label
+# shown in the inspector contextual-menu for recursively expanding
+# mark-up elements
+inspectorExpandNode.label=Expandir todo
+
+# LOCALIZATION NOTE (inspectorCollapseAll.label): This is the label
+# shown in the inspector contextual-menu for recursively collapsing
+# mark-up elements
+inspectorCollapseAll.label=Contraer todo
+
+# 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=Obtener instantánea del nodo
+
+# 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 nodo
+
+# 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=Crear nodo nuevo
+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=Pegar
+
+# 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=Tipografía
+
+# 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=Cambios
+
+# 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=Reglas
+
+# 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=Calculado
+
+# 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=Disposición
+
+# 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=Animaciones
+
+# 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=Compatibilidad
+
+# 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=Capturar un color de la 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=Migas de pan
+
+# 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 de navegación
+
+# 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 = Borrar filtro
+
+# 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=Añadir regla nueva
+
+# 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-clases
+
+# 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 clases
+
+# 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=Añadir clase nueva
+
+# LOCALIZATION NOTE (inspector.classPanel.noClasses): This is the text displayed in the
+# class panel when the current element has no classes applied.
+inspector.classPanel.noClasses=No hay clases en este 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=No se han encontrado propiedades CSS.
+
+# 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 simulación de medios de impresión para la 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 simulación de esquema de color claro para la 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 simulación de esquema de color oscuro para la 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=scroll
+
+# LOCALIZATION NOTE (markupView.scrollableBadge.tooltip): This is the tooltip that is displayed
+# when hovering over badges next to scrollable elements in the inspector.
+markupView.scrollableBadge.tooltip=Este elemento tiene desbordamiento desplazable.
+
+# 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 tiene desbordamiento desplazable. Haga clic para mostrar los elementos que están causando el desbordamiento.
+
+# 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=desbordamiento
+
+# 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 hace que un elemento se desborde.
+
+# 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=Ninguna regla asociada
+
+# 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 en relación al fondo: %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=Elegir color en la 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=Lo más próximo a: %S
+
+# LOCALIZATION NOTE (colorPickerTooltip.hueSliderTitle): A title text for the
+# hue slider in the color picker tooltip.
+colorPickerTooltip.hueSliderTitle=Tonalidad
+
+# LOCALIZATION NOTE (colorPickerTooltip.alphaSliderTitle): A title text for the
+# alpha slider in the color picker tooltip.
+colorPickerTooltip.alphaSliderTitle=Opacidad
+
+# 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 de %S:
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/jsonview.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/jsonview.properties
new file mode 100644
index 0000000000..bb04843f30
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Datos sin procesar
+jsonViewer.tab.Headers=Cabeceras
+
+# LOCALIZATION NOTE (jsonViewer.responseHeaders, jsonViewer.requestHeaders):
+# Label for header groups within the 'Headers' panel.
+jsonViewer.responseHeaders=Cabeceras de la respuesta
+jsonViewer.requestHeaders=Cabeceras de la petición
+
+# 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 todo
+
+jsonViewer.ExpandAllSlow=Expandir todo (lento)
+
+# LOCALIZATION NOTE (jsonViewer.CollapseAll): Label for collapsing all nodes
+jsonViewer.CollapseAll=Contraer todo
+
+# LOCALIZATION NOTE (jsonViewer.PrettyPrint): Label for JSON
+# pretty print action button.
+jsonViewer.PrettyPrint=Adaptar para impresión
+
+# 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/es-ES/chrome/es-ES/locale/es-ES/devtools/client/layout.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/layout.properties
new file mode 100644
index 0000000000..253d010b24
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/layout.properties
@@ -0,0 +1,138 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE 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=Volver a Flex Container
+
+# LOCALIZATION (flexbox.flexContainer): The accordion header for the Flexbox panel
+# when a flex container is selected.
+flexbox.flexContainer=Contenedor 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=Elemento flex de %S
+
+# LOCALIZATION NOTE (flexbox.noFlexboxeOnThisPage): In the case where there are no CSS
+# flex containers to display.
+flexbox.noFlexboxeOnThisPage=Seleccione un contenedor o elemento Flex para continuar.
+
+# LOCALIZATION NOTE (flexbox.flexItems): Header label displayed for the flex item list.
+flexbox.flexItems=Elementos 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=No hay elementos flex
+
+# LOCALIZATION NOTE (flexbox.itemSizing.baseSizeSectionHeader): Header label displayed
+# at the start of the flex item sizing Base Size section.
+flexbox.itemSizing.baseSizeSectionHeader=Tamaño base
+
+# LOCALIZATION NOTE (flexbox.itemSizing.flexibilitySectionHeader): Header label displayed
+# at the start of the flex item sizing Flexibility section.
+flexbox.itemSizing.flexibilitySectionHeader=Flexibilidad
+
+# LOCALIZATION NOTE (flexbox.itemSizing.minSizeSectionHeader): Header label displayed
+# at the start of the flex item sizing Minimum Size section.
+flexbox.itemSizing.minSizeSectionHeader=Tamaño mínimo
+
+# LOCALIZATION NOTE (flexbox.itemSizing.maxSizeSectionHeader): Header label displayed at
+# the start of the flex item sizing Maximum Size section.
+flexbox.itemSizing.maxSizeSectionHeader=Tamaño máximo
+
+# LOCALIZATION NOTE (flexbox.itemSizing.finalSizeSectionHeader): Header label displayed at
+# the start of the flex item sizing Final Size section.
+flexbox.itemSizing.finalSizeSectionHeader=Tamaño 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=Tamaño del contenido
+
+# 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=El elemento fue limitado a su tamaño 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=El elemento fue limitado a su tamaño 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=El elemento está configurado para crecer.
+
+# 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=El elemento fue configurado para encogerse.
+
+# 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=El elemento no estaba configurado para crecer.
+
+# 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=El elemento no estaba configurado para reducirse.
+
+# LOCALIZATION NOTE (flexbox.togglesFlexboxHighlighter2): The tooltip text for the Flexbox
+# toggle button.
+flexbox.togglesFlexboxHighlighter2=Alternar resaltado de Flexbox
+
+# LOCALIZATION NOTE (layout.overlayCheckbox.label): Label used for checkboxes in the grid
+# sections of the layout panel that control the display of the grid highlighter.
+layout.toggleGridHighlighter=Alternar resaltado de cuadrícula
+
+# LOCALIZATION NOTE (layout.cannotShowGridOutline, layout.cannotSHowGridOutline.title):
+# In the case where the grid outline cannot be effectively displayed.
+layout.cannotShowGridOutline=No se pueden mostrar los bordes de esta rejilla
+layout.cannotShowGridOutline.title=El borde de la rejilla seleccionada no se puede encajar correctamente dentro del panel de disposición para que sea usable.
+
+# LOCALIZATION NOTE (layout.displayAreaNames): Label of the display area names setting
+# option in the CSS Grid panel.
+layout.displayAreaNames=Mostrar nombres de áreas
+
+# LOCALIZATION NOTE (layout.displayLineNumbers): Label of the display line numbers
+# setting option in the CSS Grid panel.
+layout.displayLineNumbers=Mostrar números de línea
+
+# LOCALIZATION NOTE (layout.extendLinesInfinitely): Label of the extend lines
+# infinitely setting option in the CSS Grid panel.
+layout.extendLinesInfinitely=Extender líneas infinitamente
+
+# LOCALIZATION NOTE (layout.header): The accordion header for the CSS Grid panel.
+layout.header=Rejilla
+
+# LOCALIZATION NOTE (layout.gridDisplaySettings): The header for the grid display
+# settings container in the CSS Grid panel.
+layout.gridDisplaySettings=Configuración de la rejilla
+
+# LOCALIZATION NOTE (layout.noGridsOnThisPage): In the case where there are no CSS grid
+# containers to display.
+layout.noGridsOnThisPage=No hay rejillas CSS en uso en esta página
+
+# LOCALIZATION NOTE (layout.overlayGrid): Alternate header for the list of grid container
+# elements if only one item can be selected.
+layout.overlayGrid=Superponer rejilla
+
+# LOCALIZATION NOTE (layout.colorSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a color swatch in the layout panel (for flexbox/grid highlighter color).
+# %s represents the current selected color in hex format (e.g. #FF0000).
+layout.colorSwatch.tooltip=Muestra de color: %S. Haga clic para abrir el selector de color
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/memory.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/memory.properties
new file mode 100644
index 0000000000..b111a8da0a
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/memory.properties
@@ -0,0 +1,221 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If 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.
+
+snapshot.io.save = Guardar
+
+snapshot.io.delete = Eliminar
+
+snapshot.io.save.window = Guardar instantánea
+
+snapshot.io.import.window = Importar instantánea
+
+snapshot.io.filter = Instantáneas de Firefox
+
+aggregate.mb = %S MB
+
+snapshot-title.loading = Procesando…
+
+checkbox.recordAllocationStacks = Registrar pilas de llamadas
+
+checkbox.recordAllocationStacks.tooltip = Alterna la grabación de pilas de llamadas cuando se asigna un objeto. Las instantáneas de pila posteriores podrán etiquetar y agrupar objetos creados por pilas de llamada, pero solo cuando con esos objetos creados tras activar esta opción. Grabar pilas de asignación tiene una sobrecarga en el rendimiento.
+
+toolbar.displayBy = Agrupar por:
+
+toolbar.displayBy.tooltip = Cambiar cómo se agrupan los objetos
+
+toolbar.pop-view = ←
+
+toolbar.pop-view.label = Volver a los agregados
+
+toolbar.viewing-individuals = ⁂ Viendo individuales en grupo
+
+censusDisplays.coarseType.tooltip = Agrupar elementos por su tipo
+
+censusDisplays.allocationStack.tooltip = Agrupar elementos por la pila JavaScript grabada cuando se asignó el objeto
+
+censusDisplays.invertedAllocationStack.tooltip = Agrupar elementos por la pila invertida de llamadas JavaScript registrada cuando se creó el objeto
+
+toolbar.labelBy = Etiquetar por:
+
+toolbar.labelBy.tooltip = Cambiar cómo se etiquetan los objetos
+
+dominatorTreeDisplays.coarseType.tooltip = Etiquetar objetos por las grandes categorías en las que encajan
+
+dominatorTreeDisplays.allocationStack.tooltip = Etiquetar objetos por la pila JavaScript grabada cuando se asignó
+
+treeMapDisplays.coarseType.tooltip = Etiquetar objetos por las grandes categorías en las que encajan
+
+toolbar.view = Ver:
+
+toolbar.view.tooltip = Cambiar la vista de la instantánea
+
+toolbar.view.census = Agregado
+
+toolbar.view.census.tooltip = Ver un resumen de los contenidos de la instantánea acumulando objetos en grupos
+
+toolbar.view.dominators = Dominadores
+
+toolbar.view.dominators.tooltip = Ver el árbol denominador y destacar las mayores estructuras en la instantánea
+
+toolbar.view.treemap = Mapa del árbol
+
+toolbar.view.treemap.tooltip = Visualizar uso de memoria: los mayores bloques implican un porcentaje mayor de uso de memoria
+
+take-snapshot = Tomar instantánea
+
+import-snapshot = Importar…
+
+clear-snapshots.tooltip = Eliminar todas las instantáneas
+
+diff-snapshots.tooltip = Comparar instantáneas
+
+filter.placeholder = Filtro
+
+filter.tooltip = Filtrar los contenidos de la instantánea
+
+tree-item.view-individuals.tooltip = Ver nodos individuales en este grupo y sus rutas retenidas
+
+tree-item.load-more = Cargar más…
+
+tree-item.rootlist = Raíces GC
+
+tree-item.nostack = (no hay pila disponible)
+
+tree-item.nofilename = (no hay nombre de archivo disponible)
+
+tree-item.root = (raíz)
+
+tree-item.percent2 = %S%%
+
+diffing.baseline = Referencia
+
+diffing.comparison = Comparación
+
+diffing.prompt.selectBaseline = Seleccione la instantánea de referencia
+
+diffing.prompt.selectComparison = Seleccione la instantánea que desea comparar con la referencia
+
+diffing.state.error = Error
+
+diffing.state.error.full = Ha sucedido un error al comparar las instantáneas.
+
+diffing.state.taking-diff = Calculando diferencia…
+
+diffing.state.taking-diff.full = Calculando diferencia…
+
+diffing.state.selecting = Seleccione dos instantáneas para comparar
+
+diffing.state.selecting.full = Seleccione dos instantáneas para comparar
+
+dominatorTree.state.computing = Generando informes de dominadores…
+
+dominatorTree.state.computing.full = Generando informe de dominadores…
+
+dominatorTree.state.fetching = Calculando tamaños…
+
+dominatorTree.state.fetching.full = Calculando tamaños retenidos de dominadores…
+
+dominatorTree.state.incrementalFetching = Recopilando…
+
+dominatorTree.state.incrementalFetching.full = Recopilando más…
+
+dominatorTree.state.error = Error
+
+dominatorTree.state.error.full = Ha sucedido un error al procesar el árbol de dominador
+
+snapshot.state.saving.full = Guardando instantánea…
+
+snapshot.state.reading.full = Leyendo instantánea…
+
+snapshot.state.saving-census.full = Guardando informe agregado…
+
+snapshot.state.saving-tree-map.full = Guardando mapa del árbol…
+
+snapshot.state.error.full = Ha habido un error al procesar esta instantánea.
+
+individuals.state.error = Error
+
+individuals.state.error.full = Ha habido un error al recopilar los individuales en el grupo
+
+individuals.state.fetching = Recopilando…
+
+individuals.state.fetching.full = Recopilando individuales en grupo…
+
+individuals.field.node = Nodo
+
+individuals.field.node.tooltip = El nodo individual en la captura
+
+snapshot.state.saving = Guardando instantánea…
+
+snapshot.state.importing = Importando instantánea…
+
+snapshot.state.reading = Leyendo instantánea…
+
+snapshot.state.saving-census = Guardando informe…
+
+snapshot.state.saving-tree-map = Guardando mapa del árbol…
+
+snapshot.state.error = Error
+
+heapview.no-difference = No hay diferencias entre la referencia y la comparación.
+
+heapview.none-match = Sin coincidencias.
+
+heapview.empty = Sin datos.
+
+heapview.noAllocationStacks = No se han encontrado pilas de llamada. Registre pilas de llamada antes de tomar una instantánea.
+
+heapview.field.retainedSize = Tamaño retenido (bytes)
+
+heapview.field.retainedSize.tooltip = La suma del tamaño del objeto en sí mismo, y los tamaños de todos los demás objetos mantenidos vivos por él
+
+heapview.field.shallowSize = Tamaño superficial (bytes)
+
+heapview.field.shallowSize.tooltip = El tamaño del objeto en sí mismo
+
+dominatortree.field.label = Dominador
+
+dominatortree.field.label.tooltip = La etiqueta de un objeto en memoria
+
+heapview.field.bytes = Bytes
+
+heapview.field.bytes.tooltip = El número de bytes consumidos por este grupo, excluyendo los subgrupos
+
+heapview.field.count = Cuenta
+
+heapview.field.count.tooltip = El número de objetos accesibles en este grupo, excluyendo subgrupos
+
+heapview.field.totalbytes = Bytes totales
+
+heapview.field.totalbytes.tooltip = El número de bytes consumidos por este grupo, incluyendo los subgrupos
+
+heapview.field.totalcount = Cuenta total
+
+heapview.field.totalcount.tooltip = El número de objetos accesibles en este grupo, incluyendo subgrupos
+
+heapview.field.name = Grupo
+
+heapview.field.name.tooltip = El nombre de este grupo
+
+shortest-paths.header = Rutas retenidas (desde las raíces del recolector de basura)
+
+shortest-paths.select-node = Seleccione un elemento para ver sus rutas retenidas
+
+tree-map.node-count = cuenta
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/menus.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/menus.properties
new file mode 100644
index 0000000000..42eddf9150
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Depuración remota
+devtoolsRemoteDebugging.accesskey = R
+
+browserConsoleCmd.label = Consola del navegador
+browserConsoleCmd.accesskey = C
+
+responsiveDesignMode.label = Vista de diseño adaptable
+responsiveDesignMode.accesskey = V
+
+eyedropper.label = Recogecolor
+eyedropper.accesskey = R
+
+# 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 = Caja de herramientas del navegador
+browserToolboxMenu.accesskey = C
+
+webDeveloperToolsMenu.label = Herramientas para desarrolladores web
+webDeveloperToolsMenu.accesskey = T
+
+extensionsForDevelopersCmd.label = Extensiones para desarrolladores
+extensionsForDevelopersCmd.accesskey = x
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/netmonitor.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/netmonitor.properties
new file mode 100644
index 0000000000..3486e19d87
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=La conexión usada para recuperar este recurso estaba cifrada.
+
+# 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=La conexión usada para recuperar este recurso no estaba cifrada.
+
+# 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=Un error de seguridad ha impedido que se cargue el 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 se ha transferido sobre una conexión que ha usado un cifrado débil.
+
+# 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=Activado
+
+# 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=Desactivado
+
+# 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=<No disponible>
+
+# LOCALIZATION NOTE (collapseDetailsPane): This is the tooltip for the button
+# that collapses the network details pane in the UI.
+collapseDetailsPane=Ocultar los detalles de la petición
+
+# LOCALIZATION NOTE (collapseActionPane): This is the tooltip for the button
+# that collapses the network action pane in the UI.
+collapseActionPane=Ocultar actividad de red
+
+# LOCALIZATION NOTE (allTabsMenuButton.tooltip): The tooltip that gets
+# displayed when hovering over the tabs overflow button.
+allTabsMenuButton.tooltip=Mostrar todas las pestañas
+
+# LOCALIZATION NOTE (headersEmptyText): This is the text displayed in the
+# headers tab of the network details pane when there are no headers available.
+headersEmptyText=No hay cabeceras para esta petición
+
+# LOCALIZATION NOTE (headersFilterText): This is the text displayed in the
+# headers tab of the network details pane for the filtering input.
+headersFilterText=Filtrar cabeceras
+
+# LOCALIZATION NOTE (messagesEmptyText): This is the text displayed in the
+# WebSockets tab of the network details pane when there are no frames available.
+messagesEmptyText=No hay mensajes para esta solicitud
+
+# LOCALIZATION NOTE (cookiesEmptyText): This is the text displayed in the
+# cookies tab of the network details pane when there are no cookies available.
+cookiesEmptyText=No hay cookies para esta petición
+
+# 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=No hay datos de respuesta disponibles para esta solicitud
+
+# LOCALIZATION NOTE (paramsNoPayloadText): This is the text displayed in the
+# request tab of the network details pane when there are no params available.
+paramsNoPayloadText=Sin carga útil para esta petición
+
+# LOCALIZATION NOTE (paramsFilterText): This is the text displayed in the
+# request tab of the network details pane for the filtering input.
+paramsFilterText=Filtrar los parámetros de la petición
+
+# LOCALIZATION NOTE (paramsQueryString): This is the label displayed
+# in the network details request tab identifying the query string.
+paramsQueryString=Cadena consultada
+
+# LOCALIZATION NOTE (paramsFormData): This is the label displayed
+# in the network details request tab identifying the form data.
+paramsFormData=Datos de formulario
+
+# LOCALIZATION NOTE (paramsPostPayload): This is the label displayed
+# in the network details request tab identifying the request payload.
+paramsPostPayload=Contenido de la petición
+
+# 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=Sin procesar
+
+# LOCALIZATION NOTE (requestHeaders): This is the label displayed
+# in the network details headers tab identifying the request headers.
+requestHeaders=Cabeceras de la petición
+
+# 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=Cabeceras de la petición del flujo de subida
+
+# LOCALIZATION NOTE (responseHeaders): This is the label displayed
+# in the network details headers tab identifying the response headers.
+responseHeaders=Cabeceras de la respuesta
+
+# LOCALIZATION NOTE (requestCookies): This is the label displayed
+# in the network details request tab identifying the request cookies.
+requestCookies=Cookies de la petición
+
+# LOCALIZATION NOTE (responseCookies): This is the label displayed
+# in the network details request tab identifying the response cookies.
+responseCookies=Cookies de la respuesta
+
+# LOCALIZATION NOTE (responsePayload): This is the label displayed
+# in the network details response tab identifying the response payload.
+responsePayload=Contenido de respuesta
+
+# 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=Sin procesar
+
+# 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 propiedades
+
+# LOCALIZATION NOTE (jsonScopeName): This is the text displayed
+# in the response tab of the network details pane for a JSON scope.
+jsonScopeName=JSON
+
+# LOCALIZATION NOTE (jsonpScopeName): This is the text displayed
+# in the response tab of the network details pane for a JSONP scope.
+jsonpScopeName=JSONP → callback %S()
+
+# LOCALIZATION NOTE (jsonXssiStripped): This is the text displayed
+# in a notification in the response tab of the network details pane
+# when a JSON payload had XSSI escape characters which were removed
+jsonXssiStripped=La cadena “%S” se eliminó del inicio del JSON que se muestra a continuación
+
+# 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=La respuesta se ha truncado
+
+# 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=La solicitud ha sido truncada
+
+# LOCALIZATION NOTE (networkMenu.raced): This is the label displayed
+# in the network menu specifying the transfer or a request is
+# raced. %S refers to the current transfer size.
+networkMenu.raced=%S (raced)
+
+# LOCALIZATION NOTE (networkMenu.sortedAsc): This is the tooltip displayed
+# in the network table toolbar, for any column that is sorted ascending.
+networkMenu.sortedAsc=Ordenar de forma ascendente
+
+# LOCALIZATION NOTE (networkMenu.sortedDesc): This is the tooltip displayed
+# in the network table toolbar, for any column that is sorted descending.
+networkMenu.sortedDesc=Ordenar de forma descendente
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.perf): A tooltip explaining
+# what the perf button does
+networkMenu.summary.tooltip.perf=Iniciar análisis de rendimiento
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.domContentLoaded): A tooltip explaining
+# what the DOMContentLoaded label displays
+networkMenu.summary.tooltip.domContentLoaded=Momento en el que ocurrió el evento "DOMContentLoad"
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.load): A tooltip explaining
+# what the load label displays
+networkMenu.summary.tooltip.load=Momento en el ocurrió el evento "load"
+
+# 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=Una solicitud;#1 solicitudes
+
+# LOCALIZATION NOTE (networkMenu.summary.requestsCountEmpty): This label is displayed
+# in the network table footer when there are no requests
+networkMenu.summary.requestsCountEmpty=No hay solicitudes
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.requestsCount): A tooltip explaining
+# what the requestsCount label displays
+networkMenu.summary.tooltip.requestsCount=Número de solicitudes
+
+# LOCALIZATION NOTE (networkMenu.summary.transferred): This label is displayed
+# in the network table footer providing the transferred size.
+networkMenu.summary.transferred=%S / %S transferido
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.transferred): A tooltip explaining
+# what the transferred label displays
+networkMenu.summary.tooltip.transferred=Tamaño/tamaño transferido de todas las solicitudes
+
+# LOCALIZATION NOTE (networkMenu.summary.finish): This label is displayed
+# in the network table footer providing the transfer time.
+networkMenu.summary.finish=Finalizado: %S
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.finish): A tooltip explaining
+# what the finish label displays
+networkMenu.summary.tooltip.finish=Tiempo total necesario para cargar todas las solicitudes
+
+# 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=Un mensaje;#1 mensajes
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.framesCountEmpty): This label is displayed
+# in the messages table footer when there are no frames
+networkMenu.ws.summary.framesCountEmpty=No hay mensajes
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.tooltip.framesCount): A tooltip explaining
+# what the framesCount label displays
+networkMenu.ws.summary.tooltip.framesCount=Número de mensajes
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.tooltip.framesTotalSize): A tooltip explaining
+# what the framesTotalSize label displays
+networkMenu.ws.summary.tooltip.framesTotalSize=Tamaño total de los mensajes mostrados
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.label.framesTranferredSize): A label showing
+# summary size info related to the current list of WS messages
+# %1$S is the total size of the transferred data, %2$S is the size of sent data, %3$S is the size of received data.
+networkMenu.ws.summary.label.framesTranferredSize=%1$S total, %2$S enviados, %3$S recibidos
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.tooltip.framesTotalTime): A tooltip explaining
+# what framesTotalTime displays
+networkMenu.ws.summary.tooltip.framesTotalTime=Tiempo total transcurrido entre los primeros y los últimos mensajes visualizados
+
+# 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=El tamaño transferido no está disponible
+
+# 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=cacheado
+
+# 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=worker de servicio
+
+# 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=Conectado %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=Enviando %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=Esperando %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=Recibiendo %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=Tiempo de peticiones
+
+# 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=Tiempo del 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=En cola: %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=Descargado: %S
+
+# LOCALIZATION NOTE (netmonitor.timings.noTimings): Message that displays in the
+# timings pane when thea request has been blocked
+netmonitor.timings.noTimings=No hay tiempos para esta solicitud
+
+# 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=Cargando
+
+# 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=Sin datos
+
+# 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=El gráfico circular representa el tamaño de cada tipo de solicitud en proporción al resto
+
+# 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=Espere…
+
+# LOCALIZATION NOTE (tableChart.unavailable): This is the label displayed
+# for table charts (e.g., in the performance analysis view) when there is
+# no data available, even after loading it.
+tableChart.unavailable=No hay datos disponibles
+
+# 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=Tamaño transferido: %S KB
+
+# LOCALIZATION NOTE (charts.cacheEnabled): This is the label displayed
+# in the performance analysis view for "cache enabled" charts.
+charts.cacheEnabled=Usando caché
+
+# LOCALIZATION NOTE (charts.cacheDisabled): This is the label displayed
+# in the performance analysis view for "cache disabled" charts.
+charts.cacheDisabled=Sin usar caché
+
+# LOCALIZATION NOTE (charts.learnMore): This is the label displayed
+# in the performance analysis view, with a link to external documentation.
+charts.learnMore=Descubra más sobre el análisis de rendimiento
+
+# LOCALIZATION NOTE (charts.totalSize.kB): This is the label displayed
+# in the performance analysis view for total requests size, in kilobytes.
+charts.totalSize.kB=Tamaño: %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=Tiempo: #1 segundo;Tiempo: #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=Tiempo no bloqueante: #1 segundo;Tiempo no bloqueante: #1 segundos
+
+# LOCALIZATION NOTE (charts.totalCached): This is the label displayed
+# in the performance analysis view for total cached responses.
+charts.totalCached=Respuestas cacheadas: %S
+
+# LOCALIZATION NOTE (charts.totalCount): This is the label displayed
+# in the performance analysis view for total requests.
+charts.totalCount=Solicitudes totales: %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 solicitudes
+
+# 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=Tamaño
+
+# 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=Tiempo
+
+# 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=Tiempo no bloqueante
+
+# 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=Decodificado: %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=Nombre común (CN):
+
+# LOCALIZATION NOTE (certmgr.certdetail.o):
+# A label used for Issued To and Issued By sub-section in security tab
+certmgr.certdetail.o=Organización (O):
+
+# LOCALIZATION NOTE (certmgr.certdetail.ou):
+# A label used for Issued To and Issued By sub-section in security tab
+certmgr.certdetail.ou=Unidad organizativa (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=Periodo de validez
+
+# LOCALIZATION NOTE (certmgr.begins):
+# A label used for Period of Validity sub-section in security tab
+certmgr.begins=Comienza el:
+
+# LOCALIZATION NOTE (certmgr.expires):
+# A label used for Period of Validity sub-section in security tab
+certmgr.expires=Caduca el:
+
+# 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=Huellas digitales
+
+# LOCALIZATION NOTE (certmgr.certdetail.sha256fingerprint):
+# A label used for Fingerprints sub-section in security tab
+certmgr.certdetail.sha256fingerprint=Huella digital SHA-256:
+
+# LOCALIZATION NOTE (certmgr.certdetail.sha1fingerprint):
+# A label used for Fingerprints sub-section in security tab
+certmgr.certdetail.sha1fingerprint=Huella digital SHA1:
+
+# LOCALIZATION NOTE (certmgr.certificateTransparency.label):
+# This string is used as a label in the security tab.
+certmgr.certificateTransparency.label=Transparencia:
+
+# 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=Registros SCT 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=No hay suficientes SCT
+
+# 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=No hay varios SCTs
+
+# LOCALIZATION NOTE (netmonitor.perfNotice1/2/3): These are the labels displayed
+# in the network table when empty to start performance analysis.
+netmonitor.perfNotice1=• Pulse en el botón
+netmonitor.perfNotice2=para iniciar análisis de rendimiento.
+netmonitor.perfNotice3=Analizar
+
+# LOCALIZATION NOTE (netmonitor.reload1/2/3): These are the labels displayed
+# in the network table when empty to start logging network requests.
+netmonitor.reloadNotice1=• Realice una petición o
+netmonitor.reloadNotice2=Recargar
+netmonitor.reloadNotice3=la página para ver información detallada sobre la actividad de red.
+netmonitor.emptyBrowserToolbox=Realice una solicitud para ver información detallada sobre la actividad de la red.
+
+# 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=Prioridad
+
+# LOCALIZATION NOTE (netmonitor.toolbar.file): This is the label displayed
+# in the network table toolbar, above the "file" column.
+netmonitor.toolbar.file=Archivo
+
+# 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=Dominio
+
+# LOCALIZATION NOTE (netmonitor.toolbar.remoteip): This is the label displayed
+# in the network table toolbar, above the "remoteip" column.
+netmonitor.toolbar.remoteip=IP remota
+
+# 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=Esquema
+
+# 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=Tiempo de inicio
+
+# 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=Tiempo de finalización
+
+# 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=Tiempo de respuesta
+
+# 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=Duración
+
+# 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=Latencia
+
+# 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=Tamaño
+
+# LOCALIZATION NOTE (netmonitor.toolbar.waterfall): This is the label displayed
+# in the network table toolbar, above the "waterfall" column.
+netmonitor.toolbar.waterfall=Línea de tiempos
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.size): This is the label displayed
+# in the messages table header, above the "size" column.
+netmonitor.ws.toolbar.size=Tamaño
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.data): This is the label displayed
+# in the messages table header, above the "data" column.
+netmonitor.ws.toolbar.data=Datos
+
+# 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=Tiempo
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.eventName): This is the label displayed
+# in the messages table header, above the "eventName" column.
+netmonitor.ws.toolbar.eventName=Nombre del 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=Reintentar
+
+# 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 del ú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=Limpiar
+
+# 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 mensajes
+
+# 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=Restablecer columnas
+
+# 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=A
+
+# LOCALIZATION NOTE (netmonitor.ws.context.sent): This is the label displayed
+# on the context menu that shows "Sent" WebSocket frames.
+netmonitor.ws.context.sent=Enviado
+
+# 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=Recibido
+
+# LOCALIZATION NOTE (netmonitor.ws.context.received.accesskey): This is the access key
+# for the "Received" menu item displayed in the context menu in the websocket toolbar.
+netmonitor.ws.context.received.accesskey=R
+
+# LOCALIZATION NOTE (netmonitor.ws.context.controlFrames): This is the label displayed
+# on the context menu that shows "Control Frames" WebSocket frames.
+netmonitor.ws.context.controlFrames=Control
+
+# LOCALIZATION NOTE (netmonitor.ws.context.controlFrames.accesskey): This is the access key
+# for the "Control Frames" menu item displayed in the context menu in the websocket toolbar.
+netmonitor.ws.context.controlFrames.accesskey=o
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrame): This is the label displayed
+# on the context menu that shows "Copy Message".
+netmonitor.ws.context.copyFrame=Copiar mensaje
+
+# 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=Conexión cerrada
+
+# 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=Recibido
+
+# LOCALIZATION NOTE (netmonitor.ws.rawData.header): This is the label displayed
+# in the messages panel identifying the raw data.
+netmonitor.ws.rawData.header=Datos sin procesar (%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=Buscar en los 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=Cerrar panel de búsqueda
+
+# LOCALIZATION NOTE (netmonitor.search.toolbar.clear): This is the label
+# displayed in the search toolbar to clear the search panel.
+netmonitor.search.toolbar.clear=Limpiar los resultados de búsqueda
+
+# 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=Sensible a mayúsculas
+
+# 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=Buscando…
+
+# 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=Búsqueda 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=Búsqueda finalizada. %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=Se ha encontrado #1 línea coincidente;se han encontrado #1 líneas coincidentes
+
+# 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=en #1 archivo;en #1 archivos
+
+# 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=Buscar error.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.requestBlocking): This is the tooltip displayed
+# over the toolbar's Request Blocking button
+netmonitor.toolbar.requestBlocking=Solicitar bloqueo
+
+# LOCALIZATION NOTE (netmonitor.actionbar.requestBlocking2): This is the label displayed
+# in the action bar's request blocking tab
+netmonitor.actionbar.requestBlocking2=Bloqueando
+
+# 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=Activar el bloqueo de peticiones
+
+# LOCALIZATION NOTE (netmonitor.actionbar.blockSearchPlaceholder): This is the
+# placeholder text for the request addition form
+netmonitor.actionbar.blockSearchPlaceholder=Bloquear recurso cuando la URL contiene
+
+# LOCALIZATION NOTE (netmonitor.actionbar.removeBlockedUrl): This is the
+# tooltip shown over the remove button for blocked URL item
+netmonitor.actionbar.removeBlockedUrl=Eliminar patrón
+
+# LOCALIZATION NOTE (netmonitor.actionbar.requestBlockingUsageNotice): This is the
+# usage notice displayed when network blocking list is empty
+netmonitor.actionbar.requestBlockingUsageNotice=Añada patrones de URL aquí para bloquear las solicitudes coincidentes.
+
+# 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=Comience añadiendo un patrón o arrastrando una fila desde la tabla con los datos de la red.
+
+# LOCALIZATION NOTE (netmonitor.requestBlockingMenu.removeAllBlockedUrls): This is the
+# context menu item for removing all blocked URLs
+netmonitor.requestBlockingMenu.removeAllBlockedUrls=Eliminar todo
+
+# LOCALIZATION NOTE (netmonitor.requestBlockingMenu.enableAllBlockedUrls): This is the
+# context menu item for enabling all blocked URLs
+netmonitor.requestBlockingMenu.enableAllBlockedUrls=Activar todo
+
+# LOCALIZATION NOTE (netmonitor.requestBlockingMenu.disableAllBlockedUrls): This is the
+# context menu item for disabling all blocked URLs
+netmonitor.requestBlockingMenu.disableAllBlockedUrls=Desactivar todo
+
+# LOCALIZATION NOTE (netmonitor.actionbar.search): This is the label displayed
+# in the action bar's search tab
+netmonitor.actionbar.search=Buscar
+
+# LOCALIZATION NOTE (netmonitor.actionbar.HTTPCustomRequest): This is the label displayed
+# in the action bar's edit and resend tab
+netmonitor.actionbar.HTTPCustomRequest=Nueva petición
+
+# 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=Se truncó un mensaje para ahorrar memoria;#1 mensajes se truncaron para ahorrar memoria
+
+# LOCALIZATION NOTE (disableMessagesTruncation): This is the text displayed
+# in the messages panel checkbox label for toggling message truncation.
+toggleMessagesTruncation=Guardar todos los futuros mensajes
+
+# LOCALIZATION NOTE (toggleMessagesTruncation.title): This is the title used
+# to describe the checkbox used to toggle message truncation.
+toggleMessagesTruncation.title=Conservar todos los futuros mensajes o continuar mostrando mensajes truncados
+
+# LOCALIZATION NOTE (messageDataTruncated): This is the text displayed
+# to describe to describe data truncation in the messages panel.
+messageDataTruncated=Los datos han sido truncados
+
+# LOCALIZATION NOTE (netmonitor.tab.headers): This is the label displayed
+# in the network details pane identifying the headers tab.
+netmonitor.tab.headers=Cabeceras
+
+# LOCALIZATION NOTE (netmonitor.tab.messages): This is the label displayed
+# in the network details pane identifying the messages tab.
+netmonitor.tab.messages=Mensajes
+
+# 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=Caché
+
+# 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=Solicitud
+
+# LOCALIZATION NOTE (netmonitor.tab.response): This is the label displayed
+# in the network details pane identifying the response tab.
+netmonitor.tab.response=Respuesta
+
+# LOCALIZATION NOTE (netmonitor.tab.timings): This is the label displayed
+# in the network details pane identifying the timings tab.
+netmonitor.tab.timings=Tiempos
+
+# LOCALIZATION NOTE (netmonitor.tab.stackTrace): This is the label displayed
+# in the network details pane identifying the stack-trace tab.
+netmonitor.tab.stackTrace=Traza de la pila
+
+# LOCALIZATION NOTE (netmonitor.tab.security): This is the label displayed
+# in the network details pane identifying the security tab.
+netmonitor.tab.security=Seguridad
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.all): This is the label displayed
+# in the network toolbar for the "All" filtering button.
+netmonitor.toolbar.filter.all=Todos
+
+# 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=Tipografía
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.images): This is the label displayed
+# in the network toolbar for the "Images" filtering button.
+netmonitor.toolbar.filter.images=Imágenes
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.media): This is the label displayed
+# in the network toolbar for the "Media" filtering button.
+netmonitor.toolbar.filter.media=Medios
+
+# 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=Otros
+
+# 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 las URL
+
+# 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 más sobre el filtrado
+
+# LOCALIZATION NOTE (netmonitor.toolbar.enablePersistentLogs.label): This is the label
+# displayed for the checkbox for enabling persistent logs.
+netmonitor.toolbar.enablePersistentLogs.label=Registros persistentes
+
+# LOCALIZATION NOTE (netmonitor.toolbar.enablePersistentLogs.tooltip): This is the tooltip
+# displayed for the checkbox for enabling persistent logs.
+netmonitor.toolbar.enablePersistentLogs.tooltip=Si activa esta opción, la lista de solicitudes no se limpiará cada vez que navegue a una página nueva
+
+# LOCALIZATION NOTE (netmonitor.toolbar.disableCache.label): This is the label
+# displayed for the checkbox for disabling browser cache.
+netmonitor.toolbar.disableCache.label=Desactivar caché
+
+# LOCALIZATION NOTE (netmonitor.toolbar.disableCache.tooltip): This is the tooltip
+# displayed for the checkbox for disabling browser cache.
+netmonitor.toolbar.disableCache.tooltip=Desactivar caché HTTP
+
+# LOCALIZATION NOTE (netmonitor.toolbar.clear): This is the label displayed
+# in the network toolbar for the "Clear" button.
+netmonitor.toolbar.clear=Limpiar
+
+# LOCALIZATION NOTE (netmonitor.toolbar.toggleRecording): This is the label displayed
+# in the network toolbar for the toggle recording button.
+netmonitor.toolbar.toggleRecording=Pausar/Reanudar la grabación del registro de red
+
+# LOCALIZATION NOTE (netmonitor.toolbar.search): This is the tooltip label displayed
+# in the network toolbar for the search button.
+netmonitor.toolbar.search=Buscar
+
+# 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=Nueva petición
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resetColumns): This is the label
+# displayed in the network table header context menu.
+netmonitor.toolbar.resetColumns=Restablecer columnas
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resetSorting): This is the label
+# displayed in the network table header context menu to reset sorting
+netmonitor.toolbar.resetSorting=Restablecer la ordenación
+
+# 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 la columna para que se ajuste al contenido
+
+# 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=Doble clic para ajustar la columna al contenido
+
+# LOCALIZATION NOTE (netmonitor.toolbar.timings): This is the label
+# displayed in the network table header context menu for the timing submenu
+netmonitor.toolbar.timings=Tiempos
+
+# 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=Cabeceras de la respuesta
+
+# 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=Bloquear
+
+# LOCALIZATION NOTE (netmonitor.headers.address): This is the label displayed
+# in the network details headers tab identifying the remote address.
+netmonitor.headers.address=Dirección
+
+# LOCALIZATION NOTE (netmonitor.headers.proxyAddress): This is the label displayed
+# in the network details headers tab identifying the proxy address.
+netmonitor.headers.proxyAddress=Dirección del 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 del proxy
+
+# LOCALIZATION NOTE (netmonitor.headers.size): This is the label displayed
+# in the network details headers tab identifying the size.
+netmonitor.headers.size=Tamaño
+
+# 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 (tamaño %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=Versión
+
+# 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=Versión del 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=Descubra más sobre el 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 referencia
+
+# LOCALIZATION NOTE (netmonitor.headers.contentBlocking): This is the label displayed
+# in the network details headers tab identifying the content blocking mode.
+netmonitor.headers.contentBlocking=Bloqueo
+
+# LOCALIZATION NOTE (netmonitor.headers.requestPriority): This is the label displayed
+# in the network details headers tab identifying the request priority.
+netmonitor.headers.requestPriority=Prioridad de la solicitud
+
+# LOCALIZATION NOTE (netmonitor.headers.dns): This is the label displayed
+# in the network details headers tab identifying the DNS resolution.
+netmonitor.headers.dns=Resolución 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 y volver a enviar
+
+# 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=Sin procesar
+
+# 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=El cuerpo de la respuesta no está disponible para los scripts (Razón: %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 más sobre este error 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=Nombre:
+
+# LOCALIZATION NOTE (netmonitor.response.dimensions): This is the label displayed
+# in the network details response tab identifying an image's dimensions.
+netmonitor.response.dimensions=Dimensiones:
+
+# 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=No se ha podido generar una vista previa de fuente
+
+# 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=Resolución 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=Configuración 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=Conectando:
+
+# 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=Enviando:
+
+# 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=Esperando:
+
+# 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=Recibiendo:
+
+# 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=Descubra más sobre los tiempos
+
+# 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=Tiempo de respuesta lento del servidor (%1$S). El límite recomendado es %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=El cifrado usado está desaprobado y es inseguro.
+
+# LOCALIZATION NOTE (netmonitor.security.error): This is the label displayed
+# in the security tab if a security error prevented the connection.
+netmonitor.security.error=Ha sucedido un error:
+
+# LOCALIZATION NOTE (netmonitor.security.protocolVersion): This is the label displayed
+# in the security tab describing TLS/SSL protocol version.
+netmonitor.security.protocolVersion=Versión del 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=Suite de cifrado:
+
+# 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 intercambio de claves:
+
+# 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=ninguno
+
+# 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 desconocido
+
+# 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 firma:
+
+# 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=ninguno
+
+# 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 firma desconocido
+
+# 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=Seguridad estricta de transporte HTTP:
+
+# LOCALIZATION NOTE (netmonitor.security.hpkp): This is the label displayed
+# in the security tab describing the usage of Public Key Pinning.
+netmonitor.security.hpkp=Fijado (Pinning) de clave 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=Conexión:
+
+# 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=Esta URL coincide con la de un rastreador conocido y se bloquearía si se activa el bloqueo de contenido.
+
+# LOCALIZATION NOTE (netmonitor.trackingResource.enhancedTrackingProtection): This is
+# the label used in the Network monitor panel for showing enhanced tracking protection.
+netmonitor.trackingResource.enhancedTrackingProtection=Protección contra rastreo mejorada
+
+# 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=Obtenga más información sobre la protección contra rastreo mejorada
+
+# 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=C
+
+# 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 de la 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=L
+
+# 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 datos de %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=R
+
+# 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 cabeceras de solicitud
+
+# 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=b
+
+# 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 cabeceras de respuesta
+
+# 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=d
+
+# 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 respuesta
+
+# 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=s
+
+# 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 imagen como URI de datos
+
+# 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=U
+
+# 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=Usar como Fetch en la 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 imagen 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=m
+
+# LOCALIZATION NOTE (netmonitor.context.copyAll): This is the label displayed
+# on the context menu that copies all data
+netmonitor.context.copyAll=Copiar todo
+
+# 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=t
+
+# LOCALIZATION NOTE (netmonitor.context.copyAllAsHar): This is the label displayed
+# on the context menu that copies all as HAR format
+netmonitor.context.copyAllAsHar=Copiar todo 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=A
+
+# LOCALIZATION NOTE (netmonitor.context.saveAllAsHar): This is the label displayed
+# on the context menu that saves all as HAR format
+netmonitor.context.saveAllAsHar=Guardar todo 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=G
+
+# 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 archivo HAR
+
+# LOCALIZATION NOTE (netmonitor.har.importDialogHARFilter):
+# This string is displayed as a filter for importing HAR file
+netmonitor.har.importDialogHARFilter=Archivos HAR
+
+# LOCALIZATION NOTE (netmonitor.har.importDialogAllFilter):
+# This string is displayed as a filter for importing HAR file
+netmonitor.har.importDialogAllFilter=Todos los archivos
+
+# 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 y volver a enviar
+
+# 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 en una pestaña nueva
+
+# 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=n
+
+# 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 en el 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 en el 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=A
+
+# 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álisis de rendimiento…
+
+# 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=I
+
+# LOCALIZATION NOTE (netmonitor.custom.newRequest): This is the label displayed
+# as the title of the new custom request form
+netmonitor.custom.newRequest=Nueva petición
+
+# 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=Cadena de la 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 de la URL
+
+# LOCALIZATION NOTE (netmonitor.custom.headers): This is the label displayed
+# above the request headers entry in the custom request form
+netmonitor.custom.headers=Cabeceras de la petición:
+
+# LOCALIZATION NOTE (netmonitor.custom.newRequestHeaders): This is the label displayed
+# above the request headers entry in the new custom request form
+netmonitor.custom.newRequestHeaders=Cabeceras
+
+# 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=nombre
+
+# 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=Cuerpo
+
+# 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=contenido
+
+# LOCALIZATION NOTE (netmonitor.custom.postData): This is the label displayed
+# above the request body entry in the custom request form
+netmonitor.custom.postData=Cuerpo de la petición:
+
+# 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=Limpiar
+
+# LOCALIZATION NOTE (netmonitor.custom.removeItem): This is the
+# tooltip shown over the remove button for headers and query params item
+netmonitor.custom.removeItem=Eliminar elemento
+
+# LOCALIZATION NOTE (netmonitor.backButton): This is the label displayed
+# on the button which exists the performance statistics view
+netmonitor.backButton=Atrás
+
+# 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 (cacheado)
+
+# 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 (cacheado, 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 = Arrastrar archivos HAR aquí
+
+# 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=Caché
+
+# LOCALIZATION NOTE (netmonitor.cache.empty): This is the text displayed when cache
+# information is not available.
+netmonitor.cache.empty=No hay información en la caché
+
+# LOCALIZATION NOTE (netmonitor.cache.notAvailable): This is the text displayed under
+# a node that has no information available.
+netmonitor.cache.notAvailable=No disponible
+
+# LOCALIZATION NOTE (netmonitor.cache.dataSize): This is the label text for
+# the datasize of the cached object.
+netmonitor.cache.dataSize=Tamaño de los datos
+
+# LOCALIZATION NOTE (netmonitor.cache.expires): This is the label text for the
+# expires time of the cached object.
+netmonitor.cache.expires=Expira el
+
+# LOCALIZATION NOTE (netmonitor.cache.fetchCount): This is the label text for the
+# fetch count of the cached object.
+netmonitor.cache.fetchCount=Número de recuperaciones
+
+# LOCALIZATION NOTE (netmonitor.cache.lastFetched): This is the label text for the
+# last fetched date/time of the cached object.
+netmonitor.cache.lastFetched=Última recuperación
+
+# LOCALIZATION NOTE (netmonitor.cache.lastModified): This is the label text for the
+# last modified date/time of the cached object.
+netmonitor.cache.lastModified=Última modificación
+
+# 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=Configuración de red
+
+# LOCALIZATION NOTE (netmonitor.settings.importHarTooltip): This is the tooltip that gets displayed
+# when the HAR import menu item is hovered
+netmonitor.settings.importHarTooltip=Importar un archivo HAR de datos de red
+
+# LOCALIZATION NOTE (netmonitor.settings.saveHarTooltip): This is the tooltip that gets displayed
+# when the HAR save menu item is hovered
+netmonitor.settings.saveHarTooltip=Guardar datos de red en un archivo 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 datos de red al portapapeles
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/network-throttling.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/network-throttling.properties
new file mode 100644
index 0000000000..0286fa1b9e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Sin limitación
+
+# 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 = descarga %1$S%2$S, subida %3$S%4$S, latencia %5$Sms
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/responsive.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/responsive.properties
new file mode 100644
index 0000000000..430bd64676
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/responsive.properties
@@ -0,0 +1,182 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Responsive Design Mode,
+# available from the Web Developer sub-menu -> 'Responsive Design Mode'.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Responsive Design Mode,
+# available from the Browser Tools sub-menu -> 'Responsive Design Mode'.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (responsive.editDeviceList2): Context menu item displayed in the
+# device selector.
+responsive.editDeviceList2=Editar lista…
+
+# LOCALIZATION NOTE (responsive.exit): Tooltip text of the exit button.
+responsive.exit=Cerrar el modo de vista de diseño adaptable
+
+# LOCALIZATION NOTE (responsive.rotate): Tooltip text of the rotate button.
+responsive.rotate=Rotar viewport
+
+# LOCALIZATION NOTE (responsive.responsiveMode): Placeholder text for the
+# device selector.
+responsive.responsiveMode=Adaptable
+
+# LOCALIZATION NOTE (responsive.enableTouch): Tooltip text for the touch
+# simulation button when it's disabled.
+responsive.enableTouch=Activar simulación de toque
+
+# LOCALIZATION NOTE (responsive.disableTouch): Tooltip text for the touch
+# simulation button when it's enabled.
+responsive.disableTouch=Desactivar simulación de toque
+
+# LOCALIZATION NOTE (responsive.screenshot): Tooltip of the screenshot button.
+responsive.screenshot=Hacer una captura de pantalla del 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 el %1$S a las %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=El modo de diseño adaptable solo está disponible para pestañas de navegador remotas, tales como las usadas para contenido web en Firefox multiproceso.
+
+# LOCALIZATION NOTE (responsive.changeDevicePixelRatio): Tooltip for the
+# device pixel ratio dropdown when is enabled.
+responsive.changeDevicePixelRatio=Cambiar el ratio de píxeles del dispositivo del 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=Ratio de píxeles del dispositivo establecida automáticamente por %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=Agregar dispositivo personalizado…
+
+# LOCALIZATION NOTE (responsive.deviceAdderName): Label of form field for the
+# name of a new device.
+responsive.deviceAdderName=Nombre
+
+# LOCALIZATION NOTE (responsive.deviceAdderSize): Label of form field for the
+# size of a new device.
+responsive.deviceAdderSize=Tamaño
+
+# LOCALIZATION NOTE (responsive.deviceAdderPixelRatio2): Label of form field for
+# the device pixel ratio of a new device.
+responsive.deviceAdderPixelRatio2=Proporción de píxeles del dispositivo
+
+# LOCALIZATION NOTE (responsive.deviceAdderUserAgent2): Label of form field for
+# the user agent of a new device.
+responsive.deviceAdderUserAgent2=Cadena de agente de usuario
+
+# LOCALIZATION NOTE (responsive.deviceAdderTouch2): Label of form field for the
+# touch input support of a new device.
+responsive.deviceAdderTouch2=Pantalla táctil
+
+# 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=Tamaño: %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 en %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=Tamaño: %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=Táctil: %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=Recargar cuando se cambie la simulación de toque
+
+# LOCALIZATION NOTE (responsive.reloadConditions.userAgent): Label on checkbox used
+# to select whether to reload when user agent is changed.
+responsive.reloadConditions.userAgent=Recargar cuando se cambie el agente de usuario
+
+# 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=Los cambios en la simulación de dispositivos requieren una recarga para aplicarlos por completo. Las recargas automáticas están deshabilitadas de forma predeterminada para evitar perder cambios en DevTools. Puede habilitar la recarga a través del menú Configuración.
+
+# LOCALIZATION NOTE (responsive.leftAlignViewport): Label on checkbox used in the settings
+# menu.
+responsive.leftAlignViewport=Viewport alineado a la izquierda
+
+# LOCALIZATION NOTE (responsive.customUserAgent): This is the placeholder for the user
+# agent input in the responsive design mode toolbar.
+responsive.customUserAgent=Agente de usuario personalizado
+
+responsive.showUserAgentInput=Mostrar el agente de usuario
+
+# LOCALIZATION NOTE (responsive.deviceSettings): The header text for the device settings
+# view.
+responsive.deviceSettings=Configuración del dispositivo
+
+# LOCALIZATION NOTE (responsive.deviceNameAlreadyInUse): This is the text shown when adding a new
+# device with an already existing device name.
+responsive.deviceNameAlreadyInUse=Ese nombre de dispositivo ya existe
+
+# LOCALIZATION NOTE (responsive.deviceFormUpdate): Button text that updates a custom
+# device when the form is submitted.
+responsive.deviceFormUpdate=Actualizar
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/shared.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/shared.properties
new file mode 100644
index 0000000000..44ddc9eaaa
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Tamaño: Ancho %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=Dimensiones: ancho %1$S, altura %2$S, posición %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/es-ES/chrome/es-ES/locale/es-ES/devtools/client/sourceeditor.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/sourceeditor.properties
new file mode 100644
index 0000000000..8dbfad6afe
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/sourceeditor.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/.
+
+# 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.
+
+findCmd.promptMessage = Buscar:
+
+gotoLineCmd.promptTitle = Ir a la línea…
+
+autocompletion.docsLink = docs
+
+autocompletion.notFound = no encontrado
+
+jumpToLine.commandkey = J
+
+toggleComment.commandkey = /
+
+indentLess.commandkey = [
+
+indentMore.commandkey = ]
+
+moveLineUp.commandkey = Alt-Up
+
+moveLineDown.commandkey = Alt-Down
+
+autocompletion.commandkey = Space
+
+showInformation2.commandkey = Shift-Ctrl-Space
+
+find.key = CmdOrCtrl+F
+
+replaceAll.key = Shift+CmdOrCtrl+F
+
+replaceAllMac.key = Alt+CmdOrCtrl+F
+
+findNext.key = CmdOrCtrl+G
+
+findPrev.key = Shift+CmdOrCtrl+G
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/startup.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/startup.properties
new file mode 100644
index 0000000000..1245caf2c4
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Opciones de herramientas
+
+# LOCALIZATION NOTE (options.label): This is used as the label of the tab in
+# the devtools window.
+options.label=Opciones
+
+# LOCALIZATION NOTE (options.panelLabel): This is used as the label for the
+# toolbox panel.
+options.panelLabel=Panel de opciones de herramientas
+
+# LOCALIZATION NOTE (options.darkTheme.label2)
+# Used as a label for dark theme
+options.darkTheme.label2=Oscuro
+
+# 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=Rendimiento
+
+# LOCALIZATION NOTE (performance.panelLabel):
+# This is used as the label for the toolbox panel.
+performance.panelLabel=Panel de rendimiento
+
+# LOCALIZATION NOTE (performance.accesskey)
+# Used for the menuitem in the tool menu
+performance.accesskey=e
+
+# 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=Rendimiento (%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=Panel de la 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=Panel del 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 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=Panel del 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 estilos (CSS) (%S)
+
+# LOCALIZATION NOTE (open.accesskey): The access key used to open the style
+# editor.
+open.accesskey=s
+
+# LOCALIZATION NOTE (inspector.*)
+# Used for the menuitem in the tool menu
+inspector.label=Inspector
+inspector.accesskey=I
+
+# LOCALIZATION NOTE (inspector.panelLabel)
+# Labels applied to the panel and views within the panel in the toolbox
+inspector.panelLabel=Panel del inspector
+
+# LOCALIZATION NOTE (inspector.tooltip2)
+# Keyboard shortcut for DOM and Style Inspector will be shown inside brackets.
+inspector.tooltip2=Inspector de estilos y DOM (%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=Inspector de DOM y estilo (%1$S o %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=Red
+
+# LOCALIZATION NOTE (netmonitor.panelLabel):
+# This is used as the label for the toolbox panel.
+netmonitor.panelLabel=Panel de red
+
+# 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 red (%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=Almacenamiento
+
+# 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=Inspector de almacenamiento
+
+# 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=Panel de almacenamiento
+
+# 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=Inspector de almacenamiento (cookies, almacenamiento 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=Memoria
+
+# LOCALIZATION NOTE (memory.panelLabel): This is used as the label for the
+# toolbox panel.
+memory.panelLabel=Panel de memoria
+
+# 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=Memoria
+
+# 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=Panel 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=Accesibilidad
+
+# LOCALIZATION NOTE (accessibility.panelLabel):
+# This is used as the label for the toolbox panel.
+accessibility.panelLabel=Panel de accesibilidad
+
+# LOCALIZATION NOTE (accessibility.accesskey)
+# Used for the menuitem in the tool menu
+accessibility.accesskey=c
+
+# 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=Accesibilidad (%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=Aplicación
+
+# LOCALIZATION NOTE (application.panelLabel):
+# This is used as the label for the toolbox panel.
+application.panelLabel=Panel de aplicación
+
+# 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=Panel de aplicación
+
+# 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 = Vista de diseño adaptable (%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 = Hacer una captura de pantalla de la página entera
+
+# 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 reglas en la 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 parte de la página
+
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/styleeditor.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/styleeditor.properties
new file mode 100644
index 0000000000..386f113fa0
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=<hoja de estilos en línea #%S>
+
+# LOCALIZATION NOTE (newStyleSheet): This is the default name for a new
+# user-created style sheet.
+newStyleSheet=Nueva hoja de estilos #%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 regla;#1 reglas.
+
+# LOCALIZATION NOTE (error-load): This is shown when loading fails.
+error-load=La hoja de estilos no puede ser cargada.
+
+# LOCALIZATION NOTE (error-save): This is shown when saving fails.
+error-save=La hoja de estilos no puede ser guardada.
+
+# LOCALIZATION NOTE (importStyleSheet.title): This is the file picker title,
+# when you import a style sheet into the Style Editor.
+importStyleSheet.title=Importar hoja de estilos
+
+# LOCALIZATION NOTE (importStyleSheet.filter): This is the *.css filter title
+importStyleSheet.filter=Ficheros CSS
+
+# LOCALIZATION NOTE (saveStyleSheet.title): This is the file picker title,
+# when you save a style sheet from the Style Editor.
+saveStyleSheet.title=Guardar hoja de estilos
+
+# LOCALIZATION NOTE (saveStyleSheet.filter): This is the *.css filter title
+saveStyleSheet.filter=Ficheros 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 fuentes originales
+
+# LOCALIZATION NOTE (showOriginalSources.accesskey): This is the access key for
+# the menu item to toggle showing original sources in the editor.
+showOriginalSources.accesskey=M
+
+# 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 barra lateral de At-rules (@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/es-ES/chrome/es-ES/locale/es-ES/devtools/client/toolbox.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/toolbox.properties
new file mode 100644
index 0000000000..48313d9594
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Herramientas de desarrollo - %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=Herramientas de desarrollo - %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=Caja de herramientas del navegador multiproceso
+
+# 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=Caja de herramientas del navegador del proceso padre
+
+# LOCALIZATION NOTE (toolbox.defaultTitle): This is used as the tool
+# name when no tool is selected.
+toolbox.defaultTitle=Herramientas de desarrolladores
+
+# LOCALIZATION NOTE (toolbox.label): This is used as the label for the
+# toolbox as a whole
+toolbox.label=Herramientas de desarrolladores
+
+# LOCALIZATION NOTE (options.autoTheme.label)
+# Used as a label for auto theme
+options.autoTheme.label=Auto
+
+# LOCALIZATION NOTE (options.toolNotSupportedMarker): This is the template
+# used to add a * marker to the label for the Options Panel tool checkbox for the
+# tool which is not supported for the current toolbox target.
+# The name of the tool: %1$S.
+options.toolNotSupportedMarker=%1$S *
+
+# LOCALIZATION NOTE (toolbox.pickButton.tooltip)
+# This is the tooltip of the element picker button in the toolbox toolbar.
+# %S is the keyboard shortcut that toggles the element picker.
+toolbox.elementPicker.tooltip=Elija un elemento de la 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=Elige un elemento de la página (%1$S o %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=Elija un elemento del teléfono 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=Elija un elemento del teléfono Android (%1$S o %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 archivo en el 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 archivo en el depurador
+
+toolbox.resumeOrderWarning=La página no se reanudó tras asociarle el depurador. Para corregir esto, cierre y reabra la caja de herramientas.
+
+# 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=Seleccionar un iframe como el documento actualmente seleccionado
+
+# 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ón sólo está disponible en páginas con varios 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=Personalice las herramientas para desarrolladores y obtenga ayuda
+
+# LOCALIZATION NOTE (toolbox.closebutton.tooltip): This is the tooltip for
+# the close button the developer tools toolbox.
+toolbox.closebutton.tooltip=Cerrar herramientas para desarrolladores
+
+# LOCALIZATION NOTE (toolbox.errorCountButton.tooltip): This is the tooltip for
+# the error count button displayed in the developer tools toolbox.
+toolbox.errorCountButton.tooltip=Mostrar la 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 el número de errores en la 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=Error en el mapeo fuente: %1$S\nURL del recurso: %2$S\nURL del mapa fuente: %3$S
+
+# LOCALIZATION NOTE (toolbox.sourceMapSourceFailure): This is shown in
+# the web console when there is a failure to fetch or parse an
+# original source that was mentioned in a source map.
+# The text of the error: %1$S
+# The URL of the source: %2$S
+toolbox.sourceMapSourceFailure=Error al recuperar un archivo fuente original: %1$S\nURL fuente: %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=Caja de herramientas (%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=Caja de herramientas: %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=Caja de herramientas: se produjo un error
+
+# 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=Red
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.reload):
+# Used as the reload button tooltip
+toolbox.debugTargetInfo.reload=Recargar
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.forward):
+# Used as the navigation's "forward" button tooltip
+toolbox.debugTargetInfo.forward=Siguiente
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.back):
+# Used as the navigation's "back" button tooltip
+toolbox.debugTargetInfo.back=Anterior
+
+# 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=Extensión
+toolbox.debugTargetInfo.targetType.process=Proceso
+toolbox.debugTargetInfo.targetType.tab=Pestaña
+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 conexión de la caja de herramientas del 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 = Error
+
+# LOCALIZATION NOTE (toolbox.debugTargetErrorPage.description): This is the
+# text that appears in the Error view and explains to the user that an error
+# has happened while trying to connect to a debug target
+toolbox.debugTargetErrorPage.description = No se puede conectar con el destino de depuración. Ver detalles de error a continuación:
+
+# 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=Obsoleto. Saber más…
+
+# 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=Activar la caja de herramientas del navegador multiproceso (requiere reiniciar la caja de herramientas del navegador)
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/webconsole.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/webconsole.properties
new file mode 100644
index 0000000000..149b5e8e7a
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/client/webconsole.properties
@@ -0,0 +1,601 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If 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 del navegador multiproceso
+
+# LOCALIZATION NOTE (parentProcessBrowserConsole.title): Title used for
+# the Browser Console when the pref `devtools.browsertoolbox.scope` is set to "parent-process".
+parentProcessBrowserConsole.title=Proceso padre de la consola del navegador
+
+# LOCALIZATION NOTE (timestampFormat): %1$02S = hours (24-hour clock),
+# %2$02S = minutes, %3$02S = seconds, %4$03S = milliseconds.
+timestampFormat=%02S:%02S:%02S.%03S
+
+ConsoleAPIDisabled=El API de registro en la consola web (console.log, console.info, console.warn, console.error) ha sido desactivado por un script en esta 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 más
+
+# 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=(Asíncrono: %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 - temporizador finalizado
+
+# 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=Se ha limpiado la consola.
+
+# 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=Se ha evitado console.clear() debido a “Registros persistentes”
+
+# LOCALIZATION NOTE (noCounterLabel): this string is used to display
+# count-messages with no label provided.
+noCounterLabel=<sin etiqueta>
+
+# LOCALIZATION NOTE (counterDoesntExist): this string is displayed when
+# console.countReset() is called with a counter that doesn't exist.
+counterDoesntExist=El contador “%S” no existe.
+
+# LOCALIZATION NOTE (noGroupLabel): this string is used to display
+# console.group messages with no label provided.
+noGroupLabel=<sin etiqueta de grupo>
+
+maxTimersExceeded=El número máximo de temporizadores en esta página ha sido excedido.
+timerAlreadyExists=El temporizador "%S" ya existe.
+timerDoesntExist=El temporizador "%S" no existe.
+timerJSError=No se ha podido procesar el nombre del temporizador.
+
+# LOCALIZATION NOTE (connectionTimeout): message displayed when the Remote Web
+# Console fails to connect to the server due to a timeout.
+connectionTimeout=Tiempo de espera superado. Compruebe la Consola de errores en ambos extremos para encontrar potenciales mensajes de error. Reabra la Consola web para intentarlo de nuevo.
+
+# LOCALIZATION NOTE (propertiesFilterPlaceholder): this is the text that
+# appears in the filter text box for the properties view container.
+propertiesFilterPlaceholder=Filtrar propiedades
+
+# 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 repetición;#1 repeticiones
+
+# 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=Pulse para seleccionar el nodo en el inspector
+
+# LOCALIZATION NOTE (selfxss.msg): the text that is displayed when
+# a new user of the developer tools pastes code into the console
+# %1 is the text of selfxss.okstring
+selfxss.msg=Advertencia de fraude: lleve cuidado cuando pegue cosas que no comprende. Esto podría permitir a los atacantes robar su identidad o tomar el control de su equipo. Escriba '%S' debajo (no hace falta pulsar Enter) para poder pegar.
+
+# 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 pegar
+
+# LOCALIZATION NOTE (evaluationNotifcation.noOriginalVariableMapping.msg): the text for the notification message that is displayed
+# in the console when the debugger is paused in a non-pretty printed original file and original variable mapping is turned off.
+# `Show original variables` should be kept in sync with the checkbox label in the Scopes panel header.
+evaluationNotifcation.noOriginalVariableMapping.msg=La asignación de nombres de variables originales en el depurador está desactivada. Es posible que los resultados de la evaluación no sean precisos. Haga clic en la casilla de verificación `Mostrar variables originales` en el panel de ámbitos del depurador para activarla.
+
+# 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 detalles del mensaje.
+
+# LOCALIZATION NOTE (groupToggle): the text that is displayed when
+# you hover the arrow for expanding/collapsing the messages of a group.
+groupToggle=Mostrar/ocultar 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 de iteración)
+table.key=Clave
+table.value=Valores
+
+# LOCALIZATION NOTE (level.error, level.warn, level.info, level.log, level.debug):
+# tooltip for icons next to console output
+level.error=Error
+level.warn=Advertencia
+level.info=Información
+level.log=Registro
+level.debug=Depurar
+
+# LOCALIZATION NOTE (logpoint.title)
+# Tooltip shown for logpoints sent from the debugger
+logpoint.title=Puntos de registro del depurador
+
+# LOCALIZATION NOTE (logtrace.title)
+# Tooltip shown for JavaScript tracing logs
+logtrace.title=Rastreo de JavaScript
+
+# LOCALIZATION NOTE (blockedReason.title)
+# Tooltip shown for blocked network events sent from the network panel
+blockedrequest.label=Bloqueado por DevTools
+
+# LOCALIZATION NOTE (webconsole.disableIcon.title)
+# Tooltip shown for disabled console messages
+webconsole.disableIcon.title=Este mensaje ya no está activo, los detalles del mensaje no están disponibles
+
+# LOCALIZATION NOTE (command.title)
+# Tooltip shown for console input evaluated code displayed in the console output
+command.title=Código evaluado
+
+# LOCALIZATION NOTE (result.title)
+# Tooltip shown for evaluation result displayed in the console output
+result.title=Resultado de la evaluación
+
+# 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 dirección del enlace
+webconsole.menu.copyURL.accesskey=C
+
+# 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 en una pestaña nueva
+webconsole.menu.openURL.accesskey=A
+
+# 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 en el panel de red
+webconsole.menu.openInNetworkPanel.accesskey=r
+
+# 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 solicitud
+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 en el inspector
+webconsole.menu.openNodeInInspector.accesskey=Q
+
+# LOCALIZATION NOTE (webconsole.menu.storeAsGlobalVar.label)
+# Label used for a context-menu item displayed for object/variable logs. Clicking on it
+# creates a new global variable pointing to the logged variable.
+webconsole.menu.storeAsGlobalVar.label=Guardar como variable global
+webconsole.menu.storeAsGlobalVar.accesskey=G
+
+# 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 mensaje
+webconsole.menu.copyMessage.accesskey=m
+
+# 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=b
+
+# 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=Inspeccionar objeto en la barra lateral
+webconsole.menu.openInSidebar.accesskey=A
+
+# 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 todos los mensajes
+webconsole.menu.copyAllMessages.accesskey=m
+
+# LOCALIZATION NOTE (webconsole.menu.saveAllMessagesFile.label)
+# Label used for a context-menu item displayed on the output. Clicking on it
+# opens a file picker to allow the user save a file containing
+# the output of the console.
+webconsole.menu.saveAllMessagesFile.label=Guardar todos los mensajes en un archivo
+webconsole.menu.saveAllMessagesFile.accesskey=v
+
+# 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=Limpiar la salida de la 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 filtrado
+
+# LOCALIZATION NOTE (webconsole.filterInput.placeholder)
+# Label used for for the placeholder on the filter input, in the console top toolbar.
+webconsole.filterInput.placeholder=Filtrar salida
+
+# 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=Errores
+
+# 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=Advertencias
+
+# 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=Registros
+
+# 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=Información
+
+# 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=Depurar
+
+# 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=Las hojas de estilo se analizarán para buscar errores. Actualice la página para ver también los errores de las hojas de estilo modificadas desde 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=Peticiones
+
+# 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 oculto;#1 ocultos
+
+# 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 elemento oculto por el filtro de texto;#1 elementos ocultos por el 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=Configuración de la 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 herramientas 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 marcas de tiempo
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.timestamps.tooltip)
+webconsole.console.settings.menu.item.timestamps.tooltip=Si activa esta opción, los comandos y los resultados de la consola web van a mostrar la fecha y hora
+
+# 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 mensajes similares
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.warningGroups.tooltip)
+webconsole.console.settings.menu.item.warningGroups.tooltip=Cuando está activado, los mensajes similares se muestran en 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=Activar autocompletar
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.autocomplete.tooltip)
+webconsole.console.settings.menu.item.autocomplete.tooltip=Si activa esta opción, se mostrarán sugerencias a medida que escriba
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.enablePersistentLogs.label)
+webconsole.console.settings.menu.item.enablePersistentLogs.label=Registros persistentes
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.enablePersistentLogs.tooltip)
+webconsole.console.settings.menu.item.enablePersistentLogs.tooltip=Si activa esta opción, los resultados no se borrarán cuando navegue a una nueva página
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.instantEvaluation.label)
+webconsole.console.settings.menu.item.instantEvaluation.label=Evaluación instantánea
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.instantEvaluation.tooltip)
+webconsole.console.settings.menu.item.instantEvaluation.tooltip=Si activa esta opción, la entrada se evaluará inmediatamente a medida que la escriba
+
+# 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=Activar monitor de red
+# LOCALIZATION NOTE (browserconsole.enableNetworkMonitoring.tooltip)
+# Tooltip for the "Enable Network Monitoring" check item.
+browserconsole.enableNetworkMonitoring.tooltip=Activar esto para comenzar a escuchar las solicitudes de red
+
+# 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=Navega a %S
+
+# LOCALIZATION NOTE (webconsole.closeSplitConsoleButton.tooltip): This is the tooltip for
+# the close button of the split console.
+webconsole.closeSplitConsoleButton.tooltip=Cerrar la consola dividida (Esc)
+
+# LOCALIZATION NOTE (webconsole.closeSidebarButton.tooltip): This is the tooltip for
+# the close button of the sidebar.
+webconsole.closeSidebarButton.tooltip=Cerrar 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=Buscar en el historial
+
+# 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=Cerrar (%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 de #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=Sin 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=Siguiente resultado (%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 getter %S para obtener la 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=Cerrar (%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 coinciden con el selector: %S
+
+# LOCALIZATION NOTE (webconsole.message.componentDidCatch.label)
+# Label displayed when the webconsole couldn't handle a given packet.
+# Parameters: %S is the URL to file a bug about the error.
+webconsole.message.componentDidCatch.label=[DEVTOOLS ERROR] Lo sentimos, no hemos podido mostrar el mensaje. Esto no debería haber ocurrido, por favor envíe un informe del fallo a %S con los metadatos del mensaje en la descripción.
+
+# 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=Cadena copiada al portapapeles.
+
+# LOCALIZATION NOTE (webconsole.message.commands.startTracingToWebConsole)
+# Label displayed when :trace command was executed and the JavaScript tracer started to log to the web console.
+webconsole.message.commands.startTracingToWebConsole=Ha empezado el rastreo en la consola web
+
+# LOCALIZATION NOTE (webconsole.message.commands.startTracingToStdout)
+# Label displayed when :trace command was executed and the JavaScript tracer started to log to stdout.
+webconsole.message.commands.startTracingToStdout=Ha empezado el rastreo en stdout
+
+# LOCALIZATION NOTE (webconsole.message.commands.startTracingToProfiler)
+# Label displayed when :trace command was executed and the JavaScript tracer will open the profiler showing all the traces,
+# but only on stop.
+webconsole.message.commands.startTracingToProfiler=Se ha empezado a rastrear hacía el analizador. Las trazas se mostrarán en el analizador tras detenerlo.
+
+# LOCALIZATION NOTE (webconsole.message.commands.stopTracing)
+# Label displayed when :trace command was executed and the JavaScript tracer stopped.
+webconsole.message.commands.stopTracing=Se ha detenido el rastreo
+
+# 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=El comando `copy` ha fallado, el objeto no se puede convertir en cadena: %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=Las solicitudes de URL que contengan “%S” ahora están bloqueadas
+
+# 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=Se eliminó el filtro de bloqueo “%S”
+
+# LOCALIZATION NOTE (webconsole.messages.commands.blockArgMissing)
+# Message displayed when no filter is passed to block/unblock command
+webconsole.messages.commands.blockArgMissing=No se especificó ningún 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 metadatos del mensaje al portapapeles
+
+
+# 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=Ejecutar
+
+# 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 la búsqueda inversa de historial (%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=Cerrar la búsqueda inversa de historial (%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=Ejecutar la expresión (%S). Esto no borrará la 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=Pretty print expression
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.executeButton.tooltip)
+# Label used for the tooltip on the history previous expression, in the editor toolbar,
+# which is displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+webconsole.editor.toolbar.history.prevExpressionButton.tooltip=Expresión 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=Siguiente expresión
+
+# 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=Volver al modo en línea (%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=Cambiar a modo editor multilínea (%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 mensaje;#1 mensajes
+
+# 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=Desarrolle su código más rápido con el nuevo modo de editor multilínea. Use %1$S para añadir nuevas líneas y %2$S para ejecutar.
+
+# 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=¡Entendido!
+
+# 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 archivo JavaScript
+
+# LOCALIZATION NOTE (webconsole.input.openJavaScriptFileFilter):
+# This string is displayed as a filter when opening a file in the console input.
+webconsole.input.openJavaScriptFileFilter=Archivos 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=Superior
+
+# 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=Seleccionar contexto de evaluación
+
+# LOCALIZATION NOTE (webconsole.group.cookieSameSiteLaxByDefaultEnabled2): do not translate 'SameSite'.
+webconsole.group.cookieSameSiteLaxByDefaultEnabled2=Algunas cookies están haciendo mal uso del atributo “SameSite“, por lo que no funcionará como se espera
+# LOCALIZATION NOTE (webconsole.group.cookieSameSiteLaxByDefaultDisabled2): do not translate 'SameSite'.
+webconsole.group.cookieSameSiteLaxByDefaultDisabled2=Algunas cookies están haciendo mal uso del atributo recomendado “SameSite“
+
+# LOCALIZATION NOTE (webconsole.group.csp): do not translate
+# 'Content-Security-Policy', as that's the name of the header.
+webconsole.group.csp=Advertencias de política de seguridad de contenido
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/accessibility.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/accessibility.properties
new file mode 100644
index 0000000000..b9c8e2293b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=No se puede 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 = Use el atributo “alt” para etiquetar elementos “area” que tengan el 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 = Los diálogos deben etiquetarse.
+
+# 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 = Los documentos deben tener un 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 = El contenido incrustado debe etiquetarse.
+
+# 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 = Las figuras con subtítulos opcionales tendrían que estar etiquetadas.
+
+# 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 = Los elementos “fieldset” deben ser etiquetados.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.fieldset.legend2): A title text that
+# describes that currently selected accessible object for a <fieldset> must have a name
+# provided via <legend> element.
+accessibility.text.label.issue.fieldset.legend2 = Use un elemento “legend” para etiquetar un “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 = Los elementos del formulario deben etiquetarse.
+
+# 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 = Los elementos del formulario deben tener una etiqueta de texto visible.
+
+# 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 = Los elementos “frame” deben ser etiquetados.
+
+# 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 = Usar el atributo “alt” para etiquetar 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 = Los encabezados deben etiquetarse.
+
+# 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 = Los encabezados deben tener contenido de texto visible.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.iframe): A title text that
+# describes that currently selected accessible object for an <iframe> have a name
+# provided via title attribute.
+accessibility.text.label.issue.iframe = Use el atributo “title” para describir contenido “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 = El contenido con imágenes debe etiquetarse.
+
+# 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 = Los elementos interactivos deben etiquetarse.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.optgroup.label2): A title text that
+# describes that currently selected accessible object for an <optgroup> must have a
+# name provided via label attribute.
+accessibility.text.label.issue.optgroup.label2 = Use el atributo “label” para etiquetar un “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 = Las barras de herramientas tienen que estar etiquetadas cuando hay más de una.
+
+# 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=Los elementos que pueden recibir el foco deberían tener una semántica interactiva.
+
+# 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 el atributo “tabindex” mayor que cero.
+
+# 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=Los elementos interactivos tienen que poder activarse con un 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=Los elementos interactivos tienen que ser poder recibir el foco.
+
+# 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=Al elemento que puede recibir el foco puede que le falte el estilo de enfoque.
+
+# 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=Los elementos sobre los que se puede hacer clic tienen que poder recibir el foco y deberían tener una semántica interactiva.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/debugger.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/debugger.properties
new file mode 100644
index 0000000000..33fb37bca0
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/debugger.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/.
+
+# 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.
+
+remoteIncomingPromptTitle = Conexión entrante
+
+remoteIncomingPromptHeader = Se ha detectado una solicitud entrante para permitir una conexión de depuración remota. ¡Un cliente remoto puede tomar el control completo sobre su navegador!
+remoteIncomingPromptClientEndpoint = Lado del cliente: %1$S
+remoteIncomingPromptServerEndpoint = Extremo del servidor: %1$S
+remoteIncomingPromptFooter = ¿Permitir conexión?
+
+remoteIncomingPromptDisable = Desactivar
+
+clientSendOOBTitle = Identificación del cliente
+clientSendOOBHeader = El extremo al que se está conectando necesita más información para identificar esta conexión. Proporcione el token de debajo en el campo que aparece en el otro extremo.
+clientSendOOBHash = Mi certificado: %1$S
+clientSendOOBToken = Token: %1$S
+
+serverReceiveOOBTitle = Proporcione un token de cliente
+serverReceiveOOBBody = El cliente debería estar mostrando un valor de token. Introduzca ese valor de token aquí para completar la identificación con este cliente.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/eyedropper.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/eyedropper.properties
new file mode 100644
index 0000000000..81f8a7e806
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/eyedropper.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 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.
+
+colorValue.copied = copiado
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/screenshot.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/screenshot.properties
new file mode 100644
index 0000000000..1a4763fb14
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 una imagen de la 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=Archivo de destino
+
+# LOCALIZATION NOTE (screenshotFilenameManual) A fuller description of the
+# 'filename' parameter to the 'screenshot' command.
+screenshotFilenameManual=El nombre de archivo (debería tener una extensión ‘.png’) donde guardar la captura de pantalla.
+
+# 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 pantalla al portapapeles? (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=Verdadero si quiere copiar la captura de pantalla en lugar de guardarla en un archivo.
+
+# 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=Opciones
+
+# 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=Retraso (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=El tiempo a esperar (en segundos) antes de capturar la pantalla
+
+# 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=Proporción de píxeles del 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=La proporción de píxeles del dispositivo a usar al hacer una captura de pantalla
+
+# 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? (verdadero/falso)
+
+# 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=Verdadero si la captura de pantalla debe incluir partes de la página web que quedan fuera de los actuales márgenes visibles.
+
+# 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 en un archivo? (verdadero/falso)
+
+# 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=Verdadero si la captura de pantalla debe guardarse en un archivo incluso cuando estén habilitadas otras opciones (p.ej. portapapeles).
+
+# 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 pantalla %1$S a las %2$S
+
+# LOCALIZATION NOTE (screenshotErrorSavingToFile) Text displayed to user upon
+# encountering error while saving the screenshot to the file specified.
+# The argument (%1$S) is the filename.
+screenshotErrorSavingToFile=Error al guardar en %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=Se guardó en %1$S
+
+# LOCALIZATION NOTE (screenshotErrorCopying) Text displayed to user upon
+# encountering error while copying the screenshot to clipboard.
+screenshotErrorCopying=Se produjo un error al copiar la captura de pantalla al portapapeles.
+
+# LOCALIZATION NOTE (screenshotCopied) Text displayed to user when the
+# screenshot is successfully copied to the clipboard.
+screenshotCopied=Se copió la captura de pantalla al portapapeles.
+
+# 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=Selector 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=Un selector CSS para usar con document.querySelector que identifica un solo 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=La imagen fue recortada a %1$S×%2$S ya que la imagen resultante era demasiado 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=El ratio de píxeles del dispositivo se redujo a 1 ya que la imagen resultante era demasiado 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=Error al crear la imagen. La imagen resultante probablemente era demasiado 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=El selector ‘%S’ no coincide con ningún elemento de la página.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/shared.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/shared.properties
new file mode 100644
index 0000000000..5d8888b729
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/shared.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/.
+
+ellipsis = …
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/styleinspector.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/styleinspector.properties
new file mode 100644
index 0000000000..449fae557d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/devtools/shared/styleinspector.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 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=Mejor coincidencia
+rule.status.MATCHED=Coincidente
+rule.status.PARENT_MATCH=Coincidencia con el padre
+
+# 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=en línea
+rule.sourceConstructed=construido
+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=Heredado de %S
+
+# LOCALIZATION NOTE (rule.keyframe): Shown for CSS Rules keyframe header.
+# Will be passed an identifier of the keyframe animation name.
+rule.keyframe=Fotogramas clave de %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=(agente de usuario)
+
+# 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 la propiedad no vá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=Nombre de la propiedad no vá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=Reglas de filtrado que contienen esta propiedad
+
+# LOCALIZATION NOTE (rule.empty): Text displayed when the highlighter is
+# first opened and there's no node selected in the rule view.
+rule.empty=No hay elemento seleccionado.
+
+# 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 no 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=Resaltar todos los elementos que coinciden con este selector
+
+# LOCALIZATION NOTE (rule.colorSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a color swatch in the rule view.
+rule.colorSwatch.tooltip=Clic para abrir el selector de color, Mayús+clic para cambiar el formato de color
+
+# 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=Clic para abrir el editor de la función de temporización
+
+# 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=Clic para abrir el 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=Mayús+clic para cambiar el formato del á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=Haga clic para activar/desactivar el resalte de 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=Haga clic para activar/desactivar la rejilla CSS destacada
+
+# 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=Añadir nueva regla
+
+# 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-clases
+
+# 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 clases
+
+# 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=Añadir nueva clase
+
+# LOCALIZATION NOTE (rule.classPanel.noClasses): This is the text displayed in the
+# class panel when the current element has no classes applied.
+rule.classPanel.noClasses=No hay clases en este 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 simulación de medios de impresión para la 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 simulación de esquema de color para la página
+
+# LOCALIZATION NOTE (rule.twistyCollapse.label): The text a screen reader
+# speaks when the header of a rule is expanded.
+rule.twistyCollapse.label=Contraer
+
+# 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.expandableContainerToggleButton.title):
+# This is the tooltip for expandable container toggle button in the Rule View (Pseudo-elements, keyframes, …)
+rule.expandableContainerToggleButton.title=Cambiar panel
+
+# 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=Haga clic para seleccionar el nodo contenedor
+
+# LOCALIZATION NOTE (rule.propertyToggle.label):
+# This is the label for the checkbox input in the rule view that allow to disable/re-enable
+# a specific property in a rule.
+# The argument is the property name.
+rule.propertyToggle.label=Activar propiedad %S
+
+# LOCALIZATION NOTE (rule.newPropertyName.label):
+# This is the label for the new property input in the rule view.
+rule.newPropertyName.label=Nuevo nombre de propiedad
+
+# LOCALIZATION NOTE (rule.propertyName.label):
+# This is the label for the property name input in the rule view.
+rule.propertyName.label=Nombre de la propiedad
+
+# 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 color
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyColor.accessKey): Access key for
+# the rule and computed view context menu "Copy Color" entry.
+styleinspector.contextmenu.copyColor.accessKey=C
+
+# 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-Data de la imagen
+
+# 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=Fallo al copiar la URL-Data de la imagen
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.toggleOrigSources): Text displayed in the rule view
+# context menu.
+styleinspector.contextmenu.toggleOrigSources=Mostrar fuentes originales
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.toggleOrigSources.accessKey): Access key for
+# the rule view context menu "Show original sources" entry.
+styleinspector.contextmenu.toggleOrigSources.accessKey=M
+
+# 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=Añadir regla nueva
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.addNewRule.accessKey): Access key for
+# the rule view context menu "Add rule" entry.
+styleinspector.contextmenu.addNewRule.accessKey=A
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.selectAll): Text displayed in the
+# computed view context menu.
+styleinspector.contextmenu.selectAll=Seleccionar todo
+
+# 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=o
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyLocation): Text displayed in the
+# rule view context menu for copying the source location.
+styleinspector.contextmenu.copyLocation=Copiar dirección
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyDeclaration): Text
+# displayed in the rule view context menu for copying the CSS declaration.
+styleinspector.contextmenu.copyDeclaration=Copiar declaración
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyPropertyName): Text displayed in
+# the rule view context menu for copying the property name.
+styleinspector.contextmenu.copyPropertyName=Copiar nombre de la propiedad
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyPropertyValue): Text displayed in
+# the rule view context menu for copying the property value.
+styleinspector.contextmenu.copyPropertyValue=Copiar valor de la propiedad
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyRule): Text displayed in the
+# rule view context menu for copying the rule.
+styleinspector.contextmenu.copyRule=Copiar regla
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copySelector): Text displayed in the
+# rule view context menu for copying the selector.
+styleinspector.contextmenu.copySelector=Copiar selector
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/mac/accessible.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/mac/accessible.properties
new file mode 100644
index 0000000000..12039b90c4
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Pulsar
+check = Marcar
+uncheck = Desmarcar
+select = Seleccionar
+open = Abrir
+close = Cerrar
+switch = Pasar a
+click = Hacer clic
+collapse= Contraer
+expand = Expandir
+activate= Activar
+cycle = Avanzar
+# 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 = Hacer clic en el elemento anterior
+
+# Universal Access API support
+# (Mac Only)
+# The Role Description for AXWebArea (the web widget). Like in Safari.
+htmlContent = Contenido HTML
+# The Role Description for the Tab button.
+tab = tab
+# The Role Description for definition list dl, dt and dd
+term = término
+definition = definición
+# The Role Description for an input type="search" text field
+searchTextField = campo de texto de búsqueda
+# Role Description (exposed as AXTitle) for datepickers
+dateField = campo de fecha
+# The Role Description for WAI-ARIA Landmarks
+application = aplicación
+search = buscar
+banner = banner
+navigation = navegación
+complementary = complementario
+content = contenido
+main = principal
+# The (spoken) role description for various WAI-ARIA roles
+alert = alerta
+alertDialog = diálogo de alerta
+dialog = diálogo
+article = artículo
+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 = cantidad
+# The (spoken) role description for the WAI-ARIA heading role
+# https://w3c.github.io/aria/core-aam/core-aam.html#role-map-heading
+heading = encabezado
+log = registro
+marquee = marquesina
+math = matemática
+note = nota
+region = región
+status = estado de la aplicación
+timer = temporizador
+tooltip = consejo emergente
+separator = separador
+tabPanel = panel de pestaña
+# The roleDescription for the html:mark element
+highlight = resaltar
+# The roleDescription for the details element
+details = detalles
+# The roleDescription for the summary element
+summary = resumen
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/mac/intl.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/mac/intl.properties
new file mode 100644
index 0000000000..bb6989921d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/mac/intl.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/.
+
+intl.ellipsis = …
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/mac/platformKeys.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/mac/platformKeys.properties
new file mode 100644
index 0000000000..cd8138693a
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Enter
+
+# The separator character used between modifiers (none on Mac OS)
+MODIFIER_SEPARATOR=
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/unix/accessible.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/unix/accessible.properties
new file mode 100644
index 0000000000..9a11a93766
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Pulsar
+check = Marcar
+uncheck = Desmarcar
+select = Seleccionar
+open = Abrir
+close = Cerrar
+switch = Pasar a
+click = Hacer clic
+collapse= Contraer
+expand = Expandir
+activate= Activar
+cycle = Avanzar
+# 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 = Hacer clic en el elemento anterior
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/unix/intl.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/unix/intl.properties
new file mode 100644
index 0000000000..bb6989921d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/unix/intl.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/.
+
+intl.ellipsis = …
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/unix/platformKeys.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/unix/platformKeys.properties
new file mode 100644
index 0000000000..a5c3742b34
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Mayús.
+
+# 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/es-ES/chrome/es-ES/locale/es-ES/global-platform/win/accessible.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/win/accessible.properties
new file mode 100644
index 0000000000..9a11a93766
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Pulsar
+check = Marcar
+uncheck = Desmarcar
+select = Seleccionar
+open = Abrir
+close = Cerrar
+switch = Pasar a
+click = Hacer clic
+collapse= Contraer
+expand = Expandir
+activate= Activar
+cycle = Avanzar
+# 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 = Hacer clic en el elemento anterior
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/win/intl.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/win/intl.properties
new file mode 100644
index 0000000000..bb6989921d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/win/intl.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/.
+
+intl.ellipsis = …
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/win/platformKeys.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global-platform/win/platformKeys.properties
new file mode 100644
index 0000000000..9d88d53c7a
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Mayús.
+
+# 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/es-ES/chrome/es-ES/locale/es-ES/global/aboutStudies.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/aboutStudies.properties
new file mode 100644
index 0000000000..28b0c2a1a2
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Estudios Shield
+removeButton = Eliminar
+
+# LOCALIZATION NOTE (activeStudiesList): Title above a list of active studies
+activeStudiesList = Estudios activos
+# LOCALIZATION NOTE (activeStudiesList): Title above a list of completed studies
+completedStudiesList = Estudios terminados
+# LOCALIZATION NOTE (activeStatus): Displayed for an active study
+activeStatus = Activo
+
+# LOCALIZATION NOTE (completeStatus): Displayed for a study that is already complete
+completeStatus = Completo
+
+updateButtonWin = Opciones de actualización
+updateButtonUnix = Preferencias de actualización
+learnMore = Saber más
+noStudies = No ha participado en ningún estudio.
+disabledList = Esta es una lista de los estudios en los que ha participado. No se ejecutarán nuevos estudios.
+# LOCALIZATION NOTE (enabledList): %S is brandShortName (e.g. Firefox)
+enabledList = ¿Qué es esto? %S puede instalar y ejecutar estudios de vez en cuando.
+
+# 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 estudio fija el valor de %1$S a %2$S.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/appstrings.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/appstrings.properties
new file mode 100644
index 0000000000..f7621f52ed
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Compruebe que la URL es correcta y vuelva a intentarlo.
+fileNotFound=No se puede encontrar el archivo %S. Compruebe la ubicación y vuelva a intentarlo.
+fileAccessDenied=El archivo en %S no es legible.
+dnsNotFound2=No se ha podido encontrar %S. Compruebe el nombre y vuelva a intentarlo.
+unknownProtocolFound=Uno de los siguientes (%S) no es un protocolo registrado o no está permitido en este contexto.
+connectionFailure=Se rechazó la conexión al intentar conectar con %S.
+netInterrupt=La conexión con %S ha terminado inesperadamente. Algunos datos pueden haberse transferido.
+netTimeout=La operación superó el tiempo de espera al intentar conectar con %S.
+redirectLoop=Se ha excedido el límite de redirección para esta URL. No se pudo cargar la página solicitada. Esto puede ser debido a que las cookies están bloqueadas.
+confirmRepostPrompt=Para mostrar esta página la aplicación debe enviar información que repetirá cualquier acción (como una búsqueda o una confirmación de pedido) que ya fue ejecutada previamente.
+resendButton.label=Reenviar
+unknownSocketType=No se puede mostrar este elemento a menos que instale el Administrador de seguridad personal (PSM). Descargue e instale PSM y vuevla a intentarlo, o póngase en contacto con su administrador de sistemas.
+netReset=El documento no contiene datos.
+notCached=Este documento ya no está disponible.
+netOffline=No se puede ver este documento mientras está desconectado. Para conectarse, desmarque Trabajar sin conexión desde el menú Archivo.
+isprinting=El documento no puede cambiar mientras se imprime o previsualiza.
+deniedPortAccess=El acceso al puerto indicado ha sido desactivado por motivos de seguridad.
+proxyResolveFailure=No se pudo encontrar el servidor proxy configurado. Compruebe la configuración del proxy y vuelva a intentarlo.
+proxyConnectFailure=La conexión fue rechazada al intentar conectar con el servidor proxy configurado. Compruebe la configuración del proxy y vuelva a intentarlo.
+contentEncodingError=La página que está intentando ver no puede mostrarse porque usa una forma de compresión no válida o no admitida.
+unsafeContentType=La página que está intentando ver no puede mostrarse porque está contenida en un tipo de archivo que puede no ser seguro abrir. Contacte con los propietarios del sitio web para informarles de este problema.
+malwareBlocked=El sitio en %S ha sido identificado como un sitio atacante y ha sido bloqueado basándose en sus preferencias de seguridad.
+harmfulBlocked=El sitio en %S ha sido identificado como potencialmente peligroso y se ha bloqueado en base a sus preferencias de seguridad.
+unwantedBlocked=El sitio en %S ha sido identificado como un sitio que sirve software no deseado y ha sido bloqueado basándose en sus preferencias de seguridad.
+deceptiveBlocked=La página web en %S ha sido identificada como un sitio engañoso y ha sido bloqueada basándose en sus preferencias de seguridad.
+cspBlocked=Esta página tiene una política de seguridad de contenido que impide que se cargue de esta forma.
+xfoBlocked=Esta página tiene una política X-Frame-Options que evita que se cargue en este contexto.
+corruptedContentErrorv2=El sitio en %S ha experimentado una violación de protocolo de red que no puede solventarse.
+sslv3Used=La seguridad de sus datos en %S no se puede garantizar porque usa SSLv3, un protocolo de seguridad que ya no es efectivo.
+weakCryptoUsed=El propietario de %S ha configurado su sitio web incorrectamente. Para protegerle del robo de su información, no se ha establecido conexión con este sitio web.
+inadequateSecurityError=El sitio web ha intentado negociar un nivel inadecuado de seguridad.
+blockedByPolicy=Su organización ha bloqueado el acceso a esta página o sitio web.
+networkProtocolError=Firefox ha experimentado una violación del protocolo de red que no se puede reparar.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/autocomplete.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/autocomplete.properties
new file mode 100644
index 0000000000..105e0ff25c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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/es-ES/chrome/es-ES/locale/es-ES/global/browser.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/browser.properties
new file mode 100644
index 0000000000..fc61199178
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 seguridad
+formPostSecureToInsecureWarning.message = La información que ha introducido en esta página se enviará a través de una conexión no segura y podría ser leída por terceros.\n\n¿Está seguro de que quiere enviar esta información?
+formPostSecureToInsecureWarning.continue = Continuar
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/commonDialogs.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/commonDialogs.properties
new file mode 100644
index 0000000000..81705d1238
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Solicitar
+# LOCALIZATION NOTE - %S is brandFullName
+PromptUsernameAndPassword3=Se requiere autenticación - %S
+# LOCALIZATION NOTE - %S is brandFullName
+PromptPassword3=Se requiere contraseña - %S
+Select=Seleccionar
+OK=Aceptar
+Cancel=Cancelar
+Yes=&Sí
+No=&No
+Save=&Guardar
+Revert=Deshace&r
+DontSave=N&o guardar
+ScriptDlgGenericHeading=[Aplicación JavaScript]
+ScriptDlgHeading=La página en %S dice:
+ScriptDlgNullPrincipalHeading=Esta página dice:
+ScriptDialogLabel=Evitar que esta página cree diálogos adicionales
+ScriptDialogLabelNullPrincipal=No permitir que este sitio vuelva a preguntar
+# LOCALIZATION NOTE (ScriptDialogLabelContentPrincipal):
+# %S is either the domain and port of the site prompting, or the name of
+# an add-on prompting.
+ScriptDialogLabelContentPrincipal=No permitir que %S vuelva a preguntar
+ScriptDialogPreventTitle=Confirme su preferencia sobre diálogos
+# 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 solicita su nombre de usuario y contraseña. El sitio dice: “%1$S”
+EnterLoginForProxy3=El proxy %2$S solicita un nombre de usuario y una contraseña. El sitio dice: “%1$S”
+EnterUserPasswordFor2=%1$S solicita su nombre de usuario y contraseña.
+EnterUserPasswordForCrossOrigin2=%1$S solicita su nombre de usuario y contraseña. ADVERTENCIA: ¡su contraseña no se enviará al sitio web que está visitando actualmente!
+EnterPasswordFor=Introduzca contraseña para %1$S en %2$S
+EnterCredentials=Este sitio le pide que inicie sesión.
+# %S is the username for which a password is requested.
+EnterPasswordOnlyFor=Este sitio le pide que inicie sesión como %S.
+# %S is the domain of the site being accessed.
+EnterCredentialsCrossOrigin=Este sitio le está pidiendo iniciar sesión. Advertencia: La información de inicio de sesión será compartida con %S, y no con el sitio que está actualmente visitando.
+SignIn=Iniciar sesión
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/contentAreaCommands.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/contentAreaCommands.properties
new file mode 100644
index 0000000000..c7aed8a922
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 imagen
+SaveMediaTitle=Guardar medios
+SaveVideoTitle=Guardar vídeo
+SaveAudioTitle=Guardar audio
+SaveLinkTitle=Guardar como
+WebPageCompleteFilter=Página web, completa
+WebPageHTMLOnlyFilter=Página web, sólo HTML
+WebPageXHTMLOnlyFilter=Página web, sólo XHTML
+WebPageSVGOnlyFilter=Página web, sólo SVG
+WebPageXMLOnlyFilter=Página web, sólo 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=Sin 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_files
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/css.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/css.properties
new file mode 100644
index 0000000000..992f72ea09
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=La hoja de estilos %1$S no se ha cargado porque su tipo MIME, "%2$S", no es "text/css".
+MimeNotCssWarn=La hoja de estilos %1$S se ha cargado como CSS a pesar de que su tipo MIME, "%2$S", no es "text/css".
+
+PEDeclDropped=Declaración rechazada.
+PEDeclSkipped=Ignorado hasta la siguiente declaración.
+PEUnknownProperty=Propiedad desconocida '%1$S'.
+PEPRSyntaxFieldEmptyInput=El descriptor de sintaxis @property está vacío.
+PEPRSyntaxFieldExpectedPipe=El descriptor de sintaxis @property ‘%S’ contiene componentes no separados por el carácter "|" (pipe).
+PEPRSyntaxFieldInvalidNameStart=El descriptor de sintaxis @property ‘%S’ contiene un nombre de componente que comienza con un carácter no válido.
+PEPRSyntaxFieldInvalidName=El descriptor de sintaxis @property ‘%S’ contiene un nombre de componente que comienza con un carácter no válido.
+PEPRSyntaxFieldUnclosedDataTypeName=El descriptor de sintaxis @property ‘%S’ contiene un nombre de tipo de datos desconocido.
+PEPRSyntaxFieldUnexpectedEOF=El descriptor de sintaxis @property ‘%S’ está incompleto.
+PEPRSyntaxFieldUnknownDataTypeName=El descriptor de sintaxis @property ‘%S’ contiene un nombre de tipo de datos desconocido.
+PEValueParsingError=Error al interpretar el valor para '%1$S'.
+PEUnknownAtRule=No se reconoce la regla at o error al leer regla at '%1$S'.
+PEMQUnexpectedOperator=Operador inesperado en la lista de medios.
+PEMQUnexpectedToken=Token inesperado ‘%1$S’ en la lista de medios.
+PEAtNSUnexpected=Token inesperado dentro de @namespace: '%1$S'.
+PEKeyframeBadName=Identificador esperado para el nombre de una regla @keyframes.
+PEBadSelectorRSIgnored=Juego de reglas ignoradas debido a un mal selector.
+PEBadSelectorKeyframeRuleIgnored=Regla keyframe ignorada debido a un selector erróneo.
+PESelectorGroupNoSelector=Se esperaba un selector.
+PESelectorGroupExtraCombinator=Combinador balanceante.
+PEClassSelNotIdent=Se esperaba un identificador para el selector de la clase, pero se encontró '%1$S'.
+PETypeSelNotType=Se esperaba nombre de elemento o '*', pero se encontró '%1$S'.
+PEUnknownNamespacePrefix=Prefijo de espacio de nombre desconocido '%1$S'.
+PEAttributeNameExpected=Se esperaba un identificador para el nombre del atributo, pero se encontró '%1$S'.
+PEAttributeNameOrNamespaceExpected=Se esperaba un nombre de atributo o espacio de nombre, pero se encontró '%1$S'.
+PEAttSelNoBar=Se esperaba '|', pero se encontró '%1$S'.
+PEAttSelUnexpected=Token inesperado en selector de atributo: '%1$S'.
+PEAttSelBadValue=Se esperaba un identificador o cadena para el valor en selector de atributos, pero se encontró '%1$S'.
+PEPseudoSelBadName=Se esperaba un identificador para la pseudo-clase o pseudo-elemento, pero se encontró '%1$S'.
+PEPseudoSelEndOrUserActionPC=Se esperaba el final de un selector o una pseudo-clase de acción de usuario tras un pseudo-elemento, pero se encontró '%1$S'.
+PEPseudoSelUnknown=Pseudo-clase o pseudo-elemento desconocido '%1$S'.
+PEPseudoClassArgNotIdent=Se esperaba un identificador como parámetro de pseudo-clase, pero se encontró '%1$S'.
+PEColorNotColor=Se esperaba un color, pero se encontró '%1$S'.
+PEParseDeclarationDeclExpected=Se esperaba una declaración, pero se encontró '%1$S'.
+PEUnknownFontDesc=Descriptor desconocido '%1$S' en la regla @font-face.
+PEMQExpectedFeatureName=Se esperaba un nombre de una característica de medios, pero se encontró '%1$S'.
+PEMQNoMinMaxWithoutValue=Las características de medios con min- o max- deben tener un valor.
+PEMQExpectedFeatureValue=No se encontró un valor correcto para la característica de medios.
+PEExpectedNoneOrURL=Se esperaba 'none' o una URL, pero se encontró '%1$S'.
+PEExpectedNoneOrURLOrFilterFunction=Se esperaba 'none', una URL o una función de filtrado, pero se encontró '%1$S'.
+PEDisallowedImportRule=Las reglas @import todavía no son válidas en hojas de estilo construidas.
+PENeverMatchingHostSelector=El selector :host en ‘%S’ no carece de funciones y nunca coincidirá. ¿Quizás pensaba usar :host()?
+
+TooLargeDashedRadius=El radio del borde es demasiado grande para el estilo 'dashed' o a rayas (el límite es 100000px). Dibujando en estilo sólido o continuo.
+TooLargeDottedRadius=El radio del borde es demasiado grande para el estilo 'dotted' o punteado (el límite es 100000px). Dibujando en estilo sólido o continuo.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/dialog.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/dialog.properties
new file mode 100644
index 0000000000..08b602188c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Aceptar
+button-cancel = Cancelar
+button-help = Ayuda
+button-disclosure = Más información
+accesskey-accept =
+accesskey-cancel =
+accesskey-help = u
+accesskey-disclosure = M
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/dom/dom.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/dom/dom.properties
new file mode 100644
index 0000000000..a5747a8b5d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/dom/dom.properties
@@ -0,0 +1,478 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 sin respuesta
+KillScriptMessage=Un script de esta página puede estar ocupado, o puede haber dejado de responder. Puede detener el script, o puede continuar para ver si el script finaliza.
+KillScriptWithDebugMessage=Un script en esta página puede estar ocupado, o puede que haya dejado de responder. Puede detener el script ahora, abrirlo en el depurador, o dejar que continúe su ejecución.
+KillScriptLocation=Script: %S
+
+KillAddonScriptTitle=Aviso: script de complemento sin respuesta
+# LOCALIZATION NOTE (KillAddonScriptMessage): %1$S is the name of an extension.
+# %2$S is the name of the application (e.g., Firefox).
+KillAddonScriptMessage=Un script de la extensión "%1$S" se está ejecutando en esta página y provocando que %2$S responda con lentitud.\n\nPuede estar ocupado o puede que haya dejado de responder permanentemente. Puede detener el script ahora o puede continuar para ver si completa su ejecución.
+KillAddonScriptGlobalMessage=Evitar que el script de la extensión se ejecute en esta página hasta que se recargue de nuevo
+
+StopScriptButton=Detener script
+DebugScriptButton=Depurar script
+WaitForScriptButton=Continuar
+DontAskAgain=&No volver a preguntarme
+WindowCloseBlockedWarning=Los scripts no pueden cerrar ventanas que no hayan sido abiertas por un script.
+OnBeforeUnloadTitle=¿Está seguro?
+OnBeforeUnloadMessage2=Esta página le pide que confirme que desea salir; puede que la información que haya introducido no se guarde.
+OnBeforeUnloadStayButton=Permanecer en la página
+OnBeforeUnloadLeaveButton=Abandonar página
+EmptyGetElementByIdParam=Cadena vacía pasada a getElementById().
+SpeculationFailed2=Se ha escrito un árbol no equilibrado usando document.write() lo que ha provocado que los datos de red se hayan reinterpretado ("reparsed"). Más información, https://developer.mozilla.org/en-US/docs/Glossary/speculative_parsing
+DocumentWriteIgnored=Se ha ignorado una llamada a document.write() desde un script externo cargado asíncronamente.
+# LOCALIZATION NOTE (EditorFileDropFailed): Do not translate contenteditable, %S is the error message explaining why the drop failed.
+EditorFileDropFailed=Ha fallado la acción de soltar un archivo en un elemento contenteditable: %S.
+FormValidationTextTooLong=Reduzca este texto a %S caracteres o menos (actualmente está usando %S caracteres).
+FormValidationTextTooShort=Use al menos %S caracteres (actualmente está usando %S caracteres).
+FormValidationValueMissing=Rellene este campo.
+FormValidationCheckboxMissing=Marque esta casilla si desea continuar.
+FormValidationRadioMissing=Seleccione una de estas opciones.
+FormValidationFileMissing=Seleccione un archivo.
+FormValidationSelectMissing=Seleccione un elemento de la lista.
+FormValidationInvalidEmail=Introduzca una dirección de correo.
+FormValidationInvalidURL=Introduzca una URL.
+FormValidationInvalidDate=Introduzca una fecha válida.
+FormValidationInvalidTime=Introduzca una hora válida.
+FormValidationInvalidDateTime=Introduzca una fecha y hora válida.
+FormValidationInvalidDateMonth=Por favor, introduzca un mes válido.
+FormValidationInvalidDateWeek=Por favor, introduzca una semana válida.
+FormValidationPatternMismatch=Ajústese al formato solicitado.
+# LOCALIZATION NOTE (FormValidationPatternMismatchWithTitle): %S is the (possibly truncated) title attribute value.
+FormValidationPatternMismatchWithTitle=Ajústese al formato solicitado: %S.
+# LOCALIZATION NOTE (FormValidationNumberRangeOverflow): %S is a number.
+FormValidationNumberRangeOverflow=Seleccione un valor que no sea mayor de %S.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeOverflow): %S is a date or a time.
+FormValidationDateTimeRangeOverflow=Seleccione un valor que no sea posterior a %S.
+# LOCALIZATION NOTE (FormValidationNumberRangeUnderflow): %S is a number.
+FormValidationNumberRangeUnderflow=Seleccione un valor que no sea menor de %S.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeUnderflow): %S is a date or a time.
+FormValidationDateTimeRangeUnderflow=Seleccione un valor que no sea anterior a %S.
+# LOCALIZATION NOTE (FormValidationStepMismatch): both %S can be a number, a date or a time.
+FormValidationStepMismatch=Seleccione un valor válido. Los dos valores válidos más cercanos son %S y %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=Seleccione un valor válido. El valor válido más cercano es %S.
+# LOCALIZATION NOTE (FormValidationTimeReversedRangeUnderflowAndOverflow): %1$S,%2$S are time.
+FormValidationTimeReversedRangeUnderflowAndOverflow=Seleccione un valor entre %1$S y %2$S.
+FormValidationBadInputNumber=Introduzca un número.
+FullscreenDeniedDisabled=La solicitud de pantalla completa ha sido denegada porque la API de pantalla completa está desactivada en las preferencias de usuario.
+FullscreenDeniedFocusedPlugin=La solicitud de pantalla completa ha sido denegada porque un plugin en ventana tiene el foco.
+FullscreenDeniedHidden=La solicitud de pantalla completa ha sido denegada porque el documento ya no es visible.
+FullscreenDeniedHTMLDialog=Se denegó la solicitud de pantalla completa porque el elemento solicitante es un elemento <dialog>.
+FullscreenDeniedContainerNotAllowed=La solicitud de pantalla completa ha sido denegada porque al menos uno de los elementos que contiene el documento no es un iframe o no tiene un atributo "allowfullscreen".
+FullscreenDeniedNotInputDriven=La solicitud de pantalla completa ha sido denegada porque Element.requestFullscreen() no ha sido llamado desde dentro de un controlador de eventos generado por el usuario de ejecución rápida.
+FullscreenDeniedMouseEventOnlyLeftBtn=La solicitud de pantalla completa se denegó porque se llamó a Element.requestFullscreen() dentro de un controlador de eventos del ratón que no se activó con el botón izquierdo del ratón.
+FullscreenDeniedNotHTMLSVGOrMathML=La solicitud de pantalla completa ha sido denegada porque el elemento solicitante no es <svg>, <math>, ni un elemento HTML.
+FullscreenDeniedNotInDocument=La solicitud de pantalla completa ha sido denegada porque ya el elemento solicitante ya no está en este documento.
+FullscreenDeniedMovedDocument=La solicitud de pantalla completa ha sido denegada porque el elemento solicitante ha movido el documento.
+FullscreenDeniedLostWindow=La solicitud de pantalla completa ha sido denegada porque ya no se tiene una ventana.
+FullscreenDeniedPopoverOpen=La solicitud de pantalla completa ha sido denegada porque el elemento ya está abierto como emergente.
+FullscreenDeniedSubDocFullscreen=La solicitud de pantalla completa ha sido denegada porque un subdocumento del documento que ha solicitado la pantalla completa ya está en modo de pantalla completa.
+FullscreenDeniedNotFocusedTab=La solicitud de pantalla completa ha sido denegada porque el elemento solicitante no está en la pestaña que tiene el foco actualmente.
+FullscreenDeniedFeaturePolicy=La solicitud de pantalla completa fue denegada debido a las directivas de FeaturePolicy.
+FullscreenExitWindowFocus=Ha salido de pantalla completa porque se ha seleccionado una ventana.
+RemovedFullscreenElement=Se ha salido de la pantalla completa porque el elemento de pantalla completa ha sido eliminado del documento.
+FocusedWindowedPluginWhileFullscreen=Se ha salido de pantalla completa porque un plugin en ventana ha recibido el foco.
+PointerLockDeniedDisabled=La solicitud de bloqueo del puntero ha sido denegada porque la API de bloqueo del puntero está desactivada por preferencias de usuario.
+PointerLockDeniedInUse=La solicitud de bloqueo del puntero ha sido denegada porque el puntero está controlado actualmente por otro documento diferente.
+PointerLockDeniedNotInDocument=La solicitud de bloqueo del puntero ha sido denegada porque el elemento solicitante no está en el documento.
+PointerLockDeniedSandboxed=La solicitud de bloqueo del puntero ha sido denegada porque la API de bloqueo del puntero está restringida mediante aislamiento.
+PointerLockDeniedHidden=La solicitud de bloqueo del puntero ha sido denegada porque el documento no es visible.
+PointerLockDeniedNotFocused=La solicitud de bloqueo del puntero ha sido denegada porque el documento no tiene el foco.
+PointerLockDeniedMovedDocument=La solicitud de bloqueo del puntero ha sido denegada porque el elemento solicitante ha movido el documento.
+PointerLockDeniedNotInputDriven=La solicitud de bloqueo del puntero ha sido denegada porque Element.requestPointerLock() no ha sido llamado desde un controlador de eventos breve generado por el usuario, y el documento no está en modo pantalla completa.
+PointerLockDeniedFailedToLock=La solicitud de bloqueo del puntero ha sido denegada porque el navegador no ha podido bloquear el puntero.
+HTMLSyncXHRWarning=El análisis HTML en XMLHttpRequest no está admitido en el modo síncrono.
+# LOCALIZATION NOTE: %S is the name of the header in question
+ForbiddenHeaderWarning=Se ha denegado el intento de establecer una cabecera prohibida: %S
+ResponseTypeSyncXHRWarning=El uso del atributo responseType de XMLHttpRequest ya no se admite en el modo síncrono del contexto de ventana.
+TimeoutSyncXHRWarning=El uso del atributo timeout de XMLHttpRequest ya no se admite en el modo síncrono del contexto de ventana.
+# LOCALIZATION NOTE: Do not translate navigator.sendBeacon, unload, pagehide, or XMLHttpRequest.
+UseSendBeaconDuringUnloadAndPagehideWarning=El uso de navigator.sendBeacon en lugar de una petición síncrona XMLHttpRequest durante la descarga y la ocultación de la página mejora la experiencia del usuario.
+JSONCharsetWarning=Se ha registrado un intento de declarar una codificación no UTF-8 para el JSON recuperado mediante XMLHttpRequest. Sólo se admite UTF-8 para decodificar JSON.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and createMediaElementSource.
+MediaElementAudioSourceNodeCrossOrigin=El HTMLMediaElement pasado a createMediaElementSource tiene un recurso de origen cruzado, el nodo no mostrará nada.
+# LOCALIZATION NOTE: Do not translate MediaStream and createMediaStreamSource.
+MediaStreamAudioSourceNodeCrossOrigin=El MediaStream pasado a createMediaElementSource tiene un recurso de origen cruzado, el nodo no mostrará nada.
+# LOCALIZATION NOTE : Do not translate MediaStreamTrack and createMediaStreamTrackSource.
+MediaStreamTrackAudioSourceNodeCrossOrigin=El MediaStreamTrack pasado a createMediaStreamTrackSource tiene un recurso de origen cruzado, el nodo emitirá silencio.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
+MediaElementAudioCaptureOfMediaStreamError=El elemento capturado HTMLMediaElement está reproduciendo un MediaStream. Aún no se admite la opción de volumen o ponerlo en silencio.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
+MediaElementStreamCaptureCycle=El MediaStream asignado a srcObject proviene de una captura de este HTMLMediaElement, formando un bucle, asignación ignorada.
+MediaLoadExhaustedCandidates=Ha fallado la carga de todos los recursos candidatos. Carga de medios pausada.
+MediaLoadSourceMissingSrc=El elemento <source> no tiene atributo "src". Ha fallado la carga del recurso de medios.
+MediaStreamAudioSourceNodeDifferentRate=Actualmente no se admite la conexión de AudioNodes desde AudioContexts con diferentes frecuencias de muestreo.
+# 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=La carga HTTP ha fallado con el estado %1$S. Ha fallado la carga del recurso de medios %2$S.
+# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load.
+MediaLoadInvalidURI=URI no válida. Ha fallado la carga del recurso de medios %S.
+# 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=El atributo "type" especificado de "%1$S" no se admite. Ha fallado la carga del recurso de medios %2$S.
+MediaLoadUnsupportedTypeAttributeLoadingNextChild=El atributo “type” especificado de “%1$S” no es compatible. Falló al cargar el recurso de medios %2$S. Intentando cargar desde el siguiente 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=El "Content-Type" HTTP de "%1$S" no es compatible. Ha fallado la carga del recurso de medios %2$S.
+# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load because of error in decoding.
+MediaLoadDecodeError=El recurso de medios %S no puede decodificarse.
+MediaWidevineNoWMF=Se ha intentado reproducir Widevine sin Windows Media Foundation. Vea 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 reproducir los formatos de vídeo %S, necesita instalar software extra de Microsoft, vea 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=El vídeo en esta página no se puede reproducir. Su sistema puede no tener los decodificadores de vídeo necesarios para: %S
+MediaUnsupportedLibavcodec=El vídeo en esta página no se puede reproducir. Su sistema tiene una versión no compatible de libavcodec
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+MediaDecodeError=No se ha podido decodificar el recurso multimedia %1$S, error: %2$S
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+MediaDecodeWarning=Se ha podido decodificar el recurso multimedia %1$S, pero con el error: %2$S
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaCannotPlayNoDecoders=No se puede reproducir el medio. No hay decodificadores para los formatos solicitados: %S
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaNoDecoders=No hay decodificadores para algunos de los formatos solicitados: %S
+MediaCannotInitializePulseAudio=No se puede usar 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=El uso de extensiones de multimedia cifrada en %S en un contexto inseguro (es decir, sin HTTPS) está desaprobado y se eliminará pronto. Debería considerar cambiar a un origen seguro 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=Llamar a navigator.requestMediaKeySystemAccess() (en %S) sin pasar un candidato MediaKeySystemConfiguration que contenga audioCapabilities o videoCapabilities está obsoleto y pronto dejará de admitirse.
+# 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=Llamar a navigator.requestMediaKeySystemAccess() (en %S) pasando un candidato MediaKeySystemConfiguration que contenga audioCapabilities o videoCapabilities sin un contentType con una cadena "codecs" está obsoleto y pronto dejará de admitirse.
+# LOCALIZATION NOTE: Do not translate "Mutation Event" and "MutationObserver"
+MutationEventWarning=El uso de eventos Mutation está desaprobado. Use en su lugar MutationObserver.
+BlockAutoplayError=La reproducción automática solo está permitida cuando ha sido aprobada por el usuario, el sitio está activado por el usuario, o los archivos multimedia está silenciados.
+BlockAutoplayWebAudioStartError=Se ha impedido que un AudioContext se inicie automáticamente. Debe crearse o reanudarse después de un gesto del usuario en la página.
+# LOCALIZATION NOTE: Do not translate "Components"
+ComponentsWarning=El objeto Components está desaprobado. Pronto será eliminado.
+PluginHangUITitle=Aviso: plugin sin respuesta
+PluginHangUIMessage=%S puede estar ocupado o puede haber dejado de responder. Puede detener el plugin ahora o puede continuar para ver si el plugin completa su tarea.
+PluginHangUIWaitButton=Continuar
+PluginHangUIStopButton=Detener plugin
+# LOCALIZATION NOTE: Do not translate "NodeIterator" or "detach()".
+NodeIteratorDetachWarning=Invocar detach() en un NodeIterator ya no tiene efecto.
+# LOCALIZATION NOTE: Do not translate "LenientThis" and "this"
+LenientThisWarning=Se ignora la recuperación (get) o asignación (set) de una propiedad que tiene [LenientThis] porque el objeto "this" es incorrecto.
+# LOCALIZATION NOTE: Do not translate "captureEvents()" or "addEventListener()"
+UseOfCaptureEventsWarning=El uso de captureEvents() está desaprobado. Para actualizar su código, use el método addEventListener() de DOM2. Para más información visite http://developer.mozilla.org/en/docs/DOM:element.addEventListener
+# LOCALIZATION NOTE: Do not translate "releaseEvents()" or "removeEventListener()"
+UseOfReleaseEventsWarning=El uso de releaseEvents() está desaprobado. Para actualizar su código, use el método removeEventListener() de DOM2. Para más información visite http://developer.mozilla.org/en/docs/DOM:element.removeEventListener
+# LOCALIZATION NOTE: Do not translate "XMLHttpRequest"
+SyncXMLHttpRequestWarning=Un XMLHttpRequest síncrono en el hilo principal está desaprobado por sus efectos negativos en la experiencia del usuario final. Para más ayuda vea http://xhr.spec.whatwg.org/
+# LOCALIZATION NOTE: Do not translate "XMLHttpRequest"
+SyncXMLHttpRequestDeprecatedWarning=Un XMLHttpRequest síncrono en el hilo principal está desaprobado por sus efectos negativos en la experiencia del usuario final. Para más ayuda vea https://xhr.spec.whatwg.org/#sync-warning
+# LOCALIZATION NOTE: Do not translate "window.controllers/Controllers"
+Window_Cc_ontrollersWarning=window.controllers/Controllers está desaprobado. No lo use para detectar el agente de usuario.
+ImportXULIntoContentWarning=Importar nodos XUL en un documento de contenido está desaprobado. Esta funcionalidad puede desaparecer pronto.
+# LOCALIZATION NOTE: Do not translate "IndexedDB".
+IndexedDBTransactionAbortNavigation=Se ha anulado una transacción de IndexedDB incompleta debido a navegación entre páginas.
+# LOCALIZATION NOTE: Do not translate Will-change, %1$S,%2$S are numbers.
+IgnoringWillChangeOverBudgetWarning=El consumo de memoria will-change es demasiado alto. El límite previsto es el área de la superficie del documento multiplicada por %1$S (%2$S px). Las apariciones de will-change por encima de la previsión serán ignoradas.
+# LOCALIZATION NOTE: Do not translate "Worker".
+HittingMaxWorkersPerDomain2=No se ha podido iniciar el worker inmediatamente porque otros documentos en el mismo origen ya está usando el número máximo de workers. El worker está ahora en cola y se iniciará después de que alguno de los otros workers se hayan completado.
+# LOCALIZATION NOTE: Do not translate "Application Cache API", "AppCache" and "ServiceWorker".
+AppCacheWarning=La API de caché de aplicaciones (AppCache) está desaprobada y se eliminará en el futuro. Considere usar ServiceWorker para implementar compatibilidad sin conexión.
+# LOCALIZATION NOTE: Do not translate "Worker".
+EmptyWorkerSourceWarning=Intentando crear un worker de un origen vacío. Probablemente no es intencionado.
+NavigatorGetUserMediaWarning=navigator.mozGetUserMedia ha sido reemplazado por navigator.mediaDevices.getUserMedia
+# LOCALIZATION NOTE: Do not translate "RTCPeerConnection", "getLocalStreams", "getRemoteStreams", "getSenders" or "getReceivers".
+RTCPeerConnectionGetStreamsWarning=RTCPeerConnection.getLocalStreams/getRemoteStreams están desaprobados. Use RTCPeerConnection.getSenders/getReceivers en su lugar.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL.
+InterceptionFailedWithURL=Fallo al cargar '%S'. Un ServiceWorker ha interceptado la solicitud y encontrado un error inesperado.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "cors", "Response", "same-origin" or "Request". %1$S is a URL, %2$S is a URL.
+CorsResponseForSameOriginRequest=Fallo al cargar '%1$S' respondiendo '%2$S'. Un ServiceWorker no tiene permitido sintetizar un cors Response para un 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=Fallo al cargar '%1$S'. Un ServiceWorker ha pasado un opaque Response a FetchEvent.respondWith() al gestionar un FetchEvent '%2$S'. Los objetos Opaque Response solo son válidos cuando el RequestMode es 'no-cors'.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Error", "Response", "FetchEvent.respondWith()", or "fetch()". %S is a URL.
+InterceptedErrorResponseWithURL=Fallo al cargar '%S'. Un ServiceWorker ha pasado un Error Response a FetchEvent.respondWith(). Esto suele significar que el ServiceWorker ha realizado una llamada fetch() no válida.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", or "Response.clone()". %S is a URL.
+InterceptedUsedResponseWithURL=Fallo al cargar '%S'. Un ServiceWorker ha pasado un Response usado a FetchEvent.respondWith(). El cuerpo de un Response solo puede ser leído una vez. Use Response.clone() para acceder al cuerpo múltiples veces.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "opaqueredirect", "Response", "FetchEvent.respondWith()", or "FetchEvent". %S is a URL.
+BadOpaqueRedirectInterceptionWithURL=Fallo al cargar '%S'. Un ServiceWorker ha pasado un opaqueredirect Response a FetchEvent.respondWith() mientras gestionaba un FetchEvent que no es de navegación.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", "RedirectMode" or "follow". %S is a URL.
+BadRedirectModeInterceptionWithURL=Fallo al cargar '%S'. Un ServiceWorker ha pasado un Response redirigido a FetchEvent.respondWith() a pesar de que RedirectMode no es 'follow'.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker" or "FetchEvent.preventDefault()". %S is a URL.
+InterceptionCanceledWithURL=Fallo al cargar '%S'. Un ServiceWorker ha cancelado la carga llamando a FetchEvent.preventDefault().
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "promise", or "FetchEvent.respondWith()". %1$S is a URL. %2$S is an error string.
+InterceptionRejectedResponseWithURL=Fallo al cargar '%1$S'. Un ServiceWorker ha pasado un promise a FetchEvent.respondWith() que lo ha rechazado con '%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=Fallo al cargar '%1$S'. Un ServiceWorker ha pasado un promise a FetchEvent.respondWith() que lo ha resuelto con el valor sin respuesta '%2$S'.
+
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Service-Worker-Allowed" or "HTTP". %1$S and %2$S are URLs.
+ServiceWorkerScopePathMismatch=Fallo al registrar un ServiceWorker. La ruta del ámbito indicado, '%1$S' no está bajo el ámbito máximo permitido '%2$S'. Ajuste el ámbito, mueva el script del ServiceWorker, o use la cabecera HTTP Service-Worker-Allowed para permitir el á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=Fallo al registrar/actualizar un ServiceWorker para el ámbito '%1$S': ha fallado la carga con el estado %2$S para el 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=Fallo al registrar/actualizar un ServiceWorker para el ámbito ‘%1$S’: Se ha recibido un Content-Type incorrecto ‘%2$S’ para el script ‘%3$S’. Debe ser un tipo MIME de JavaScript.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL representing the scope of the ServiceWorker.
+ServiceWorkerRegisterStorageError=Fallo al registrar/actualizar un ServiceWorker en el ámbito '%S': el acceso al almacenamiento está restringido en este contexto debido a la configuración de usuario o al modo de navegación privada.
+ServiceWorkerGetRegistrationStorageError=Fallo al obtener el registro del service worker: el acceso al almacenamiento está restringido en este contexto debido a la configuración de usuario o al modo de navegación privada.
+ServiceWorkerGetClientStorageError=Fallo al obtener el cliente del service worker: el acceso al almacenamiento está restringido en este contexto debido a la configuración de usuario o al modo de navegación privada.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker" and "postMessage". %S is a URL representing the scope of the ServiceWorker.
+ServiceWorkerPostMessageStorageError=El ServiceWorker en el ámbito '%S' no ha podido ejecutar 'postMessage' porque el acceso al almacenamiento está restringido en este contexto debido a la configuración de usuario o el modo de navegación privada.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker.
+ServiceWorkerGraceTimeoutTermination=Finalizando ServiceWorker en el ámbito '%1$S' con promises waitUntil/respondWith pendientes por caducidad del tiempo de gracia.
+# LOCALIZATION NOTE (ServiceWorkerNoFetchHandler): Do not translate "Fetch".
+ServiceWorkerNoFetchHandler=Los controladores de eventos de Fetch deben añadirse durante la evaluación inicial del script.
+ExecCommandCutCopyDeniedNotInputDriven=document.execCommand('cut'/'copy') ha sido denegado porque no ha sido llamado desde dentro de un controlador de eventos generado por el usuario de ejecución breve.
+ManifestIdIsInvalid=El id del miembro no se resolvió en una URL válida.
+ManifestIdNotSameOrigin=El id del miembro debe tener el mismo origen que el miembro start_url.
+ManifestShouldBeObject=El manifiesto debería ser un objeto.
+ManifestScopeURLInvalid=La URL de ámbito no es válida.
+ManifestScopeNotSameOrigin=La URL de ámbito debe ser del mismo origen que el documento.
+ManifestStartURLOutsideScope=La URL de inicio está fuera de su ámbito, por lo que éste no es válido.
+ManifestStartURLInvalid=La URL de inicio no es válida.
+ManifestStartURLShouldBeSameOrigin=La URL de inicio debe ser del mismo origen que el 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=Se esperaba que el miembro %2$S de %1$S fuera un(a) %3$S.
+# LOCALIZATION NOTE: %1$S is the name of the property whose value is invalid. %2$S is the (invalid) value of the property. E.g. "theme_color: 42 is not a valid CSS color."
+ManifestInvalidCSSColor=%1$S: %2$S no es un color CSS válido.
+# 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 no es un 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=El ítem %1$S en el índice %2$S no es válido. El miembro %3$S es una URL %4$S no válida
+# 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=El ítem %1$S en el índice %2$S no tiene un propósito utilizable. 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=El ítem %1$S en el índice %2$S incluye propósito(s) no admitidos: %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=El ítem %1$S en el índice %2$S incluye propósito(s) repetidos: %3$S.
+PatternAttributeCompileFailure=No es posible marcar <input pattern='%S'> porque el patrón no es una expresión regular válida: %S
+# LOCALIZATION NOTE: Do not translate "postMessage" or DOMWindow. %S values are origins, like https://domain.com:port
+TargetPrincipalDoesNotMatch=Fallo al ejecutar 'postMessage' en 'DOMWindow': el origen del destino proporcionando ('%S') no coincide con el origen de la ventana del destinatario ('%S').
+# LOCALIZATION NOTE: Do not translate 'YouTube'. %S values are origins, like https://domain.com:port
+RewriteYouTubeEmbed=Reescribiendo empotrado de Youtube Flash a la vieja usanza (%S) a empotrado con iframe (%S). Actualice su página para usar iframe en lugar de embed/object, si es posible.
+# LOCALIZATION NOTE: Do not translate 'YouTube'. %S values are origins, like https://domain.com:port
+RewriteYouTubeEmbedPathParams=Reescribiendo empotrado de Youtube Flash a la vieja usanza (%S) a empotrado con iframe (%S). Los parámetros no se admiten en empotrados con iframe y han sido convertidos. Actualice su página para usar iframe en lugar de embed/object, si es posible.
+# 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=El ServiceWorker del ámbito '%1$S' no ha podido descifrar un mensaje push. La cabecera 'Encryption' debe incluir un solo parámetro 'salt' para cada mensaje. Vea https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 para más información.
+# 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=El ServiceWorker del ámbito '%1$S' no ha podido descifrar un mensaje push. La cabecera 'Crypto-Key' debe incluir un parámetro 'dh' conteniendo la clave pública del servidor de aplicaciones. Vea https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 para más información.
+# 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=El ServiceWorker del ámbito '%1$S' no ha podido descifrar un mensaje push. La cabecera 'Encryption-Key' debe incluir un parámetro 'dh'. Esta cabecera está desaprobada y se eliminará pronto. Use en su lugar 'Crypto-Key' con 'Content-Encoding: aesgcm'. Vea https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 para más información.
+# 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=El ServiceWorker del ámbito '%1$S' no ha podido descifrar un mensaje push. La cabecera 'Content-Encoding' ha de ser 'aesgcm'. Se permite 'aesgcm128', pero está desaprobado y se eliminará pronto. Vea https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-2 para más información.
+# 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=El ServiceWorker del ámbito '%1$S' no ha podido descifrar un mensaje push. El parámetro 'dh' de la cabecera 'Crypto-Key' debe ser la clave pública Diffie-Hellman del servidor de aplicaciones, codificada en base64url (https://tools.ietf.org/html/rfc7515#appendix-C) y en la forma "uncompressed" o "raw" (65 bytes antes de la codificación). Vea https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 para más información.
+# 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=El ServiceWorker del ámbito '%1$S' no ha podido descifrar un mensaje push. El parámetro 'salt' de la cabecera 'Encryption' debe estar codificada en base64url (https://tools.ietf.org/html/rfc7515#appendix-C), y estar al menos 16 bytes antes de la codificación. Vea https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 para más información.
+# 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=El ServiceWorker del ámbito '%1$S' no ha podido descifrar un mensaje push. El parámetro 'rs' de la cabecera 'Encryption' debe estar entre %2$S y 2^36-31, u omitida por completo. Vea https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 para más información.
+# 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=El ServiceWorker del ámbito '%1$S' no ha podido descifrar un mensaje push. Un registro en el mensaje cifrado no estaba alineado correctamente. Vea https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-2 para más información.
+# 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=El ServiceWorker del ámbito '%1$S' no ha podido descifrar un mensaje push. Para ayuda con el cifrado, vea 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=Ignorando llamada a 'preventDefault()' en evento del tipo '%1$S' de un escuchador registrado commo 'passive'.
+# LOCALIZATION NOTE: 'ImageBitmapRenderingContext.transferImageBitmap' and 'ImageBitmapRenderingContext.transferFromImageBitmap' should not be translated
+ImageBitmapRenderingContext_TransferImageBitmapWarning=ImageBitmapRenderingContext.transferImageBitmap es obsoleto y se eliminará pronto. Utilice ImageBitmapRenderingContext.transferFromImageBitmap en su lugar.
+IIRFilterChannelCountChangeWarning=Los cambios en la cuenta de canales IIRFilterNode pueden producir deficiencias en el audio.
+BiquadFilterChannelCountChangeWarning=Los cambios en la cuenta de canales BiquadFilterNode pueden producir deficiencias en el audio.
+# LOCALIZATION NOTE: Do not translate ".png"
+GenericImageNamePNG=imagen.png
+GenericFileName=archivo
+GeolocationInsecureRequestIsForbidden=Una solicitud de geolocalización solo se puede llevar a cabo en un contexto seguro.
+NotificationsInsecureRequestIsForbidden=El permiso de Notificación solo se puede solicitar en un contexto seguro.
+NotificationsCrossOriginIframeRequestIsForbidden=El permiso de notificación solo se puede solicitar en un documento de nivel superior o en un iframe del mismo origen.
+NotificationsRequireUserGesture=El permiso de notificación solo se puede solicitar desde un controlador de eventos generados por el usuario de ejecución corta.
+NotificationsRequireUserGestureDeprecationWarning=Solicitar permiso de notificación fuera de un controlador de eventos generados por el usuario de ejecución corta está obsoleto y no va a ser compatible en el futuro.
+# LOCALIZATION NOTE: Do not translate "content", "Window", and "window.top"
+WindowContentUntrustedWarning=El atributo 'content' de los objetos Window está desaprobado. Use 'window.top' en su lugar.
+# 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=La etiqueta SVG <%S> con ID "%S" tiene un bucle de referencias.
+# 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=Una cadena de referencias <%S> de SVG que es demasiado larga ha sido abandonada al elemento con ID "%S".
+# LOCALIZATION NOTE: Do not translate SVGSVGElement.deselectAll.
+SVGDeselectAll=SVGSVGElement.deselectAll está obsoleto porque duplica la funcionalidad de la API Selection.
+# LOCALIZATION NOTE: Do not translate SVGGraphicsElement.nearestViewportElement or SVGElement.viewportElement.
+SVGNearestViewportElement=SVGGraphicsElement.nearestViewportElement está obsoleto y será eliminado en el futuro. Utilice SVGElement.viewportElement en su lugar.
+# LOCALIZATION NOTE: Do not translate SVGGraphicsElement.farthestViewportElement.
+SVGFarthestViewportElement=SVGGraphicsElement.farthestViewportElement está obsoleto y será eliminado en el futuro.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceEmpty=El atributo '%S' del elemento <script> está vacío.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceInvalidUri=El atributo '%S' del elemento <script> no es una URI válida: "%S"
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceLoadFailed=Ha fallado la carga del <script> con origen "%S".
+ModuleSourceLoadFailed=Ha fallado la carga del módulo con origen "%S".
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceMalformed=La URI de origen del <script> está mal formada: "%S".
+ModuleSourceMalformed=La URI de origen del módulo está mal formada: "%S".
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceNotAllowed=La URI de origen del <script> no está permitida en este docuento: "%S".
+ModuleSourceNotAllowed=La URI de origen del módulo no está permitida en este documento: "%S".
+WebExtContentScriptModuleSourceNotAllowed=Los scripts de contenido WebExtension solo pueden cargar módulos con URLs moz-extension y no: “%S”.
+ModuleResolveFailureNoWarn=Error al resolver el especificador de módulo “%S”.
+ModuleResolveFailureWarnRelative=Error al resolver el módulo especificado “%S”. Los módulos relativos especificados deben comenzar con “./”, “../” o “/”.
+ImportMapInvalidTopLevelKey=En el mapa de importación hay una clave de nivel superior no válida “%S”.
+ImportMapEmptySpecifierKeys=Las claves del especificador no pueden ser cadenas vacías.
+ImportMapAddressesNotStrings=Las direcciones deben ser cadenas.
+ImportMapInvalidAddress=La dirección “%S” no es válida.
+# %1$S is the specifier key, %2$S is the URL.
+ImportMapAddressNotEndsWithSlash=Se ha indicado una dirección no válida para la clave del especificador “%1$S”; dado que “%1$S” termina en una barra inclinada, la dirección “%2$S” también debe hacerlo.
+ImportMapScopePrefixNotParseable=No se puede analizar la URL del prefijo de ámbito “%S”.
+ImportMapResolutionBlockedByNullEntry=La resolución del especificador “%S” ha sido bloqueada por una entrada nula.
+ImportMapResolutionBlockedByAfterPrefix=La resolución del especificador “%S” se ha bloqueado porque la subcadena después del prefijo no se ha podido analizar como una URL relativa a la dirección en el mapa de importación.
+ImportMapResolutionBlockedByBacktrackingPrefix=La resolución del especificador “%S” se ha bloqueado porque la URL analizada no comienza con la dirección presente en el mapa de importación.
+ImportMapResolveInvalidBareSpecifierWarnRelative=El especificador “%S” era un especificador básico, pero no se reasignó a nada. Los especificadores de módulos relativos deben comenzar con “./”, “../” o “/”.
+# LOCALIZATION NOTE: Do not translate "<script type='importmap'>", "src".
+ImportMapExternalNotSupported=Los mapas de importación externa no son compatibles: actualmente no se admite <script type='importmap'> con un atributo src.
+ImportMapNotAllowedMultiple=Los mapas de importación múltiples no están permitidos.
+ImportMapNotAllowedAfterModuleLoad=Los mapas de importación no están permitidos después de que se ha iniciado la carga o precarga de un módulo.
+# LOCALIZATION NOTE: %1$S is the invalid property value and %2$S is the property name.
+InvalidKeyframePropertyValue=El valor de la propiedad keyframe "%1$S" no es válido de acuerdo con la sintaxis de "%2$S".
+# LOCALIZATION NOTE: Do not translate "ReadableStream".
+ReadableStreamReadingFailed=No se han podido leer los datos del ReadableStream: "%S".
+# LOCALIZATION NOTE: Do not translate "registerProtocolHandler"
+RegisterProtocolHandlerPrivateBrowsingWarning=No se puede usar registerProtocolHandler dentro del modo de navegación privada.
+MotionEventWarning=El uso del sensor de moviento está obsoleto.
+OrientationEventWarning=El uso del sensor de orientación está obsoleto.
+ProximityEventWarning=El uso del sensor de proximidad está obsoleto.
+AmbientLightEventWarning=El uso del sensor de luz de ambiente está obsoleto.
+UnsupportedEntryTypesIgnored=Ignorando entryTypes no compatibles: %S.
+AllEntryTypesIgnored=entryTypes no válidas; se aborta registro.
+# LOCALIZATION NOTE: do not localize key=“%S” modifiers=“%S” id=“%S”
+GTK2Conflict2=Evento de teclado no disponible en GTK2: key=“%S” modifiers=“%S” id=“%S”
+WinConflict2=Evento de teclado no disponible en algunas disposiciones del teclado: key=“%S” modifiers=“%S” id=“%S”
+# LOCALIZATION NOTE: do not translated "document.domain"
+DocumentSetDomainNotAllowedWarning=No se permite establecer document.domain en un entorno aislado de origen cruzado.
+
+#LOCALIZATION NOTE(DeprecatedTestingInterfaceWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingInterfaceWarning=TestingDeprecatedInterface es una interfaz solo para pruebas y este es su mensaje de prueba obsoleto.
+#LOCALIZATION NOTE(DeprecatedTestingMethodWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingMethodWarning=TestingDeprecatedInterface.deprecatedMethod() es un método solo para pruebas y este es su mensaje de prueba obsoleto.
+#LOCALIZATION NOTE(DeprecatedTestingAttributeWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingAttributeWarning=TestingDeprecatedInterface.deprecatedAttribute es un atributo solo para pruebas y éste es su mensaje de prueba obsoleto.
+# LOCALIZATION NOTE (CreateImageBitmapCanvasRenderingContext2DWarning): Do not translate CanvasRenderingContext2D and createImageBitmap.
+CreateImageBitmapCanvasRenderingContext2DWarning=El uso de CanvasRenderingContext2D en createImageBitmap está obsoleto.
+
+# LOCALIZATION NOTE (DrawWindowCanvasRenderingContext2DWarning): Do not translate CanvasRenderingContext2D, drawWindow and tabs.captureTab.
+DrawWindowCanvasRenderingContext2DWarning=El uso del método drawWindow desde CanvasRenderingContext2D es obsoleto. En su lugar usar el API para extensiones tabs.captureTab https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/tabs/captureTab
+
+# LOCALIZATION NOTE (MozRequestFullScreenDeprecatedPrefixWarning): Do not translate mozRequestFullScreen.
+MozRequestFullScreenDeprecatedPrefixWarning=mozRequestFullScreen() está obsoleto.
+# LOCALIZATION NOTE (MozfullscreenchangeDeprecatedPrefixWarning): Do not translate onmozfullscreenchange.
+MozfullscreenchangeDeprecatedPrefixWarning=onmozfullscreenchange está obsoleto.
+# LOCALIZATION NOTE (MozfullscreenerrorDeprecatedPrefixWarning): Do not translate onmozfullscreenerror.
+MozfullscreenerrorDeprecatedPrefixWarning=onmozfullscreenerror está obsoleto.
+# LOCALIZATION NOTE(External_AddSearchProviderWarning): Do not translate AddSearchProvider.
+External_AddSearchProviderWarning=AddSearchProvider está obsoleto.
+
+# LOCALIZATION NOTE: Do not translate "MouseEvent.mozPressure" and "PointerEvent.pressure".
+MouseEvent_MozPressureWarning=MouseEvent.mozPressure está obsoleto. Use PointerEvent.pressure en su lugar.
+# LOCALIZATION NOTE: Do not translate small, normal, big and mathsize.
+MathML_DeprecatedMathSizeValueWarning=“small”, “normal” y “big”son valores obsoletos para el atributo mathsize y se eliminarán en alguna futura versión.
+# LOCALIZATION NOTE: Do not translate veryverythinmathspace, verythinmathspace,
+# thinmathspace, mediummathspace, thickmathspace, verythickmathspace, veryverythickmathspace and MathML.
+MathML_DeprecatedMathSpaceValueWarning=“veryverythinmathspace”, “verythinmathspace”, “thinmathspace”, “mediummathspace”, “thickmathspace”, “verythickmathspace” y “veryverythickmathspace” son valores obsoletos para longitudes MathML y se eliminarán en alguna futura versión.
+# LOCALIZATION NOTE: Do not translate MathML, background, color, fontfamily, fontsize, fontstyle and fontweight.
+MathML_DeprecatedStyleAttributeWarning=Los atributos MathML “background”, “color”, “fontfamily”, “fontsize”, “fontstyle” y “fontweight” son obsoletos y se eliminarán en alguna futura versión.
+# LOCALIZATION NOTE: Do not translate "MouseEvent.mozInputSource" and "PointerEvent.pointerType".
+MozInputSourceWarning=MouseEvent.mozInputSource está obsoleto. Use PointerEvent.pointerType en su lugar.
+# LOCALIZATION NOTE: Do not translate "initMouseEvent()" and "MouseEvent()".
+InitMouseEventWarning=initMouseEvent() es obsoleto. Use el constructor MouseEvent() en su lugar.
+# LOCALIZATION NOTE: Do not translate "initNSMouseEvent()" and "MouseEvent()".
+InitNSMouseEventWarning=initNSMouseEvent() está obsoleto. Use el constructor MouseEvent() en su lugar.
+# LOCALIZATION NOTE: Do not translate MathML. %S is the deprecated length value.
+MathML_DeprecatedMathSpaceValue2Warning=El valor de longitud de MathML “%S” está obsoleto y se eliminará en el futuro.
+# LOCALIZATION NOTE: Do not translate mathvariant or MathML. %S is the deprecated value of the mathvariant attribute.
+MathML_DeprecatedMathVariantWarning=“mathvariant='%S'” en los elementos MathML está obsoleto y será eliminado en el futuro.
+# LOCALIZATION NOTE: Do not translate MathML and STIXGeneral. %S is a documentation URL.
+MathML_DeprecatedStixgeneralOperatorStretchingWarning=La capacidad para renderizar operadores MathML estirados con fuentes STIXGeneral está en desuso y puede eliminarse en una fecha futura. Para obtener detalles sobre las fuentes más nuevas que seguirán siendo compatibles, consulte %S
+# LOCALIZATION NOTE: Do not translate MathML and scriptminsize.
+MathML_DeprecatedScriptminsizeAttributeWarning=El atributo MathML “scriptminsize” está obsoleto y será eliminado en el futuro.
+# LOCALIZATION NOTE: Do not translate MathML and scriptsizemultiplier.
+MathML_DeprecatedScriptsizemultiplierAttributeWarning=El atributo MathML “scriptsizemultiplier” está obsoleto y será eliminado en el futuro.
+FormSubmissionUntrustedEventWarning=El envío de formularios a través de un evento de envío no confiable es obsoleto y se eliminará en el futuro.
+
+# LOCALIZATION NOTE: Do not translate "sizeToContent()".
+SizeToContentWarning=sizeToContent() está obsoleto y será eliminado en el futuro.
+
+WebShareAPI_Failed=La operación de compartir ha fallado.
+WebShareAPI_Aborted=La operación de compartir ha sido abortada.
+# LOCALIZATION NOTE (UnknownProtocolNavigationPrevented): %1$S is the destination URL.
+UnknownProtocolNavigationPrevented=Se impidió la navegación a “%1$S” debido a un protocolo desconocido.
+PostMessageSharedMemoryObjectToCrossOriginWarning=No se puede publicar un mensaje que contenga un objeto de memoria compartida en una ventana de origen cruzado.
+# LOCALIZATION NOTE: %S is the URL of the resource in question
+UnusedLinkPreloadPending=El recurso en “%S” precargado con precarga de enlace no se usó en unos pocos segundos. Asegúrese de que todos los atributos de la etiqueta de preload estén configurados correctamente.
+
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-same-origin and sandbox (though you may translate "sandboxed").
+RequestStorageAccessNullPrincipal=document.requestStorageAccess() no se puede invocar en un documento con un origen opaco, como un iframe de sandbox sin allow-same-origin en su atributo de 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() no se puede invocar en un iframe de sandbox sin allow-storage-access-by-user-activation en su atributo de sandbox.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess() and iframe.
+RequestStorageAccessNested=document.requestStorageAccess() no se puede invocar en un iframe anidado.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(). In some locales it may be preferable to not translate "event handler", either.
+RequestStorageAccessUserGesture=document.requestStorageAccess() solo se puede solicitar desde un controlador de eventos generado por el usuario de ejecución breve.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), Permissions Policy and storage-access.
+RequestStorageAccessPermissionsPolicy=No se puede llamar a document.requestStorageAccess() cuando la función de acceso al almacenamiento está bloqueada por la política de permisos.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess()
+RequestStorageAccessNotSecureContext=document.requestStorageAccess() solo puede otorgar acceso a contextos seguros.
+# LOCALIZATION NOTE: Do not translate "Location" and "History".
+LocChangeFloodingPrevented=Demasiadas llamadas a las API de ubicación o historial en un período breve.
+FolderUploadPrompt.title = Confirmar envío
+# LOCALIZATION NOTE: %S is the name of the folder the user selected in the file picker.
+FolderUploadPrompt.message = ¿Está seguro de que desea enviar todos los archivos de “%S”? Haga esto solo si confía en la página web.
+FolderUploadPrompt.acceptButtonLabel = Enviar
+InputPickerBlockedNoUserActivation=Se ha bloqueado el selector <input> por no haber sido activado por el usuario.
+ExternalProtocolFrameBlockedNoUserActivation=Se ha bloqueado el iframe con protocolo externo por no haber sido activado por el usuario o porque no ha pasado suficiente tiempo desde que se cargó el último iframe de este tipo.
+MultiplePopupsBlockedNoUserActivation=Se ha bloqueado la apertura de múltiples ventanas emergentes por no haber sido activado por el usuario.
+# LOCALIZATION NOTE: %S is the URL of the preload that was ignored.
+PreloadIgnoredInvalidAttr=La precarga de %S fue ignorada debido a valores desconocidos de “as” o “type”, o a un atributo “media” no coincidente.
+# LOCALIZATION NOTE: %S is the blob URL. Don't translate "agent cluster".
+BlobDifferentClusterError=No se puede acceder a la URL de blob “%S” desde un clúster de agente diferente.
+# LOCALIZATION NOTE: %S is the blob URL. Don't translate "partition key".
+PartitionKeyDifferentError=No se puede acceder a la URL de blob “%S” con una clave de partición diferente.
+# LOCALIZATION NOTE: Do not translate "Element.setCapture()" and "Element.setPointerCapture()"".
+ElementSetCaptureWarning=Element.setCapture() está obsoleto. Utilice Element.setPointerCapture() en su lugar. Para más información https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture
+# LOCALIZATION NOTE: Do not translate "Element.releaseCapture()" and "Element.releasePointerCapture()".
+ElementReleaseCaptureWarning=Element.releaseCapture() está obsoleto. Utilice Element.releasePointerCapture() en su lugar. Para más información https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture
+# LOCALIZATION NOTE: Do not translate "Document.releaseCapture()" and "Element.releasePointerCapture()".
+DocumentReleaseCaptureWarning=Document.releasecapture() está obsoleto. Utilice Element.releasePointerCapture() en su lugar. Para más información 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=El valor de browser.runtime.lastError no fue verificado: %S
+
+# LOCALIZATION NOTE: Do not translate "OffscreenCanvas.toBlob()" and "OffscreenCanvas.convertToBlob()".
+OffscreenCanvasToBlobWarning=OffscreenCanvas.toBlob() está obsoleto. Use OffscreenCanvas.convertToBlob() en su lugar.
+
+# LOCALIZATION NOTE: Do not translate "InstallTrigger"
+InstallTriggerDeprecatedWarning=InstallTrigger está obsoleto y será eliminado en el futuro.
+# LOCALIZATION NOTE: Do not translate "InstallTrigger.install()"
+InstallTriggerInstallDeprecatedWarning=InstallTrigger.install() está obsoleto y se eliminará en el futuro. Para obtener más ayuda, 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=Se rechazó expandir la lista de opciones <select> a través de la asignación a HTMLOptionsCollection.length (valor %1$S). El tamaño máximo admitido es %2$S.
+
+# LOCALIZATION NOTE: Do not translate "isExternalCTAP2SecurityKeySupported".
+IsExternalCTAP2SecurityKeySupportedWarning=isExternalCTAP2SecurityKeySupported() está obsoleto.
+
+InvalidFormControlUnfocusable=Un control de formulario no válido no puede tener foco.
+# LOCALIZATION NOTE: Do not translate "name="
+InvalidNamedFormControlUnfocusable=El control de formulario no válido con name=‘%S’ no puede tener el foco.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/extensions.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/extensions.properties
new file mode 100644
index 0000000000..6f932c2933
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = La extensión “%S” está solicitando ser desinstalada. ¿Qué desea hacer?
+
+uninstall.confirmation.button-0.label = Desinstalar
+uninstall.confirmation.button-1.label = Conservar instalado
+
+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 = Una extensión, %S, ha cambiado la página que le aparece al abrir una nueva pestaña.
+newTabControlled.learnMore = Saber más
+
+#LOCALIZATION NOTE (homepageControlled.message) %S is the icon and name of the extension which updated the homepage.
+homepageControlled.message = Una extensión, %S, ha cambiado lo que le aparece cuando abre su página de inicio o una nueva ventana.
+homepageControlled.learnMore = Saber más
+
+#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 = Una extensión, %1$S, está ocultando algunas de sus pestañas. Todavía puede acceder a todas sus pestañas desde %2$S.
+tabHideControlled.learnMore = Descubrir más
+
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/fallbackMenubar.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/fallbackMenubar.properties
new file mode 100644
index 0000000000..a41e05e993
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Salir
+quitMenuitem.key = q
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/filepicker.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/filepicker.properties
new file mode 100644
index 0000000000..590fb7553e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 los archivos
+htmlTitle=Archivos HTML
+textTitle=Archivos de texto
+imageTitle=Archivos de imágenes
+xmlTitle=Archivos XML
+xulTitle=Archivos XUL
+appsTitle=Aplicaciones
+audioTitle=Archivos de audio
+videoTitle=Archivos de vídeo
+
+pdfTitle=Archivos PDF
+
+formatLabel=Formato:
+selectedFileNotReadableError=El archivo seleccionado no tiene permiso de lectura
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/global-strres.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/global-strres.properties
new file mode 100644
index 0000000000..47a255de2a
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Ha ocurrido un error desconocido (%1$S)
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/intl.css b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/intl.css
new file mode 100644
index 0000000000..2f54eb367d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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/es-ES/chrome/es-ES/locale/es-ES/global/intl.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/intl.properties
new file mode 100644
index 0000000000..f857aef58e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/intl.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/.
+
+intl.accept_languages = es-ES, es, en-US, en
+
+font.language.group = x-western
+
+pluralRule = 1
+
+intl.menuitems.alwaysappendaccesskeys =
+intl.menuitems.insertseparatorbeforeaccesskeys = true
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/keys.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/keys.properties
new file mode 100644
index 0000000000..69e503adcb
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/keys.properties
@@ -0,0 +1,60 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# 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.
+
+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
+
+VK_UP = Flecha arriba
+VK_DOWN = Flecha abajo
+VK_LEFT = Flecha izquierda
+VK_RIGHT = Flecha derecha
+VK_PAGE_UP = Re. Pág.
+VK_PAGE_DOWN = Av. Pág.
+# 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 = Retroceso
+VK_DELETE = Supr.
+VK_HOME = Inicio
+VK_END = Fin
+
+VK_ESCAPE = Esc
+VK_INSERT = Insert
+# LOCALIZATION NOTE : BLOCK end
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout/HtmlForm.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout/HtmlForm.properties
new file mode 100644
index 0000000000..53089d10c0
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout/HtmlForm.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/.
+
+Reset = Restablecer
+Submit = Enviar consulta
+Browse = Examinar…
+FileUpload = Carga de archivos
+DirectoryUpload = Seleccione carpeta para subir
+DirectoryPickerOkButtonLabel = Subir
+ForgotPostWarning = El formulario contiene enctype=%S, pero no usa method=POST. Se enviará normalmente usando method=GET y sin enctype.
+ForgotFileEnctypeWarning = El formulario contiene un campo de entrada de archivo, pero no usa method=POST ni enctype=multipart/form-data en el formulario. El archivo no será enviado.
+DefaultFormSubject = Envío de formulario desde %S
+CannotEncodeAllUnicode = Se ha enviado un formulario con la codificación %S, que no puede codificar todos los caracteres Unicode, por lo que la entrada del usuario puede haber sido corrompida. Para evitar este problema, la página debería cambiarse para que el formulario se envíe en la codificación UTF-8 ya sea cambiando la codificación de la propia página a UTF-8 o especificando accept-charset=utf-8 en el elemento form.
+AllSupportedTypes = Todos los tipos admitidos
+NoFileSelected = No se ha seleccionado ningún archivo.
+NoFilesSelected = No se han seleccionado archivos.
+NoDirSelected = No se ha seleccionado un directorio.
+XFilesSelected = %S archivos seleccionados.
+ColorPicker = Elija un color
+DefaultSummary = Detalles
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout/MediaDocument.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout/MediaDocument.properties
new file mode 100644
index 0000000000..3a93057e78
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 (Imagen %S, %S × %S píxeles)
+ImageTitleWithoutDimensions=%S (imagen %S)
+ImageTitleWithDimensions2=(Imagen %S, %S × %S píxeles)
+ImageTitleWithNeitherDimensionsNorFile=(Imagen %S)
+MediaTitleWithFile=%S (objeto %S)
+MediaTitleWithNoInfo=(Objeto %S)
+
+InvalidImage=No se puede mostrar la imagen “%S” porque contiene errores.
+UnsupportedImage=La imagen “%S” no se puede mostrar porque requiere características no compatibles.
+ScaledImage=Escalado (%S %%)
+
+TitleWithStatus=%S - %S
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout/htmlparser.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout/htmlparser.properties
new file mode 100644
index 0000000000..1fccfab698
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=La codificación de caracteres de un documento en un marco no ha sido declarada. El documento puede mostrarse de manera diferente si se visualiza sin el documento que lo invoca como marco.
+EncXmlDecl=La codificación de caracteres de un documento HTML se declaró utilizando la sintaxis de declaración XML. Esto no es conforme y es más eficiente declarar la codificación usando una etiqueta meta al comienzo de la parte principal.
+EncMetaTooLate=Una etiqueta meta intentando declarar la codificación de caracteres fue encontrada demasiado tarde y la codificación se adivinó mirando el contenido. La etiqueta meta necesita ser movida al principio de la sección head del documento.
+EncMetaTooLateFrame=Una etiqueta meta intentando declarar la codificación de caracteres fue encontrada demasiado tarde y se ha utilizado la codificación del documento padre. La etiqueta meta necesita ser movida al principio de la sección head del documento.
+EncMetaAfterHeadInKilobyte=La etiqueta meta que declara la codificación de caracteres debería moverse al principio de la sección head del documento.
+EncNoDecl=La codificación de caracteres del documento no fue declarada, por lo ha sido adivinada analizando el contenido. La codificación de caracteres debe ser declarada en la cabecera HTTP Content-Type, usando una etiqueta meta o con una marca de orden de byte.
+EncNoDeclPlain=La codificación de caracteres del documento no fue declarada, por lo ha sido adivinada analizando el contenido. La codificación de caracteres debe ser declarada en la cabecera HTTP Content-Type o usando una marca de orden de byte.
+EncMetaUnsupported=Se ha declarado una codificación de caracteres no admitida en el documento HTML usando una etiqueta meta. Se ha descartado la declaración.
+EncProtocolUnsupported=Se ha declarado una codificación de caracteres no admitida a nivel de protocolo de transferencia. Se ha descartado la declaración.
+EncMetaUtf16=Se ha usado una etiqueta meta para declarar una codificación de caracteres como UTF-16. Se ha interpretado la declaración como si fuera UTF-8.
+EncMetaUserDefined=Se ha usado una etiqueta meta para declarar la codificación de caracteres como x-user-defined. Sin embargo, ha sido interpretada como una declaración windows-1252 por compatibilidad con tipografías antiguas intencionadamente codificadas de modo incorrecto. Este sitio debería migrar a Unicode.
+
+EncMetaReplacement=Se ha usado una etiqueta meta para declarar una codificación que es un riesgo de script de sitios cruzados. En su lugar, se ha usado una codificación de reemplazo.
+EncProtocolReplacement=Se ha declarado a nivel de protocolo una codificación que genera riesgo de script de sitios cruzados. En su lugar se ha usado una codificación de reemplazo.
+EncDetectorReload=La codificación de caracteres del documento no fue declarada, por lo ha sido adivinada analizando el contenido. Esto ha causado que se recargue el documento. La codificación de caracteres debe ser declarada en la cabecera HTTP Content-Type, usando una etiqueta meta o con una marca de orden de byte.
+EncDetectorReloadPlain=La codificación de caracteres del documento no fue declarada, por lo ha sido adivinada analizando el contenido. Esto ha causado que se recargue el documento. La codificación de caracteres debe ser declarada en la cabecera HTTP Content-Type o con una marca de orden de byte.
+EncError=El flujo de bytes es erróneo según la codificación de caracteres declarada. La declaración de codificación de caracteres puede ser incorrecta.
+EncErrorFrame=El flujo de bytes es erróneo según la codificación de caracteres heredada del documento padre. La codificación de caracteres debe ser declarada en el encabezado HTTP Content-Type, usando una etiqueta meta o una marca de orden de bytes.
+EncErrorFramePlain=El flujo de bytes es erróneo según la codificación de caracteres heredada del documento padre. La codificación de caracteres debe ser declarada en el encabezado HTTP Content-Type o una marca de orden de bytes.
+EncSpeculationFailMeta=Se ha vuelto a analizar el inicio del documento, porque había caracteres que no eran ASCII antes de la etiqueta meta que declaraba la codificación. La etiqueta meta debe ser el primer hijo de la sección head sin comentarios anteriores con caracteres no ASCII.
+EncSpeculationFailXml=Se ha vuelto a analizar el inicio del documento, porque había caracteres que no eran ASCII en la parte del documento que se había revisado sin éxito buscando la etiqueta meta antes de utilizar la declaración de sintaxis XML como alternativa. Se debería utilizar una etiqueta meta al inicio de la sección head en vez de una declaración con sintaxis XML.
+# The audience of the following message isn't the author of the document but other people debugging browser behavior.
+EncSpeculationFail2022=Se ha vuelto a analizar el inicio del documento, porque ISO-2022-JP es una codificación incompatible con 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=Basura tras “</”.
+errLtSlashGt=Se ha encontrado “</>”. Causas probables: “<” no escapado (escápelo como “&lt;”) o etiqueta de cierre mal escrita.
+errCharRefLacksSemicolon=Referencia a carácter no está terminado por un punto y coma.
+errNoDigitsInNCR=No hay dígitos en la referencia numérica a carácter.
+errGtInSystemId=“>” en un identificador de sistema.
+errGtInPublicId=“>” en un identificador público.
+errNamelessDoctype=Doctype sin nombre.
+errConsecutiveHyphens=Guiones consecutivos no terminaron un comentario. “--” no se permite dentro de un comentario, pero por ejemplo “- -” sí.
+errPrematureEndOfComment=Fin de comentario prematuro. Use “-->” para terminar correctamente un comentario.
+errBogusComment=Comentario simulado.
+errUnquotedAttributeLt=“<” en un valor de atributo sin comillas. Causa probable: “>” falta justo antes.
+errUnquotedAttributeGrave=“`” en un valor de atributo sin comillas. Causa probable: usar el carácter erróneo como comilla.
+errUnquotedAttributeQuote=Comilla en un valor de atributo sin comillas. Causas probables: atributos pegados por error o una cadena de consulta URL en un valor de atributo sin comillas.
+errUnquotedAttributeEquals=“=” en un valor de atributo sin comillas. Causas probables: atributos juntos por error o una cadena de consulta URL en un valor de atributo sin comillas.
+errSlashNotFollowedByGt=Una barra no estaba inmediatamente seguida de “>”.
+errNoSpaceBetweenAttributes=Falta espacio entre atributos.
+errUnquotedAttributeStartLt=“<” al principio de valor de atributo sin comillas. Causa probable: “>” falta justo antes.
+errUnquotedAttributeStartGrave=“`” al principio de un valor de atributo sin comillas. Causa probable: usar el carácter erróneo como comilla.
+errUnquotedAttributeStartEquals=“=” al principio de un valor de atributo sin comillas. Causa probable: signo igual duplicado/extraviado.
+errAttributeValueMissing=Falta valor de atributo.
+errBadCharBeforeAttributeNameLt=Se ha encontrado “<” cuando se esperaba un nombre de atributo. Causa probable: falta un “>” justo antes.
+errEqualsSignBeforeAttributeName=Se ha encontrado “=” cuando se esperaba un nombre de atributo. Causa probable: falta el nombre del atributo.
+errBadCharAfterLt=Carácter erróneo tras “<”. Causa probable: “<” no escapado. Pruebe a escaparlo como “&lt;”.
+errLtGt=Se ha encontrado “<>”. Causas probables: “<” no escapado (escápelo como “&lt;”) o etiqueta de inicio mal escrita.
+errProcessingInstruction=Se ha encontrado “<?”. Causa probable: se ha intentado usar una instrucción de proceso XML en HTML (las instrucciones de proceso XML no se admiten en HTML).
+errUnescapedAmpersandInterpretedAsCharacterReference=La cadena que sigue a “&” se ha interpretado como una referencia a carácter (“&” probablemente debería haber sido escapado como “&amp;”).
+errNotSemicolonTerminated=La referencia a carácter con nombre no terminaba con un punto y coma (o bien debería haberse escapado “&” como “&amp;”).
+errNoNamedCharacterMatch=“&” no ha comenzado una referencia a carácter (“&” probablemente debería haber sido escapado como “&amp;”).
+errQuoteBeforeAttributeName=Se ha encontrado una comilla cuando se esperaba un nombre de atributo. Causa probable: falta un “=” justo antes.
+errLtInAttributeName=“<” en un nombre de atributo. Causa probable: “>” falta justo antes.
+errQuoteInAttributeName=Comilla en nombre de atributo. Causa probable: la comilla correspondiente falta en algún lugar anterior.
+errExpectedPublicId=Se esperaba un identificador público pero el doctype ha terminado.
+errBogusDoctype=Doctype simulado.
+maybeErrAttributesOnEndTag=La etiqueta de cierre tenía atributos.
+maybeErrSlashInEndTag=“/” extraviada al final de una etiqueta de cierre.
+errNcrNonCharacter=Referencia a carácter se expande a no-carácter.
+errNcrSurrogate=Referencia a carácter se expande a un surrogado.
+errNcrControlChar=Referencia a carácter se expande a carácter de control.
+errNcrCr=Una referencia numérica a carácter expandida a retorno de carro.
+errNcrInC1Range=Una referencia numérica a carácter expandida al rango de controles C1.
+errEofInPublicId=Fin de fichero dentro de un identificador público.
+errEofInComment=Fin de fichero dentro de un comentario.
+errEofInDoctype=Fin de fichero dentro de un doctype.
+errEofInAttributeValue=Fin de fichero alcanzado dentro del valor de un atributo. Se ignora la etiqueta.
+errEofInAttributeName=Fin de fichero encontrado en un nombre de atributo. Se ignora la etiqueta.
+errEofWithoutGt=Se ha encontrado el fin de fichero sin que la etiqueta anterior termine con “>”. Se ignora la etiqueta.
+errEofInTagName=Fin de fichero encontrado mientras se busca el nombre de una etiqueta. Se ignora la etiqueta.
+errEofInEndTag=Fin de fichero dentro de una etiqueta de cierre. Se ignora la etiqueta.
+errEofAfterLt=Fin de fichero tras “<”.
+errNcrOutOfRange=Referencia a carácter fuera del rango Unicode admisible.
+errNcrUnassigned=Referencia a carácter se expande a punto de código permanentemente no asignado.
+errDuplicateAttribute=Atributo duplicado.
+errEofInSystemId=Fin de fichero dentro de un identificador de sistema.
+errExpectedSystemId=Se esperaba un identificador de sistema pero el doctype ha terminado.
+errMissingSpaceBeforeDoctypeName=Falta espacio antes del nombre de doctype.
+errNestedComment=Se ha detectado “<!--” dentro de un comentario. Causa probable: comentario anidado (no permitido).
+errNcrZero=Referencia a carácter se expande a cero.
+errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Falta espacio entre la palabra clave “SYSTEM” y el entrecomillado en el doctype.
+errNoSpaceBetweenPublicAndSystemIds=Falta espacio entre los identificadores público y de sistema en el doctype.
+errNoSpaceBetweenDoctypePublicKeywordAndQuote=Falta espacio entre la palabra clave “PUBLIC” y el entrecomillado en el doctype.
+
+# Tree builder errors
+errDeepTree=El árbol de documentos es demasiado profundo. El árbol será limitado 513 elementos de profundidad.
+errStrayStartTag2=Etiqueta de apertura “%1$S” extraviada.
+errStrayEndTag=Etiqueta de cierre “%1$S” extraviada.
+errUnclosedElements=Etiqueta de cierre “%1$S” encontrada, pero había elementos abiertos.
+errUnclosedElementsImplied=Etiqueta de cierre “%1$S” implícita, pero había elementos abiertos.
+errUnclosedElementsCell=Se cerró implícitamente una celda de tabla, pero había elementos abiertos.
+errStrayDoctype=Doctype extraviado.
+errAlmostStandardsDoctype=Doctype del modo casi estándar. Se esperaba “<!DOCTYPE html>”.
+errQuirkyDoctype=Doctype de compatibilidad con extensiones no estándares. Se esperaba “<!DOCTYPE html>”.
+errAlmostStandardsDoctypeVerbose=Esta página está en modo “casi” estándar. El diseño de la página puede verse afectado. Para el modo estándar, utilice “<! DOCTYPE html>”.
+errQuirkyDoctypeVerbose=Esta página está en modo Quirks. El diseño de la página puede verse afectado. Para el modo estándar, utilice “<! DOCTYPE html>”.
+errNonSpaceInTrailer=Carácter distinto de espacio al final de la página.
+errNonSpaceAfterFrameset=Carácter distinto de espacio tras “frameset”.
+errNonSpaceInFrameset=Carácter distinto de espacio en “frameset”.
+errNonSpaceAfterBody=Carácter distinto de espacio tras body.
+errNonSpaceInColgroupInFragment=Carácter distinto de espacio en “colgroup” al interpretar fragmento.
+errNonSpaceInNoscriptInHead=Carácter distinto de espacio dentro de “noscript” dentro de “head”.
+errFooBetweenHeadAndBody=Elemento “%1$S” entre “head” y “body”.
+errStartTagWithoutDoctype=Encontrada etiqueta de inicio sin ver primero un doctype. Se esperaba “<!DOCTYPE html>”.
+errNoSelectInTableScope=Falta “select” en el ámbito de la tabla.
+errStartSelectWhereEndSelectExpected=Etiqueta de inicio “select” donde se esperaba la etiqueta de cierre.
+errStartTagWithSelectOpen=Etiqueta de inicio “%1$S” con “select“ abierto.
+errBadStartTagInNoscriptInHead=Etiqueta de inicio incorrecta "%1$S" en "noscript" en "head".
+errImage=Se ha encontrado una etiqueta de inicio “image”.
+errFooSeenWhenFooOpen2=Se vio una etiqueta de inicio “%1$S” pero ya estaba abierto un elemento del mismo tipo.
+errHeadingWhenHeadingOpen=Un encabezado no puede ser hijo de otro encabezado.
+errFramesetStart=Encontrada etiqueta de inicio “frameset”.
+errNoCellToClose=No hay celda que cerrar.
+errStartTagInTable=Etiqueta de inicio “%1$S” vista en “table”.
+errFormWhenFormOpen=Se ha encontrado una etiqueta de inicio “form”, pero ya había un elemento “form” activo. No se permiten formularios anidados. Se ignora la etiqueta.
+errTableSeenWhileTableOpen=Se ha encontrado una etiqueta de inicio para “table” pero el “table” anterior aún está abierto.
+errStartTagInTableBody=Etiqueta de inicio “%1$S” en cuerpo de tabla.
+errEndTagSeenWithoutDoctype=Etiqueta de cierre encontrada sin ver primero un doctype. Se esperaba “<!DOCTYPE html>”.
+errEndTagAfterBody=Se ha encontrado una etiqueta de cierre después de que “body” haya sido cerrado.
+errEndTagSeenWithSelectOpen=Etiqueta de cierre “%1$S” con “select“ abierto.
+errGarbageInColgroup=Basura en fragmento “colgroup”.
+errEndTagBr=Etiqueta de cierre “br”.
+errNoElementToCloseButEndTagSeen=Falta elemento “%1$S” en el ámbito pero se ha visto una etiqueta de cierre “%1$S”.
+errHtmlStartTagInForeignContext=Etiqueta HTML de inicio “%1$S” en un contexto de espacio de nombres ajeno.
+errNoTableRowToClose=No hay fila de tabla que cerrar.
+errNonSpaceInTable=Caracteres distintos de espacio descolocados dentro de una tabla.
+errUnclosedChildrenInRuby=Hijos no cerrados en “ruby”.
+errStartTagSeenWithoutRuby=Etiqueta de inicio “%1$S” vista sin que haya un elemento “ruby” abierto.
+errSelfClosing=Sintaxis de autocierre (“/>”) usada en un elemento HTML no vacío. Se ignora la barra y se trata como una etiqueta de inicio.
+errNoCheckUnclosedElementsOnStack=Elementos no cerrados en pila.
+errEndTagDidNotMatchCurrentOpenElement=La etiqueta de cierre “%1$S” no concordaba con el nombre del elemento abierto actualmente (“%2$S”).
+errEndTagViolatesNestingRules=La etiqueta de cierre “%1$S” viola las reglas de anidación.
+errEndWithUnclosedElements=Etiqueta de cierre “%1$S” encontrada, pero había elementos sin cerrar.
+errListUnclosedStartTags=Elemento o elementos sin cerrar.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout/xmlparser.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout/xmlparser.properties
new file mode 100644
index 0000000000..9f7e88aa08
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout/xmlparser.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/.
+
+1 = No hay memoria libre
+2 = error de sintaxis
+3 = no se encuentra el elemento raíz
+4 = mal formado
+5 = token no cerrado
+6 = token no cerrado
+7 = etiqueta sin pareja
+8 = atributo duplicado
+9 = contenido incorrecto tras un elemento XML del documento
+10 = referencia a entidad con parámetro ilegal
+11 = entidad no definida
+12 = referencia a una entidad recursiva
+13 = entidad asíncrona
+14 = referencia a un número de carácter no válido
+15 = referencia a una entidad binaria
+16 = referencia a una entidad externa en un atributo
+17 = declaración de texto o XML en un lugar distinto del principio de la entidad
+18 = codificación desconocida
+19 = la codificación especificada en la declaración XML es incorrecta
+20 = sección CDATA no cerrada
+21 = error al procesar una referencia a entidad externa
+22 = el documento no es independiente
+23 = estado inesperado del intérprete
+24 = entidad declarada en entidad de parámetro
+27 = prefijo no vinculado a un espacio de nombres
+28 = no debe desdeclarar el prefijo
+29 = marcado incompleto en entidad parámetro
+30 = declaración XML mal formada
+31 = declaración de texto mal formada
+32 = caracteres ilegales en id pública
+38 = el prefijo reservado (xml) no debe ser desdeclarado o asociado a otro nombre de espacio de nombres
+39 = el prefijo reservado (xmlns) no debe ser declarado o desdeclarado
+40 = el prefijo no debe estar limitado a uno de los nombres reservados de espacio de nombres
+
+XMLParsingError = Error de lectura XML: %1$S\nUbicación: %2$S\nNúmero de línea %3$u, columna %4$u:
+
+Expected = . Se esperaba: </%S>.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout_errors.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/layout_errors.properties
new file mode 100644
index 0000000000..7e4f9ac8e3
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=El atributo "coords" de la etiqueta <area shape="rect"> no está en el formato "izda, arriba, dcha, abajo".
+ImageMapCircleWrongNumberOfCoords=El atributo "coords" de la etiqueta <area shape="circle"> no está en el formato "centro-x,centro-y,radio".
+ImageMapCircleNegativeRadius=El atributo "coords" de la etiqueta <area shape="circle"> tiene un radio negativo.
+ImageMapPolyWrongNumberOfCoords=El atributo "coords" de la etiqueta <area shape="poly"> no está en el formato "x1,y1,x2,y2 …".
+ImageMapPolyOddNumberOfCoords=Al atributo "coords" de la etiqueta <area shape="poly"> le falta la última coordenada "y" (el formato correcto "x1,y1,x2,y2 …").
+
+ScrollLinkedEffectFound3=Este sitio parece usar un efecto de posicionamiento "scroll-linked". Puede que no funcione bien con desplazamiento asíncrono; vea https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html para más detalles y únase a la discusión sobre herramientas y 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=No se puede ejecutar la animación en el compositor porque el área del recuadro (%1$S) es demasiado grande en relación al viewport (mayor 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=La animación no se puede ejecutar en el compositor porque el tamaño del marco (%1$S, %2$S) es demasiado grande en relación al viewport (mayor que (%3$S, %4$S)) o mayor que el valor máximo permitido (%5$S, %6$S)
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformBackfaceVisibilityHidden):
+## 'backface-visibility: hidden' is a CSS property, don't translate it.
+CompositorAnimationWarningTransformBackfaceVisibilityHidden=Las animaciones de transformaciones 'backface-visibility: hidden' no se pueden mostrar en el compositor
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformSVG,
+## CompositorAnimationWarningTransformWithGeometricProperties,
+## CompositorAnimationWarningTransformWithSyncGeometricAnimations,
+## CompositorAnimationWarningTransformFrameInactive,
+## CompositorAnimationWarningOpacityFrameInactive):
+## 'transform' and 'opacity' mean CSS property names, don't translate it.
+CompositorAnimationWarningTransformSVG=Las animaciones de 'transform' en elementos con transformaciones SVG no se pueden mostrar en el compositor
+CompositorAnimationWarningTransformWithGeometricProperties=Las animaciones de 'transform' no se pueden mostrar en el compositor cuando las propiedades geométricas están animadas en el mismo elemento al mismo tiempo
+CompositorAnimationWarningTransformWithSyncGeometricAnimations=La animación de 'transform' no se puede ejecutar en el compositor porque debería estar sincronizada con las animaciones de propiedades geométricas que comenzaron al mismo tiempo
+CompositorAnimationWarningTransformFrameInactive=La animación no se puede mostrar en el compositor porque el tamaño del cuadro no estaba marcado como activo para la animación 'transform'
+CompositorAnimationWarningTransformIsBlockedByImportantRules=No se puede ejecutar la animación de transformación en el compositor porque las propiedades relativas a la transformación están anuladas por reglas !important
+CompositorAnimationWarningOpacityFrameInactive=La animación no se puede mostrar en el compositor porque el tamaño del cuadro no estaba marcado como activo para la animación 'opacity'
+CompositorAnimationWarningHasRenderingObserver=La animación no puede ejecutarse en el compositor porque el elemento ha generado observadores (-moz-element o recorte/máscara SVG)
+CompositorAnimationWarningHasCurrentColor=Las animaciones de ‘background-color’ no se pueden ejecutar en el compositor con el fotograma clave de ‘current-color’.
+
+## LOCALIZATION NOTE: Do not translate zoom, calc(), "transform", "transform-origin: 0 0"
+ZoomPropertyWarning=Esta página utiliza la propiedad no estándar “zoom”. Considere usar calc() en los valores de propiedad relevantes, o usar “transform” junto con “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=Al mostrar el elemento <html>, los valores utilizados de las propiedades CSS “writing-mode”, “direction” y “text-orientation” en el elemento <html> se toman de los valores calculados del elemento <body>, no de los valores propios del elemento <html>. Considere ajustar estas propiedades en la pseudo-clase CSS :root. Para más información, vea “The Principal Writing Mode” (El modo de escritura principal) en 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=El anclaje de desplazamiento se desactivó en un contenedor de desplazamiento debido a demasiados ajustes consecutivos (%1$S) con muy poca distancia total (%2$S px promedio, %3$S px total).
+
+ForcedLayoutStart=El diseño se forzó antes de que la página se cargara completamente. Si las hojas de estilo aún no están cargadas, esto puede causar un destello de contenido sin estilo.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/mathml/mathml.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/mathml/mathml.properties
new file mode 100644
index 0000000000..c881decc2e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Marcado no válido: <%1$S> no se permite como hijo de <%2$S>.
+ChildCountIncorrect=Marcado no válido: número incorrecto de hijos en la etiqueta <%1$S/>.
+DuplicateMprescripts=Marcado no válido: más de un <mprescripts/> en <mmultiscripts/>.
+# LOCALIZATION NOTE: The first child of <mmultiscript/> is the base, that is the element to which scripts are attached.
+NoBase=Marcado no válido: se esperaba exactamente un elemento Base en <mmultiscripts/>. No se ha encontrado ninguno.
+SubSupMismatch=Marcado no válido: par incompleto de subíndice/superíndice en <mmultiscripts/>.
+
+# LOCALIZATION NOTE: When localizing the single quotes ('), follow the conventions in css.properties for your target locale.
+AttributeParsingError=Error al analizar el valor '%1$S' para el atributo '%2$S' de <%3$S/>. Se ha ignorado el atributo.
+AttributeParsingErrorNoTag=Error al analizar el valor '%1$S' para el atributo '%2$S'. Se ha ignorado el atributo.
+LengthParsingError=Error al analizar el valor de atributo de MathML '%1$S' como longitud. Se ha ignorado el atributo.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/narrate.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/narrate.properties
new file mode 100644
index 0000000000..a670d818a0
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Escuchar (%S)
+back = Atrás
+# %S is the keyboard shortcut for the start command
+start-label = Iniciar (%S)
+# %S is the keyboard shortcut for the stop command
+stop-label = Detener (%S)
+# Keyboard shortcut to toggle the narrate feature
+narrate-key-shortcut = N
+forward = Siguiente
+speed = Velocidad
+selectvoicelabel = Voz:
+# Default voice is determined by the language of the document.
+defaultvoice = Por omisión
+
+# Voice name and language.
+# eg. David (English)
+voiceLabel = %S (%S)
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/nsWebBrowserPersist.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/nsWebBrowserPersist.properties
new file mode 100644
index 0000000000..11d99e451b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = No se pudo guardar %S porque no se pudo leer el archivo origen.\n\nVuelva a intentarlo más tarde, o póngase en contacto con el administrador del servidor.
+writeError = No se pudo guardar %S porque ha ocurrido un error desconocido.\n\nIntente guardar en un sitio distinto.
+launchError = No se pudo abrir %S, porque ocurrió un error desconocido.\n\nIntente guardarlo antes en disco y luego abra el archivo.
+diskFull = No hay espacio suficiente en el disco para guardar %S.\n\nElimine archivos innecesarios del disco y vuelva a intentarlo, o intente guardarlo en un sitio distinto.
+readOnly = No se pudo guardar %S porque el disco, directorio o archivo está protegido contra escritura.\n\nActive la escritura en el disco y vuelva a intentarlo, o intente guardar en un sitio distinto.
+accessError = No se pudo guardar %S porque usted no puede modificar el contenido de esa carpeta.\n\nModifique las propiedades de la carpeta y vuelva a intentarlo, o intente guardar en un sitio distinto.
+SDAccessErrorCardReadOnly = No se puede descargar el archivo porque la tarjeta SD está en uso.
+SDAccessErrorCardMissing = No se puede descargar el archivo porque no se encuentra la tarjeta SD.
+helperAppNotFound = No se pudo abrir %S porque la aplicación auxiliar asociada no existe. Modifique la asociación en sus preferencias.
+noMemory = No hay memoria suficiente para completar la acción solicitada.\n\nCierre algunas aplicaciones y vuelva a intentarlo.
+title = Descargando %S
+fileAlreadyExistsError = No se pudo guardar %S porque ya existe un fichero con el mismo nombre en el directorio '_files'.\n\nIntente guardarlo en un sitio distinto.
+fileNameTooLongError = No se pudo guardar %S porque el nombre del archivo es demasiado largo.\n\nIntente guardarlo con un nombre más corto.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/printdialog.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/printdialog.properties
new file mode 100644
index 0000000000..fdcad2e440
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/printdialog.properties
@@ -0,0 +1,49 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# These strings are used in the native GTK, Mac and Windows print dialogs.
+
+printTitleGTK = Imprimir
+optionsTabLabelGTK = Opciones
+
+optionsTitleMac = Opciones:
+appearanceTitleMac = Apariencia:
+pageHeadersTitleMac = Encabezados de página:
+pageFootersTitleMac = Pies de página:
+
+optionsTitleWindows = Opciones
+
+# 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 escalado y aj_ustar a la página
+selectionOnly = Imprimir sól_o la selección
+printBGOptions = Imprimir fondos
+printBGColors = Imprimir _colores de fondo
+printBGImages = Imprimir i_mágenes de fondo
+headerFooter = Encabezado y pie
+left = Izquierda
+center = Centro
+right = Derecha
+headerFooterBlank = --nada--
+headerFooterTitle = Título
+headerFooterURL = Dirección
+headerFooterDate = Fecha/hora
+headerFooterPage = Página #
+headerFooterPageTotal = Página # de #
+headerFooterCustom = Personalizado...
+customHeaderFooterPrompt = Introduzca su texto personalizado de encabezado/pie
+
+summarySelectionOnlyTitle = Imprimir selección
+summaryShrinkToFitTitle = Ajustar a la página
+summaryPrintBGColorsTitle = Imprimir colores de fondo
+summaryPrintBGImagesTitle = Imprimir imágenes de fondo
+summaryHeaderTitle = Encabezados de página
+summaryFooterTitle = Pies de página
+summaryNAValue = N/D
+summaryOnValue = Sí
+summaryOffValue = No
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/printing.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/printing.properties
new file mode 100644
index 0000000000..3be08b9e0c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/printing.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/.
+
+pagenumber = %1$d
+
+pageofpages = %1$d de %2$d
+
+PrintToFile = Imprimir a archivo
+print_error_dialog_title = Error de impresora
+printpreview_error_dialog_title = Error de vista preliminar
+
+PERR_FAILURE = Ha ocurrido un error al imprimir.
+
+PERR_ABORT = El trabajo de impresión ha sido abortado o cancelado.
+PERR_NOT_AVAILABLE = Alguna funcionalidad de impresión no está disponible actualmente.
+PERR_NOT_IMPLEMENTED = Alguna funcionalidad de impresión no está implementada aún.
+PERR_OUT_OF_MEMORY = No hay memoria libre suficiente para imprimir.
+PERR_UNEXPECTED = Ha sucedido un problema inesperado al imprimir.
+
+PERR_GFX_PRINTER_NO_PRINTER_AVAILABLE = No hay ninguna impresora disponible.
+PERR_GFX_PRINTER_NO_PRINTER_AVAILABLE_PP = No hay impresoras disponibles, no se puede mostrar la vista preliminar de impresión.
+PERR_GFX_PRINTER_NAME_NOT_FOUND = No se ha podido encontrar la impresora seleccionada.
+PERR_GFX_PRINTER_COULD_NOT_OPEN_FILE = Ha fallado la apertura del archivo de salida de la impresión.
+PERR_GFX_PRINTER_STARTDOC = Ha fallado la impresión al iniciar el trabajo de impresión.
+PERR_GFX_PRINTER_ENDDOC = Ha fallado la impresión al completar el trabajo de impresión.
+PERR_GFX_PRINTER_STARTPAGE = Ha fallado la impresión al comenzar una nueva página.
+PERR_GFX_PRINTER_DOC_IS_BUSY = No se puede imprimir este documento aún, todavía se está cargando.
+PERR_GFX_PRINTER_DOC_IS_BUSY_PP = No se puede mostrar la vista preliminar de impresión de este documento aún, todavía se está cargando.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/resetProfile.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/resetProfile.properties
new file mode 100644
index 0000000000..5b51f4954c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/resetProfile.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/.
+
+# LOCALIZATION NOTE: These strings are used for profile reset.
+
+resetUnusedProfile.message = Parece que no ha iniciado %S desde hace tiempo. ¿Quiere limpiarlo para comenzar una experiencia renovada? ¡A propósito, bienvenido de nuevo!
+resetUninstalled.message = Parece que ha reinstalado %S. ¿Desea que lo limpiemos para disfrutar de una experiencia fresca, como nueva?
+
+refreshProfile.resetButton.label = Reiniciar %S…
+refreshProfile.resetButton.accesskey = e
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/security/caps.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/security/caps.properties
new file mode 100644
index 0000000000..389b759f7d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Error de seguridad: el contenido en %S no puede cargar o enlazar con %S.
+CheckSameOriginError = Error de seguridad: el contenido en %S no puede cargar datos de %S.
+ExternalDataError = Error de seguridad: el contenido en %S ha intentado cargar %S, pero no se pueden cargar datos externos cuando se usan como imagen.\u0020
+
+CreateWrapperDenied = Permiso denegado al crear el wrapper para el objeto de la clase %S
+CreateWrapperDeniedForOrigin = Permiso denegado para <%2$S> al crear el wrapper para el objeto de clase %1$S
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/security/csp.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/security/csp.properties
new file mode 100644
index 0000000000..7752493492
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Las opciones para esta página han bloqueado la carga de un 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 = Las opciones para esta página han bloqueado la carga de un recurso en %2$S (%1$S).
+# LOCALIZATION NOTE (CSPROViolation):
+# %1$S is the reason why the resource has not been loaded.
+CSPROViolation = Ha ocurrido una violación de una política CSP de información únicamente ("%1$S"). Se ha permitido el comportamiento y se ha enviado un informe 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 = Los ajustes de la página observaron la carga de un recurso en %2$S ("%1$S"). Se está enviando un informe CSP.
+# LOCALIZATION NOTE (triedToSendReport):
+# %1$S is the URI we attempted to send a report to.
+triedToSendReport = Se ha intentado enviar un informe a una URI no válida: "%1$S"
+tooManyReports = Se ha evitado que se enviaran demasiados informes de CSP en un período corto de tiempo.
+# LOCALIZATION NOTE (couldNotParseReportURI):
+# %1$S is the report URI that could not be parsed
+couldNotParseReportURI = No se puede interpretar la URI de informe: %1$S
+# LOCALIZATION NOTE (couldNotProcessUnknownDirective):
+# %1$S is the unknown directive
+couldNotProcessUnknownDirective = No se puede procesar la directiva desconocida '%1$S'
+# LOCALIZATION NOTE (ignoringUnknownOption):
+# %1$S is the option that could not be understood
+ignoringUnknownOption = Se ha ignorado la opción desconocida %1$S
+# LOCALIZATION NOTE (ignoringDuplicateSrc):
+# %1$S defines the duplicate src
+ignoringDuplicateSrc = Ignorando origen duplicado %1$S
+# LOCALIZATION NOTE (ignoringNonAsciiToken):
+# %1$S defines the name of the directive
+# %2$S is the token string containing non-ASCII characters.
+ignoringNonAsciiToken = Ignorando la directiva ‘%1$S’ con el token que no es ASCII ‘%2$S’
+# LOCALIZATION NOTE (ignoringSrcFromMetaCSP):
+# %1$S defines the ignored src
+ignoringSrcFromMetaCSP = Origen '%1$S' ignorado (no se permite cuando se indica a través del 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 = Ignorando “%1$S” dentro de %2$S: se ha especificado nonce-source o 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 = Ignorando “%1$S” dentro de %2$S se ha especificado ‘strict-dynamic’
+# LOCALIZATION NOTE (ignoringStrictDynamic):
+# %1$S is the ignored src
+ignoringStrictDynamic = Ignorando fuente "%1$S" (solo se admite 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 = Ignorando ‘unsafe-eval’ o ‘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 = La palabra clave "strict-dynamic" dentro de "%1$S" sin nonce o hash válidos puede bloquear la carga de todos los scripts
+# LOCALIZATION NOTE (reportURInotHttpsOrHttp2):
+# %1$S is the ETLD of the report URI that is not HTTP or HTTPS
+reportURInotHttpsOrHttp2 = La URI de informe (%1$S) debe ser una URI HTTP o HTTPS.
+# LOCALIZATION NOTE (reportURInotInReportOnlyHeader):
+# %1$S is the ETLD of the page with the policy
+reportURInotInReportOnlyHeader = Este sitio (%1$S) tiene una política Report-Only sin una URI de informe. CSP no bloqueará y no puede informar de violaciones de esta política.
+# LOCALIZATION NOTE (failedToParseUnrecognizedSource):
+# %1$S is the CSP Source that could not be parsed
+failedToParseUnrecognizedSource = No se puede interpretar la fuente no reconocida %1$S
+# LOCALIZATION NOTE (upgradeInsecureRequest):
+# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+upgradeInsecureRequest = Actualizando solicitud insegura '%1$S' para usar '%2$S'
+# LOCALIZATION NOTE (ignoreSrcForDirective):
+ignoreSrcForDirective = Ignorando srcs en la directiva '%1$S'
+# LOCALIZATION NOTE (hostNameMightBeKeyword):
+# %1$S is the hostname in question and %2$S is the keyword
+hostNameMightBeKeyword = Interpretando %1$S como nombre de servidor, no como palabra clave. si pretendía que fuera una palabra clave, use '%2$S' (rodeado de comillas simples).
+# LOCALIZATION NOTE (notSupportingDirective):
+# directive is not supported (e.g. 'reflected-xss')
+notSupportingDirective = La directiva '%1$S' no está implementada. Se ignorarán la directiva y los valores.
+# LOCALIZATION NOTE (blockAllMixedContent):
+# %1$S is the URL of the blocked resource load.
+blockAllMixedContent = Bloqueando solicitud insegura '%1$S'.
+# LOCALIZATION NOTE (ignoringDirectiveWithNoValues):
+# %1$S is the name of a CSP directive that requires additional values
+ignoringDirectiveWithNoValues = Se ignora ‘%1$S‘ porque no contiene parámetros.
+# LOCALIZATION NOTE (ignoringReportOnlyDirective):
+# %1$S is the directive that is ignored in report-only mode.
+ignoringReportOnlyDirective = Se ignora la directiva de 'sandbox' al repartirse en la directiva solo informativa '%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=Se ignora ‘%1$S’ por la directiva ‘%2$S’.
+# LOCALIZATION NOTE (IgnoringSourceWithinDirective):
+# %1$S is the ignored src
+# %2$S is the directive which supports src
+IgnoringSourceWithinDirective = Ignorar fuente “%1$S” (no compatible dentro de ‘%2$S’).
+# LOCALIZATION NOTE (IgnoringSourceWithinDirective):
+# %1$S is the ignored src
+obsoleteBlockAllMixedContent = Ignorando ‘%1$S’ porque la actualización de visualización de contenido mezclado hace obsoleto block-all-mixed-content.
+
+
+# CSP Errors:
+# LOCALIZATION NOTE (couldntParseInvalidSource):
+# %1$S is the source that could not be parsed
+couldntParseInvalidSource = No se puede interpretar la fuente no válida %1$S
+# LOCALIZATION NOTE (couldntParseInvalidHost):
+# %1$S is the host that's invalid
+couldntParseInvalidHost = No se puede interpretar el host no válido %1$S
+# LOCALIZATION NOTE (couldntParsePort):
+# %1$S is the string source
+couldntParsePort = No se puede interpretar el puerto en %1$S
+# LOCALIZATION NOTE (duplicateDirective):
+# %1$S is the name of the duplicate directive
+duplicateDirective = Detectadas directivas %1$S duplicadas. Todas las instancias, excepto la primera, serán ignoradas.
+# LOCALIZATION NOTE (couldntParseInvalidSandboxFlag):
+# %1$S is the option that could not be understood
+couldntParseInvalidSandboxFlag = No se ha podido interpretar el modificador '%1$S' no válido del 'sandbox'
+
+# 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/es-ES/chrome/es-ES/locale/es-ES/global/security/security.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/security/security.properties
new file mode 100644
index 0000000000..6364399305
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Se ha bloqueado la carga del contenido visual mixto "%1$S"
+BlockMixedActiveContent = Se ha bloqueado la carga del contenido activo mixto "%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=Solicitud desde otro origen bloqueada: la política de mismo origen impide leer el recurso remoto en %1$S (razón: CORS desactivado).
+CORSDidNotSucceed2=Solicitud de origen cruzado bloqueada: La misma política de origen no permite la lectura de recursos remotos en %1$S. (Razón: Solicitud CORS sin éxito). Código de estado: %2$S.
+CORSOriginHeaderNotAdded=Solicitud de origen cruzado bloqueada: La misma política de origen no permite leer el recurso remoto en %1$S. (Razón: No se puede agregar el encabezado CORS ‘Origen’).
+CORSExternalRedirectNotAllowed=Solicitud de origen cruzado bloqueada: La misma política de origen no permite leer el recurso remoto en %1$S. (Razón: No se permite la redirección externa de la solicitud CORS).
+CORSRequestNotHttp=Solicitud desde otro origen bloqueada: la política de mismo origen impide leer el recurso remoto en %1$S (razón: la solicitud CORS no es http).
+CORSMissingAllowOrigin2=Solicitud desde otro origen bloqueada: la política de mismo origen impide leer el recurso remoto en %1$S (razón: falta la cabecera CORS 'Access-Control-Allow-Origin'). Código de estado: %2$S.
+CORSMultipleAllowOriginNotAllowed=Solicitud de origen cruzado bloqueada: la política de mismo origen no permite la lectura del recurso remoto en %1$S. (Motivo: no se permiten múltiples cabeceras CORS ‘Access-Control-Allow-Origin’).
+CORSAllowOriginNotMatchingOrigin=Solicitud desde otro origen bloqueada: la política de mismo origen impide leer el recurso remoto en %1$S (razón: la cabecera CORS 'Access-Control-Allow-Origin' no coincide con '%2$S').
+CORSNotSupportingCredentials=Solicitud desde otro origen bloqueada: la política de mismo origen impide leer el recurso remoto en '%1$S' (razón: la credencial no se admite si la cabecera CORS 'Access-Control-Allow-Credentials' es '*').
+CORSMethodNotFound=Solicitud desde otro origen bloqueada: la política de mismo origen impide leer el recurso remoto en %1$S (razón: token no se ha encontrado el método en la cabecera CORS 'Access-Control-Allow-Methods').
+CORSMissingAllowCredentials=Solicitud desde otro origen bloqueada: la política de mismo origen impide leer el recurso remoto en %1$S (razón: se esperaba 'true' en la cabecera CORS 'Access-Control-Allow-Credentials').
+CORSPreflightDidNotSucceed3=Solicitud de origen cruzado bloqueada: La misma política de origen no permite la lectura de recursos remotos en %1$S. (Razón: la respuesta CORS preliminar "preflight" no ha tenido éxito). Código de estado: %2$S.
+CORSInvalidAllowMethod=Solicitud desde otro origen bloqueada: la política de mismo origen impide leer el recurso remoto en %1$S (razón: token '%2$S' no válido en la cabecera CORS 'Access-Control-Allow-Methods').
+CORSInvalidAllowHeader=Solicitud desde otro origen bloqueada: la política de mismo origen impide leer el recurso remoto en %1$S (razón: token '%2$S' no válido en la cabecera CORS 'Access-Control-Allow-Headers').
+CORSMissingAllowHeaderFromPreflight2=Solicitud de origen cruzado bloqueada: La política de mismo origen (Same Origin Policy) no permite la lectura de recursos remotos en %1$S. (Motivo: La cabecera ‘%2$S’ no está permitida de acuerdo a la cabecera ‘Access-Control-Allow-Headers’ de la verificación previa de la respuesta CORS).
+CORSAllowHeaderFromPreflightDeprecation=Advertencia de solicitud de origen cruzado: La política de mismo origen pronto no permitirá la lectura del recurso remoto en %1$S. (Motivo: Cuando `Access-Control-Allow-Headers` es `*`, el encabezado `Authorization` no está incluido. Para incluir el encabezado `Authorization`, debe estar listado explícitamente en el encabezado CORS `Access-Control-Allow-Headers`).
+
+# LOCALIZATION NOTE: Do not translate "Strict-Transport-Security", "HSTS", "max-age" or "includeSubDomains"
+STSUnknownError=Strict-Transport-Security: ha sucedido un error desconocido procesando la cabecera especificada por el sitio.
+STSCouldNotParseHeader=Strict-Transport-Security: el sitio ha especificado una cabecera que no se ha podido interpretar correctamente.
+STSNoMaxAge=Strict-Transport-Security: el sitio ha especificado una cabecera que no incluía una directiva 'max-age'.
+STSMultipleMaxAges=Strict-Transport-Security: el sitio ha especificado una cabecera que incluía múltiples directivas 'max-age'.
+STSInvalidMaxAge=Strict-Transport-Security: el sitio ha especificado una cabecera que incluía una directiva 'max-age' no válida.
+STSMultipleIncludeSubdomains=Strict-Transport-Security: el sitio ha especificado una cabecera que incluía múltiples directivas 'includeSubDomains'.
+STSInvalidIncludeSubdomains=Strict-Transport-Security: el sitio ha especificado una cabecera que incluía una directiva 'includeSubDomains' no válida.
+STSCouldNotSaveState=Strict-Transport-Security: ha sucedido un error marcando el sitio como un servidor Strict-Transport-Security.
+
+InsecurePasswordsPresentOnPage=Campos de contraseña presentes en una página insegura (http://). Esto es un riesgo de seguridad que permite que se roben las credenciales de inicio de sesión de los usuarios.
+InsecureFormActionPasswordsPresent=Campos de contraseña presentes en un formulario con una acción de formulario insegura (http://). Esto es un riesgo de seguridad que permite que se roben las credenciales de inicio de sesión de los usuarios.
+InsecurePasswordsPresentOnIframe=Campos de contraseña presentes en un iframe inseguro (http://). Esto es un riesgo de seguridad que permite que se roben las credenciales de inicio de sesión de los usuarios.
+# LOCALIZATION NOTE: "%1$S" is the URI of the insecure mixed content resource
+LoadingMixedActiveContent2=Cargando contenido activo mixto (no seguro) "%1$S" en una página segura
+LoadingMixedDisplayContent2=Cargando contenido visual mixto (no seguro) "%1$S" en una página segura
+LoadingMixedDisplayObjectSubrequestDeprecation=La carga de contenido mixto (inseguro) “%1$S” dentro de un complemento en una página segura se desaconseja y pronto será bloqueada.
+# LOCALIZATION NOTE: "%S" is the URI of the insecure mixed content download
+MixedContentBlockedDownload = Se bloqueó la descarga de contenido inseguro “%S”.
+
+# LOCALIZATION NOTE: Do not translate "allow-scripts", "allow-same-origin", "sandbox" or "iframe"
+BothAllowScriptsAndSameOriginPresent=Un iframe que tiene tanto allow-scripts como allow-same-origin en su atributo sandbox puede eliminar su condición de confinamiento.
+# LOCALIZATION NOTE: Do not translate "allow-top-navigation-by-user-activation", "allow-top-navigation", "sandbox" or "iframe"
+BothAllowTopNavigationAndUserActivationPresent=Un iframe que tiene tanto allow-top-navigation como allow-top-navigation-by-user-activation para su atributo sandbox permitirá la navegación de nivel superior.
+
+# Sub-Resource Integrity
+# LOCALIZATION NOTE: Do not translate "script" or "integrity". "%1$S" is the invalid token found in the attribute.
+MalformedIntegrityHash=El elemento script tiene un resumen (hash) mal formado en su atributo integrity: "%1$S". El formato correcto es "<algoritmo resumen>-<valor resumen>".
+# LOCALIZATION NOTE: Do not translate "integrity"
+InvalidIntegrityLength=El hash contenido en el atributo integrity tiene la longitud errónea.
+# LOCALIZATION NOTE: Do not translate "integrity"
+InvalidIntegrityBase64=El hash contenido en el atributo integrity no ha podido ser decodificado.
+# 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=Ninguno de los hashes “%1$S” en el atributo integrity coincide con el contenido del subrecurso. El hash calculado es “%2$S”.
+# LOCALIZATION NOTE: "%1$S" is the URI of the sub-resource that cannot be protected using SRI.
+IneligibleResource="%1$S" no es apto para comprobaciones de integridad porque ni tiene CORS habilitado ni es del mismo origen.
+# LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the invalid hash algorithm found in the attribute.
+UnsupportedHashAlg=Algoritmo resumen no admitido en el atributo integrity: "%1$S"
+# LOCALIZATION NOTE: Do not translate "integrity"
+NoValidMetadata=El atributo integrity no contiene ningún metadato válido.
+
+# LOCALIZATION NOTE: Do not translate "RC4".
+WeakCipherSuiteWarning=Este sitio usa el cifrado RC4 para cifrado, que está desaprobado y es inseguro.
+
+DeprecatedTLSVersion2=Este sitio utiliza una versión obsoleta de TLS. Por favor, actualice a TLS 1.2 ó 1.3.
+
+#XCTO: nosniff
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options: nosniff".
+MimeTypeMismatch2=El recurso de “%1$S” fue bloqueado debido a una discordancia del 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=Advertencia de cabecera X-Content-Type-Options: el valor era "%1$S"; ¿quería enviar "nosniff"?
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options" and also do not translate "nosniff".
+XTCOWithMIMEValueMissing=El recurso de “%1$S” no fue mostrado por un tipo MIME desconocido, incorrecto o ausente (X-Content-Type-Options: nosniff).
+
+BlockScriptWithWrongMimeType2=El script de “%1$S” fue bloqueado debido a un tipo MIME no permitido (“%2$S”).
+WarnScriptWithWrongMimeType=El script de “%1$S” fue cargado a pesar de que su tipo MIME (“%2$S”) no es un tipo MIME válido de JavaScript.
+# LOCALIZATION NOTE: Do not translate "importScripts()"
+BlockImportScriptsWithWrongMimeType=La carga de script desde “%1$S” con importScripts() fue bloqueada por un tipo MIME (“%2$S”) no permitido.
+BlockWorkerWithWrongMimeType=Se bloqueó la carga del Worker desde “%1$S” debido a un tipo MIME no permitido (“%2$S”).
+BlockModuleWithWrongMimeType=Se bloqueó la carga de un módulo de “%1$S” debido a un tipo MIME no permitido (“%2$S”).
+
+# LOCALIZATION NOTE: Do not translate "data: URI".
+BlockTopLevelDataURINavigation=No se permite la navegación a un data: URI de nivel superior (carga bloqueada de: "%1$S")
+BlockRedirectToDataURI=Redireccionando a datos: URI no permitida (Bloqueada la carga de: “%1$S”)
+
+# LOCALIZATION NOTE: Do not translate "file: URI". “%1$S” is the whole URI of the loaded file. “%2$S” is the MIME type e.g. "text/plain".
+BlockFileScriptWithWrongMimeType=Carga de script desde archivo: URI (“%1$S”) ha sido bloqueado porque su tipo MIME (“%2$S”) no es un tipo MIME de JavaScript válido.
+
+# LOCALIZATION NOTE: “%S” is the whole URI of the loaded file.
+BlockExtensionScriptWithWrongExt=Se ha bloqueado la carga del script con URI “%S” porque la extensión del archivo no está permitida.
+
+RestrictBrowserEvalUsage=Los usos eval() y eval-like no están permitidos en el proceso padre o en contextos del sistema (uso bloqueado en “%1$S”)
+
+# LOCALIZATION NOTE (MixedContentAutoUpgrade):
+# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+MixedContentAutoUpgrade=Actualizando solicitud de visualización insegura ‘%1$S’ para usar ‘%2$S’
+# LOCALIZATION NOTE (RunningClearSiteDataValue):
+# %S is the URI of the resource whose data was cleaned up
+RunningClearSiteDataValue=La cabecera Clear-Site-Data ha provocado la limpieza de los datos de “%S”.
+UnknownClearSiteDataValue=Cabecera Clear-Site-Data encontrada. Valor desconocido “%S”.
+
+# Reporting API
+ReportingHeaderInvalidJSON=Cabecera del informe: el valor JSON recibido no es válido.
+ReportingHeaderInvalidNameItem=Cabecera del informe: el nombre para el grupo no es válido.
+ReportingHeaderDuplicateGroup=Cabecera del informe: ignorando el grupo duplicado llamado “%S”.
+ReportingHeaderInvalidItem=Cabecera del informe: ignorando el elemento no válido llamado “%S”.
+ReportingHeaderInvalidEndpoint=Cabecera del informe: ignorando el punto final no válido para el elemento llamado “%S”.
+# LOCALIZATION NOTE(ReportingHeaderInvalidURLEndpoint): %1$S is the invalid URL, %2$S is the group name
+ReportingHeaderInvalidURLEndpoint=Cabecera del informe: ignorando la URL no válida “%1$S” para el elemento llamado “%2$S”.
+
+FeaturePolicyUnsupportedFeatureName=Feature Policy: Saltándose una función de nombre no compatible “%S”.
+# TODO: would be nice to add a link to the Feature-Policy MDN documentation here. See bug 1449501
+FeaturePolicyInvalidEmptyAllowValue= Feature Policy: Saltándose la lista de autorización vacía para la función: “%S”.
+# TODO: would be nice to add a link to the Feature-Policy MDN documentation here. See bug 1449501
+FeaturePolicyInvalidAllowValue=Feature Policy: Saltándose el valor permitido no compatible para “%S”.
+
+# LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
+ReferrerLengthOverLimitation=Cabecera HTTP Referrer: la longitud supera el límite de “%1$S” bytes, reduciendo la cabecera hasta el origen: “%2$S”
+# LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
+ReferrerOriginLengthOverLimitation=Cabecera HTTP Referrer: la longitud del origen supera el límite de “%1$S” bytes, eliminando la cabecera con origen: “%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 referentes: Políticas menos restrictivas, incluidas las de ‘no-referrer-when-downgrade’,‘"origin-when-cross-origin’ y ‘unsafe-url’, serán ignoradas pronto para la solicitud de sitios cruzados: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Política de referentes: Ignorando la política de referencias menos restringida “%1$S” para la solicitud de sitios cruzados: %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 = Se ha encontrado una cabecera X-Frame-Options no válida al cargar “%2$S”: “%1$S” no es una directiva 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=La carga de “%2$S” en un marco ha sido denegada por la directiva “X-Frame-Options“ establecida en “%1$S“.
+
+# HTTPS-Only Mode
+# LOCALIZATION NOTE: %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+HTTPSOnlyUpgradeRequest = Actualizando solicitud insegura “%1$S” para usar “%2$S”.
+# LOCALIZATION NOTE: %1$S is the URL of request.
+HTTPSOnlyNoUpgradeException = No se actualiza la solicitud insegura “%1$S” porque está excluida.
+# LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
+HTTPSOnlyFailedRequest = Ha fallado la actualización de solicitud insegura “%1$S”. (%2$S)
+# LOCALIZATION NOTE: %S is the URL of the failed request;
+HTTPSOnlyFailedDowngradeAgain = Ha fallado la actualización de la solicitud insegura “%S”. Regresando nuevamente a “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 = Actualización de la conexión TCP especulativa insegura “%1$S” para usar “%2$S”.
+
+HTTPSFirstSchemeless = Actualizando la URL cargada en la barra de direcciones sin esquema de protocolo explícito para que use HTTPS.
+
+# LOCALIZATION NOTE: %S is the URL of the blocked request;
+IframeSandboxBlockedDownload = Se bloqueó la descarga de “%S” porque el iframe desencadenante tiene el indicador de sandbox establecido.
+
+# LOCALIZATION NOTE: %S is the URL of the blocked request;
+SandboxBlockedCustomProtocols = Navegación bloqueada al protocolo personalizado “%S” desde un contexto de espacio aislado.
+
+# Sanitizer API
+# LOCALIZATION NOTE: Please do not localize "DocumentFragment". It's the name of an API.
+SanitizerRcvdNoInput = No se ha recibido entrada o estaba vacía. Devolviendo un DocumentFragment vacío.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/svg/svg.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/svg/svg.properties
new file mode 100644
index 0000000000..d5a43a040d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 no esperado %2$S al interpretar el atributo %1$S.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/viewSource.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/viewSource.properties
new file mode 100644
index 0000000000..8946440770
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 a la línea
+goToLineText = Introduzca número de línea
+invalidInputTitle = Entrada no válida
+invalidInputText = El número de línea introducido no es válido.
+outOfRangeTitle = No se encontró la línea
+outOfRangeText = No se encontró la línea especificada.
+viewSelectionSourceTitle = Fuente DOM de la selección
+
+context_goToLine_label = Ir a la línea…
+context_goToLine_accesskey = x
+context_wrapLongLines_label = Ajustar líneas largas
+context_highlightSyntax_label = Resaltar sintaxis
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/wizard.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/wizard.properties
new file mode 100644
index 0000000000..c6a533eab6
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Bienvenido a %S
+default-last-title = Completar %S
+default-first-title-mac = Introducción
+default-last-title-mac = Conclusión
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/xslt/xslt.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/xslt/xslt.properties
new file mode 100644
index 0000000000..b8ed1d84dc
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = El procesamiento de una hoja de estilo XSLT ha fallado.
+2 = El procesamiento de una expresión XPath ha fallado.
+3 =
+4 = La transformación XSLT ha fallado.
+5 = Función XSLT/XPath no válida.
+6 = La hoja de estilo XSLT (posiblemente) contiene una recursión.
+7 = Valor ilegal de atributo en XSLT 1.0.
+8 = Se esperaba que una expresión XPath devolviera un NodeSet.
+9 = La transformación XSLT terminó por <xsl:message>.
+10 = Ha ocurrido un error de red al cargar una hoja de estilo XSLT:
+11 = Una hoja de estilo XSLT no tiene tipo MIME XML:
+12 = Una hoja de estilo XSLT se importa o incluye directa o indirectamente a sí misma:
+13 = Se ha llamado a una función XPath con un número incorrecto de argumentos.
+14 = Se ha llamado a una función de extensión XPath desconocida.
+15 = Fallo en el análisis XPath: se esperaba ')':
+16 = Fallo en el análisis XPath: eje inválido:
+17 = Fallo en el análisis XPath: se esperaba un test de nombre o tipo de nodo (Name o NodeType):
+18 = Fallo en el análisis XPath: se esperaba ']':
+19 = Fallo en el análisis XPath: nombre de variable no válido:
+20 = Fallo en el análisis XPath: fin de expresión inesperado:
+21 = Fallo en el análisis XPath: se esperaba un operador:
+22 = Fallo en el análisis XPath: literal no cerrado:
+23 = Fallo en el análisis XPath: no se esperaba ':':
+24 = Fallo en el análisis XPath: no se esperaba '!' (use 'not()' para negar):
+25 = Fallo en el análisis XPath: se ha encontrado un carácter ilegal:
+26 = Fallo en el análisis XPath: se esperaba un operador binario:
+27 = Se ha bloqueado la carga de una hoja XSLT por motivos de seguridad.
+28 = Se intenta evaluar una expresión no válida.
+29 = Llave no cerrada.
+30 = Se intenta crear un elemento con un QName no válido.
+31 = Una asociación de variable oculta otra asociación de variable dentro de la misma plantilla.
+32 = Llamada a la función clave no permitida.
+
+LoadingError = Error al cargar la hoja de estilo: %S
+TransformError = Error durante la transformación XSLT: %S
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/xul.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/global/xul.properties
new file mode 100644
index 0000000000..2a0683ccb8
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = La instrucción de proceso <?%1$S?> ya no tiene ningún efecto fuera del prólogo (vea el bug 360119).
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/lightning/lightning-toolbar.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/lightning/lightning-toolbar.dtd
new file mode 100644
index 0000000000..a935c41234
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 herramientas del calendario">
+<!ENTITY lightning.toolbar.calendar.name.accesskey "C">
+<!ENTITY lightning.toolbar.task.name "Barra de herramientas de tareas">
+<!ENTITY lightning.toolbar.task.name.accesskey "T">
+
+<!ENTITY lightning.toolbar.sync.label "Sincronizar">
+<!ENTITY lightning.toolbar.sync.tooltip "Recargar calendarios y sincronizar cambios">
+<!ENTITY lightning.toolbar.delete.label "Eliminar">
+<!ENTITY lightning.toolbar.delete.tooltip "Eliminar eventos o tareas seleccionados">
+<!ENTITY lightning.toolbar.edit.label "Editar">
+<!ENTITY lightning.toolbar.edit.tooltip "Editar tarea o evento seleccionado">
+<!ENTITY lightning.toolbar.gototoday.label "Ir a hoy">
+<!ENTITY lightning.toolbar.gototoday.tooltip "Ir a hoy">
+<!ENTITY lightning.toolbar.print.label "Imprimir">
+<!ENTITY lightning.toolbar.print.tooltip "Imprimir eventos o tareas">
+
+<!-- Mode Toolbar -->
+<!ENTITY lightning.toolbar.calendar.label "Calendario">
+<!ENTITY lightning.toolbar.calendar.tooltip "Pasar a la pestaña del calendario">
+<!ENTITY lightning.toolbar.calendar.accesskey "C">
+<!ENTITY lightning.toolbar.task.label "Tareas">
+<!ENTITY lightning.toolbar.task.tooltip "Pasar a la barra de herramientas de tareas">
+<!ENTITY lightning.toolbar.task.accesskey "T">
+
+<!-- Toolbar write button -->
+<!ENTITY lightning.toolbar.newevent.label "Evento">
+<!ENTITY lightning.toolbar.newevent.tooltip "Crear un nuevo evento">
+<!ENTITY lightning.toolbar.newtask.label "Tarea">
+<!ENTITY lightning.toolbar.newtask.tooltip "Crear una tarea nueva">
+
+<!-- Calendar and Task Mode Toolbar -->
+<!ENTITY lightning.toolbar.day.label "Día">
+<!ENTITY lightning.toolbar.day.accesskey "D">
+<!ENTITY lightning.toolbar.week.label "Semana">
+<!ENTITY lightning.toolbar.week.accesskey "S">
+<!ENTITY lightning.toolbar.multiweek.label "Multisemana">
+<!ENTITY lightning.toolbar.multiweek.accesskey "u">
+<!ENTITY lightning.toolbar.month.label "Mes">
+<!ENTITY lightning.toolbar.month.accesskey "M">
+<!-- LOCALIZATION NOTE: the same as appmenuButton.label and appmenuButton1.tooltip
+ from messenger.dtd -->
+<!ENTITY lightning.toolbar.appmenuButton.label "AppMenu">
+<!ENTITY lightning.toolbar.appmenuButton1.tooltip "Mostrar el menú &brandShortName;">
+<!ENTITY lightning.toolbar.calendarmenu.label "Panel del calendario">
+<!ENTITY lightning.toolbar.calendarmenu.accesskey "P">
+<!ENTITY lightning.toolbar.calendarpane.label "Mostrar panel del calendario">
+<!ENTITY lightning.toolbar.calendarpane.accesskey "P">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/lightning/lightning.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/lightning/lightning.dtd
new file mode 100644
index 0000000000..1fe785ba54
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/lightning/lightning.dtd
@@ -0,0 +1,114 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- WARNING! This file contains UTF-8 encoded characters!
+ - If this ==> … <== doesn't look like an ellipsis (three dots in a row),
+ - your editor isn't using UTF-8 encoding and may munge up the document!
+ -->
+
+<!-- Tools menu -->
+<!ENTITY lightning.preferencesLabel "Calendario">
+
+<!-- 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 "Tarea…">
+<!ENTITY lightning.menupopup.new.task.accesskey "T">
+<!ENTITY lightning.menupopup.new.calendar.label "Calendario…">
+<!ENTITY lightning.menupopup.new.calendar.accesskey "C">
+
+<!-- Open menu popup in File menu -->
+<!ENTITY lightning.menupopup.open.calendar.label "Archivo de calendario…">
+<!ENTITY lightning.menupopup.open.calendar.accesskey "C">
+
+<!-- View Menu -->
+<!ENTITY lightning.menu.view.calendar.label "Calendario">
+<!ENTITY lightning.menu.view.calendar.accesskey "a">
+<!ENTITY lightning.menu.view.tasks.label "Tareas">
+<!ENTITY lightning.menu.view.tasks.accesskey "s">
+
+<!-- Events and Tasks menu -->
+<!ENTITY lightning.menu.eventtask.label "Eventos y tareas">
+<!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 "Correo-e:">
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.label "Preferir planificación de correo en el lado del 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 "Desde ahora, solo puede activar esto tras configurar este calendario en su diálogo de propiedades si el servidor del calendario maneja planificaciones.">
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.tooltiptext2 "Esta opción solo está disponible si el servidor de calendario gestiona planificaciones. Activarlo le permitirá recurrir a la planificación estándar basada en correo electrónico en lugar de dejarla en manos del servidor.">
+
+<!-- The notifications settings in the properties dialog -->
+<!ENTITY lightning.calendarproperties.notifications.label "Notificaciones">
+<!ENTITY lightning.calendarproperties.globalNotifications.label "Preferencias globales de notificación…">
+
+<!-- iMIP Bar (meeting support) -->
+<!ENTITY lightning.imipbar.btnAccept.label "Aceptar">
+<!ENTITY lightning.imipbar.btnAccept2.tooltiptext "Aceptar invitación al evento">
+<!ENTITY lightning.imipbar.btnAcceptRecurrences.label "Aceptar todo">
+<!ENTITY lightning.imipbar.btnAcceptRecurrences2.tooltiptext "Aceptar invitación a todas las repeticiones del evento ">
+<!ENTITY lightning.imipbar.btnAdd.label "Añadir">
+<!ENTITY lightning.imipbar.btnAdd.tooltiptext "Añadir el evento al calendario">
+<!ENTITY lightning.imipbar.btnDecline.label "Rechazar">
+<!ENTITY lightning.imipbar.btnDecline2.tooltiptext "Declinar invitación al evento">
+<!ENTITY lightning.imipbar.btnDeclineRecurrences.label "Declinar todo">
+<!ENTITY lightning.imipbar.btnDeclineRecurrences2.tooltiptext "Declinar invitación a todas las repeticiones del evento">
+<!ENTITY lightning.imipbar.btnDeclineCounter.label "Rechazar">
+<!ENTITY lightning.imipbar.btnDeclineCounter.tooltiptext "Declinar la contrapropuesta">
+<!ENTITY lightning.imipbar.btnDelete.label "Eliminar">
+<!ENTITY lightning.imipbar.btnDelete.tooltiptext "Eliminar del calendario">
+<!ENTITY lightning.imipbar.btnDetails.label "Detalles…">
+<!ENTITY lightning.imipbar.btnDetails.tooltiptext "Mostrar detalles del evento">
+<!ENTITY lightning.imipbar.btnDoNotShowImipBar.label "No mostrarse estos mensajes">
+<!ENTITY lightning.imipbar.btnGoToCalendar.label "Calendario">
+<!ENTITY lightning.imipbar.btnGoToCalendar.tooltiptext "Ir a la pestaña de calendario">
+<!ENTITY lightning.imipbar.btnMore.label "Más">
+<!ENTITY lightning.imipbar.btnMore.tooltiptext "Pulse para mostrar más opciones">
+<!ENTITY lightning.imipbar.btnReconfirm2.label "Reconfirmar">
+<!ENTITY lightning.imipbar.btnReconfirm.tooltiptext "Envía una reconfirmación al organizador">
+<!ENTITY lightning.imipbar.btnReschedule.label "Replanificar">
+<!ENTITY lightning.imipbar.btnReschedule.tooltiptext "Replanificar el evento">
+<!ENTITY lightning.imipbar.btnSaveCopy.label "Guardar una copia">
+<!ENTITY lightning.imipbar.btnSaveCopy.tooltiptext "Guardar una copia del evento en el calendario con independencia de la respuesta al organizador. Se vaciará la lista de asistentes.">
+<!ENTITY lightning.imipbar.btnTentative.label "Provisional">
+<!ENTITY lightning.imipbar.btnTentative2.tooltiptext "Aceptar invitación al evento provisionalmente">
+<!ENTITY lightning.imipbar.btnTentativeRecurrences.label "Todo provisional">
+<!ENTITY lightning.imipbar.btnTentativeRecurrences2.tooltiptext "Aceptar invitación a todas las repeticiones del evento provisonalmente">
+<!ENTITY lightning.imipbar.btnUpdate.label "Actualizar">
+<!ENTITY lightning.imipbar.btnUpdate.tooltiptext "Actualizar evento en el calendario">
+<!ENTITY lightning.imipbar.description "Este mensaje contiene una invitación a un evento.">
+
+<!ENTITY lightning.imipbar.btnSend.label "Enviar respuesta ahora">
+<!ENTITY lightning.imipbar.btnSend.tooltiptext "Enviar respuesta al organizador">
+<!ENTITY lightning.imipbar.btnSendSeries.tooltiptext "Enviar respuesta para la serie completa al organizador">
+<!ENTITY lightning.imipbar.btnDontSend.label "No enviar respuesta">
+<!ENTITY lightning.imipbar.btnDontSend.tooltiptext "Cambiar su estado de participación sin enviar respuesta al organizador">
+<!ENTITY lightning.imipbar.btnDontSendSeries.tooltiptext "Cambiar su estado de participación para toda la serie sin enviar respuesta al organizador">
+
+<!-- Lightning specific keybindings -->
+<!ENTITY lightning.keys.event.showCalendar.key "C">
+<!ENTITY lightning.keys.event.showTasks.key "D">
+<!ENTITY lightning.keys.event.new "I">
+<!ENTITY lightning.keys.todo.new "D">
+
+<!-- Account Central page -->
+<!ENTITY lightning.acctCentral.newCalendar.label "Crear un nuevo calendario">
+
+<!-- today-pane-specific -->
+<!ENTITY todaypane.showMinimonth.label "Mostrar mini-mes">
+<!ENTITY todaypane.showMinimonth.accesskey "M">
+<!ENTITY todaypane.showMiniday.label "Mostrar mini-día">
+<!ENTITY todaypane.showMiniday.accesskey "d">
+<!ENTITY todaypane.showNone.label "No mostrar nada">
+<!ENTITY todaypane.showNone.accesskey "N">
+<!ENTITY todaypane.showTodayPane.label "Mostrar el panel de hoy">
+<!ENTITY todaypane.showTodayPane.accesskey "o">
+<!ENTITY todaypane.statusButton.label "Panel Para hoy">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/lightning/lightning.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/lightning/lightning.properties
new file mode 100644
index 0000000000..deba26c445
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/lightning/lightning.properties
@@ -0,0 +1,95 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.name = Lightning
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.description = Un calendario y planificador de tareas integrado para su cliente de correo
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.creator = Mozilla Calendar Project
+brandShortName = Lightning
+taskModeApplicationTitle = Tareas
+tabTitleCalendar = Calendario
+tabTitleTasks = Tareas
+imipHtml.header = Invitación a evento
+imipHtml.summary = Título:
+imipHtml.location = Ubicación:
+imipHtml.when = Cuándo:
+imipHtml.organizer = Organizador:
+imipHtml.description = Descripción:
+imipHtml.attachments = Adjuntos:
+imipHtml.comment = Comentario:
+imipHtml.attendees = Asistentes:
+imipHtml.url = Enlace relacionado:
+imipHtml.canceledOccurrences = Repeticiones canceladas:
+imipHtml.modifiedOccurrences = Repeticiones modificadas:
+imipHtml.newLocation = Nueva ubicación: %1$S
+imipHtml.attendeeDelegatedFrom = (delegado por %1$S)
+imipHtml.attendeeDelegatedTo = (delegado a %1$S)
+imipHtml.attendee.combined = %1$S %2$S
+imipHtml.attendeeRole2.CHAIR = %1$S dirige el evento.
+imipHtml.attendeeRole2.NON-PARTICIPANT = %1$S no es un participante.
+imipHtml.attendeeRole2.OPT-PARTICIPANT = %1$S es un participante opcional.
+imipHtml.attendeeRole2.REQ-PARTICIPANT = %1$S es un participante necesario.
+imipHtml.attendeePartStat2.ACCEPTED = %1$S ha confirmado su asistencia.
+imipHtml.attendeePartStat2.DECLINED = %1$S ha declinado su asistencia.
+imipHtml.attendeePartStat2.DELEGATED = %1$S ha delegado su asistencia a %2$S.
+imipHtml.attendeePartStat2.NEEDS-ACTION = %1$S aún necesita responder.
+imipHtml.attendeePartStat2.TENTATIVE = %1$S ha confirmado provisionalmente su asistencia.
+imipHtml.attendeeUserType2.INDIVIDUAL = %1$S
+imipHtml.attendeeUserType2.GROUP = %1$S (grupo)
+imipHtml.attendeeUserType2.RESOURCE = %1$S (recurso)
+imipHtml.attendeeUserType2.ROOM = %1$S (sala)
+imipHtml.attendeeUserType2.UNKNOWN = %1$S
+imipAddedItemToCal2 = Se ha añadido el evento a su calendario.
+imipCanceledItem2 = Se ha eliminado el evento de su calendario.
+imipUpdatedItem2 = Se ha actualizado el evento.
+imipBarCancelText = Este mensaje contiene una cancelación de evento.
+imipBarCounterErrorText = Este mensaje contiene una contrapropuesta a una invitación que no puede ser procesada.
+imipBarCounterPreviousVersionText = Este mensaje contiene una contrapropuesta a una versión previa de una invitación.
+imipBarCounterText = Este mensaje contiene una contrapropuesta a una invitación.
+imipBarDisallowedCounterText = Este mensaje contiene una contrapropuesta aunque usted no las permitió para este evento.
+imipBarDeclineCounterText = Este mensaje contiene una respuesta a su contrapropuesta.
+imipBarRefreshText = Este mensaje solicita la actualización de un evento.
+imipBarPublishText = Este mensaje contiene un evento.
+imipBarRequestText = Este mensaje contiene una invitación a un evento.
+imipBarSentText = Este mensaje contiene un evento enviado.
+imipBarSentButRemovedText = Este mensaje contiene un evento enviado que ya no está en su calendario.
+imipBarUpdateText = Este mensaje contiene una actualización a un evento existente.
+imipBarUpdateMultipleText = Este mensaje contiene actualizaciones a múltiples eventos existentes.
+imipBarUpdateSeriesText = Este mensaje contiene una actualización a una serie de eventos existentes.
+imipBarAlreadyProcessedText = Este mensaje contiene un evento que ya ha sido procesado.
+imipBarProcessedNeedsAction = Este mensaje contiene un evento al que aún no ha respondido.
+imipBarProcessedMultipleNeedsAction = Este mensaje contiene múltiples eventos a los que aún no ha respondido.
+imipBarProcessedSeriesNeedsAction = Este mensaje contiene una serie de eventos a los que aún no ha respondido.
+imipBarReplyText = Este mensaje contiene una respuesta a una invitación.
+imipBarReplyToNotExistingItem = Este mensaje contiene una respuesta referida a un evento que no está en su calendario.
+imipBarReplyToRecentlyRemovedItem = Este mensaje contiene una respuesta referida a un evento que se eliminó de su calendario el %1$S.
+imipBarUnsupportedText = Este mensaje contiene un evento que esta versión de Lightning no puede procesar.
+imipBarUnsupportedText2 = Este mensaje contiene un evento que esta versión de %1$S no puede procesar.
+imipBarProcessingFailed = Fallo al procesar el mensaje. Estado: %1$S.
+imipBarCalendarDeactivated = Este mensaje contiene información de un evento. Active un calendario para gestionarlo.
+imipBarNotWritable = No hay calendarios escribibles configurados para invitaciones, compruebe las propiedades de los calendarios.
+imipSendMail.title = Notificación de correo-e
+imipSendMail.text = ¿Le gustaría enviar ahora el mensaje de notificación?
+imipNoIdentity = Ninguna
+imipNoCalendarAvailable = No hay calendario modificables disponibles.
+itipReplySubject2 = Respuesta a invitación: %1$S
+itipReplyBodyAccept = %1$S ha aceptado su invitación al evento.
+itipReplyBodyDecline = %1$S ha declinado su invitación al evento.
+itipReplySubjectAccept2 = Aceptado: %1$S
+itipReplySubjectDecline2 = Invitación declinada: %1$S
+itipReplySubjectTentative2 = Provisional: %1$S
+itipRequestSubject2 = Invitación: %1$S
+itipRequestUpdatedSubject2 = Actualizado: %1$S
+itipRequestBody = %1$S le ha invitado a %2$S
+itipCancelSubject2 = Cancelado: %1$S
+itipCancelBody = %1$S ha cancelado este evento: %2$S
+itipCounterBody = %1$S ha hecho una contrapropuesta para "%2$S":
+itipDeclineCounterBody = %1$S ha declinado su contrapropuesta para "%2$S".
+itipDeclineCounterSubject = Contrapropuesta declinada: %1$S
+confirmProcessInvitation = Ha eliminado recientemente este elemento; ¿seguro que quiere procesar esta invitación?
+confirmProcessInvitationTitle = ¿Procesar invitación?
+invitationsLink.label = Invitaciones: %1$S
+binaryComponentKnown = El componente binario necesario para %1$S no se ha podido cargar, probablemente porque se está usando una combinación errónea de versiones. Actualmente tiene %1$S %2$S instalado, pero debería usar una versión de la serie %3$S.
+binaryComponentUnknown = El componente binario necesario para %1$S no se ha podido cargar, probablemente porque se está usando una combinación errónea de versiones. Está usando %2$S %3$S junto con %1$S %4$S. Revise https://developer.mozilla.org/Calendar/Calendar_Versions para más detalles.
+binaryComponentTitle = Versión %1$S incorrecta
+noIdentitySelectedNotification = Si quiere usar este calendario para guardar invitaciones para o de otras personas debería asignar una identidad de correo debajo.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-mapi/mapi.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-mapi/mapi.properties
new file mode 100644
index 0000000000..9778134b54
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-mapi/mapi.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/.
+
+dialogTitle = %S
+dialogText = ¿Desea usar %S como la aplicación de correo predeterminada?
+newsDialogText = ¿Desea usar %S como la aplicación de noticias predeterminada?
+feedDialogText = ¿Desea usar %S como el gestor de canales predeterminado?
+checkboxText = No volver a mostrar este diálogo
+setDefaultMail = %S no es la aplicación de correo predeterminada ¿Desea que sea la aplicación de correo predeterminada?
+setDefaultNews = %S no es la aplicación de correo predeterminada ¿Desea que sea la aplicación de noticias predeterminada?
+setDefaultFeed = %S no es su gestor de canales predeterminado. ¿Desea hacerlo su gestor de canales predeterminado?
+alreadyDefaultMail = %S ya es la aplicación de correo predeterminada.
+alreadyDefaultNews = %S ya es la aplicación de noticias predeterminada.
+alreadyDefaultFeed = %S ya está configurado como gestor de canales predeterminado.
+
+loginText = Introduzca su contraseña para %S:
+loginTextwithName = Introduzca su usuario y contraseña
+loginTitle = %S
+PasswordTitle = %S
+
+errorMessage = No se pudo establecer %S como la aplicación de correo predeterminada porque no se pudo actualizar una clave del registro. Compruebe con su administrador del sistema que tiene permiso de escritura al registro del sistema y vuelva a intentarlo.
+errorMessageNews = No se pudo establecer %S como la aplicación de noticias predeterminada porque no se pudo actualizar una clave del registro. Compruebe con su administrador del sistema que tiene permiso de escritura al registro del sistema y vuelva a intentarlo.
+errorMessageTitle = %S
+
+mapiBlindSendWarning = Otra aplicación está intentando enviar correo usando su perfil de usuario. ¿Seguro que desea enviar el correo?
+mapiBlindSendDontShowAgain = Avisarme cuando otras aplicaciones intenten enviar correo a través de mí
+
+defaultMailDisplayTitle = %S
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-newsblog/am-newsblog.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-newsblog/am-newsblog.dtd
new file mode 100644
index 0000000000..949657d403
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Activar actualizaciones en todos los canales">
+<!ENTITY biffAll.accesskey "v">
+
+<!ENTITY newFeedSettings.label "Configuración predeterminada para canales nuevos">
+
+<!ENTITY manageSubscriptions.label "Administrar suscripciones…">
+<!ENTITY manageSubscriptions.accesskey "A">
+
+<!ENTITY feedWindowTitle.label "Asistente de cuenta de canales web">
+<!ENTITY feeds.accountName "Canales de Blogs y Noticias">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-newsblog/feed-subscriptions.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-newsblog/feed-subscriptions.dtd
new file mode 100644
index 0000000000..26dea59025
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-newsblog/feed-subscriptions.dtd
@@ -0,0 +1,52 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY feedSubscriptions.label "Suscripciones a canales">
+<!ENTITY learnMore.label "Más información sobre Canales">
+
+<!ENTITY feedTitle.label "Título:">
+<!ENTITY feedTitle.accesskey "T">
+
+<!ENTITY feedLocation.label "URL del canal:">
+<!ENTITY feedLocation.accesskey "L">
+<!ENTITY feedLocation2.placeholder "Introduzca una URL de canal válida">
+<!ENTITY locationValidate.label "Validar">
+<!ENTITY validateText.label "Comprobar validación y recuperar una URL válida.">
+
+<!ENTITY feedFolder.label "Guardar artículos en:">
+<!ENTITY feedFolder.accesskey "G">
+
+<!ENTITY biffStart.label "Buscar mensajes nuevos cada ">
+<!ENTITY biffStart.accesskey "B">
+<!ENTITY biffMinutes.label "minutos">
+<!ENTITY biffMinutes.accesskey "n">
+<!ENTITY biffDays.label "días">
+<!ENTITY biffDays.accesskey "s">
+<!ENTITY recommendedUnits.label "El editor recomienda:">
+
+<!ENTITY quickMode.label "Mostrar el resumen del artículo en vez de la página web">
+<!ENTITY quickMode.accesskey "M">
+
+<!ENTITY autotagEnable.label "Crear automáticamente etiquetas a partir de los contenidos &lt;category&gt; de los canales">
+<!ENTITY autotagEnable.accesskey "d">
+<!ENTITY autotagUsePrefix.label "Poner a las etiquetas el prefijo:">
+<!ENTITY autotagUsePrefix.accesskey "P">
+<!ENTITY autoTagPrefix.placeholder "Introduzca un prefijo de etiqueta">
+
+<!ENTITY button.addFeed.label "Añadir">
+<!ENTITY button.addFeed.accesskey "A">
+<!ENTITY button.verifyFeed.label "Verificar">
+<!ENTITY button.verifyFeed.accesskey "V">
+<!ENTITY button.updateFeed.label "Actualizar">
+<!ENTITY button.updateFeed.accesskey "c">
+<!ENTITY button.removeFeed.label "Eliminar">
+<!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 canales con la estructura de canales; ctrl clic o ctrl enter para exportar los canales como una lista">
+
+<!ENTITY cmd.close.commandKey "w">
+<!ENTITY button.close.label "Cerrar">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-newsblog/newsblog.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-newsblog/newsblog.properties
new file mode 100644
index 0000000000..d3380740eb
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-newsblog/newsblog.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/.
+
+subscribe-validating-feed = Verificando el canal…
+subscribe-cancelSubscription = ¿Seguro que desea cancelar la suscripción al canal actual?
+subscribe-cancelSubscriptionTitle = Suscribirse a un canal…
+subscribe-feedAlreadySubscribed = Ya tiene una suscripción para este canal.
+subscribe-errorOpeningFile = No se pudo abrir el archivo.
+subscribe-feedAdded = Canal añadido.
+subscribe-feedUpdated = Canal actualizado.
+subscribe-feedMoved = Suscripción al canal movida.
+subscribe-feedCopied = Suscripción al canal copiada.
+subscribe-feedRemoved = Anulada la suscripción al canal.
+subscribe-feedNotValid = La URL del canal no es un canal válido.
+subscribe-feedVerified = La URL del canal ha sido verificada.
+subscribe-networkError = No se ha podido encontrar la URL del canal. Compruebe el nombre y vuelva a intentarlo.
+subscribe-noAuthError = La URL del canal no está autorizada.
+subscribe-loading = Cargando, por favor espere…
+
+subscribe-OPMLImportTitle = Seleccionar archivo OPML para importar
+subscribe-OPMLExportTitleList = Exportar %S como archivo OPML - Lista de canales
+subscribe-OPMLExportTitleStruct = Exportar %S como un archivo OPML - Canales con su estructura de carpetas
+subscribe-OPMLExportFileDialogTitle = Exportación OPML de %1$S - %2$S
+subscribe-OPMLExportDefaultFileName = MisCanalesDe%1$S-%2$S.opml
+subscribe-OPMLImportInvalidFile = El archivo %S no parece ser un archivo OPML válido.
+subscribe-OPMLImportFeedCount = Importado #1 nuevo canal.;Importados #1 nuevos canales.
+subscribe-OPMLImportUniqueFeeds = Importado #1 nuevo canal al cual no está ya suscrito;Importados #1 nuevos canales a los cuales no está ya suscrito
+subscribe-OPMLImportFoundFeeds = (de un total de #1 entrada encontrada);(de un total de #1 entradas encontradas)
+subscribe-OPMLImportStatus = %1$S %2$S.
+
+subscribe-OPMLExportOPMLFilesFilterText = Archivos OPML
+subscribe-OPMLExportDone = Los canales de esta cuenta han sido exportados a %S.
+
+subscribe-confirmFeedDeletionTitle = Eliminar canal
+subscribe-confirmFeedDeletion = ¿Seguro que quiere desuscribirse del canal: \n %S?
+
+subscribe-gettingFeedItems = Descargando artículos del canal (%S de %S)…
+
+newsblog-noNewArticlesForFeed = No hay artículos nuevos para este canal.
+newsblog-networkError = No se pudo encontrar %S. Compruebe el nombre y vuelva a intentarlo.
+newsblog-feedNotValid = %S no es un canal válido.
+newsblog-badCertError = %S usa un certificado de seguridad no válido.
+newsblog-noAuthError = %S no está autorizado.
+newsblog-getNewMsgsCheck = Comprobando canales en busca de nuevos artículos…
+
+feeds-accountname = Canales de Blogs y Noticias
+
+externalAttachmentMsg = Este adjunto MIME se guarda por separado del mensaje.
+
+ImportFeedsCreateNewListItem = * Nueva cuenta *
+ImportFeedsNewAccount = Crear e importar en una cuenta de canales nueva
+ImportFeedsExistingAccount = Importar en una cuenta de canales existente
+ImportFeedsNew = nuevo
+ImportFeedsExisting = existente
+ImportFeedsDone = La importación de suscripciones de canales del archivo %1$S en la cuenta %2$S '%3$S' ha finalizado.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-region/region.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-region/region.properties
new file mode 100644
index 0000000000..0bce9b2bdb
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-region/region.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.addr_book.mapit_url.format = https://www.google.es/maps?q=@A1%20@CI%20@ST%20@ZI%20@CO
+mail.addr_book.mapit_url.1.name = Google Maps
+mail.addr_book.mapit_url.1.format = https://www.google.es/maps?q=@A1%20@A2%20@CI%20@ST%20@ZI%20@CO
+mail.addr_book.mapit_url.2.name = OpenStreetMap
+mail.addr_book.mapit_url.2.format = https://nominatim.openstreetmap.org/search.php?polygon=1&q=@A1%2C@A2%2C@CI%2C@ST%2C@ZI%2C@CO
+
+mailnews.messageid_browser.url = http://groups.google.com/search?as_umsgid=%mid
+
+mailnews.localizedRe =
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/certFetchingStatus.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/certFetchingStatus.dtd
new file mode 100644
index 0000000000..5bb53a2eaa
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Descargando certificados">
+<!ENTITY info.message "Buscando en el directorio los certificados de los destinatarios. Esto puede llevar unos minutos.">
+<!ENTITY stop.label "Detener la búsqueda">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgCompSMIMEOverlay.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgCompSMIMEOverlay.dtd
new file mode 100644
index 0000000000..020a713182
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgCompSecurityInfo.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgCompSecurityInfo.dtd
new file mode 100644
index 0000000000..5752885700
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgCompSecurityInfo.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgCompSecurityInfo.dtd UI for viewing security status when composing a message -->
+
+<!ENTITY title.label "Seguridad del mensaje">
+<!ENTITY subject.plaintextWarning "Observe que las líneas Asunto de los mensajes de correo electrónico nunca son cifradas.">
+<!ENTITY status.heading "Los contenidos de su mensaje serán enviados como sigue:">
+<!ENTITY status.signed "Firmado digitalmente:">
+<!ENTITY status.encrypted "Cifrado:">
+<!ENTITY status.certificates "Certificados:">
+<!ENTITY view.label "Ver">
+<!ENTITY view.accesskey "V">
+<!ENTITY tree.recipient "Recipiente:">
+<!ENTITY tree.status "Estado">
+<!ENTITY tree.issuedDate "Emitido:">
+<!ENTITY tree.expiresDate "Caduca">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgCompSecurityInfo.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgCompSecurityInfo.properties
new file mode 100644
index 0000000000..3129bd4292
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = No encontrado
+StatusValid = Válido
+StatusExpired = Caducado
+StatusUntrusted = No confiado
+StatusRevoked = Revocado
+StatusInvalid = No válido
+StatusYes = Sí
+StatusNo = No
+StatusNotPossible = Imposible
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgReadSMIMEOverlay.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgReadSMIMEOverlay.properties
new file mode 100644
index 0000000000..603b16a317
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgReadSMIMEOverlay.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/.
+
+ImapOnDemand = El mensaje mostrado ha sido firmado digitalmente, pero no todos sus adjuntos han sido descargados aún. Pulse Aceptar para descargar el mensaje completo y validar la firma.
+CantDecryptTitle = %brand% no puede descifrar este mensaje
+CantDecryptBody = El remitente cifró este mensaje para usted usando uno de los certificados digitales de usted. Sin embargo, %brand% no pudo encontrar este certificado y la clave privada correspondiente. <br> Soluciones posibles: <br><ul><li>Si tiene una tarjeta inteligente, insértela ahora. <li>Si está usando un nuevo equipo, o si está usando un perfil nuevo de %brand%, necesitará restaurar el certificado y la clave privada de una copia de seguridad. Las copias de seguridad de los certificados suelen acaban en ".p12".</ul>
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgReadSecurityInfo.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgReadSecurityInfo.dtd
new file mode 100644
index 0000000000..97c666b4b6
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgReadSecurityInfo.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 msgReadSecurityInfo.dtd UI for viewing security status when reading a received message -->
+
+<!ENTITY status.label "Seguridad del mensaje">
+<!ENTITY signatureCert.label "Ver certificado de la firma">
+<!ENTITY encryptionCert.label "Ver certificado de cifrado">
+
+<!ENTITY signer.name "Firmado por:">
+<!ENTITY recipient.name "Cifrado para:">
+<!ENTITY email.address "Direcciones de correo electrónico:">
+<!ENTITY issuer.name "Certificado emitido por:">
+
+<!ENTITY SMIME.label "S/MIME">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgSecurityInfo.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgSecurityInfo.properties
new file mode 100644
index 0000000000..f373ed1959
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger-smime/msgSecurityInfo.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/.
+
+SINoneLabel = El mensaje no tiene firma digital
+SINone = Este mensaje no incluye la firma digital del remitente. La ausencia de una firma digital significa que el mensaje pudo haber sido enviado por alguien que finge tener esta dirección de correo electrónico. También es posible que el mensaje haya sido manipulado mientras circulaba por la red. Sin embargo, es poco probable que haya ocurrido alguna de estas posibilidades.
+SIValidLabel = El mensaje está firmado
+SIValid = Este mensaje incluye una firma digital válida. El mensaje no ha sido manipulado desde que se envió.
+SIInvalidLabel = La firma digital no es válida
+SIInvalidHeader = El mensaje incluye una firma digital, pero la firma no es válida.
+SIContentAltered = La firma no coincide correctamente con el contenido del mensaje. El mensaje parece que ha sido manipulado después de que el remitente lo firmara. Usted no debería confiar en la validez de este mensaje hasta que verifique su contenido con el remitente.
+SIExpired = El certificado usado para firmar el mensaje parece haber caducado. Compruebe la hora en el reloj de su ordenador.
+SIRevoked = El certificado usado para firmar el mensaje ha sido revocado. Usted no debería confiar en la validez de este mensaje hasta que verifique su contenido con el remitente.
+SINotYetValid = El certificado utilizado para firmar el mensaje parece que ya no es válido. Compruebe la hora en el reloj de su ordenador.
+SIUnknownCA = El certificado utilizado para firmar el mensaje fue emitido por una Autoridad Certificadora (CA) desconocida.
+SIUntrustedCA = El certificado utilizado para firmar el mensaje fue emitido por una Autoridad Certificadora (CA) en la que no confía para emitir este tipo de certificado.
+SIExpiredCA = El certificado usado para firmar el mensaje fue emitido por una Autoridad Certificadora (CA) cuyo propio certificado ha caducado. Compruebe la hora en el reloj de su ordenador.
+SIRevokedCA = El certificado utilizado para firmar este mensaje fue emitido por una Autoridad Certificadora (CA) cuyo propio certificado ha sido revocado. No debería confiar en la validez de este mensaje hasta que verifique su contenido con el remitente.
+SINotYetValidCA = El certificado usado para firmar este mensaje fue emitido por una Autoridad Certificadora (CA) cuyo propio certificado ya no es válido. Compruebe la hora en el reloj de su ordenador.
+SIInvalidCipher = El mensaje fue firmado usando un cifrado no soportado por esta versión.
+SIClueless = Hay un problema desconocido con esta firma digital. Usted no debería confiar en la validez de este mensaje hasta que verifique su contenido con el remitente.
+SIPartiallyValidLabel = El mensaje está firmado
+SIPartiallyValidHeader = Aunque la firma digital es válida, no se puede discernir si el remitente y el firmante son la misma persona.
+SIHeaderMismatch = La dirección de correo indicada en el certificado del firmante es diferente de la dirección de correo que se ha usado para enviar este mensaje. Verifique los detalles del certificado de la firma para descubrir quién firmó el mensaje.
+SICertWithoutAddress = El certificado utilizado para firmar el mensaje no contiene una dirección de correo electrónico. Verifique los detalles del certificado usado para la firma para descubrir quién firmó el mensaje.
+
+EINoneLabel2 = El mensaje no está cifrado
+EINone = Este mensaje no fue cifrado antes de ser enviado. La información que se manda a Internet sin cifrar puede ser vista por otras personas mientras llega a su destino.
+EIValidLabel = El mensaje está cifrado
+EIValid = Este mensaje fue cifrado antes de ser enviado. El cifrado hace muy difícil que otras personas puedan ver información mientras ésta viaja por la red.
+EIInvalidLabel = El mensaje no puede ser descifrado
+EIInvalidHeader = Este mensaje fue cifrado antes de ser enviado, pero no puede ser descifrado.
+EIContentAltered = El mensaje parece que ha sido manipulado durante la transmisión.
+EIClueless = Hay un problema desconocido con este mensaje cifrado.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/AccountManager.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/AccountManager.dtd
new file mode 100644
index 0000000000..d04bf13751
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Configuración de la cuenta">
+<!ENTITY accountManagerCloseButton.label "Cerrar">
+
+<!ENTITY accountActionsButton.label "Operaciones sobre la cuenta">
+<!ENTITY accountActionsButton.accesskey "O">
+<!ENTITY addMailAccountButton.label "Añadir cuenta de correo…">
+<!ENTITY addMailAccountButton.accesskey "A">
+<!ENTITY addIMAccountButton.label "Añadir cuenta de chat…">
+<!ENTITY addIMAccountButton.accesskey "C">
+<!ENTITY addFeedAccountButton.label "Añadir cuenta de canales web…">
+<!ENTITY addFeedAccountButton.accesskey "w">
+<!ENTITY setDefaultButton.label "Definir como predet.">
+<!ENTITY setDefaultButton.accesskey "D">
+<!ENTITY removeButton.label "Eliminar cuenta">
+<!ENTITY removeButton.accesskey "R">
+
+<!ENTITY addonsButton.label "Extensiones y temas">
+
+<!-- AccountManager.xhtml -->
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/AccountWizard.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/AccountWizard.dtd
new file mode 100644
index 0000000000..df0a6839bc
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/AccountWizard.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/. -->
+
+<!-- Entities for AccountWizard -->
+
+<!ENTITY windowTitle.label "Asistente para cuentas">
+<!ENTITY accountWizard.size "width: 45em; height: 42em;">
+
+<!-- Entities for Account Type page -->
+
+<!-- Entities for Identity page -->
+
+<!ENTITY identityTitle.label "Identidad">
+<!ENTITY identityDesc.label "Cada cuenta tiene una identidad, que es la información que le identifica a usted ante otros cuando ellos reciben sus mensajes.">
+
+<!ENTITY fullnameDesc.label "Introduzca el nombre que quiere que aparezca en el campo &quot;De&quot; al enviar mensajes">
+<!ENTITY fullnameExample.label "(por ejemplo, &quot;José Pérez&quot;).">
+<!ENTITY fullnameLabel.label "Su nombre:">
+<!ENTITY fullnameLabel.accesskey "S">
+
+<!ENTITY emailLabel.label "Dirección de correo electrónico:">
+<!ENTITY emailLabel.accesskey "E">
+
+<!-- Entities for Incoming Server page -->
+
+<!ENTITY incomingTitle.label "Información del servidor entrante">
+<!ENTITY incomingUsername.label "Nombre de usuario:">
+<!ENTITY newsServerNameDesc.label "Introduzca el nombre de su servidor de noticias (NNTP) (por ejemplo, &quot;news.ejemplo.net&quot;).">
+<!ENTITY newsServerLabel.label "Servidor de noticias:">
+<!ENTITY newsServerLabel.accesskey "n">
+
+<!-- Entities for Outgoing Server page -->
+
+<!-- Entities for Account name page -->
+
+<!ENTITY accnameTitle.label "Nombre de la cuenta">
+<!ENTITY accnameDesc.label "Introduzca el nombre por el que desea referirse a esta cuenta (por ejemplo, &quot;Cuenta del trabajo&quot;, &quot;Cuenta de casa&quot; o &quot;Cuenta de noticias&quot;).">
+<!ENTITY accnameLabel.label "Nombre de la cuenta:">
+<!ENTITY accnameLabel.accesskey "A">
+
+<!-- Entities for Done (Congratulations) page -->
+
+<!ENTITY completionTitle.label "¡Felicidades!">
+<!ENTITY completionText.label "Compruebe que la información de debajo es correcta.">
+<!ENTITY newsServerNamePrefix.label "Nombre del servidor de noticias (NNTP):">
+<!ENTITY clickFinish.label "Pulse el botón Finalizar para guardar estas configuraciones y salir del asistente de cuentas.">
+<!ENTITY clickFinish.labelMac "Pulse Terminado para guardar estos valores y salir del asistente de cuentas.">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/CustomHeaders.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/CustomHeaders.dtd
new file mode 100644
index 0000000000..fbfdc5acd7
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 cabeceras">
+<!ENTITY addButton.label "Añadir">
+<!ENTITY addButton.accesskey "A">
+<!ENTITY removeButton.label "Eliminar">
+<!ENTITY removeButton.accesskey "R">
+<!ENTITY newMsgHeader.label "Nueva cabecera de mensaje:">
+<!ENTITY newMsgHeader.accesskey "N">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/FilterEditor.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/FilterEditor.dtd
new file mode 100644
index 0000000000..54d696712c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/FilterEditor.dtd
@@ -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/. -->
+
+<!ENTITY window.title "Reglas de filtrado">
+<!ENTITY filterName.label "Nombre del filtro:">
+<!ENTITY filterName.accesskey "i">
+
+<!ENTITY junk.label "Correo no deseado">
+<!ENTITY notJunk.label "Legítimo">
+
+<!ENTITY lowestPriorityCmd.label "La más baja">
+<!ENTITY lowPriorityCmd.label "Baja">
+<!ENTITY normalPriorityCmd.label "Normal">
+<!ENTITY highPriorityCmd.label "Alta">
+<!ENTITY highestPriorityCmd.label "La más alta">
+
+<!ENTITY contextDesc.label "Aplicar filtro cuando:">
+<!ENTITY contextIncomingMail.label "Al recuperar el correo nuevo:">
+<!ENTITY contextIncomingMail.accesskey "A">
+<!ENTITY contextManual.label "se ejecute manualmente">
+<!ENTITY contextManual.accesskey "s">
+<!ENTITY contextBeforeCls.label "Filtrar antes de identificar el correo basura">
+<!ENTITY contextAfterCls.label "Filtrar tras identificar el correo basura">
+<!ENTITY contextOutgoing.label "Tras enviar">
+<!ENTITY contextOutgoing.accesskey "T">
+<!ENTITY contextArchive.label "Archivado">
+<!ENTITY contextArchive.accesskey "c">
+<!ENTITY contextPeriodic.accesskey "e">
+
+<!ENTITY filterActionDesc.label "Realizar estas acciones:">
+<!ENTITY filterActionDesc.accesskey "R">
+
+<!ENTITY filterActionOrderWarning.label "Nota: las acciones del filtro se ejecutarán en un orden diferente.">
+<!ENTITY filterActionOrder.label "Ver orden de ejecución">
+
+<!ENTITY moveMessage.label "Mover mensaje a">
+<!ENTITY copyMessage.label "Copiar mensaje a">
+<!ENTITY forwardTo.label "Reenviar mensaje a">
+<!ENTITY replyWithTemplate.label "Responder con plantilla">
+<!ENTITY markMessageRead.label "Marcar como leído">
+<!ENTITY markMessageUnread.label "Marcar como no leído">
+<!ENTITY markMessageStarred.label "Añadir estrella">
+<!ENTITY setPriority.label "Fijar prioridad a">
+<!ENTITY addTag.label "Etiquetar mensaje">
+<!ENTITY setJunkScore.label "Fijar estado de correo no deseado a">
+<!ENTITY deleteMessage.label "Eliminar mensaje">
+<!ENTITY deleteFromPOP.label "Eliminar del servidor POP">
+<!ENTITY fetchFromPOP.label "Recuperar del servidor POP">
+<!ENTITY ignoreThread.label "Ignorar conversación">
+<!ENTITY ignoreSubthread.label "Ignorar sub-conversación">
+<!ENTITY watchThread.label "Observar conversación">
+<!ENTITY stopExecution.label "Detener ejecución de los filtros">
+
+<!ENTITY addAction.tooltip "Añadir una acción nueva">
+<!ENTITY removeAction.tooltip "Eliminar esta acción">
+
+<!-- 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.
+ -->
+<!-- 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.
+ -->
+<!ENTITY filterActionTypeFlexValue "1">
+<!ENTITY filterActionTargetFlexValue "4">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/FilterListDialog.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/FilterListDialog.dtd
new file mode 100644
index 0000000000..530e9de5fc
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 mensajes">
+<!ENTITY nameColumn.label "Nombre de filtro">
+<!ENTITY activeColumn.label "Activado">
+<!ENTITY newButton.label "Nuevo…">
+<!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 "Eliminar">
+<!ENTITY deleteButton.accesskey "r">
+<!ENTITY reorderTopButton "Mover a la parte superior">
+<!ENTITY reorderTopButton.accessKey "v">
+<!ENTITY reorderTopButton.toolTip "Reordenar filtro para que se ejecute antes de todos los demás">
+<!ENTITY reorderUpButton.label "Mover arriba">
+<!ENTITY reorderUpButton.accesskey "M">
+<!ENTITY reorderDownButton.label "Mover abajo">
+<!ENTITY reorderDownButton.accesskey "j">
+<!ENTITY reorderBottomButton "Mover a la parte inferior">
+<!ENTITY reorderBottomButton.accessKey "o">
+<!ENTITY reorderBottomButton.toolTip "Reordenar filtro para que se ejecute tras todos los demás">
+<!ENTITY filterHeader.label "Los filtros activos se aplican automáticamente en el orden de la lista.">
+<!ENTITY filtersForPrefix.label "Filtros para:">
+<!ENTITY filtersForPrefix.accesskey "F">
+<!ENTITY viewLogButton.label "Registro de filtros">
+<!ENTITY viewLogButton.accesskey "L">
+<!ENTITY runFilters.label "Ejecutar ahora">
+<!ENTITY runFilters.accesskey "R">
+<!ENTITY stopFilters.label "Parar">
+<!ENTITY stopFilters.accesskey "P">
+<!ENTITY folderPickerPrefix.label "Ejecutar los filtros seleccionados en:">
+<!ENTITY folderPickerPrefix.accesskey "c">
+<!ENTITY helpButton.label "Ayuda">
+<!ENTITY helpButton.accesskey "u">
+<!ENTITY closeCmd.key "W">
+<!ENTITY searchBox.emptyText "Buscar filtros por nombre…">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/SearchDialog.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/SearchDialog.dtd
new file mode 100644
index 0000000000..872b69cb5e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/SearchDialog.dtd
@@ -0,0 +1,35 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY searchHeading.label "Buscar mensajes en:">
+<!ENTITY searchHeading.accesskey "B">
+<!ENTITY searchSubfolders.label "Buscar subcarpetas">
+<!ENTITY searchSubfolders.accesskey "c">
+<!ENTITY searchOnServer.label "Ejecutar búsqueda en el servidor">
+<!ENTITY searchOnServer.accesskey "s">
+<!ENTITY resetButton.label "Limpiar">
+<!ENTITY resetButton.accesskey "L">
+<!ENTITY openButton.label "Abrir">
+<!ENTITY openButton.accesskey "A">
+<!ENTITY deleteButton.label "Eliminar">
+<!ENTITY deleteButton.accesskey "E">
+<!ENTITY searchDialogTitle.label "Buscar mensajes">
+<!ENTITY results.label "Resultados">
+<!ENTITY moveButton.label "Mover a">
+<!ENTITY moveButton.accesskey "M">
+<!ENTITY closeCmd.key "W">
+<!ENTITY openInFolder.label "Abrir en carpeta">
+<!ENTITY openInFolder.accesskey "i">
+<!ENTITY saveAsVFButton.label "Guardar como carpeta de búsqueda">
+<!ENTITY saveAsVFButton.accesskey "G">
+
+<!ENTITY abSearchHeading.label "Buscar en:">
+<!ENTITY abSearchHeading.accesskey "n">
+<!ENTITY propertiesButton.label "Propiedades">
+<!ENTITY propertiesButton.accesskey "P">
+<!ENTITY composeButton.label "Redactar">
+<!ENTITY composeButton.accesskey "R">
+<!ENTITY deleteCardButton.label "Eliminar">
+<!ENTITY deleteCardButton.accesskey "E">
+<!ENTITY abSearchDialogTitle.label "Búsqueda avanzada en la libreta de direcciones">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/aboutDownloads.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/aboutDownloads.dtd
new file mode 100644
index 0000000000..281f9fee27
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/aboutDownloads.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 aboutDownloads.title "Archivos guardados">
+<!ENTITY cmd.show.label "Abrir carpeta contenedora">
+<!ENTITY cmd.show.accesskey "A">
+<!ENTITY cmd.showMac.label "Mostrar en Finder">
+<!ENTITY cmd.showMac.accesskey "F">
+<!ENTITY cmd.open.label "Abrir">
+<!ENTITY cmd.open.accesskey "b">
+<!ENTITY cmd.removeFromHistory.label "Eliminar del historial">
+<!ENTITY cmd.removeFromHistory.accesskey "E">
+<!ENTITY cmd.clearList.label "Limpiar lista">
+<!ENTITY cmd.clearList.accesskey "L">
+<!ENTITY cmd.clearList.tooltip "Eliminar todas las entradas de la lista de archivos guardados, excepto las descargas en curso.">
+<!ENTITY cmd.searchDownloads.label "Buscar…">
+<!ENTITY cmd.searchDownloads.key "F">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/aboutRights.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/aboutRights.properties
new file mode 100644
index 0000000000..2ac02c1901
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Conozca sus derechos…
+buttonAccessKey = C
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/aboutSupportMail.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/aboutSupportMail.properties
new file mode 100644
index 0000000000..a6dbdcc187
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/aboutSupportMail.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/.
+
+warningLabel = ADVERTENCIA:
+warningText = Esto contiene información confidencial que no debe re-enviarse ni publicarse sin permiso.
+
+fsType.local = (Unidad local)
+fsType.network = (Unidad de red)
+fsType.unknown = (Ubicación desconocida)
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/accountCreationModel.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/accountCreationModel.properties
new file mode 100644
index 0000000000..3dda57d93b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/accountCreationModel.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/.
+
+# 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
+
+
+no_emailProvider.error = El archivo XML de configuración no contiene una configuración de cuenta de correo electrónico.
+outgoing_not_smtp.error = El servidor de salida debe ser de tipo SMTP
+
+cannot_login.error = No se puede iniciar sesión en el servidor. La configuración, el nombre de usuario o la contraseña probablemente son erróneos.
+
+cannot_find_server.error = No se puede encontrar un servidor
+
+no_autodiscover.error = El XML de autodescubrimiento Exchange no es válido.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/accountCreationUtil.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/accountCreationUtil.properties
new file mode 100644
index 0000000000..12065ae412
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/accountCreationUtil.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/.
+
+# This file has the strings, mostly error strings, for the logic / JS backend / model
+# files: sanitizeDatatypes.js, fetchhttp.js, util.js
+
+
+hostname_syntax.error = El nombre del servidor está vacío o contiene caracteres prohibidos. Sólo se permiten letras, números, guiones (-) y puntos (.).
+alphanumdash.error = La cadena contiene caracteres no admitidos. Sólo se permiten letras, números, - y _.
+allowed_value.error = El valor suministrado no está en la lista de permitidos
+url_scheme.error = Esquema URL no permitido
+url_parsing.error = URL no reconocida
+string_empty.error = Debe suministrar un valor para esta cadena
+boolean.error = No es un campo lógico
+no_number.error = No es un campo numérico
+number_too_large.error = Número demasiado grande
+number_too_small.error = Número demasiado pequeño
+
+
+cannot_contact_server.error = No se puede contactar con el servidor
+bad_response_content.error = Contenido de respuesta erróneo
+
+auth_failed_generic.error = Inicio de sesión fallido. ¿Son correctos el nombre de usuario/dirección de correo y la contraseña?
+auth_failed_with_reason.error = Inicio de sesión fallido. El servidor %1$S ha dicho: %2$S
+verification_failed.error = La verificación del inicio de sesión ha fallado por una razón desconocida.
+verification_failed_with_exception.error = La verificación del inicio de sesión ha fallado con el mensaje: %1$S
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/activity.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/activity.dtd
new file mode 100644
index 0000000000..6b23718ae4
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/activity.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.width2 "485">
+<!ENTITY window.height "300">
+
+<!ENTITY activity.title "Administrador de actividad">
+
+<!ENTITY cmd.close.commandkey "w">
+<!ENTITY cmd.close2.commandkey "j">
+<!ENTITY cmd.close2Unix.commandkey "y">
+<!ENTITY cmd.clearList.label "Limpiar lista">
+<!ENTITY cmd.clearList.tooltip "Elimina elementos completados, cancelados y fallidos de la lista">
+<!ENTITY cmd.clearList.accesskey "L">
+
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/activity.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/activity.properties
new file mode 100644
index 0000000000..10cc2f8537
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/activity.properties
@@ -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/.
+
+paused2 = Pausado
+processing = Procesando
+notStarted = No iniciado
+failed = Fallido
+waitingForInput = Esperando entrada
+waitingForRetry = Esperando para reintentar
+completed = Completado
+canceled = Cancelado
+
+sendingMessages = Enviando mensajes
+sendingMessage = Enviando mensaje
+sendingMessageWithSubject = Enviando mensaje: %S
+copyMessage = Copiando mensaje a carpeta Enviados
+sentMessage = Mensaje enviado
+sentMessageWithSubject = Se ha enviado el mensaje: %S
+failedToSendMessage = Fallo al enviar el mensaje
+failedToCopyMessage = Fallo al copiar el mensaje
+failedToSendMessageWithSubject = Fallo al enviar el mensaje: %S
+failedToCopyMessageWithSubject = Fallo al copiar el mensaje: %S
+
+autosyncProcessProgress2 = %4$S: Descargando mensaje %1$S de %2$S en %3$S…
+autosyncProcessDisplayText = Poniendo al día la carpeta %S
+autosyncEventDisplayText = %S está actualizado
+autosyncEventStatusText = Número total de mensajes descargados: %S
+autosyncEventStatusTextNoMsgs = No se han descargado mensajes
+autosyncContextDisplayText = Sincronizando: %S
+
+pop3EventStartDisplayText2 = %1$S: comprobando si hay nuevos mensajes en %2$S…
+pop3EventDisplayText = %S está actualizado
+pop3EventStatusText = #1 mensaje descargado;#1 mensajes descargados
+pop3EventStatusTextNoMsgs = No hay mensajes que descargar
+
+deletedMessages2 = #1 mensaje eliminado de #2;#1 mensajes eliminados de #2
+movedMessages = #1 mensaje movido de #2 a #3;#1 mensajes movidos de #2 a #3
+copiedMessages = Copiado #1 mensaje de #2 a #3;Copiados #1 mensajes de #2 a #3
+fromServerToServer = de #1 a #2
+deletedFolder = Carpeta #1 eliminada
+emptiedTrash = Se ha vaciado la papelera
+movedFolder = Carpeta #1 movida a la carpeta #2
+movedFolderToTrash = Carpeta #1 movida a la papelera
+copiedFolder = Carpeta #1 copiada en la carpeta #2
+renamedFolder = Carpeta #1 renombrada a #2
+indexing = Indexando mensajes
+indexingFolder = Indexando mensajes en #1
+indexingStatusVague = Determinando qué mensajes indexar
+indexingFolderStatusVague = Determinando qué mensajes indexar en #1
+indexingStatusExact = Indexando #1 mensaje de #2;Indexando #1 mensajes de #2 (#3 % completado)
+indexingFolderStatusExact = Indexando #1 mensaje de #2 en #4;Indexando #1 mensajes de #2 en #4 (#3 % completado)
+indexedFolder = Indexado #1 mensaje en #2;Indexados #1 mensajes en #2
+indexedFolderStatus = #1 segundo transcurrido;#1 segundos transcurridos
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addbuddy.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addbuddy.dtd
new file mode 100644
index 0000000000..e82df4fd0f
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Añadir contacto">
+<!ENTITY name.label "Nombre de usuario">
+<!ENTITY account.label "Cuenta">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abAddressBookNameDialog.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abAddressBookNameDialog.dtd
new file mode 100644
index 0000000000..f571632c65
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abAddressBookNameDialog.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 name.label "Nombre de la libreta de direcciones:">
+<!ENTITY name.accesskey "N">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abContactsPanel.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abContactsPanel.dtd
new file mode 100644
index 0000000000..9abc376058
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Propiedades">
+<!ENTITY propertiesMenu.accesskey "d">
+<!ENTITY propertiesCmd.key "i">
+<!ENTITY abPropertiesMenu.label "Propiedades de la libreta de direcciones">
+<!ENTITY abPropertiesMenu.accesskey "d">
+<!ENTITY contactPropertiesMenu.label "Propiedades del contacto">
+<!ENTITY contactPropertiesMenu.accesskey "d">
+<!ENTITY mailingListPropertiesMenu.label "Propiedades de la lista de correo">
+<!ENTITY mailingListPropertiesMenu.accesskey "d">
+
+<!ENTITY abContextMenuButton.tooltip "Mostrar menú contextual de la libreta de direcciones">
+<!ENTITY addressbookPicker.label "Libreta de direcciones:">
+<!ENTITY addressbookPicker.accesskey "L">
+<!ENTITY searchContacts.label "Buscar contactos:">
+<!ENTITY searchContacts.accesskey "n">
+<!ENTITY SearchNameOrEmail.label "Nombre o dirección de correo">
+
+<!ENTITY addtoToFieldMenu.label "Añadir a campo Para">
+<!ENTITY addtoToFieldMenu.accesskey "P">
+<!ENTITY addtoCcFieldMenu.label "Añadir a campo Cc">
+<!ENTITY addtoCcFieldMenu.accesskey "C">
+<!ENTITY addtoBccFieldMenu.label "Añadir a campo Bcc">
+<!ENTITY addtoBccFieldMenu.accesskey "A">
+<!ENTITY deleteAddrBookCard.label "Eliminar">
+<!ENTITY deleteAddrBookCard.accesskey "E">
+<!ENTITY propertiesContext.label "Propiedades">
+<!ENTITY propertiesContext.accesskey "d">
+<!ENTITY abPropertiesContext.label "Propiedades">
+<!ENTITY abPropertiesContext.accesskey "d">
+<!ENTITY editContactContext.label "Editar contacto">
+<!ENTITY editContactContext.accesskey "o">
+<!ENTITY editMailingListContext.label "Editar lista">
+<!ENTITY editMailingListContext.accesskey "s">
+
+<!ENTITY newContactAbContext.label "Nuevo contacto">
+<!ENTITY newContactAbContext.accesskey "C">
+<!ENTITY newListAbContext.label "Nueva lista">
+<!ENTITY newListAbContext.accesskey "L">
+
+<!ENTITY toButton.label "Añadir a Para:">
+<!ENTITY toButton.accesskey "A">
+<!ENTITY ccButton.label "Añadir a Cc:">
+<!ENTITY ccButton.accesskey "C">
+<!ENTITY bccButton.label "Añadir a Bcc:">
+<!ENTITY bccButton.accesskey "B">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abMailListDialog.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abMailListDialog.dtd
new file mode 100644
index 0000000000..f94b90419d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abMailListDialog.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 mailListWindowAdd.title "Nueva lista de correo">
+
+<!ENTITY addToAddressBook.label "Añadir a: ">
+<!ENTITY addToAddressBook.accesskey "A">
+<!ENTITY ListName.label "Nombre de lista: ">
+<!ENTITY ListName.accesskey "L">
+<!ENTITY ListNickName.label "Apodo de lista: ">
+<!ENTITY ListNickName.accesskey "p">
+<!ENTITY ListDescription.label "Descripción: ">
+<!ENTITY ListDescription.accesskey "D">
+<!ENTITY AddressTitle.label "Escriba direcciones de correo para añadirlas a la lista:">
+<!ENTITY AddressTitle.accesskey "E">
+<!ENTITY UpButton.label "Mover arriba">
+<!ENTITY DownButton.label "Mover abajo">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abMainWindow.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abMainWindow.dtd
new file mode 100644
index 0000000000..cf76f6f84d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abMainWindow.dtd
@@ -0,0 +1,17 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY showAsDefault.label "Directorio de inicio por omisión">
+<!ENTITY showAsDefault.accesskey "D">
+
+<!-- Search Bar -->
+<!ENTITY SearchNameOrEmail.label "Nombre o dirección de correo">
+
+<!-- Results Pane -->
+<!ENTITY Addrbook.label "Libreta de direcciones">
+<!ENTITY GeneratedName.label "Nombre">
+<!ENTITY PrimaryEmail.label "Correo electrónico">
+
+<!-- Card Summary Pane -->
+
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abResultsPane.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/abResultsPane.dtd
new file mode 100644
index 0000000000..1ffa924652
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Libreta de direcciones">
+<!ENTITY Addrbook.accesskey "L">
+<!ENTITY GeneratedName.label "Nombre">
+<!ENTITY GeneratedName.accesskey "e">
+<!ENTITY PrimaryEmail.label "Correo electrónico">
+<!ENTITY PrimaryEmail.accesskey "C">
+<!ENTITY Company.label "Organización">
+<!ENTITY Company.accesskey "O">
+<!ENTITY _PhoneticName.label "Nombre fonético">
+<!ENTITY _PhoneticName.accesskey "r">
+<!ENTITY NickName.label "Apodo">
+<!ENTITY NickName.accesskey "A">
+<!ENTITY SecondEmail.label "Correo electrónico adicional">
+<!ENTITY SecondEmail.accesskey "i">
+<!ENTITY Department.label "Departamento">
+<!ENTITY Department.accesskey "p">
+<!ENTITY JobTitle.label "Título">
+<!ENTITY JobTitle.accesskey "u">
+<!ENTITY CellularNumber.label "Móvil">
+<!ENTITY CellularNumber.accesskey "M">
+<!ENTITY PagerNumber.label "Buscapersonas">
+<!ENTITY PagerNumber.accesskey "B">
+<!ENTITY FaxNumber.label "Fax">
+<!ENTITY FaxNumber.accesskey "F">
+<!ENTITY HomePhone.label "Teléfono particular">
+<!ENTITY HomePhone.accesskey "T">
+<!ENTITY WorkPhone.label "Teléfono del trabajo">
+<!ENTITY WorkPhone.accesskey "j">
+<!ENTITY ChatName.label "Nombre en el chat">
+<!ENTITY ChatName.accesskey "N">
+<!ENTITY sortAscending.label "Ascendente">
+<!ENTITY sortAscending.accesskey "s">
+<!ENTITY sortDescending.label "Descendente">
+<!ENTITY sortDescending.accesskey "D">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/addressBook.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/addressBook.properties
new file mode 100644
index 0000000000..7abbdc9e2d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/addressBook.properties
@@ -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/.
+
+# 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=Debe introducir un nombre de lista.
+badListNameCharacters=Un nombre de lista no puede contener ninguno de los siguientes caracteres: < > ; , "
+badListNameSpaces=Un nombre de lista no puede contener múltiples espacios adyacentes.
+lastFirstFormat=%S, %S
+firstLastFormat=%S %S
+
+allAddressBooks=Todas las libretas de direcciones
+
+newContactTitle=Nuevo contacto
+# %S will be the contact's display name
+newContactTitleWithDisplayName=Nuevo contacto de %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 de %S
+
+## LOCALIZATION NOTE (cardRequiredDataMissingMessage): do not localize \n
+cardRequiredDataMissingMessage=Debe introducir al menos uno de los siguientes elementos:\nDirección de correo, Nombre, Apellido, Nombre mostrado, Organización.
+cardRequiredDataMissingTitle=Falta información requerida
+incorrectEmailAddressFormatMessage=La dirección primaria de correo electrónico debe ser de la forma usuario@maquina.
+incorrectEmailAddressFormatTitle=Formato incorrecto de la dirección de correo electrónico
+
+viewListTitle=Lista de correo: %S
+mailListNameExistsTitle=Ya existe la lista de correo.
+mailListNameExistsMessage=Ya existe una lista de correo con ese nombre. Escoja un nombre diferente.
+
+propertyPrimaryEmail=Correo electrónico
+propertyListName=Nombre de la lista
+propertySecondaryEmail=Correo electrónico adicional
+propertyNickname=Apodo
+propertyDisplayName=Nombre mostrado
+propertyWork=Trabajo
+propertyHome=Casa
+propertyFax=Fax
+propertyCellular=Móvil
+propertyPager=Buscapersonas
+propertyBirthday=Cumpleaños
+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=ID de Jabber
+propertyIRC=Apodo en IRC
+
+## LOCALIZATION NOTE (cityAndStateAndZip):
+## %1$S is city, %2$S is state, %3$S is zip
+cityAndStateAndZip=%1$S, %2$S %3$S
+## LOCALIZATION NOTE (cityAndStateNoZip):
+## %1$S is city, %2$S is state
+cityAndStateNoZip=%1$S, %2$S
+## LOCALIZATION NOTE (cityOrStateAndZip):
+## %1$S is city or state, %2$S is zip
+cityOrStateAndZip=%1$S %2$S
+
+stateZipSeparator=
+
+prefixTo=A
+prefixCc=Cc
+prefixBcc=Bcc
+addressBook=Libreta de direcciones
+
+# Contact photo management
+browsePhoto=Foto de contacto
+stateImageSave=Guardando la imagen…
+errorInvalidUri=Error: origen de la imagen no válido.
+errorNotAvailable=Error: el archivo no es accesible.
+errorInvalidImage=Error: solo se admiten los tipos de imagen JPG, PNG y GIF.
+errorSaveOperation=Error: no se ha podido guardar la imagen.
+
+# mailnews.js
+ldap_2.servers.pab.description=Libreta de direcciones personal
+ldap_2.servers.history.description=Direcciones recopiladas
+## LOCALIZATION NOTE (ldap_2.servers.osx.description is only used on Mac OS X)
+ldap_2.servers.osx.description=Libreta de direcciones de Mac OS X
+## LOCALIZATION NOTE (ldap_2.servers.outlook.description is only used on Windows)
+ldap_2.servers.outlook.description=Libreta de direcciones de Outlook
+
+# status bar stuff
+## LOCALIZATION NOTE (totalContactStatus):
+## %1$S is address book name, %2$S is contact count
+totalContactStatus=Total de contactos en %1$S: %2$S
+noMatchFound=No se han encontrado coincidencias
+## 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 coincidencia encontrada;#1 coincidencias 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=Introduzca un nombre válido.
+invalidHostname=Introduzca un nombre de servidor válido.
+invalidPortNumber=Introduzca un número de puerto válido.
+invalidResults=Introduzca un número válido en el campo de resultados.
+abReplicationOfflineWarning=Debe estar conectado para realizar una replicación LDAP.
+abReplicationSaveSettings=Debe guardarse la configuración antes de que se pueda descargar un directorio.
+
+# For importing / exporting
+## LOCALIZATION NOTE (ExportAddressBookNameTitle): %S is the name of exported addressbook
+ExportAddressBookNameTitle=Exportar libreta de direcciones - %S
+LDIFFiles=LDIF
+CSVFiles=Separado por comas
+CSVFilesSysCharset=Separado por comas (codificación de caracteres del sistema)
+CSVFilesUTF8=Separado por comas (UTF-8)
+TABFiles=Delimitado por tabuladores
+TABFilesSysCharset=Delimitado por tabuladores (codificación de caracteres del sistema)
+TABFilesUTF8=Delimitado por tabuladores (UTF-8)
+VCFFiles=vCard
+SupportedABFiles=Archivos de libreta de direcciones admitidos
+failedToExportTitle=Fallo al exportar
+failedToExportMessageNoDeviceSpace=Fallo al exportar la libreta de direcciones. No queda espacio en el dispositivo.
+failedToExportMessageFileAccessDenied=Fallo al exportar la libreta de direcciones. Acceso al archivo denegado.
+
+# For getting authDN for replication using dlg box
+AuthDlgTitle=Réplica LDAP de libreta de direcciones
+AuthDlgDesc=Para acceder al servidor de directorio, introduzca su usuario y contraseña.
+
+# LOCALIZATION NOTE(joinMeInThisChat)
+# use + for spaces
+joinMeInThisChat=Únete+a+mí+en+este+chat.
+
+# For printing
+headingHome=Casa
+headingWork=Trabajo
+headingOther=Otro
+headingChat=Charlar
+headingPhone=Teléfono
+headingDescription=Descripción
+headingAddresses=Direcciones
+
+## For address books
+addressBookTitleNew=Nueva libreta de direcciones
+# LOCALIZATION NOTE (addressBookTitleEdit):
+# %S is the current name of the address book.
+# Example: My Custom AB Properties
+addressBookTitleEdit=Propiedades de %S
+duplicateNameTitle=Nombre de libreta 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=Ya existe una libreta de direcciones con este nombre:\n• %S
+
+# For corrupt .mab files
+corruptMabFileTitle=Archivo de libreta de direcciones corrupto
+corruptMabFileAlert=Una de sus libretas de direcciones (archivo %1$S) no pudo leerse. Se crearán un nuevo archivo %2$S y una copia del archivo antiguo, llamada %3$S, en el mismo directorio.
+
+# For locked .mab files
+lockedMabFileTitle=No se pudo cargar el fichero de la libreta de direcciones
+lockedMabFileAlert=No se pudo cargar el fichero de la libreta de direcciones %S. Puede que sea de sólo lectura, o esté bloqueado por otra aplicación. Vuelva a intentarlo más tarde.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/ldapAutoCompErrs.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/ldapAutoCompErrs.properties
new file mode 100644
index 0000000000..0326ab0597
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/ldapAutoCompErrs.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/.
+
+# 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.
+
+0 = Problema de inicialización LDAP
+
+1 = Falló la conexión con el servidor LDAP
+
+2 = Falló la conexión con el servidor LDAP
+
+3 = Problema de comunicaciones del servidor LDAP
+
+4 = Problema de búsqueda del servidor LDAP
+
+
+errorAlertFormat = Código de error %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...
+
+5000 = Servidor no encontrado
+
+9999 = Error desconocido
+
+
+# Hints to for the user, associated with specific error codes (ie error code
+# + 10000)
+
+
+10003 = Inténtelo más tarde, o contacte con el administrador del sistema.
+
+10008 = La identificación con cifrado fuerte no se admite actualmente.
+
+10021 = Verifique que el filtro de búsqueda es correcto, y vuelva a intentarlo, o contacte con el administrador del sistema. Para verificar que el filtro de búsqueda es correcto, desde el menú Edición, elija Preferencias, luego elija Correo y Noticias, y después elija Direcciones. Pulse Editar directorios, y seleccione el servidor LDAP que esté utilizando. Pulse Editar, y luego haga clic en Avanzadas para mostrar el filtro de búsqueda.
+
+10032 = Verifique que el DN base es correcto, y vuelva a intentarlo, o contacte con el administrador del sistema. Para verificar que el DN base es correcto, desde el menú Edición, escoja Preferencias, luego elija Correo y Noticias, y después elija Direcciones. Pulse en Editar directorios, y seleccione el servidor LDAP que esté usando. Pulse Editar para mostrar el DN base.
+
+10051 = Inténtelo más tarde.
+
+10081 = Verifique que el nombre del servidor y el número de puerto son correctos y vuelva a intentarlo, o contacte con el administrador del sistema. Para verificar que el nombre de servidor y el puerto son correctos, desde el menú Editar, elija Preferencias, luego elija Correo y Noticias, y después elija Direcciones. Pulse Editar directorios, y seleccione el servidor LDAP que esté usando. Haga clic en Editar para mostrar el nombre de servidor. Pulse en Avanzadas para mostrar el número de puerto.
+
+10085 = Inténtelo más tarde.
+
+10087 = Verifique que el filtro de búsqueda es correcto, y vuelva a intentarlo, o contacte con el administrador del sistema. Para verificar que el filtro de búsqueda es correcto, desde el menú Edición, elija Preferencias, luego elija Correo y Noticias, y después elija Direcciones. Pulse Editar directorios, y seleccione el servidor LDAP que esté utilizando. Pulse Editar, y luego haga clic en Avanzadas para mostrar el filtro de búsqueda.
+
+10090 = Cierre algunas otras ventanas y/o aplicaciones y vuelva a intentarlo.
+
+10091 = Verifique que el nombre del servidor y el número de puerto son correctos y vuelva a intentarlo, o contacte con el administrador del sistema. Para verificar que el nombre de servidor y el puerto son correctos, desde el menú Editar, elija Preferencias, luego elija Correo y Noticias, y después elija Direcciones. Pulse Editar directorios, y seleccione el servidor LDAP que esté usando. Haga clic en Editar para mostrar el nombre de servidor. Pulse en Avanzadas para mostrar el número de puerto.
+
+15000 = Verifique que el nombre de servidor es correcto y vuelva a intentarlo, o contacte con el administrador del sistema. Para verificar que el nombre de servidor es correcto, desde el menú Edición, elija Preferencias, luego elija Correo y Noticias, y después elija Direcciones. Pulse Editar directorios, y seleccione el servidor LDAP que esté utilizando. Haga clic en Editar para mostrar el nombre de servidor.
+
+19999 = Contacte con el administrador del sistema.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/pref-directory-add.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/pref-directory-add.dtd
new file mode 100644
index 0000000000..331d9321fd
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/pref-directory-add.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/. -->
+
+<!ENTITY directoryName.label "Nombre: ">
+<!ENTITY directoryName.accesskey "n">
+<!ENTITY directoryHostname.label "Servidor: ">
+<!ENTITY directoryHostname.accesskey "o">
+<!ENTITY directoryBaseDN.label "DN base: ">
+<!ENTITY directoryBaseDN.accesskey "b">
+<!ENTITY findButton.label "Buscar">
+<!ENTITY findButton.accesskey "B">
+<!ENTITY directorySecure.label "Usar conexión segura (SSL)">
+<!ENTITY directorySecure.accesskey "U">
+<!ENTITY directoryLogin.label "DN para inicio de sesión: ">
+<!ENTITY directoryLogin.accesskey "i">
+<!ENTITY General.tab "General">
+<!ENTITY Offline.tab "Desconectado">
+<!ENTITY Advanced.tab "Avanzadas">
+<!ENTITY portNumber.label "Número de puerto: ">
+<!ENTITY portNumber.accesskey "p">
+<!ENTITY searchFilter.label "Filtro de búsqueda: ">
+<!ENTITY searchFilter.accesskey "f">
+<!ENTITY scope.label "Alcance: ">
+<!ENTITY scope.accesskey "c">
+<!ENTITY scopeOneLevel.label "Un nivel">
+<!ENTITY scopeOneLevel.accesskey "L">
+<!ENTITY scopeSubtree.label "Subárbol">
+<!ENTITY scopeSubtree.accesskey "S">
+<!ENTITY return.label "No devolver más que esto">
+<!ENTITY return.accesskey "r">
+<!ENTITY results.label "resultados">
+<!ENTITY offlineText.label "Puede descargar una copia en local de este directorio para poder trabajar con ella en modo 'Sin conexión'.">
+<!ENTITY saslMechanism.label "Método de inicio de sesión: ">
+<!ENTITY saslMechanism.accesskey "m">
+<!ENTITY saslOff.label "Simple">
+<!ENTITY saslOff.accesskey "l">
+<!ENTITY saslGSSAPI.label "Kerberos (GSSAPI)">
+<!ENTITY saslGSSAPI.accesskey "K">
+
+<!ENTITY newDirectoryWidth "36em">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/pref-directory.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/pref-directory.dtd
new file mode 100644
index 0000000000..f908863d8c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/pref-directory.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 pref.ldap.window.title "Servidores de directorio LDAP">
+<!ENTITY directories.label "Servidor de directorio LDAP:">
+<!ENTITY directoriesText.label "Selecionar un servidor de directorio LDAP:">
+<!ENTITY directoriesText.accesskey "S">
+<!ENTITY addDirectory.label "Añadir">
+<!ENTITY addDirectory.accesskey "A">
+<!ENTITY editDirectory.label "Editar">
+<!ENTITY editDirectory.accesskey "e">
+<!ENTITY deleteDirectory.label "Eliminar">
+<!ENTITY deleteDirectory.accesskey "r">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/replicationProgress.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/replicationProgress.properties
new file mode 100644
index 0000000000..2df7622f8c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/addressbook/replicationProgress.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/.
+
+replicationStarted = Comienzo de la réplica…
+changesStarted = Buscando cambios para replicar…
+replicationSucceeded = La répica acabó correctamente.
+replicationFailed = La réplica falló.
+replicationCancelled = Replicación cancelada
+currentCount = Replicando entrada de directorio: %S
+
+downloadButton = Descargar ahora
+downloadButton.accesskey = D
+cancelDownloadButton = Cancelar descarga
+cancelDownloadButton.accesskey = C
+
+directoryTitleNew = Nuevo directorio LDAP
+directoryTitleEdit = Propiedades de %S
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-addressing.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-addressing.dtd
new file mode 100644
index 0000000000..0c34ccd141
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-addressing.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/. -->
+
+<!-- extracted from am-addressing.xul -->
+
+<!-- extracted from am-addressing.xhtml -->
+
+<!ENTITY addressing.label "Redacción y direcciones">
+<!ENTITY addressingGroupTitle.label "Direcciones">
+<!ENTITY addressingText.label "Cuando se busquen direcciones:">
+<!ENTITY useGlobal.label "Utilizar mis preferencias de servidor LDAP globales para esta cuenta">
+<!ENTITY useGlobal.accesskey "U">
+<!ENTITY editDirectories.label "Editar directorios…">
+<!ENTITY editDirectories.accesskey "E">
+<!ENTITY directories.label "Utilizar un servidor LDAP diferente:">
+<!ENTITY directories.accesskey "d">
+<!ENTITY directoriesNone.label "Ninguno">
+
+<!-- am-addressing.xul -->
+
+<!-- am-addressing.xhtml -->
+
+<!ENTITY compositionGroupTitle.label "Redacción">
+<!ENTITY useHtml.label "Redactar mensajes en formato HTML">
+<!ENTITY useHtml.accesskey "R">
+<!ENTITY autoQuote.label "Citar automáticamente el mensaje original al responder">
+<!ENTITY autoQuote.accesskey "C">
+<!ENTITY quoting.label "Al citar,">
+<!ENTITY quoting.accesskey "l">
+<!ENTITY aboveQuote.label "comenzar mi respuesta sobre el texto citado">
+<!ENTITY belowQuote.label "comenzar mi respuesta bajo el texto citado">
+<!ENTITY selectAndQuote.label "seleccionar el texto citado">
+<!ENTITY place.label "y poner mi firma">
+<!ENTITY place.accesskey "f">
+<!ENTITY belowText.label "bajo el texto citado (recomendado)">
+<!ENTITY aboveText.label "Bajo mi respuesta (sobre el texto citado)">
+<!ENTITY includeSigOnReply.label "Incluir firma en las respuestas">
+<!ENTITY includeSigOnReply.accesskey "I">
+<!ENTITY includeSigOnForward.label "Incluir firma en los re-envíos">
+<!ENTITY includeSigOnForward.accesskey "I">
+
+<!ENTITY globalComposingPrefs.label "Preferencias generales de redacción…">
+<!ENTITY globalComposingPrefs.accesskey "P">
+
+<!ENTITY globalAddressingPrefs.label "Preferencias generales de direcciones…">
+<!ENTITY globalAddressingPrefs.accesskey "a">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-advanced.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-advanced.dtd
new file mode 100644
index 0000000000..6995930ed4
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-advanced.dtd
@@ -0,0 +1,28 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-advanced.xul -->
+
+<!-- extracted from am-advanced.xhtml -->
+
+<!ENTITY smtpServer.label "Configuración del servidor de salida (SMTP)">
+
+<!ENTITY smtpDescription.label "Al administrar sus identidades puede usar un servidor de esta lista seleccionándolo como servidor de salida (SMTP), o puede usar el servidor predeterminado seleccionando en esta lista &quot;Usar servidor predeterminado&quot;.">
+
+<!ENTITY smtpListAdd.label "Añadir…">
+<!ENTITY smtpListAdd.accesskey "d">
+<!ENTITY smtpListEdit.label "Editar…">
+<!ENTITY smtpListEdit.accesskey "E">
+<!ENTITY smtpListDelete.label "Eliminar">
+<!ENTITY smtpListDelete.accesskey "m">
+<!ENTITY smtpListSetDefault.label "Establecer predet.">
+<!ENTITY smtpListSetDefault.accesskey "t">
+
+<!ENTITY serverDetails.label "Detalles del servidor seleccionado:">
+<!ENTITY serverDescription.label "Descripción: ">
+<!ENTITY serverName.label "Nombre del servidor: ">
+<!ENTITY serverPort.label "Puerto: ">
+<!ENTITY userName.label "Nombre de usuario: ">
+<!ENTITY connectionSecurity.label "Seguridad de la conexión: ">
+<!ENTITY authMethod.label "Método de identificación: ">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-archiveoptions.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-archiveoptions.dtd
new file mode 100644
index 0000000000..0139479df1
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-archiveoptions.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/. -->
+
+<!-- extracted from am-archiveoptions.xul -->
+
+<!-- extracted from am-archiveoptions.xhtml -->
+
+<!ENTITY dialogTitle.label "Opciones de archivado">
+<!ENTITY archiveGranularityPrefix.label "Al archivar mensajes, colocarlos en:">
+<!ENTITY archiveFlat.label "Una sola carpeta">
+<!ENTITY archiveFlat.accesskey "U">
+<!ENTITY archiveYearly.label "Carpetas archivadas por años">
+<!ENTITY archiveYearly.accesskey "a">
+<!ENTITY archiveMonthly.label "Carpetas archivadas por meses">
+<!ENTITY archiveMonthly.accesskey "m">
+<!ENTITY keepFolderStructure.label "Conservar estructura de carpetas existente de los mensajes archivados">
+<!ENTITY keepFolderStructure.accesskey "e">
+<!ENTITY archiveExample.label "Ejemplo">
+<!ENTITY archiveFolderName.label "Archivos">
+<!ENTITY inboxFolderName.label "Bandeja de entrada">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-copies.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-copies.dtd
new file mode 100644
index 0000000000..19c4ebac0a
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-copies.dtd
@@ -0,0 +1,46 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-copies.xul -->
+
+<!-- extracted from am-copies.xhtml -->
+
+<!ENTITY copyAndFolderTitle.label "Configuración de carpetas y copias">
+<!ENTITY sendingPrefix.label "Al enviar mensajes, automáticamente: ">
+<!ENTITY fccMailFolder.label "Poner una copia en:">
+<!ENTITY fccMailFolder.accesskey "P">
+<!ENTITY fccReplyFollowsParent.label "Colocar respuestas en la carpeta del mensaje al que se responde">
+<!ENTITY fccReplyFollowsParent.accesskey "C">
+<!ENTITY ccAddress.label "Cc a estas direcciones de correo:">
+<!ENTITY ccAddress.accesskey "C">
+<!ENTITY ccAddressList.placeholder "Separar direcciones con comas">
+<!ENTITY bccAddress.label "Bcc a estas direcciones de correo:">
+<!ENTITY bccAddress.accesskey "B">
+<!ENTITY bccAddressList.placeholder "Separar direcciones con comas">
+<!ENTITY saveMessageDlg.label "Mostrar diálogo de confirmación cuando se guarden los mensajes">
+<!ENTITY saveMessageDlg.accesskey "M">
+<!ENTITY sentFolderOn.label "Carpeta &quot;Enviados&quot; en:">
+<!ENTITY sentFolderOn.accesskey "E">
+<!ENTITY sentInOtherFolder.label "Otro:">
+<!ENTITY sentInOtherFolder.accesskey "O">
+<!ENTITY archivesTitle.label "Archivos de mensajes">
+<!ENTITY keepArchives.label "Guardar archivos de mensajes en:">
+<!ENTITY keepArchives.accesskey "G">
+<!ENTITY archiveHierarchyButton.label "Opciones de archivado…">
+<!ENTITY archiveHierarchyButton.accesskey "h">
+<!ENTITY archivesFolderOn.label "Carpeta &quot;Archivos&quot; en:">
+<!ENTITY archivesFolderOn.accesskey "A">
+<!ENTITY archiveInOtherFolder.label "Otro:">
+<!ENTITY archiveInOtherFolder.accesskey "O">
+<!ENTITY specialFolders.label "Borradores y plantillas">
+<!ENTITY keepDrafts2.label "Conservar borradores de mensajes en:">
+<!ENTITY draftsFolderOn.label "Carpeta &quot;Borradores&quot; en:">
+<!ENTITY draftsFolderOn.accesskey "D">
+<!ENTITY draftInOtherFolder.label "Otro:">
+<!ENTITY draftInOtherFolder.accesskey "t">
+<!ENTITY keepTemplates.label "Guardar las plantillas de mensajes en:">
+<!ENTITY templatesFolderOn.label "Carpeta &quot;Plantillas&quot; en:">
+<!ENTITY templatesFolderOn.accesskey "n">
+<!ENTITY templateInOtherFolder.label "Otro:">
+<!ENTITY templateInOtherFolder.accesskey "r">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-e2e.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-e2e.properties
new file mode 100644
index 0000000000..6feb95216e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Cifrado extremo a extremo
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-identities-list.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-identities-list.dtd
new file mode 100644
index 0000000000..3e74e06fa2
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Administre las identidades de esta cuenta. Se usa por omisión la primera identidad.">
+<!ENTITY identitiesListAdd.label "Añadir…">
+<!ENTITY identitiesListAdd.accesskey "A">
+<!ENTITY identitiesListEdit.label "Editar…">
+<!ENTITY identitiesListEdit.accesskey "E">
+<!ENTITY identitiesListDefault.label "Establecer predet.">
+<!ENTITY identitiesListDefault.accesskey "b">
+<!ENTITY identitiesListDelete.label "Eliminar">
+<!ENTITY identitiesListDelete.accesskey "r">
+<!ENTITY identitiesListClose.label "Cerrar">
+<!ENTITY identitiesListClose.accesskey "C">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-identity-edit.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-identity-edit.dtd
new file mode 100644
index 0000000000..991c17e558
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-identity-edit.dtd
@@ -0,0 +1,14 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY identityListDesc.label "Establecer la configuración para esta identidad:">
+
+<!ENTITY settingsTab.label "Configuración">
+<!ENTITY copiesFoldersTab.label "Copias y carpetas">
+<!ENTITY addressingTab.label "Redacción y direcciones">
+
+<!ENTITY publicData.label "Datos públicos">
+<!ENTITY privateData.label "Datos privados">
+<!ENTITY identityAlias.label "Etiqueta de identidad:">
+<!ENTITY identityAlias.accesskey "E">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-im.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-im.dtd
new file mode 100644
index 0000000000..1e33ddca45
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Propiedades de la cuenta">
+<!ENTITY accountWindow.width "360">
+<!ENTITY account.general "General">
+<!ENTITY account.advanced "Opciones avanzadas">
+<!ENTITY account.name "Nombre de usuario:">
+<!ENTITY account.password "Contraseña:">
+<!ENTITY account.alias "Alias:">
+<!ENTITY account.newMailNotification "Avisar si hay correo nuevo">
+<!ENTITY account.autojoin "Canales en los que entrar automáticamente:">
+<!ENTITY account.proxySettings.caption "Configuración de proxy:">
+<!ENTITY account.proxySettings.change.label "Cambiar…">
+<!ENTITY account.proxySettings.change.accessKey "C">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-junk.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-junk.dtd
new file mode 100644
index 0000000000..84acb938f6
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Configuración de correo no deseado">
+<!ENTITY trainingDescription.label "Si está activado, primero deberá enseñar a &brandShortName; a identificar el correo basura usando el botón Basura de la barra de herramientas para señalar los mensajes que son correo basura y los que no. Necesita identificar unos y otros como parte del aprendizaje. Tras ello, &brandShortName; será capaz de marcar el correo basura automáticamente.">
+<!ENTITY level.label "Activar los controles adaptativos de correo no deseado para esta cuenta">
+<!ENTITY level.accesskey "A">
+
+<!ENTITY move.label "Mover nuevos mensajes de correo no deseados a:">
+<!ENTITY move.accesskey "M">
+<!ENTITY junkFolderOn.label "Carpeta de &quot;correo no deseado&quot; en:">
+<!ENTITY junkFolderOn.accesskey "d">
+<!ENTITY otherFolder.label "Otra:">
+<!ENTITY otherFolder.accesskey "O">
+<!ENTITY purge1.label "Eliminar automáticamente correo no deseado con más de">
+<!ENTITY purge1.accesskey "E">
+<!ENTITY purge2.label "días">
+
+<!ENTITY whitelistHeader.label "No marcar automáticamente mensajes como correo basura si el remitente está en: ">
+<!ENTITY whitelistHeader.accesskey "N">
+
+<!ENTITY ispHeadersWarning.label "Si está activado, &brandShortName; considerará automáticamente los mensajes marcados por este clasificador externo como correo basura.">
+<!ENTITY ispHeaders.label "Confiar en las cabeceras de correo no deseado enviadas por: ">
+<!ENTITY ispHeaders.accesskey "C">
+
+<!ENTITY junkClassification.label "Selección">
+<!ENTITY junkActions.label "Destino y retención">
+
+<!ENTITY globalJunkPrefs.label "Preferencias generales de correo basura…">
+<!ENTITY globalJunkPrefs.accesskey "P">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-main.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-main.dtd
new file mode 100644
index 0000000000..c70fe7342c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-main.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/. -->
+
+<!-- extracted from am-main.xhtml -->
+
+<!ENTITY accountTitle.label "Configuración de la cuenta">
+<!ENTITY accountName.label "Nombre de la cuenta:">
+<!ENTITY accountName.accesskey "N">
+<!ENTITY identityTitle.label "Identidad predeterminada">
+<!ENTITY identityDesc.label "Cada cuenta tiene una identidad, que es la información que otras personas verán al leer sus mensajes.">
+<!ENTITY name.label "Su nombre:">
+<!ENTITY name.accesskey "b">
+<!ENTITY email.label "Dirección de correo electrónico:">
+<!ENTITY email.accesskey "D">
+<!ENTITY catchAll.label "Responder desde esta identidad cuando las cabeceras de distribución coinciden:">
+<!ENTITY catchAll.accesskey "d">
+<!ENTITY replyTo.label "Dirección de respuesta:">
+<!ENTITY replyTo.accesskey "s">
+<!ENTITY replyTo.placeholder "Los destinatarios responderán a esta otra dirección">
+<!ENTITY organization.label "Organización:">
+<!ENTITY organization.accesskey "O">
+<!ENTITY signatureText.label "Texto de la firma:">
+<!ENTITY signatureText.accesskey "T">
+<!ENTITY signatureHtml.label "Usar HTML (p.e., &lt;b&gt;negrita&lt;/b&gt;)">
+<!ENTITY signatureHtml.accesskey "L">
+<!ENTITY signatureFile.label "Adjuntar la firma de un archivo (texto, HTML o imagen):">
+<!ENTITY signatureFile.accesskey "H">
+<!ENTITY edit.label "Editar…">
+<!ENTITY choose.label "Elegir…">
+<!ENTITY choose.accesskey "E">
+<!ENTITY editVCard.label "Editar tarjeta…">
+<!ENTITY editVCard.accesskey "a">
+<!ENTITY attachVCard.label "Adjuntar mi tarjeta en los mensajes">
+<!ENTITY attachVCard.accesskey "u">
+
+<!ENTITY manageIdentities.label "Administrar identidades…">
+<!ENTITY manageIdentities.accesskey "M">
+
+<!ENTITY smtpName.label "Servidor de salida (SMTP):">
+<!ENTITY smtpName.accesskey "v">
+<!ENTITY smtpDefaultServer.label "Usar servidor predet.">
+
+<!ENTITY smtpServerEdit.label "Editar servidor SMTP…">
+<!ENTITY smtpServerEdit.accesskey "P">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-mdn.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-mdn.dtd
new file mode 100644
index 0000000000..03129afbd5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-mdn.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 pane.title "Acuses de recibo">
+<!ENTITY useGlobalPrefs.label "Usar las preferencias globales de acuse de recibo para esta cuenta">
+<!ENTITY useGlobalPrefs.accesskey "U">
+<!ENTITY globalReceipts.label "Preferencias generales…">
+<!ENTITY globalReceipts.accesskey "a">
+<!ENTITY useCustomPrefs.label "Personalizar acuse de recibo para esta cuenta">
+<!ENTITY useCustomPrefs.accesskey "P">
+<!ENTITY requestReceipt.label "Al enviar mensajes, solicitar siempre un acuse de recibo">
+<!ENTITY requestReceipt.accesskey "v">
+<!ENTITY receiptArrive.label "Cuando llegue un acuse de recibo:">
+<!ENTITY leaveIt.label "Dejarlo en mi bandeja de entrada">
+<!ENTITY leaveIt.accesskey "D">
+<!ENTITY moveToSent.label "Moverlo a mi carpeta &quot;Enviados&quot;">
+<!ENTITY moveToSent.accesskey "M">
+<!ENTITY requestMDN.label "Cuando reciba una solicitud de acuse de recibo:">
+<!ENTITY returnSome.label "Permitir acuse de recibo para algunos mensajes">
+<!ENTITY returnSome.accesskey "e">
+<!ENTITY never.label "Nunca enviar acuse de recibo">
+<!ENTITY never.accesskey "N">
+<!ENTITY notInToCc.label "Si no estoy en el A. o Cc: del mensaje:">
+<!ENTITY notInToCc.accesskey "T">
+<!ENTITY outsideDomain.label "Si el remitente no está en mi dominio:">
+<!ENTITY outsideDomain.accesskey "s">
+<!ENTITY otherCases.label "En los demás casos:">
+<!ENTITY otherCases.accesskey "o">
+<!ENTITY askMe.label "Preguntarme">
+<!ENTITY alwaysSend.label "Enviar siempre">
+<!ENTITY neverSend.label "No enviar nunca">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-mdn.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-mdn.properties
new file mode 100644
index 0000000000..d8e4b1b405
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-mdn.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-mdn = Acuses de recibo
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-offline.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-offline.dtd
new file mode 100644
index 0000000000..f3a19fc03a
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-offline.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 doNotDownloadPop3Movemail.label "Para ahorrar espacio en disco, no descargar:">
+<!ENTITY doNotDownloadNntp.label "Para ahorrar espacio en disco, no descargar para su uso sin conexión:">
+<!ENTITY doNotDownloadImap.label "Para ahorrar espacio en disco, la descarga de mensajes del servidor y su almacenamiento local para uso sin conexión puede restringirse por antigüedad o tamaño.">
+<!ENTITY allFoldersOffline2.label "Conservar los mensajes en todas las carpetas de esta cuenta en este equipo">
+<!ENTITY allFoldersOffline2.accesskey "v">
+<!ENTITY allFoldersOfflineNote.label "Nota: cambiar esto afecta a todas las carpetas en esta cuenta. Para configurar carpetas individuales, use el botón Avanzado…">
+<!ENTITY offlineNotDownload.label "Mensajes de tamaño superior a">
+<!ENTITY offlineNotDownload.accesskey "M">
+<!ENTITY autosyncNotDownload.label "No descargar mensajes mayores de">
+<!ENTITY autosyncNotDownload.accesskey "c">
+<!ENTITY kb.label "KB">
+<!ENTITY daysOld.label "días de antigüedad">
+<!ENTITY message.label "mensajes más recientes">
+<!ENTITY nntpNotDownloadRead.label "Mensajes leídos">
+<!ENTITY nntpNotDownloadRead.accesskey "l">
+<!ENTITY nntpDownloadMsg.label "Mensajes de más de">
+<!ENTITY nntpDownloadMsg.accesskey "e">
+<!ENTITY retentionCleanup.label "Para recuperar espacio en disco, los mensajes antiguos se pueden eliminar permanentemente.">
+<!ENTITY retentionCleanupImap.label "Para recuperar espacio en disco, los mensajes antiguos pueden eliminarse permanentemente, tanto las copias locales como los originales en el servidor remoto.">
+<!ENTITY retentionCleanupPop.label "Para recuperar espacio en disco, los mensajes antiguos pueden eliminarse permanentemente, incluyendo los originales en el servidor remoto.">
+<!ENTITY retentionKeepMsg.label "Eliminar mensajes con más de">
+<!ENTITY retentionKeepMsg.accesskey "r">
+<!ENTITY retentionKeepAll.label "No eliminar ningún mensaje">
+<!ENTITY retentionKeepAll.accesskey "N">
+<!ENTITY retentionKeepRecent.label "Eliminar todos excepto los">
+<!ENTITY retentionKeepRecent.accesskey "a">
+<!ENTITY retentionApplyToFlagged.label "Conservar siempre los mensajes con estrella">
+<!ENTITY retentionApplyToFlagged.accesskey "i">
+<!ENTITY nntpRemoveMsgBody.label "Eliminar el cuerpo de los mensajes de más de">
+<!ENTITY nntpRemoveMsgBody.accesskey "d">
+<!ENTITY offlineSelectNntp.label "Seleccionar grupos de noticias para su uso sin conexión…">
+<!ENTITY offlineSelectNntp.accesskey "S">
+<!ENTITY offlineImapAdvancedOffline.label "Avanzadas…">
+<!ENTITY offlineImapAdvancedOffline.accesskey "v">
+<!ENTITY syncGroupTitle.label "Sincronización de mensajes">
+<!ENTITY diskspaceGroupTitle.label "Espacio en disco">
+
+<!ENTITY allAutosync.label "Sincronizar todos los mensajes localmente sin importar su antigüedad">
+<!ENTITY allAutosync.accesskey "u">
+<!ENTITY ageAutosyncBefore.label "Sincronizar los">
+<!ENTITY ageAutosync.accesskey "z">
+<!ENTITY ageAutosyncMiddle.label "">
+<!ENTITY dayAgeInterval.label "Días">
+<!ENTITY weekAgeInterval.label "Semanas">
+<!ENTITY monthAgeInterval.label "Meses">
+<!ENTITY yearAgeInterval.label "Años">
+<!ENTITY ageAutosyncAfter.label "más recientes">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-server-advanced.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-server-advanced.dtd
new file mode 100644
index 0000000000..0c8822460d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-server-advanced.dtd
@@ -0,0 +1,29 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY serverAdvanced.label "Configuración avanzada de cuentas">
+<!ENTITY serverDirectory.label "directorio del servidor IMAP:">
+<!ENTITY serverDirectory.accesskey "d">
+<!ENTITY usingSubscription.label "Mostrar sólo las carpetas suscritas">
+<!ENTITY usingSubscription.accesskey "u">
+<!ENTITY dualUseFolders.label "El servidor admite carpetas que contengan sub-carpetas y mensajes">
+<!ENTITY dualUseFolders.accesskey "g">
+<!ENTITY maximumConnectionsNumber.label "Número máximo de conexiones del servidor a la caché">
+<!ENTITY maximumConnectionsNumber.accesskey "M">
+<!ENTITY namespaceDesc.label "Estas preferencias especifican los espacios de nombres en su servidor IMAP">
+<!ENTITY personalNamespace.label "Espacio de nombres personal:">
+<!ENTITY personalNamespace.accesskey "P">
+<!ENTITY publicNamespace.label "Público (compartido):">
+<!ENTITY publicNamespace.accesskey "b">
+<!ENTITY otherUsersNamespace.label "Otros usuarios:">
+<!ENTITY otherUsersNamespace.accesskey "O">
+<!ENTITY overrideNamespaces.label "Permitir que el servidor reemplace estos espacios de nombres">
+<!ENTITY overrideNamespaces.accesskey "A">
+<!ENTITY pop3DeferringDesc.label "Al descargar mensajes del servidor de esta cuenta, usar la siguiente carpeta para guardar los nuevos mensajes:">
+<!ENTITY accountInbox.label "Bandeja de entrada de esta cuenta">
+<!ENTITY accountInbox.accesskey "e">
+<!ENTITY deferToServer.label "Bandeja de entrada para una cuenta distinta">
+<!ENTITY deferToServer.accesskey "c">
+<!ENTITY deferGetNewMail.label "Incluir este servidor al recibir correo nuevo">
+<!ENTITY deferGetNewMail.accesskey "I">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-server-top.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-server-top.dtd
new file mode 100644
index 0000000000..fa73851da5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-server-top.dtd
@@ -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/. -->
+
+<!ENTITY messageStorage.label "Almacenamiento de mensajes">
+<!ENTITY securitySettings.label "Configuración de seguridad">
+<!ENTITY serverSettings.label "Configuración del servidor">
+<!ENTITY serverType.label "Tipo de servidor:">
+<!ENTITY serverName.label "Nombre del servidor:">
+<!ENTITY serverName.accesskey "S">
+<!ENTITY userName.label "Nombre de usuario:">
+<!ENTITY userName.accesskey "N">
+<!ENTITY port.label "Puerto:">
+<!ENTITY port.accesskey "P">
+<!ENTITY serverPortDefault.label "Predet.:">
+<!ENTITY biffStart.label "Buscar nuevos mensajes cada ">
+<!ENTITY biffStart.accesskey "j">
+<!ENTITY biffEnd.label "minutos">
+<!ENTITY useIdleNotifications.label "Permitir notificaciones inmediatas del servidor cuando lleguen nuevos mensajes">
+<!ENTITY useIdleNotifications.accesskey "P">
+<!ENTITY connectionSecurity.label "Seguridad de la conexión:">
+<!ENTITY connectionSecurity.accesskey "u">
+<!ENTITY connectionSecurityType-0.label "Ninguna">
+<!ENTITY connectionSecurityType-1.label "STARTTLS, si está disponible">
+<!ENTITY connectionSecurityType-2.label "STARTTLS">
+<!ENTITY connectionSecurityType-3.label "SSL/TLS">
+<!ENTITY authMethod.label "Método de identificación:">
+<!ENTITY authMethod.accesskey "i">
+<!ENTITY leaveOnServer.label "Dejar los mensajes en el servidor.">
+<!ENTITY leaveOnServer.accesskey "a">
+<!ENTITY headersOnly.label "Descargar sólo los encabezados">
+<!ENTITY headersOnly.accesskey "z">
+<!ENTITY deleteByAgeFromServer.label "Eliminar mensajes del servidor tras">
+<!ENTITY deleteByAgeFromServer.accesskey "o">
+<!ENTITY daysEnd.label "días">
+<!ENTITY deleteOnServer2.label "Hasta que yo los borre">
+<!ENTITY deleteOnServer2.accesskey "b">
+<!ENTITY downloadOnBiff.label "Descargar automáticamente los mensajes nuevos">
+<!ENTITY downloadOnBiff.accesskey "m">
+<!ENTITY deleteMessagePrefix.label "Cuando borre un mensaje:">
+<!ENTITY modelMoveToTrash.label "Moverlo a esta carpeta:">
+<!ENTITY modelMoveToTrash.accesskey "o">
+<!ENTITY modelMarkDeleted.label "Sólo marcarlo como borrado">
+<!ENTITY modelMarkDeleted.accesskey "m">
+<!ENTITY modelDeleteImmediately.label "Eliminarlo inmediatamente">
+<!ENTITY modelDeleteImmediately.accesskey "d">
+<!ENTITY expungeOnExit.label "Limpiar (&quot;Purgar&quot;) la bandeja de entrada al salir">
+<!ENTITY expungeOnExit.accesskey "E">
+<!ENTITY emptyTrashOnExit.label "Vaciar papelera al salir">
+<!ENTITY emptyTrashOnExit.accesskey "v">
+<!ENTITY loginAtStartup.label "Comprobar si hay mensajes nuevos al iniciar">
+<!ENTITY loginAtStartup.accesskey "C">
+<!ENTITY maxMessagesStart.label "Preguntarme antes de descargar más de">
+<!ENTITY maxMessagesStart.accesskey "m">
+<!ENTITY maxMessagesEnd.label "mensajes">
+<!ENTITY alwaysAuthenticate.label "Siempre solicitar identificación cuando se conecte con este servidor">
+<!ENTITY alwaysAuthenticate.accesskey "p">
+<!ENTITY newsrcFilePath1.label "Archivo News.rc:">
+<!ENTITY newsrcPicker1.label "Seleccionar archivo News,rc">
+<!ENTITY abbreviate.label "Mostar los nombres de los grupos de noticas en la carpeta de correo como:">
+<!ENTITY abbreviateOn.label "Nombres completos (Por ejemplo, 'netscape.public.mozilla.mail-news')">
+<!ENTITY abbreviateOff.label "Nombres abreviados (Por ejemplo,'n.p.m.mail-news')">
+<!ENTITY advancedButton.label "Avanzadas…">
+<!ENTITY advancedButton.accesskey "v">
+<!ENTITY serverDefaultCharset2.label "Codificación de texto predeterminada:">
+<!ENTITY localPath1.label "Directorio local:">
+<!ENTITY localFolderPicker.label "Seleccione directorio local">
+<!ENTITY browseFolder.label "Examinar…">
+<!ENTITY browseFolder.accesskey "x">
+<!ENTITY browseNewsrc.label "Examinar…">
+<!ENTITY browseNewsrc.accesskey "e">
+
+<!ENTITY accountTitle.label "Configuración de cuenta">
+<!ENTITY accountSettingsDesc.label "La siguiente cuenta es especial. No tiene identidades asociadas con ella.">
+<!ENTITY storeType.label "Tipo de almacenamiento de mensajes:">
+<!ENTITY storeType.accesskey "T">
+<!ENTITY mboxStore2.label "Archivo por carpeta (mbox)">
+<!ENTITY maildirStore.label "Archivo por mensaje (maildir)">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-serverwithnoidentities.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-serverwithnoidentities.dtd
new file mode 100644
index 0000000000..25d0d10c53
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Nombre de la cuenta:">
+<!ENTITY accountName.accesskey "N">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-smime.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-smime.dtd
new file mode 100644
index 0000000000..a4f95b7013
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-smime.dtd
@@ -0,0 +1,46 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY e2eTitle.label "Cifrado extremo a extremo">
+<!ENTITY e2eLearnMore.label "Saber más">
+
+<!ENTITY e2eEnc.description "Sin cifrado de extremo a extremo los contenidos del mensaje quedan expuestos fácilmente a su proveedor de correo y a la vigilancia masiva.">
+
+<!ENTITY e2eTechPref.description "Tecnología de cifrado preferida:">
+
+<!ENTITY encryptionCert2.message "Certificado personal para cifrado:">
+<!ENTITY digitalSign.certificate.button "Seleccionar…">
+<!ENTITY digitalSign.certificate.accesskey "S">
+<!ENTITY digitalSign.certificate_clear.button "Limpiar">
+<!ENTITY digitalSign.certificate_clear.accesskey "L">
+<!ENTITY encryption.certificate.button "Seleccionar…">
+<!ENTITY encryption.certificate.accesskey "c">
+<!ENTITY encryption.certificate_clear.button "Limpiar">
+<!ENTITY encryption.certificate_clear.accesskey "m">
+<!ENTITY signingGroupTitle.label "Firmado digital">
+
+<!ENTITY signingCert2.message "Certificado personal para la firma digital:">
+
+<!ENTITY sendingDefaults.label "Configuración predeterminada para el envío de mensajes">
+
+<!ENTITY technologyAutomatic.label "Seleccionar automáticamente basándose en las claves o certificados disponibles">
+
+<!ENTITY certificates2.label "S/MIME">
+<!ENTITY manageCerts3.label "Administrar certificados S/MIME">
+<!ENTITY manageCerts3.accesskey "E">
+<!ENTITY manageDevices2.label "Dispositivos de seguridad S/MIME">
+<!ENTITY manageDevices2.accesskey "D">
+
+<!ENTITY technologySMIME.label "Preferir S/MIME">
+<!ENTITY technologyOpenPGP.label "Preferir OpenPGP">
+
+<!ENTITY openpgpKeys.label "OpenPGP">
+
+<!ENTITY certPicker.title "Seleccione certificado">
+<!ENTITY certPicker.info "Certificado:">
+<!ENTITY certPicker.detailsLabel "Detalles del certificado seleccionado:">
+
+<!ENTITY openpgpKey.message "Clave personal para firma digital y cifrado:">
+<!ENTITY openpgpKey.button "Configurar clave personal…">
+<!ENTITY openpgpKey.accesskey "C">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-smime.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-smime.properties
new file mode 100644
index 0000000000..4d8c2db132
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/am-smime.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/.
+
+NoSenderSigningCert = Ha pedido firmar digitalmente este mensaje, pero la aplicación no pudo encontrar el certificado que especificó para firmar en sus preferencias de cuenta de Correo/Noticias o su certificado ha caducado.
+NoSenderEncryptionCert = Ha pedido cifrar este mensaje, pero la aplicación no pudo encontrar el certificado de cifrado que especificó en sus preferencias de cuenta de Correo/Noticias o su certificado ha caducado.
+MissingRecipientEncryptionCert = Ha pedido cifrar este mensaje, pero la aplicación no pudo encontrar un certificado de cifrado para %S.
+ErrorEncryptMail = No se pudo cifrar el mensaje. Compruebe que tiene un certificado válido de correo para cada destinatario y que los certificados indicados en las opciones de cuentas de Correo y Noticias son válidos y de confianza para correo.
+ErrorCanNotSignMail = No se pudo firmar el mensaje. Compruebe que los certificados indicados en las opciones de cuentas de Correo y Noticias para esta cuenta son válidos y de confianza para correo.
+
+NoSigningCert = El administrador de certificados no puede localizar un certificado válido que pueda ser utilizado para firmar digitalmente sus mensajes.
+NoSigningCertForThisAddress = El administrador de certificados no puede localizar un certificado válido que pueda ser utilizado para firmar digitalmente sus mensajes con una dirección de <%S>.
+NoEncryptionCert = El administrador de certificados no puede localizar un certificado válido que otras personas puedan usar para enviarle mensajes cifrados.
+NoEncryptionCertForThisAddress = El administrador de certificados no puede localizar un certificado válido que otras personas puedan usar para enviarle mensajes cifrados a la dirección <%S>.
+
+encryption_needCertWantSame = Debería especificar también un certificado para que lo usen otras personas cuando le envíen mensajes cifrados. ¿Quiere utilizar el mismo certificado para cifrar y descrifrar mensajes enviados a Vd.?
+encryption_wantSame = ¿Quiere utilizar el mismo certificado para cifrar y descifrar mensajes enviados a Vd.?
+encryption_needCertWantToSelect = Debería especificar también un certificado para que lo usen otras personas cuando le envíen mensajes cifrados. ¿Quiere configurar ahora un certificado de cifrado?
+signing_needCertWantSame = Debería especificar también un certificado para firmar digitalmente sus mensajes. ¿Quiere utilizar el mismo certificado para firmar digitalmente sus mensajes?
+signing_wantSame = ¿Quiere utilizar el mismo certificado para firmar digitalmente sus mensajes?
+signing_needCertWantToSelect = Debería especificar también un certificado para firmar digitalmente sus mensajes. ¿Quiere configurar ahora un certificado para firmar digitalmente sus mensajes?
+
+mime_smimeEncryptedContentDesc = Mensaje cifrado S/MIME
+mime_smimeSignatureContentDesc = Firma criptográfica S/MIME
+
+CertInfoIssuedFor = Emitido a:
+CertInfoIssuedBy = Emitido por:
+CertInfoValid = Válido
+CertInfoFrom = de
+CertInfoTo = a
+CertInfoPurposes = Propósitos
+CertInfoEmail = Correo electrónico
+CertInfoStoredIn = Guardado en:
+NicknameExpired = (caducado)
+NicknameNotYetValid = (aún no válido)
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/appUpdate.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/appUpdate.properties
new file mode 100644
index 0000000000..d196a1ab1b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/appUpdate.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/.
+
+updateAvailableTitle = Hay disponible una nueva actualización de %S.
+updateAvailableMessage = Actualice %S para obtener lo más reciente en velocidad y privacidad.
+updateAvailablePrimaryButtonLabel = Descargar actualización
+updateAvailablePrimaryButtonAccessKey = D
+updateAvailableSecondaryButtonLabel = Ahora no
+updateAvailableSecondaryButtonAccessKey = N
+
+updateManualTitle = %S no puede actualizarse a la última versión.
+updateManualMessage = Descargue una copia actualizada de %S y le ayudaremos a instalarlo.
+updateManualPrimaryButtonLabel = Descargar %S
+updateManualPrimaryButtonAccessKey = D
+updateManualSecondaryButtonLabel = Ahora no
+updateManualSecondaryButtonAccessKey = N
+
+updateUnsupportedTitle = %S no es capaz de actualizarse a la última versión.
+updateUnsupportedMessage = La última versión de %S no es compatible con su sistema.
+updateUnsupportedPrimaryButtonLabel = Saber más
+updateUnsupportedPrimaryButtonAccessKey = S
+updateUnsupportedSecondaryButtonLabel = Cerrar
+updateUnsupportedSecondaryButtonAccessKey = C
+
+updateRestartTitle = Reinicie para actualizar %S.
+updateRestartMessage = Tras un reinicio rápido, %S restaurará todas sus ventanas y pestañas abiertas.
+updateRestartPrimaryButtonLabel = Reiniciar
+updateRestartPrimaryButtonAccessKey = R
+updateRestartSecondaryButtonLabel = Ahora no
+updateRestartSecondaryButtonAccessKey = N
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/appleMailImportMsgs.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/appleMailImportMsgs.properties
new file mode 100644
index 0000000000..26abe1d5c6
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/appleMailImportMsgs.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/.
+
+ApplemailImportName = Apple Mail
+
+ApplemailImportDescription = Importar correo local de Mac OS X Mail
+
+ApplemailImportMailboxSuccess = Se han importado correctamente los mensajes locales de %S
+
+ApplemailImportMailboxBadparam = Se ha producido un error interno al importar. Vuelva a intentarlo.
+
+ApplemailImportMailboxConverterror = Ha sucedido un error al importar mensajes de %S. No se han importado mensajes.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/baseMenuOverlay.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/baseMenuOverlay.dtd
new file mode 100644
index 0000000000..2b7373214b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/baseMenuOverlay.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 helpMenu.label "Ayuda">
+<!ENTITY helpMenu.accesskey "u">
+<!ENTITY helpMenuWin.label "Ayuda">
+<!ENTITY helpMenuWin.accesskey "u">
+<!ENTITY aboutProduct2.label "Acerca de &brandShorterName;">
+<!ENTITY aboutProduct2.accesskey "A">
+<!ENTITY productHelp.label "Ayuda de &brandShortName;">
+<!ENTITY productHelp.accesskey "b">
+
+<!ENTITY productHelp.commandkey "VK_F1">
+<!ENTITY productHelpMac.commandkey "?">
+<!ENTITY productHelpMac.modifiers "accel">
+
+<!ENTITY helpKeyboardShortcuts.label "Atajos de teclado">
+<!ENTITY helpKeyboardShortcuts.accesskey "d">
+
+<!ENTITY helpFeedbackPage.label "Enviar opinión…">
+<!ENTITY helpFeedbackPage.accesskey "E">
+
+<!ENTITY helpShowTour2.label "Paseo por &brandShorterName;">
+<!ENTITY helpShowTour2.accesskey "P">
+
+<!ENTITY helpGetInvolvedPage.label "Involucrarse">
+<!ENTITY helpGetInvolvedPage.accesskey "c">
+
+<!ENTITY helpDonationsPage.label "Hacer una donación">
+<!ENTITY helpDonationsPage.accesskey "H">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/beckyImportMsgs.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/beckyImportMsgs.properties
new file mode 100644
index 0000000000..69f2d4ed95
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/beckyImportMsgs.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/.
+#
+# The following are used by the becky import code to display status/error
+# and informational messages
+
+BeckyImportName = Becky! Internet Mail
+
+BeckyImportDescription = Importar correo local de Becky! Internet Mail
+
+BeckyImportMailboxSuccess = Se han importado correctamente los mensajes locales de %S.
+
+BeckyImportAddressSuccess = Libreta de direcciones importada
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/charsetTitles.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/charsetTitles.properties
new file mode 100644
index 0000000000..68885d4beb
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/charsetTitles.properties
@@ -0,0 +1,80 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Rule of this file:
+## 1. key should always be in lower case ascii so we can do case insensitive
+## comparison in the code faster.
+
+## Format of this file:
+## charset_name.title = a_title - specifies the human readable title for
+## this charset
+
+iso-8859-1.title = Occidental (ISO-8859-1)
+iso-8859-2.title = Centroeuropeo (ISO-8859-2)
+iso-8859-3.title = Sur de Europa (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 = Occidental (ISO-8859-15)
+iso-8859-16.title = Rumano (ISO-8859-16)
+windows-1250.title = Centroeuropeo (Windows-1250)
+windows-1252.title = Occidental (Windows-1252)
+windows-1254.title = Turco (Windows-1254)
+windows-1257.title = Báltico (Windows-1257)
+macintosh.title = Occidental (MacRoman)
+x-mac-ce.title = Centroeuropeo (MacCE)
+x-mac-turkish.title = Turco (MacTurkish)
+x-mac-croatian.title = Croata (MacCroatian)
+x-mac-romanian.title = Rumano (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 = Chino tradicional (Big5)
+big5-hkscs.title = Chino tradicional (Big5-HKSCS)
+gb2312.title = Chino simplificado (GB2312)
+gbk.title = Chino 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 = Griego (ISO-8859-7)
+windows-1253.title = Griego (Windows-1253)
+x-mac-greek.title = Griego (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 = Hebreo visual (ISO-8859-8)
+iso-8859-8-i.title = Hebreo (ISO-8859-8-I)
+windows-1255.title = Hebreo (Windows-1255)
+windows-1256.title = Árabe (Windows-1256)
+x-user-defined.title = Definida por el usuario
+ibm866.title = Cirílico/Ruso (IBM-866)
+gb18030.title = Chino simplificado (GB18030)
+x-mac-arabic.title = Árabe (MacArabic)
+x-mac-farsi.title = Farsi (MacFarsi)
+x-mac-hebrew.title = Hebreo (MacHebreo)
+x-mac-devanagari.title = Hindú (MacDevanagari)
+x-mac-gujarati.title = Gujarati (MacGujarati)
+x-mac-gurmukhi.title = Gurmukhi (MacGurmukhi)
+
+chardet.off.title = Desactivar autodetección
+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 = Chino tradicional
+chardet.zhcn_parallel_state_machine.title = Chino simplificado
+chardet.zh_parallel_state_machine.title = Chino
+chardet.cjk_parallel_state_machine.title = Este asiático
+chardet.ruprob.title = Ruso
+chardet.ukprob.title = Ucraniano
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/chat.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/chat.dtd
new file mode 100644
index 0000000000..5e8c6a83c5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 conectados">
+<!ENTITY offlineContactsHeader.label "Contactos desconectados">
+<!ENTITY conversationsHeader.label "Conversaciones">
+<!ENTITY searchResultConversation.label "Resultados de la búsqueda">
+<!ENTITY chat.noConv.title "Las conversaciones se mostrarán aquí.">
+<!ENTITY chat.noConv.description "Use la lista de contactos en el panel izquierdo para comenzar una conversación.">
+<!ENTITY chat.noPreviousConv.description "&brandShortName; no tiene actualmente ninguna conversación previa guardada de este contacto.">
+<!ENTITY chat.noAccount.title "No ha configurado aún una cuenta de chat.">
+<!ENTITY chat.noAccount.description "Deje que &brandShortName; le guíe a través del proceso de configuración de su cuenta de chat.">
+<!ENTITY chat.accountWizard.button "Comenzar">
+<!ENTITY chat.noConnectedAccount.title "Sus cuentas de chat no están conectadas.">
+<!ENTITY chat.noConnectedAccount.description "Puede conectarse a ellas desde el diálogo 'Estado de chat':">
+<!ENTITY chat.showAccountManager.button "Mostrar estado del chat">
+
+<!ENTITY chat.participants "Participantes:">
+<!ENTITY chat.previousConversations "Conversaciones previas:">
+<!ENTITY chat.ongoingConversation "Conversación en curso">
+
+<!ENTITY openConversationCmd.label "Iniciar una conversación">
+<!ENTITY openConversationCmd.accesskey "I">
+<!ENTITY closeConversationCmd.label "Cerrar conversación">
+<!ENTITY closeConversationCmd.accesskey "C">
+<!ENTITY aliasCmd.label "Renombrar">
+<!ENTITY aliasCmd.accesskey "R">
+<!ENTITY deleteCmd.label "Eliminar contacto">
+<!ENTITY deleteCmd.accesskey "E">
+
+<!ENTITY openConversationButton.tooltip "Iniciar una conversación">
+<!ENTITY closeConversationButton.tooltip "Cerrar conversación">
+
+<!ENTITY addBuddyButton.label "Añadir contacto">
+<!ENTITY joinChatButton.label "Unirse al chat">
+<!ENTITY chatAccountsButton.label "Mostrar cuentas">
+
+<!ENTITY status.available "Disponible">
+<!ENTITY status.unavailable "No disponible">
+<!ENTITY status.offline "Sin conexión">
+
+<!ENTITY openLinkCmd.label "Abrir enlace…">
+<!ENTITY openLinkCmd.accesskey "A">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/chat.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/chat.properties
new file mode 100644
index 0000000000..02759f074e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Volver a la conversación actual
+# LOCALIZATION NOTE (startAConversationWith.button):
+# %S is replaced with the display name of a contact.
+startAConversationWith.button=Comenzar una conversación con %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 quiere chatear contigo
+buddy.authRequest.allow.label=Permitir
+buddy.authRequest.allow.accesskey=P
+buddy.authRequest.deny.label=Denegar
+buddy.authRequest.deny.accesskey=D
+
+## LOCALIZATION NOTE (buddy.verificationRequest):
+# Strings used in a notification bar at the top of the chat tab when someone
+# sends a verification request for end-to-end encryption keys.
+# %S is replaced with the display name of the user or, if this is to verify a
+# session of yourself, a string that identifies the session.
+buddy.verificationRequest.label=%S quiere verificar las identidades de los demás
+buddy.verificationRequest.allow.label=Iniciar verificación
+buddy.verificationRequest.allow.accesskey=I
+buddy.verificationRequest.deny.label=Denegar
+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=¿Eliminar %S?
+
+# LOCALIZATION NOTE (buddy.deletePrompt.message):
+# %1$S will be replaced by the name of a buddy (either the alias
+# followed by the username between parenthesis if an alias is set, or
+# only the username otherwise).
+# %2$S will be the name of the protocol on which this buddy is removed
+# (for example: AIM, MSN, Google Talk).
+#
+# Please find a wording that will keep the username as close as
+# possible to the beginning of the string, because this is the
+# important information that an user should see when looking quickly
+# at this prompt.
+buddy.deletePrompt.message=%1$S se eliminará permanentemente de su lista de amigos de %2$S si continúa.
+
+# 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=&Eliminar
+
+displayNameEmptyText=Nombre mostrado
+userIconFilePickerTitle=Seleccionar el nuevo icono...
+
+# 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á escribiendo…
+chat.hasStoppedTyping=ha dejado de escribir.
+# 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á escribiendo.
+chat.contactHasStoppedTyping=%S ha dejado de escribir.
+
+# LOCALIZATION NOTE (unknownCommand):
+# This is shown when an unknown command (/foo) is attempted. %S is the command.
+unknownCommand=%S no es una orden admitida. Escriba /help para ver la lista de órdenes.
+
+#LOCALIZATION NOTE
+# These are special entries in the log tree for the corresponding days.
+log.today=Hoy
+log.yesterday=Ayer
+
+#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=Última semana
+
+# 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=Nuevo mensaje 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… (y #1 mensaje más);%1$S… (y #1 más mensajes)
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/configEditorOverlay.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/configEditorOverlay.dtd
new file mode 100644
index 0000000000..3d78799d68
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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/es-ES/chrome/es-ES/locale/es-ES/messenger/converterDialog.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/converterDialog.dtd
new file mode 100644
index 0000000000..6dc6cad6f7
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Convertidor de tipo de almacenamiento de mensajes">
+<!ENTITY converterDialog.continueButton "Continuar">
+<!ENTITY converterDialog.cancelButton "Cancelar">
+<!ENTITY converterDialog.finishButton "Terminar">
+<!ENTITY converterDialog.complete "La conversión se ha completado. &brandShortName; se reiniciará a continuación.">
+<!ENTITY converterDialog.error "Conversión fallida.">
+
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/converterDialog.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/converterDialog.properties
new file mode 100644
index 0000000000..2f0f78d112
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/converterDialog.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/.
+
+converterDialog.warning = Los mensajes en la cuenta %1$S se convertirán a continuación al formato %2$S. %3$S se reiniciará una vez se complete la conversión.
+
+converterDialog.message = Convirtiendo la cuenta %1$S a %2$S…
+
+converterDialog.warningForDeferredAccount = %1$S está delegada a %2$S. Cuentas delegadas a %3$S: %4$S. Los mensajes en las cuentas %5$S se convertirán a continuación al formato %6$S. %7$S se reiniciará una vez se complete la conversión.
+
+converterDialog.warningForDeferredToAccount = Cuentas delegadas a %1$S: %2$S. Los mensajes en las cuentas %3$S se convertirán a continuación al formato %4$S. %5$S se reiniciará una vez se complete la conversión.
+
+converterDialog.messageForDeferredAccount = Convirtiendo las cuentas %1$S a %2$S…
+
+converterDialog.percentDone = %1$S%% hecho
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/custom.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/custom.properties
new file mode 100644
index 0000000000..9b474dced4
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = La cabecera que ha introducido contiene un carácter no válido, tal como ':', un carácter no imprimible, un carácter no-ASCII, o un carácter con el octavo bit activado. Elimine el carácter no válido y vuelva a intentarlo.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/customizeToolbar.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/customizeToolbar.dtd
new file mode 100644
index 0000000000..c22ca7b5e0
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 herramientas">
+<!ENTITY dialog.dimensions "width: 106ch; height: 36em;">
+<!ENTITY instructions.description "Puede añadir o eliminar elementos arrastrándolos a o desde las barras de herramientas.">
+<!ENTITY show.label "Mostrar:">
+<!ENTITY iconsAndText.label "Iconos y texto">
+<!ENTITY icons.label "Iconos">
+<!ENTITY text.label "Texto">
+<!ENTITY iconsBesideText.label "Iconos junto al texto">
+<!ENTITY useSmallIcons.label "Usar iconos pequeños">
+<!ENTITY restoreDefaultSet.label "Restaurar conjunto predeterminado">
+<!ENTITY showTitlebar2.label "Barra de título">
+<!ENTITY extraDragSpace2.label "Espacio de separación">
+<!ENTITY saveChanges.label "Hecho">
+<!ENTITY undoChanges.label "Deshacer cambios">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/customizeToolbar.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/customizeToolbar.properties
new file mode 100644
index 0000000000..cebaf1f7f0
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Nueva barra de herramientas
+enterToolbarName = Introduzca un nombre para esta barra de herramientas:
+enterToolbarDup = Ya hay una barra de herramientas con el nombre "%S". Introduzca otro nombre.
+enterToolbarBlank = Debe introducir un nombre para crear una barra de herramientas.
+separatorTitle = Separador
+springTitle = Espacio flexible
+spacerTitle = Espacio
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/downloadheaders.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/downloadheaders.dtd
new file mode 100644
index 0000000000..7c2ed43807
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/downloadheaders.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 all.label "Descargar todas las cabeceras">
+<!ENTITY all.accesskey "D">
+<!--LOCALIZATION NOTE (download.label):
+ consider the download.label and headers.label as a single sentence
+ with the number of headers to be downloaded inserted between them:
+ EXAMPLE: "Download" <some number> "headers"
+ Either label could be set to null ("") if required grammatically.
+-->
+
+<!ENTITY download.label "Descargar">
+<!ENTITY download.accesskey "a">
+<!ENTITY headers.label "Cabeceras">
+<!ENTITY headers.accesskey "r">
+<!ENTITY mark.label "Marcar las cabeceras restantes como leídas">
+<!ENTITY mark.accesskey "M">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/editContactOverlay.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/editContactOverlay.dtd
new file mode 100644
index 0000000000..9e537cca82
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Eliminar">
+<!ENTITY editContactPanelDeleteContact.accesskey "l">
+
+<!ENTITY editContactName.label "Nombre:">
+<!ENTITY editContactName.accesskey "N">
+
+<!ENTITY editContactEmail.label "Correo electrónico:">
+<!ENTITY editContactEmail.accesskey "E">
+
+<!ENTITY editContactAddressBook.label "Libreta de direcciones:">
+<!ENTITY editContactAddressBook.accesskey "L">
+
+<!ENTITY editContactPanelDone.label "Hecho">
+<!ENTITY editContactPanelDone.accesskey "H">
+
+<!ENTITY contactMoveDisabledWarning.description "No puede cambiar la libreta de direcciones porque el contacto está en una lista de correo.">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/editContactOverlay.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/editContactOverlay.properties
new file mode 100644
index 0000000000..bfe5713db3
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 detalles
+editDetailsAccessKey = t
+viewDetailsLabel = Ver detalles
+viewDetailsAccessKey = t
+
+deleteContactTitle = Eliminar contacto
+deleteContactMessage = ¿Seguro que quiere eliminar este contacto?
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/fieldMapImport.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/fieldMapImport.dtd
new file mode 100644
index 0000000000..8110c54310
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Siguiente">
+<!ENTITY fieldMapImport.next.accesskey "S">
+<!ENTITY fieldMapImport.previous.label "Anterior">
+<!ENTITY fieldMapImport.previous.accesskey "a">
+<!ENTITY fieldMapImport.text "Use subir y bajar para elegir el orden los campos de la libreta de direcciones de la izquierda para importar en la parte derecha. Desmarque los elementos que no quiera importar.">
+<!ENTITY fieldMapImport.up.label "Subir">
+<!ENTITY fieldMapImport.up.accesskey "U">
+<!ENTITY fieldMapImport.down.label "Mover abajo">
+<!ENTITY fieldMapImport.down.accesskey "o">
+<!ENTITY fieldMapImport.fieldListTitle "Campos de la libreta de direcciones">
+<!ENTITY fieldMapImport.dataTitle "Registros de datos a importar:">
+<!ENTITY fieldMapImport.skipFirstRecord.label "El primer registro contiene nombres de campo">
+<!ENTITY fieldMapImport.skipFirstRecord.accessKey "p">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/filter.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/filter.properties
new file mode 100644
index 0000000000..66cfe96b08
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/filter.properties
@@ -0,0 +1,70 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+mustSelectFolder = Debe seleccionar una carpeta de destino.
+enterValidEmailAddress = Introducir una dirección de correo válida a la que reenviar.
+pickTemplateToReplyWith = Elegir una plantilla para responder.
+mustEnterName = Debe dar un nombre al filtro.
+cannotHaveDuplicateFilterTitle = Nombre de filtro duplicado
+cannotHaveDuplicateFilterMessage = El nombre de filtro que ha elegido ya existe. Elija un nombre distinto.
+mustHaveFilterTypeTitle = No se ha seleccionado un evento de filtro.
+mustHaveFilterTypeMessage = Debe seleccionar al menos un evento para cuando se aplique este filtro. Si temporalmente no necesita que el filtro lleve a cabo ningún evento, desmarque su estado activado en el diálogo Filtros de mensaje.
+deleteFilterConfirmation = ¿Seguro que desea eliminar los filtros seleccionados?
+matchAllFilterName = Hacer coincidir todos los mensajes
+filterListBackUpMsg = Sus filtros no funcionan porque el archivo msgFilterRules.dat, que contiene sus filtros, no se puede leer. Se creará un nuevo archivo msgFilterRules.dat y se hará una copia del antiguo en el mismo directorio, llamado rulesbackup.dat.
+customHeaderOverflow = Ha excedido el límite de 50 cabeceras personalizadas. Elimine una o más cabeceras personalizadas y vuelva a intentarlo.
+filterCustomHeaderOverflow = Sus filtros han excedido el límite de 50 cabeceras personalizadas. Edite el archivo msgFilterRules.dat, que contiene sus filtros, para utilizar menos cabeceras personalizadas.
+invalidCustomHeader = Uno de sus fitros utiliza una cabecera personalizada que contiene un carácter no válido, tal como ':', un carácter no imprimible, un carácter no-ASCII, o un carácter con el octavo bit activado. Edite el archivo msgFilterRules.dat, que contiene sus filtros, para eliminar los caracteres no válidos de sus cabeceras personalizadas.
+continueFilterExecution = Ha fallado la aplicación del filtro %S. ¿Quiere continuar aplicando filtros?
+promptTitle = Filtros en ejecución
+promptMsg = En este momento está procesando el filtrado de mensajes.\n¿Quiere continuar aplicando filtros?
+stopButtonLabel = Parar
+continueButtonLabel = Continuar
+cannotEnableIncompatFilter = Este filtro probablemente ha sido creado por una versión más moderna o incompatible de %S. No puede habilitar este filtro porque no sabemos cómo aplicarlo.
+dontWarnAboutDeleteCheckbox = No volver a preguntarme
+copyToNewFilterName = Copia de %S
+contextPeriodic.label = Periódicamente, cada minuto;Periódicamente, cada #1 minutos
+
+filterFailureWarningPrefix = Acción de filtro fallida: "%1$S" con el código de error=%2$S al intentar:
+filterFailureSendingReplyError = Error al enviar la respuesta
+filterFailureSendingReplyAborted = Envío de respuesta interrumpido
+filterFailureMoveFailed = Movimiento fallido
+filterFailureCopyFailed = Copia fallida
+
+filterFailureAction = Ha fallado la aplicación del filtro
+
+searchTermsInvalidTitle = Términos de búsqueda no válidos
+searchTermsInvalidRule = Este filtro no puede guardarse porque el término de búsqueda "%1$S %2$S" no es válido en el contexto actual.
+filterActionOrderExplanation = Cuando un mensaje cumpla este filtro las acciones se ejecutarán en este orden:\n\n
+filterActionOrderTitle = Orden real de las acciones
+filterActionItem = %1$S. %2$S %3$S\n
+
+filterCountVisibleOfTotal = %1$S de %2$S
+filterCountItems = #1 elemento; #1 elementos
+junkLogDetectStr = Detectado correo no deseado de %1$S - %2$S de fecha %3$S
+logMoveStr = movido mensaje con id = %1$S a %2$S
+logCopyStr = copiado mensaje con id = %1$S a %2$S
+filterLogLine = [%1$S] %2$S
+filterMessage = Mensaje del filtro "%1$S": %2$S
+filterLogDetectStr = Aplicado filtro "%1$S" al mensaje de %2$S - %3$S de fecha %4$S
+filterMissingCustomAction = Falta la acción personalizada
+filterAction2 = prioridad cambiada
+filterAction3 = borrado
+filterAction4 = marcado como leído
+filterAction5 = conversación eliminada
+filterAction6 = conversación marcada para observación
+filterAction7 = con estrella
+filterAction8 = etiquetado
+filterAction9 = contestado
+filterAction10 = reenviado
+filterAction11 = ejecución detenida
+filterAction12 = borrado del servidor POP3
+filterAction13 = mantenido en el servidor POP3
+filterAction14 = calificación de correo no deseado
+filterAction15 = cuerpo recuperado del servidor POP3
+filterAction16 = copiado a carpeta
+filterAction17 = etiquetado
+filterAction18 = sub-conversación ignorada
+filterAction19 = marcado como no leído
+filterAutoNameStr = %1$S %2$S: %3$S
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/folderProps.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/folderProps.dtd
new file mode 100644
index 0000000000..018b15cc1b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/folderProps.dtd
@@ -0,0 +1,68 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY folderProps.windowtitle.label "Propiedades">
+
+<!ENTITY generalInfo.label "Información general">
+<!ENTITY folderRebuildSummaryFileTip2.label "Reconstruir el archivo índice resumen">
+<!ENTITY folderRebuildSummaryFile2.label "Reparar carpeta">
+<!ENTITY folderRebuildSummaryFile2.accesskey "R">
+<!ENTITY folderRebuildSummaryFile.explanation "Algunas veces el archivo índice de la carpeta (.msf) se daña y puede parecer que algunos mensajes válidos desaparecen mientras que otros eliminados siguen mostrándose; reparar la carpeta puede corregir estos problemas.">
+<!ENTITY folderIncludeInGlobalSearch.label "Incluir mensajes en esta carpeta en los resultados de la búsqueda global">
+<!ENTITY folderIncludeInGlobalSearch.accesskey "I">
+
+<!ENTITY retention.label "Política de retención">
+<!ENTITY retentionUseAccount.label "Usar los datos de mi cuenta">
+<!ENTITY retentionUseAccount.accesskey "i">
+<!ENTITY daysOld.label "días de antigüedad">
+<!ENTITY message.label "mensajes más recientes">
+<!ENTITY retentionCleanup.label "Para recuperar espacio en disco, los mensajes antiguos se pueden eliminar permanentemente.">
+<!ENTITY retentionCleanupImap.label "Para recuperar espacio en disco, los mensajes antiguos pueden eliminarse permanentemente, tanto las copias locales como los originales en el servidor remoto.">
+<!ENTITY retentionCleanupPop.label "Para recuperar espacio en disco, los mensajes antiguos pueden eliminarse permanentemente, incluyendo los originales en el servidor remoto.">
+<!ENTITY retentionDeleteMsg.label "Eliminar mensajes con más de">
+<!ENTITY retentionDeleteMsg.accesskey "m">
+<!ENTITY retentionKeepAll.label "No eliminar ningún mensaje">
+<!ENTITY retentionKeepAll.accesskey "A">
+<!ENTITY retentionKeepRecent.label "Eliminar todos excepto los">
+<!ENTITY retentionKeepRecent.accesskey "x">
+<!ENTITY retentionApplyToFlagged.label "Conservar siempre los mensajes con estrella">
+<!ENTITY retentionApplyToFlagged.accesskey "e">
+
+<!ENTITY folderSynchronizationTab.label "Sincronización">
+<!ENTITY folderCheckForNewMessages2.label "Al obtener mensajes nuevos de esta cuenta, comprobar siempre esta carpeta">
+<!ENTITY folderCheckForNewMessages2.accesskey "b">
+
+<!ENTITY offlineFolder.check.label "Seleccionar esta carpeta para usar sin conexión">
+<!ENTITY offlineFolder.check.accesskey "S">
+<!ENTITY offlineFolder.button.label "Descargar ahora">
+<!ENTITY offlineFolder.button.accesskey "D">
+
+<!ENTITY selectofflineNewsgroup.check.label "Seleccionar este grupo de noticias para usar sin conexión">
+<!ENTITY selectofflineNewsgroup.check.accesskey "o">
+<!ENTITY offlineNewsgroup.button.label "Descargar ahora">
+<!ENTITY offlineNewsgroup.button.accesskey "D">
+
+<!ENTITY folderProps.name.label "Nombre:">
+<!ENTITY folderProps.name.accesskey "N">
+<!ENTITY folderProps.color.label "Color del icono:">
+<!ENTITY folderProps.color.accesskey "I">
+<!ENTITY folderProps.reset.tooltip "Restaurar color predeterminado">
+<!ENTITY folderProps.location.label "Ubicación:">
+<!ENTITY folderProps.location.accesskey "U">
+
+<!ENTITY folderSharingTab.label "Compartir">
+<!ENTITY privileges.button.label "Privilegios…">
+<!ENTITY privileges.button.accesskey "P">
+<!ENTITY permissionsDesc.label "Tiene los siguientes permisos:">
+<!ENTITY folderOtherUsers.label "Otros con acceso a esta carpeta:">
+<!ENTITY folderType.label "Tipo de carpeta:">
+
+<!ENTITY folderQuotaTab.label "Cuota">
+<!ENTITY folderQuotaUsage.label "Uso:">
+<!ENTITY folderQuotaStatus.label "Estado:">
+
+<!ENTITY numberOfMessages.label "Número de mensajes:">
+<!ENTITY numberUnknown.label "desconocido">
+<!ENTITY sizeOnDisk.label "Tamaño en disco:">
+<!ENTITY sizeUnknown.label "desconocido">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/folderWidgets.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/folderWidgets.properties
new file mode 100644
index 0000000000..1e8ec060dd
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/folderWidgets.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/.
+
+globalInbox = Bandeja de entrada global (%S)
+verboseFolderFormat = %1$S en %2$S
+chooseFolder = Elegir carpeta…
+chooseAccount = Elegir una cuenta…
+noFolders = No hay carpetas disponibles
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/folderpane.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/folderpane.dtd
new file mode 100644
index 0000000000..67661400f8
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/folderpane.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 nameColumn.label "Nombre">
+<!ENTITY unreadColumn.label "No leídos">
+<!ENTITY totalColumn.label "Total">
+<!ENTITY folderSizeColumn.label "Tamaño">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/gloda.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/gloda.properties
new file mode 100644
index 0000000000..83be0c09ad
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Cuenta
+gloda.message.attr.account.includeLabel=almacenada en cualquiera de:
+gloda.message.attr.account.excludeLabel=no almacenada en:
+gloda.message.attr.account.remainderLabel=otras cuentas:
+gloda.message.attr.account.mustMatchLabel=debe estar en #1
+gloda.message.attr.account.cantMatchLabel=no puede estar en #1
+
+# LOCALIZATION NOTE (gloda.message.attr.folder.*): Stores the message folder in
+# which the message is stored.
+gloda.message.attr.folder.facetNameLabel=Carpeta
+gloda.message.attr.folder.includeLabel=almacenada en cualquiera de:
+gloda.message.attr.folder.excludeLabel=no almacenada en:
+gloda.message.attr.folder.remainderLabel=otras carpetas:
+gloda.message.attr.folder.mustMatchLabel=debe estar en #1
+gloda.message.attr.folder.cantMatchLabel=no puede estar en #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 mí
+
+# LOCALIZATION NOTE (gloda.message.attr.toMe.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.toMe.facetNameLabel=A mí
+
+# LOCALIZATION NOTE (gloda.message.attr.involves.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.involves.facetNameLabel=Gente
+gloda.message.attr.involves.includeLabel=involucrando a cualquiera de:
+gloda.message.attr.involves.excludeLabel=no involucrando:
+gloda.message.attr.involves.remainderLabel=otros participantes:
+gloda.message.attr.involves.mustMatchLabel=debe involucrar a #1
+gloda.message.attr.involves.cantMatchLabel=no puede involucrar a #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=Fecha
+
+# 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=Adjuntos
+
+# 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 correo
+gloda.message.attr.mailing-list.noneLabel=Ninguno
+gloda.message.attr.mailing-list.includeLabel=recibido en cualquiera de:
+gloda.message.attr.mailing-list.excludeLabel=no recibido en ninguna de:
+gloda.message.attr.mailing-list.remainderLabel=otras listas de correo:
+gloda.message.attr.mailing-list.mustMatchLabel=debe estar en #1
+gloda.message.attr.mailing-list.cantMatchLabel=no puede estar en #1
+gloda.message.attr.mailing-list.mustMatchSomeLabel=debe estar en una lista de correo
+gloda.message.attr.mailing-list.mustMatchNoneLabel=no puede estar en una lista de correo
+
+# 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=Ninguna
+gloda.message.attr.tag.includeLabel=etiquetado cualquiera de:
+gloda.message.attr.tag.excludeLabel=sin etiquetar:
+gloda.message.attr.tag.remainderLabel=otras etiquetas:
+gloda.message.attr.tag.mustMatchLabel=debe estar etiquetado con #1
+gloda.message.attr.tag.cantMatchLabel=no puede estar etiquetado con #1
+gloda.message.attr.tag.mustMatchSomeLabel=debe estar etiquetado
+gloda.message.attr.tag.mustMatchNoneLabel=no puede estar etiquetado
+
+# 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=Con estrella
+
+# LOCALIZATION NOTE (gloda.message.attr.read.*): Stores whether the user has
+# read the message or not.
+gloda.message.attr.read.facetNameLabel=Leído
+
+# 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=Respondido 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=Re-enviado
+
+# LOCALIZATION NOTE (gloda.mimetype.category.*.label): Map categories of MIME
+# types defined in MimeTypeCategories 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=Archivos
+gloda.mimetype.category.documents.label=Documentos
+gloda.mimetype.category.images.label=Imágenes
+# 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=Medios (audio, vídeo)
+gloda.mimetype.category.pdf.label=Archivos 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=Otros
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/glodaComplete.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/glodaComplete.properties
new file mode 100644
index 0000000000..6caf7271ca
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/glodaComplete.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/.
+
+glodaComplete.messagesTagged.label = Mensajes etiquetados con: #1
+
+glodaComplete.messagesMentioning.label = Mensajes que mencionan: #1
+
+glodaComplete.messagesMentioningMany.label = Mensajes que mencionan: #1
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/glodaFacetView.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/glodaFacetView.dtd
new file mode 100644
index 0000000000..371b731af3
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/glodaFacetView.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 glodaFacetView.filters.label "Filtros">
+
+<!ENTITY glodaFacetView.loading.label "Buscando…">
+
+<!ENTITY glodaFacetView.empty.label "No hay mensajes que cumplan su búsqueda">
+
+<!ENTITY glodaFacetView.pageMore.label "Más »">
+
+<!ENTITY glodaFacetView.openEmailAsList.label "Mostrar resultados en lista">
+
+<!ENTITY glodaFacetView.openEmailAsList.tooltip "Mostrar todos los mensajes de correo del conjunto activo en una pestaña nueva">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/glodaFacetView.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/glodaFacetView.properties
new file mode 100644
index 0000000000..2b0b8a3fc8
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/glodaFacetView.properties
@@ -0,0 +1,57 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+glodaFacetView.tab.query.label = Buscar
+
+glodaFacetView.tab.search.label = Buscar
+
+glodaFacetView.search.label2 = Resultados de:
+
+glodaFacetView.constraints.query.fulltext.label = Buscando #1
+glodaFacetView.constraints.query.fulltext.andJoinWord = y
+glodaFacetView.constraints.query.fulltext.orJoinWord = o
+
+glodaFacetView.constraints.query.initial = Buscando mensajes
+
+glodaFacetView.constraints.query.involves.label = involucrando a #1
+
+glodaFacetView.constraints.query.tagged.label = etiquetado:
+
+
+glodaFacetView.facets.mode.top.listAllLabel = Listar el #1;Listar los #1
+
+glodaFacetView.facets.included.fallbackLabel = incluyendo cualquiera de:
+glodaFacetView.facets.excluded.fallbackLabel = excluyendo:
+glodaFacetView.facets.remainder.fallbackLabel = otro:
+
+glodaFacetView.facets.mustMatchLabel.fallbackLabel = debe coincidir con #1
+glodaFacetView.facets.mustMatchNoneLabel.fallbackLabel = no puede tener un valor
+
+glodaFacetView.facets.cantMatchLabel.fallbackLabel = no puede coincidir con #1
+glodaFacetView.facets.mustMatchSomeLabel.fallbackLabel = debe tener un valor
+
+glodaFacetView.facets.mayMatchLabel.fallbackLabel = eliminar restricción
+glodaFacetView.facets.mayMatchAnyLabel.fallbackLabel = eliminar restricción
+
+glodaFacetView.facets.noneLabel = Ninguno
+
+glodaFacetView.facets.filter.attachmentTypes.allLabel = Cualquier tipo
+
+glodaFacetView.result.message.fromLabel = de:
+
+glodaFacetView.result.message.toLabel = a:
+
+glodaFacetView.result.message.noSubject = (sin asunto)
+
+glodaFacetView.results.header.countLabel.NMessages = #1;#1
+glodaFacetView.results.header.countLabel.ofN = de #1;de #1
+glodaFacetView.results.header.countLabel.grouping = #1 #2
+
+glodaFacetView.results.message.timeline.label = Alternar línea de tiempo
+glodaFacetView.results.message.sort.relevance2 = Ordenar por relevancia
+glodaFacetView.results.message.sort.date2 = Ordenar por fecha
+
+glodaFacetView.results.message.recipientSeparator = ,\u0020
+
+glodaFacetView.results.message.andOthers = \u0020y #1 más; y #1 más
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/imAccountWizard.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/imAccountWizard.dtd
new file mode 100644
index 0000000000..1ca49e81e5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Asistente de cuentas de chat">
+
+<!ENTITY accountProtocolTitle.label "Red de chat">
+<!ENTITY accountProtocolInfo.label "Elija la red de su cuenta de chat.">
+<!ENTITY accountProtocolField.label "Red:">
+<!ENTITY accountProtocolGetMore.label "Obtener más…">
+
+<!ENTITY accountUsernameTitle.label "Nombre de usuario">
+<!ENTITY accountUsernameDuplicate.label "¡Esta cuenta ya está configurada!">
+
+<!ENTITY accountPasswordTitle.label "Contraseña">
+<!ENTITY accountPasswordInfo.label "Introduzca su contraseña en el campo de debajo.">
+<!ENTITY accountPasswordField.label "Contraseña:">
+<!ENTITY accountPasswordManager.label "La contraseña introducida aquí se guardará en el administrador de contraseñas. Deje esta casilla vacía si quiere que se le solicite su contraseña cada vez que se conecte a ella.">
+
+<!ENTITY accountAdvancedTitle.label "Opciones avanzadas">
+<!ENTITY accountAdvancedInfo.label "Puede saltarse este paso si lo desea.">
+<!ENTITY accountAdvanced.newMailNotification.label "Avisar si hay correo nuevo">
+<!ENTITY accountAliasGroupbox.caption "Apodo local">
+<!ENTITY accountAliasField.label "Alias:">
+<!ENTITY accountAliasInfo.label "Esto sólo se mostrará en sus conversaciones cuando hable, no en la lista de sus amigos.">
+<!ENTITY accountProxySettings.caption "Configuración de proxy">
+<!ENTITY accountProxySettings.change.label "Cambiar…">
+<!ENTITY accountProxySettings.change.accessKey "C">
+
+<!ENTITY accountSummaryTitle.label "Resumen">
+<!ENTITY accountSummaryInfo.label "A continuación se muestra un resumen de la información que ha introducido. Compruébela antes de que se cree la cuenta.">
+<!ENTITY accountSummary.connectNow.label "Conectar a esta cuenta ahora.">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/imAccounts.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/imAccounts.properties
new file mode 100644
index 0000000000..1a9335ca06
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/imAccounts.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/.
+
+protoOptions = Opciones de %S
+accountUsername = Nombre de usuario:
+accountColon = %S:
+accountUsernameInfo = Introduzca el nombre de usuario de su cuenta %S.
+accountUsernameInfoWithDescription = Introduzca el nombre de usuario (%1$S) de su cuenta de %2$S.
+
+account.connection.error = Error: %S
+account.connection.errorUnknownPrpl = No existe el plugin de protocolo '%S'.
+account.connection.errorEnteringPasswordRequired = Es necesario introducir una contraseña para conectarse con esta cuenta.
+account.connection.errorCrashedAccount = Se ha producido un fallo de programa al conectarse a esta cuenta.
+account.connection.progress = Conectando: %S…
+account.connecting = Conectando…
+account.connectedForSeconds = Conectado desde hace unos segundos.
+account.connectedForDouble = Conectado durante %1$S %2$S y %3$S %4$S.
+account.connectedForSingle = Conectado aproximadamente %1$S %2$S.
+account.reconnectInDouble = Reconexión en %1$S %2$S y %3$S %4$S.
+account.reconnectInSingle = Reconexión en %1$S %2$S.
+
+requestAuthorizeTitle = Solicitud de autorización
+requestAuthorizeAllow = &Permitir
+requestAuthorizeDeny = &Denegar
+requestAuthorizeText = %S le ha añadido a su lista de amigos; ¿quiere permitirle verle a Vd.?
+
+accountsManager.notification.button.accessKey = C
+accountsManager.notification.button.label = Conectar ahora
+accountsManager.notification.userDisabled.label = Ha desactivado las conexiones automáticas.
+accountsManager.notification.safeMode.label = Se ha ignorado la configuración de conexión automática porque la aplicación se está ejecutando en modo seguro.
+accountsManager.notification.startOffline.label = Se ha ignorado la configuración de conexión automática porque la aplicación se ha iniciado en modo sin conexión.
+accountsManager.notification.crash.label = La última ejecución terminó inesperadamente al conectar. Las conexiones automáticas han sido desactivadas para darle la posibilidad de editar su configuración.
+accountsManager.notification.singleCrash.label = Una ejecución anterior salió inesperadamente mientras se conectaba a una cuenta nueva o modificada. Esta conexión se ha omitido para que pueda modificar su configuración.;Una ejecución anterior salió inesperadamente mientras se conectaba a #1 cuentas nuevas o modificadas. Estas conexiones se han omitido para que pueda modificar sus configuraciones.
+accountsManager.notification.other.label = La conexión automática ha sido desactivada.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/imapMsgs.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/imapMsgs.properties
new file mode 100644
index 0000000000..63d5226cf2
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 en la cuenta %S
+
+# Status - opening folder
+imapStatusSelectingMailbox=Abriendo carpeta %S…
+
+# Status - create folder
+imapStatusCreatingMailbox=Creando carpeta…
+
+# 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=Eliminando carpeta %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=Renombrando carpeta %S…
+
+# Status - looking for mailboxes
+imapStatusLookingForMailbox=Buscando carpetas…
+
+# 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=Suscribiéndose a la carpeta %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=Cancelando suscripción a la carpeta %S…
+
+# Status - searching imap folder
+imapStatusSearchMailbox=Buscando carpeta…
+
+# Status - closing a folder
+imapStatusCloseMailbox=Cerrando carpeta…
+
+# Status - compacting a folder
+imapStatusExpungingMailbox=Comprimiendo carpeta…
+
+# Status - logging out
+imapStatusLoggingOut=Cerrando sesión…
+
+# Status - checking server capabilities
+imapStatusCheckCompat=Comprobando las características del servidor de correo…
+
+# Status - logging on
+imapStatusSendingLogin=Enviando información de conexión…
+
+# Status - auth logon
+imapStatusSendingAuthLogin=Enviando información de conexión…
+
+imapDownloadingMessage=Descargando mensaje…
+
+# LOCALIZATION NOTE (imapGettingACLForFolder): Do not translate the word "ACL" below.
+imapGettingACLForFolder=Obteniendo carpeta ACL…
+
+imapGettingServerInfo=Obteniendo información sobre el servidor…
+
+imapGettingMailboxInfo=Obteniendo información sobre el buzón…
+
+imapEmptyMimePart=Esta parte del cuerpo del mensaje se descargará bajo demanda.
+
+# 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=Descargando cabecera de mensaje %1$S de %2$S en %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=Descargando marca de mensaje %1$S de %2$S en %3$S…
+
+imapDeletingMessages=Eliminando mensajes…
+
+imapDeletingMessage=Eliminando mensaje…
+
+# 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=Moviendo mensajes a %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=Moviendo mensaje a %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=Copiando mensajes a %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=Copiando mensaje a %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=Descargando mensaje %1$S de %2$S en %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=Encontrada la carpeta: %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=Introduzca su contraseña para %1$S en %2$S:
+
+# LOCALIZATION NOTE (imapServerNotImap4): Do not translate the word "IMAP4" below.
+imapServerNotImap4=El servidor de correo %S no es un servidor de correo 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=Introduzca su contraseña para %1$S
+
+imapUnknownHostError=No se pudo conectar con el servidor %S.
+imapOAuth2Error=Fallo de identificación al conectarse al servidor %S.
+
+imapConnectionRefusedError=No se ha podido conectar al servidor de correo %S: la conexión ha sido rechazada.
+
+imapNetTimeoutError=La conexión al servidor %S ha superado el tiempo de espera máximo.
+
+imapTlsError=Ha ocurrido un error de TLS que no puede ser ignorado. Error de negociación o probablemente la versión del certificado usado por el servidor %S sea incompatible.
+
+# Status - no messages to download
+imapNoNewMessages=No hay mensajes nuevos en el servidor.
+
+imapDefaultAccountName=Correo para %S
+
+imapSpecialChar2=El carácter %S está reservado en este servidor IMAP. Elija otro nombre.
+
+imapPersonalSharedFolderTypeName=Carpeta personal
+
+imapPublicFolderTypeName=Carpeta pública
+
+imapOtherUsersFolderTypeName=Carpeta de otro usuario
+
+imapPersonalFolderTypeDescription=Esta es una carpeta de correo personal. No está compartida.
+
+imapPersonalSharedFolderTypeDescription=Esta es una carpeta de correo personal. Ha sido compartida.
+
+imapPublicFolderTypeDescription=Esta es una carpeta pública.
+
+imapOtherUsersFolderTypeDescription=Esta es una carpeta de correo compartida por el usuario '%S'.
+
+imapAclFullRights=Control total
+
+imapAclLookupRight=Buscar
+
+imapAclReadRight=Leer
+
+imapAclSeenRight=Cambiar estado Leído/No leído
+
+imapAclWriteRight=Escribir
+
+imapAclInsertRight=Insertar (copiar en)
+
+imapAclPostRight=Enviar
+
+imapAclCreateRight=Crear subcarpeta
+
+imapAclDeleteRight=Eliminar mensajes
+
+imapAclAdministerRight=Administrar carpeta
+
+imapServerDoesntSupportAcl=Este servidor no admite carpetas compartidas.
+
+imapAclExpungeRight=Eliminar completamente
+
+imapServerDisconnected= El servidor %S ha cortado la conexión. Puede que el servidor se haya caído o que haya un problema en la red.
+
+# LOCALIZATION NOTE (autoSubscribeText): %1$S is the imap folder.
+imapSubscribePrompt=¿Quiere suscribirse a %1$S?
+
+imapServerDroppedConnection=No es posible conectar a su servidor IMAP. Puede que haya superado el número máximo de \
+conexiones a este servidor. Si es así, utilice el cuadro de diálogo de configuraciones \
+avanzadas del servidor IMAP para reducir el número de conexiones cacheadas.
+
+# 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=La información de cuota no está disponible porque la carpeta no está abierta.
+
+# The imap capability response reports that QUOTA is not supported.
+imapQuotaStatusNotSupported=Este servidor no incluye la característica de cuotas.
+
+# The getqutaroot command succeeded but reported no quota information.
+imapQuotaStatusNoQuota2=Esta carpeta no proporciona información de cuota.
+
+# Folder properties were requested by the user (right-click) before the getquotaroot
+# command was sent.
+imapQuotaStatusInProgress=Información de cuota no disponible aún.
+
+# Out of memory
+imapOutOfMemory=La aplicación se ha quedado sin memoria.
+
+# 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=Copiando mensaje %1$S de %2$S a %3$S…
+
+# LOCALIZATION NOTE (imapMoveFolderToTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+imapMoveFolderToTrash=¿Seguro que quiere eliminar la carpeta '%S'?
+
+# LOCALIZATION NOTE (imapDeleteNoTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+imapDeleteNoTrash=Eliminar esta carpeta no puede deshacerse y eliminará todos los mensajes que contiene y sus subcarpetas. ¿Aún está seguro de que quiere eliminar la carpeta '%S'?
+
+imapDeleteFolderDialogTitle=Eliminar carpeta
+
+imapDeleteFolderButtonLabel=&Eliminar carpeta
+
+# LOCALIZATION NOTE (imapAuthChangeEncryptToPlainSSL): %S is the server hostname
+imapAuthChangeEncryptToPlainSSL=El servidor IMAP %S no parece admitir contraseñas cifradas. Si acaba de configurar esta cuenta, pruebe a cambiar el 'Método de identificación' a 'Contraseña normal' en 'Configuración de cuentas | Configuración del servidor'. Si solía funcionar y ahora de pronto falla, contacte con su proveedor o administrador de correo.
+
+# LOCALIZATION NOTE (imapAuthChangePlainToEncrypt): %S is the server hostname
+imapAuthChangePlainToEncrypt=El servidor IMAP %S no permite contraseñas sin cifrar. Intente cambiar a 'Contraseña cifrada' como 'Método de identificación' en la 'Configuración de cuentas | Configuración del servidor'.
+
+# LOCALIZATION NOTE (imapAuthChangeEncryptToPlainNoSSL): %S is the server hostname
+imapAuthChangeEncryptToPlainNoSSL=El servidor IMAP %S no parece admitir contraseñas cifradas. Si acaba de configurar la cuenta, pruebe a cambiar el 'Método de identificación' a 'Contraseña, transmitida de forma insegura' en la 'Configuración de cuentas | Configuración del servidor'. Si solía funcionar y ahora de pronto falla, es un indicio de que alguien podría estar robándole la contraseña.
+
+# LOCALIZATION NOTE (imapAuthMechNotSupported): %S is the server hostname
+imapAuthMechNotSupported=El servidor IMAP %S no admite el método de identificación seleccionado. Cambie el 'Método de identificación' en la 'Configuración de cuentas | Configuración del servidor'.
+
+# LOCALIZATION NOTE (imapAuthGssapiFailed): %S is the server hostname
+imapAuthGssapiFailed=El tique Kerberos/GSSAPI no ha sido aceptado por el servidor IMAP %S. Compruebe que ha iniciado sesión en el dominio 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=La orden actual no se ejecutó con éxito. El servidor de correo de la cuenta %1$S respondió: %2$S
+
+# LOCALIZATION NOTE (imapFolderCommandFailed): Do not translate the word %S below.
+# Place the word %1$S in your translation where the name of the account should appear.
+# Place the word %2$S in your translation where the name of the folder should appear.
+# Place the word %3$S in your translation where the server response should appear.
+imapFolderCommandFailed=La operación actual en '%2$S' no se ejecutó con éxito. El servidor de correo de la cuenta %1$S respondió: %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 de la cuenta %1$S: %2$S
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/importDialog.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/importDialog.dtd
new file mode 100644
index 0000000000..d49d92f91f
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 todo">
+<!ENTITY importAll.accesskey "I">
+<!ENTITY importMail.label "Correo">
+<!ENTITY importMail.accesskey "C">
+<!ENTITY importFeeds.label "Suscripciones a canales">
+<!ENTITY importFeeds.accesskey "S">
+<!ENTITY importAddressbook.label "Libretas de direcciones">
+<!ENTITY importAddressbook.accesskey "L">
+<!ENTITY importSettings.label "Configuración">
+<!ENTITY importSettings.accesskey "u">
+<!ENTITY importFilters.label "Filtros">
+<!ENTITY importFilters.accesskey "F">
+
+<!ENTITY importTitle.label "Asistente de importación de &brandShortName;">
+<!ENTITY importShortDesc.label "Importar correo, libretas de direcciones, configuraciones y filtros de otros programas">
+
+<!ENTITY importDescription1.label "Este asistente importará mensajes de correo, entradas de libretas de direcciones, suscripciones a canales, preferencias y filtros de otros programas de correo y formatos comunes de libretas de direcciones en &brandShortName;.">
+<!ENTITY importDescription2.label "Cuando hayan sido importados, podrá acceder a ellos desde el correo de &brandShortName;.">
+
+<!ENTITY selectDescription.label "Seleccione el tipo de archivo que le gustaría importar:">
+<!ENTITY selectDescriptionB.label "Seleccione una cuenta existente o cree una cuenta nueva:">
+<!ENTITY selectDescription.accesskey "P">
+<!ENTITY acctName.label "Nombre:">
+<!ENTITY acctName.accesskey "N">
+<!ENTITY noModulesFound.label "No se ha encontrado aplicación o archivo de donde importar datos.">
+
+<!ENTITY back.label "&lt; Atrás">
+<!ENTITY forward.label "Siguiente &gt;">
+<!ENTITY finish.label "Terminar">
+<!ENTITY cancel.label "Cancelar">
+
+<!ENTITY select.label "o seleccione el tipo de datos a importar:">
+
+<!ENTITY title.label "Puesto">
+<!ENTITY processing.label "Importando…">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/importMsgs.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/importMsgs.properties
new file mode 100644
index 0000000000..e89c314821
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/importMsgs.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/.
+
+# The following are used by the import code to display status/error
+# and informational messages
+
+2000 = No se encontraron libretas de direcciones para importar.
+
+2001 = No se ha podido importar la libreta de direcciones: error de inicialización.
+
+2002 = Imposible importar la libreta de direcciones: no se pudo crear la conversación de importación.
+
+2003 = Error importando %S: no se ha podido crear una libreta de direcciones.
+
+2004 = No se encontraron buzones a importar
+
+2005 = No se han podido importar los buzones. Error de inicialización
+
+2006 = No se han podido importar los buzones. No se pudo crear un hilo de proceso para importar
+
+2007 = No se han podido importar los buzones. Fue imposible crear objetos intermedios para los buzones de destino
+
+2008 = Error creando buzones de destino. No se pudo encontrar el buzón %S
+
+2009 = Error importando buzón %S. No se ha podido crear un buzón de destino
+
+2010 = No se ha podido crear una carpeta para importar el correo
+
+2100 = Nombre
+
+2101 = Apellidos
+
+2102 = Nombre mostrado
+
+2103 = Apodo
+
+2104 = Dirección de correo electrónico principal
+
+2105 = Dirección de correo electrónico secundaria
+
+2106 = Teléfono (Trabajo)
+
+2107 = Teléfono particular
+
+2108 = Fax
+
+2109 = Buscapersonas
+
+2110 = Teléfono móvil
+
+2111 = Dirección personal
+
+2112 = Dirección personal 2
+
+2113 = Ciudad donde vive
+
+2114 = Provincia
+
+2115 = Código postal
+
+2116 = País de residencia
+
+2117 = Dirección de trabajo
+
+2118 = Dirección de trabajo 2
+
+2119 = Ciudad (Trabajo)
+
+2120 = Provincia (Trabajo)
+
+2121 = Código postal (Trabajo)
+
+2122 = País (Trabajo)
+
+2123 = Puesto
+
+2124 = Departamento
+
+2125 = Organización
+
+2126 = Página web 1
+
+2127 = Página web 2
+
+2128 = Año de nacimiento
+
+2129 = Mes de nacimiento
+
+2130 = Día de nacimiento
+
+2131 = Personalizado 1
+
+2132 = Personalizado 2
+
+2133 = Personalizado 3
+
+2134 = Personalizado 4
+
+2135 = Notas
+
+2136 = Nombre en pantalla
+
+ImportAlreadyInProgress = Operación de importación en curso. Vuelva a intentarlo cuando la operación actual haya terminado.
+
+ImportSettingsBadModule = No se ha podido cargar el módulo de configuración
+ImportSettingsNotFound = No se encontró la configuración. Compruebe que la aplicación esté instalada en el ordenador.
+ImportSettingsFailed = Ocurrió un error al importar la configuración. Algunos, o todos, los datos podrían no haberse importado.
+ImportSettingsSuccess = Se ha importado la configuración de %S
+
+ImportMailBadModule = No se ha podido cargar el módulo para importar correo
+ImportMailNotFound = No se encontró correo para importar. Compruebe que la aplicación de correo está correctamente instalada en este ordenador.
+ImportEmptyAddressBook = No se puede importar la libreta de direcciones vacía %S.
+ImportMailFailed = Ocurrió un error importando correo de %S
+ImportMailSuccess = El correo fue importado correctamente de %S
+
+ImportAddressBadModule = No se ha podido cargar el módulo para importar libretas de direcciones.
+ImportAddressNotFound = No se encontró ningún libro para importar. Compruebe que la aplicación seleccionada está correctamente instalada o que el formato del archivo sea correcto.
+ImportAddressFailed = Ha sucedido un error al importar direcciones de %S.
+ImportAddressSuccess = Se han importado con éxito las direcciones de %S.
+
+ImportFiltersBadModule = No se puede cargar el módulo de importación de filtros.
+ImportFiltersFailed = Ha sucedido un error al importar los filtros de %S.
+ImportFiltersSuccess = Filtros de %S importados con éxito.
+ImportFiltersPartial = Filtros de %S importados parcialmente. Advertencias a continuación:
+
+MailProgressMeterText = Convirtiendo buzones de correo de %S
+AddrProgressMeterText = Convirtiendo libretas de direcciones de %S
+
+ImportSelectSettings = Seleccione archivo de configuración
+ImportSelectMailDir = Seleccione el directorio para el correo
+ImportSelectAddrDir = Seleccione el directorio de la libreta de direcciones
+ImportSelectAddrFile = Seleccione el fichero de la libreta de direcciones
+
+DefaultFolderName = Correo importado
+ImportModuleFolderName = Importar %S
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/joinChat.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/joinChat.dtd
new file mode 100644
index 0000000000..da94e86666
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Unirse al chat">
+<!ENTITY name.label "Sala">
+<!ENTITY optional.label "(opcional)">
+<!ENTITY account.label "Cuenta">
+<!ENTITY autojoin.label "Unirse automáticamente a esta sala de chat">
+<!ENTITY autojoin.accesskey "U">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/junkLog.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/junkLog.dtd
new file mode 100644
index 0000000000..642d1eb5b0
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Registro de correo basura adaptativo">
+<!ENTITY adaptiveJunkLogInfo.label "Registro de la actividad de control de correo basura adaptativo.">
+<!ENTITY clearLog.label "Limpiar registro">
+<!ENTITY clearLog.accesskey "L">
+<!ENTITY closeLog.label "Cerrar">
+<!ENTITY closeLog.accesskey "C">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/localMsgs.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/localMsgs.properties
new file mode 100644
index 0000000000..e4d009f8e7
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/localMsgs.properties
@@ -0,0 +1,140 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the local mail code to display progress/status/error messages
+#
+
+# LOCALIZATION NOTE(pop3ErrorDialogTitle): Do not translate the word "%S"
+# below. Place the word %S where the account name should appear.
+pop3ErrorDialogTitle=Error en la cuenta %S
+
+# LOCALIZATION NOTE (pop3EnterPasswordPromptTitleWithUsername): Do not translate the
+# word %1$S. Place the word %1$S where the user name should appear.
+pop3EnterPasswordPromptTitleWithUsername=Introduzca su contraseña 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=Introduzca su contraseña para %1$S en %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=Introduzca una nueva contraseña para el usuario %1$S en %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=Descargando mensaje %1$S de %2$S…
+
+# Status - connecting to host
+hostContact=Servidor contactado, enviando información de inicio de sesión…
+
+# Status - no messages to download
+noNewMessages=No hay mensajes nuevos.
+
+# 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=Recibidos %1$S de %2$S mensajes
+
+# 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=Construyendo archivo de resumen de %S…
+
+# Status - parsing folder
+localStatusDocumentDone=Hecho
+
+# Status - pop3 server error
+#LOCALIZATION NOTE (pop3ServerError): Do not translate POP3 in the following line.
+pop3ServerError=Se ha producido un error en la conexión el servidor de correo POP3.
+
+# Status - pop3 user name failed
+pop3UsernameFailure=Se produjo un error al enviar el nombre de usuario.
+
+# Status - password failed
+#LOCALIZATION NOTE (pop3PasswordFailed): Do not translate "%1$S" below.
+# Place the word %1$S where the user name should appear.
+pop3PasswordFailed=El envío de la contraseña para el usuario %1$S no se completó con éxito.
+
+# Status - write error occurred
+pop3MessageWriteError=No se puede guardar el mensaje en el buzón de correo. Compruebe que tiene permiso de escritura en el directorio y suficiente espacio en disco para copiar el buzón de correo.
+
+# Status - retr failure from the server
+pop3RetrFailure=El comando RETR no se completó con éxito. Error al recuperar el mensaje.
+
+# Status - password undefined
+pop3PasswordUndefined=Error al obtener la contraseña de correo.
+
+# Status - username undefined
+pop3UsernameUndefined=No ha especificado el usuario para este servidor. Indique uno en el menú de configuración de la cuenta y vuelva a intentarlo.
+
+# Status - list failure
+pop3ListFailure=El comando LIST no se completó con éxito. Error al obtener el ID y tamaño de un mensaje.
+
+# Status - delete error
+pop3DeleFailure=El comando DELE no se completó con éxito. Error al marcar un mensaje como eliminado.
+
+# Status - stat failed
+pop3StatFail=El comando STAT no se completó con éxito. Error al obtener el número de mensajes y sus tamaños.
+
+#LOCALIZATION NOTE (pop3ServerSaid): Do not remove the leading space during translation.
+pop3ServerSaid= El servidor de correo %S respondió:
+
+#LOCALIZATION NOTE (pop3TempServerError): %S is where the POP3 server name will appear.
+pop3TempServerError=Error temporal de %S al recuperar nuevos mensajes. \
+La operación se volverá a intentar la próxima vez que se busquen nuevos mensajes.
+
+copyingMessagesStatus=Copiando %S de %S mensajes a %S
+
+movingMessagesStatus=Moviendo %S de %S mensajes a %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=La cuenta %S está siendo procesada. Espere hasta que termine el proceso para obtener los mensajes.
+
+pop3TmpDownloadError=Hubo un error al descargar el siguiente mensaje: \nDe: %S\n Asunto: %S\n Puede que este mensaje contenga un virus o que no haya suficiente espacio en disco. ¿Saltarse este mensaje?
+
+# 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=El servidor de correo POP3 (%S) no admite UIDL ni XTND XLST, necesario para implementar las opciones ``Dejar en el servidor'', ``Tamaño máximo de mensaje'' o ``Descargar sólo cabeceras''. Para descargar su mensaje, desactive estas opciones en la configuración de servidor de su servidor de correo en la ventana Configuración de cuentas.
+
+# 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=El servidor de correo POP3 (%S) no admite el comando TOP. Si el servidor no lo admite, no se puede implementar la preferencia ``Tamaño máximo de mensaje'' o ``Descargar sólo cabeceras''. Esta opción se ha desactivado y todos los mensajes se recibirán sin tener en cuenta su tamaño.
+
+nsErrorCouldNotConnectViaTls=No se puede establecer una conexión TLS con el servidor POP3. El servidor puede estar caído o configurado incorrectamente. Verifique la configuración correcta en las opciones de servidor de su servidor de correo en la ventana Configuración de cuentas y vuelva a intentarlo.
+
+# LOCALIZATION NOTE (pop3MoveFolderToTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+pop3MoveFolderToTrash=¿Seguro que quiere eliminar la carpeta '%S'?
+
+pop3DeleteFolderDialogTitle=Eliminar carpeta
+
+pop3DeleteFolderButtonLabel=&Eliminar carpeta
+
+pop3AuthInternalError=Error interno de estado durante la identificación ante el servidor POP3. Éste es un error interno e inesperado en la aplicación, informe del mismo como un bug.
+
+pop3AuthChangeEncryptToPlainNoSSL=Este servidor POP3 no parece admitir contraseñas cifradas. Si acaba de configurar la cuenta, pruebe a cambiar el 'Método de identificación' a 'Contraseña, transmitida de forma insegura' en la 'Configuración de cuentas | Configuración del servidor'. Si solía funcionar y ahora de pronto falla, es un indicio de que alguien podría estar robándole la contraseña.
+
+pop3AuthChangeEncryptToPlainSSL=Este servidor POP3 no parece admitir contraseñas cifradas. Si acaba de configurar esta cuenta, pruebe a cambiar el 'Método de identificación' a 'Contraseña normal' en 'Configuración de cuentas | Configuración del servidor'. Si solía funcionar y ahora de pronto falla, contacte con su proveedor o administrador de correo.
+
+pop3AuthChangePlainToEncrypt=Este servidor POP3 no admite contraseñas sin cifrar. Intente cambiar el 'Método de identificación' a 'Contraseña cifrada' en la 'Configuración de cuentas | Configuración del servidor'.
+
+# Authentication server caps and pref don't match
+pop3AuthMechNotSupported=El servidor no admite el método de identificación seleccionado. Cambie el 'Método de identificación' en la 'Configuración de cuentas | Configuración del servidor'.
+
+# Status - Could not log in to GSSAPI, and it was the only method
+pop3GssapiFailure=El tique Kerberos/GSSAPI no ha sido aceptado por el servidor POP. Compruebe que ha iniciado sesión en el dominio Kerberos/GSSAPI.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailEditorOverlay.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailEditorOverlay.dtd
new file mode 100644
index 0000000000..f6cdfc9fbd
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "g">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailOverlay.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailOverlay.dtd
new file mode 100644
index 0000000000..5128457736
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Mensaje">
+<!ENTITY newMessageCmd.accesskey "m">
+
+<!ENTITY newContactCmd.label "Contacto de la libreta de direcciones…">
+<!ENTITY newContactCmd.accesskey "C">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailViewList.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailViewList.dtd
new file mode 100644
index 0000000000..a01d4ea4be
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailViewList.dtd
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgViewPickerOverlay.dtd UI for showing various views on a folder -->
+
+<!ENTITY mailViewListTitle.label "Personalizar las vistas de mensajes">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailViewSetup.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailViewSetup.dtd
new file mode 100644
index 0000000000..ae210ab982
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailViewSetup.dtd
@@ -0,0 +1,10 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgViewPickerOverlay.dtd UI for showing various views on a folder -->
+
+<!ENTITY mailViewSetupTitle.label "Configuración de vistas de mensajes">
+<!ENTITY mailViewHeading.label "Nombre de la vista de mensajes:">
+<!ENTITY mailViewHeading.accesskey "e">
+<!ENTITY searchTermCaption.label "Cuando se selecciona esta vista, mostrar sólo los mensajes que:">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailviews.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mailviews.properties
new file mode 100644
index 0000000000..745eabda30
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Gente que conozco
+mailViewRecentMail = Correo reciente
+mailViewLastFiveDays = Últimos 5 días
+mailViewNotJunk = Legítimo
+mailViewHasAttachments = Tiene adjuntos
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/markByDate.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/markByDate.dtd
new file mode 100644
index 0000000000..9df7af10de
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 mensajes como leídos por fecha">
+<!ENTITY markByDateLower.label "Marcar mensajes como leídos desde:">
+<!ENTITY markByDateLower.accesskey "d">
+<!ENTITY markByDateUpper.label "Hasta:">
+<!ENTITY markByDateUpper.accesskey "T">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messenger.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messenger.dtd
new file mode 100644
index 0000000000..b1baa8326f
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Carpeta…">
+<!ENTITY newFolderCmd.accesskey "c">
+<!ENTITY closeTabCmd2.label "Cerrar pestaña">
+<!ENTITY closeTabCmd2.accesskey "C">
+<!ENTITY closeOtherTabsCmd2.label "Cerrar las otras pestañas">
+<!ENTITY closeOtherTabsCmd2.accesskey "o">
+<!ENTITY recentlyClosedTabsCmd.label "Pestañas cerradas recientemente">
+<!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 a una ventana nueva">
+<!ENTITY moveToNewWindow.accesskey "v">
+<!ENTITY newVirtualFolderCmd.label "Búsqueda guardada…">
+<!ENTITY newVirtualFolderCmd.accesskey "B">
+<!ENTITY newCreateEmailAccountCmd.label "Obtener una nueva cuenta de correo…">
+<!ENTITY newCreateEmailAccountCmd.accesskey "O">
+<!ENTITY newExistingEmailAccountCmd.label "Cuenta de correo existente…">
+<!ENTITY newExistingEmailAccountCmd.accesskey "E">
+<!ENTITY newIMAccountCmd.label "Cuenta de chat…">
+<!ENTITY newIMAccountCmd.accesskey "h">
+<!ENTITY newFeedAccountCmd.label "Cuenta de canales web…">
+<!ENTITY newFeedAccountCmd.accesskey "w">
+<!ENTITY newIMContactCmd.label "Contactos de chat…">
+<!ENTITY newIMContactCmd.accesskey "h">
+<!ENTITY newMessageCmd2.key "N">
+<!ENTITY newMessageCmd.key "M">
+<!ENTITY newMessageCmd.label "Mensaje">
+<!ENTITY newMessageCmd.accesskey "m">
+<!ENTITY newContactCmd.label "Contacto de la libreta de direcciones…">
+<!ENTITY newContactCmd.accesskey "C">
+<!ENTITY openMenuCmd.label "Abrir">
+<!ENTITY openMenuCmd.accesskey "A">
+<!ENTITY openMessageFileCmd.label "Mensaje guardado…">
+<!ENTITY openMessageFileCmd.accesskey "A">
+<!ENTITY saveAsMenu.label "Guardar como">
+<!ENTITY saveAsMenu.accesskey "G">
+<!ENTITY saveAsFileCmd.key "s">
+<!ENTITY saveAsTemplateCmd.label "Plantilla">
+<!ENTITY saveAsTemplateCmd.accesskey "p">
+<!ENTITY getNewMsgForCmd.label "Recibir mensajes nuevos de">
+<!ENTITY getNewMsgForCmd.accesskey "b">
+<!ENTITY getAllNewMsgCmdPopupMenu.label "Todas las cuentas">
+<!ENTITY getAllNewMsgCmdPopupMenu.accesskey "T">
+<!ENTITY getNewMsgCurrentAccountCmdPopupMenu.label "Cuenta actual">
+<!ENTITY getNewMsgCurrentAccountCmdPopupMenu.accesskey "C">
+<!ENTITY getNextNMsgCmd2.label "Obtener los siguientes mensajes de noticias">
+<!ENTITY getNextNMsgCmd2.accesskey "t">
+<!ENTITY sendUnsentCmd.label "Procesar mensajes no enviados">
+<!ENTITY sendUnsentCmd.accesskey "o">
+<!ENTITY subscribeCmd.label "Suscribirse…">
+<!ENTITY subscribeCmd.accesskey "b">
+<!ENTITY deleteFolder.label "Eliminar carpeta">
+<!ENTITY deleteFolder.accesskey "E">
+<!ENTITY renameFolder.label "Renombrar carpeta…">
+<!ENTITY renameFolder.accesskey "R">
+<!ENTITY renameFolder.key "VK_F2">
+<!ENTITY compactFolders.label "Compactar carpetas">
+<!ENTITY compactFolders.accesskey "o">
+<!ENTITY emptyTrashCmd.label "Vaciar papelera">
+<!ENTITY emptyTrashCmd.accesskey "p">
+<!ENTITY offlineMenu.label "Sin conexión">
+<!ENTITY offlineMenu.accesskey "x">
+<!ENTITY offlineGoOfflineCmd.label "Trabajar sin conexión">
+<!ENTITY offlineGoOfflineCmd.accesskey "T">
+<!ENTITY synchronizeOfflineCmd.label "Sincronizar/Descargar ahora…">
+<!ENTITY synchronizeOfflineCmd.accesskey "S">
+<!ENTITY settingsOfflineCmd2.label "Configuración sin conexión">
+<!ENTITY settingsOfflineCmd2.accesskey "o">
+<!ENTITY downloadSelectedCmd.label "Descargar mensajes seleccionados">
+<!ENTITY downloadSelectedCmd.accesskey "l">
+<!ENTITY downloadStarredCmd.label "Descargar mensajes con estrella">
+<!ENTITY downloadStarredCmd.accesskey "a">
+<!ENTITY printCmd.label "Imprimir…">
+<!ENTITY printCmd.accesskey "I">
+<!ENTITY printCmd.key "p">
+
+<!-- Edit Menu -->
+<!ENTITY deleteMsgCmd.label "Eliminar mensaje">
+<!ENTITY deleteMsgCmd.accesskey "r">
+<!ENTITY undeleteMsgCmd.label "Restaurar mensaje">
+<!ENTITY undeleteMsgCmd.accesskey "j">
+<!ENTITY deleteMsgsCmd.label "Eliminar mensajes seleccionados">
+<!ENTITY deleteMsgsCmd.accesskey "D">
+<!ENTITY undeleteMsgsCmd.label "Restaurar mensajes seleccionados">
+<!ENTITY undeleteMsgsCmd.accesskey "d">
+<!ENTITY deleteFolderCmd.label "Eliminar carpeta">
+<!ENTITY deleteFolderCmd.accesskey "r">
+<!ENTITY unsubscribeNewsgroupCmd.label "Cancelar suscripción">
+<!ENTITY unsubscribeNewsgroupCmd.accesskey "u">
+<!ENTITY selectMenu.label "Seleccionar">
+<!ENTITY selectMenu.accesskey "l">
+<!ENTITY all.label "Todos">
+<!ENTITY all.accesskey "T">
+<!ENTITY selectThreadCmd.label "Conversación">
+<!ENTITY selectThreadCmd.accesskey "C">
+<!ENTITY selectThreadCmd.key "a">
+<!ENTITY selectFlaggedCmd.label "Mensajes con estrella">
+<!ENTITY selectFlaggedCmd.accesskey "S">
+<!ENTITY menuFavoriteFolder.label "Carpeta favorita">
+<!ENTITY menuFavoriteFolder.accesskey "v">
+<!ENTITY folderPropsCmd2.label "Propiedades">
+<!ENTITY folderPropsFolderCmd2.label "Propiedades de carpeta">
+<!ENTITY folderPropsNewsgroupCmd2.label "Propiedades del grupo">
+<!ENTITY folderPropsCmd.accesskey "o">
+<!ENTITY undoDeleteMsgCmd.label "Deshacer 'Eliminar mensaje'">
+<!ENTITY redoDeleteMsgCmd.label "Rehacer 'Eliminar mensaje'">
+<!ENTITY undoMoveMsgCmd.label "Deshacer 'Mover mensaje'">
+<!ENTITY redoMoveMsgCmd.label "Rehacer 'Mover mensaje'">
+<!ENTITY undoCopyMsgCmd.label "Deshacer 'Copiar mensaje'">
+<!ENTITY redoCopyMsgCmd.label "Rehacer 'Copiar mensaje'">
+<!ENTITY undoMarkAllCmd.label "Deshacer Marcar todos como leídos">
+<!ENTITY redoMarkAllCmd.label "Rehacer Marcar todos como leídos">
+<!ENTITY undoDefaultCmd.label "Deshacer">
+<!ENTITY undoDefaultCmd.accesskey "d">
+<!ENTITY redoDefaultCmd.label "Rehacer">
+<!ENTITY redoDefaultCmd.accesskey "R">
+
+<!-- View Menu -->
+<!ENTITY menubarCmd.label "Barra de menú">
+<!ENTITY menubarCmd.accesskey "M">
+<!ENTITY showMessengerToolbarCmd.label "Barra de herramientas de correo">
+<!ENTITY showMessengerToolbarCmd.accesskey "c">
+<!ENTITY customizeToolbar.label "Personalizar…">
+<!ENTITY customizeToolbar.accesskey "P">
+
+<!ENTITY messagePaneLayoutStyle.label "Disposición">
+<!ENTITY messagePaneLayoutStyle.accesskey "D">
+<!ENTITY messagePaneClassic.label "Vista clásica">
+<!ENTITY messagePaneClassic.accesskey "C">
+<!ENTITY messagePaneWide.label "Vista amplia">
+<!ENTITY messagePaneWide.accesskey "a">
+<!ENTITY messagePaneVertical.label "Vista vertical">
+<!ENTITY messagePaneVertical.accesskey "v">
+<!ENTITY showFolderPaneCmd.label "Panel de carpetas">
+<!ENTITY showFolderPaneCmd.accesskey "c">
+<!ENTITY showFolderPaneColsCmd.label "Columnas del panel de carpetas">
+<!ENTITY showFolderPaneColsCmd.accesskey "C">
+<!ENTITY showMessageCmd.label "Mensaje">
+<!ENTITY showMessageCmd.accesskey "e">
+
+<!ENTITY folderView.label "Carpetas">
+<!ENTITY folderView.accesskey "p">
+<!ENTITY unifiedFolders.label "Unificadas">
+<!ENTITY unifiedFolders.accesskey "n">
+<!ENTITY allFolders.label "Todas">
+<!ENTITY allFolders.accesskey "T">
+<!ENTITY unreadFolders.label "Con no leídos">
+<!ENTITY unreadFolders.accesskey "n">
+<!ENTITY favoriteFolders.label "Favoritas">
+<!ENTITY favoriteFolders.accesskey "F">
+<!ENTITY recentFolders.label "Recientes">
+<!ENTITY recentFolders.accesskey "R">
+<!ENTITY compactVersion.label "Vista compacta">
+<!ENTITY compactVersion.accesskey "C">
+
+<!-- Sort Menu -->
+<!ENTITY sortMenu.label "Ordenar por">
+<!ENTITY sortMenu.accesskey "O">
+<!ENTITY sortByDateCmd.label "Fecha">
+<!ENTITY sortByDateCmd.accesskey "f">
+<!ENTITY sortByReceivedCmd.label "Recibido">
+<!ENTITY sortByReceivedCmd.accesskey "b">
+<!ENTITY sortByStarCmd.label "Estrella">
+<!ENTITY sortByStarCmd.accesskey "S">
+<!ENTITY sortByAttachmentsCmd.label "Adjuntos">
+<!ENTITY sortByAttachmentsCmd.accesskey "d">
+<!ENTITY sortByPriorityCmd.label "Prioridad">
+<!ENTITY sortByPriorityCmd.accesskey "p">
+<!ENTITY sortBySizeCmd.label "Tamaño">
+<!ENTITY sortBySizeCmd.accesskey "t">
+<!ENTITY sortByStatusCmd.label "Estado">
+<!ENTITY sortByStatusCmd.accesskey "e">
+<!ENTITY sortByTagsCmd.label "Etiquetas">
+<!ENTITY sortByTagsCmd.accesskey "q">
+<!ENTITY sortByJunkStatusCmd.label "Estado de correo no deseado">
+<!ENTITY sortByJunkStatusCmd.accesskey "s">
+<!ENTITY sortBySubjectCmd.label "Asunto">
+<!ENTITY sortBySubjectCmd.accesskey "a">
+<!ENTITY sortByFromCmd.label "Remitente">
+<!ENTITY sortByFromCmd.accesskey "R">
+<!ENTITY sortByRecipientCmd.label "Destinatario">
+<!ENTITY sortByRecipientCmd.accesskey "i">
+<!ENTITY sortByCorrespondentCmd.label "Participantes">
+<!ENTITY sortByCorrespondentCmd.accesskey "P">
+<!ENTITY sortByUnreadCmd.label "Leídos">
+<!ENTITY sortByUnreadCmd.accesskey "L">
+<!ENTITY sortByOrderReceivedCmd.label "Orden de recepción">
+<!ENTITY sortByOrderReceivedCmd.accesskey "c">
+<!ENTITY sortAscending.label "Ascendente">
+<!ENTITY sortAscending.accesskey "A">
+<!ENTITY sortDescending.label "Descendente">
+<!ENTITY sortDescending.accesskey "D">
+<!ENTITY sortThreaded.label "Anidado">
+<!ENTITY sortThreaded.accesskey "A">
+<!ENTITY sortUnthreaded.label "No anidado">
+<!ENTITY sortUnthreaded.accesskey "N">
+<!ENTITY groupBySort.label "Agrupados por orden">
+<!ENTITY groupBySort.accesskey "G">
+<!ENTITY msgsMenu.label "Mensajes">
+<!ENTITY msgsMenu.accesskey "m">
+<!ENTITY threads.label "Conversaciones">
+<!ENTITY threads.accesskey "v">
+<!ENTITY allMsgsCmd.label "Todas">
+<!ENTITY allMsgsCmd.accesskey "t">
+<!ENTITY expandAllThreadsCmd.label "Expandir todas las conversaciones">
+<!ENTITY expandAllThreadsCmd.accesskey "E">
+<!ENTITY expandAllThreadsCmd.key "*">
+<!ENTITY collapseAllThreadsCmd.label "Contraer todas las conversaciones">
+<!ENTITY collapseAllThreadsCmd.accesskey "C">
+<!ENTITY collapseAllThreadsCmd.key "\">
+<!ENTITY unreadMsgsCmd.label "Mensajes no leídos">
+<!ENTITY unreadMsgsCmd.accesskey "n">
+<!ENTITY threadsWithUnreadCmd.label "Conversaciones con m. no leídos">
+<!ENTITY threadsWithUnreadCmd.accesskey "o">
+<!ENTITY watchedThreadsWithUnreadCmd.label "Conversaciones observadas con m. no leídos">
+<!ENTITY watchedThreadsWithUnreadCmd.accesskey "v">
+<!ENTITY ignoredThreadsCmd.label "Conversaciones ignoradas">
+<!ENTITY ignoredThreadsCmd.accesskey "I">
+
+<!ENTITY headersMenu.label "Cabeceras">
+<!ENTITY headersMenu.accesskey "C">
+<!ENTITY headersAllCmd.label "Todas">
+<!ENTITY headersAllCmd.accesskey "T">
+<!ENTITY headersNormalCmd.label "Normal">
+<!ENTITY headersNormalCmd.accesskey "N">
+<!ENTITY bodyMenu.label "Cuerpo del mensaje como">
+<!ENTITY bodyMenu.accesskey "u">
+<!ENTITY bodyAllowHTML.label "HTML original">
+<!ENTITY bodyAllowHTML.accesskey "H">
+<!ENTITY bodySanitized.label "HTML simple">
+<!ENTITY bodySanitized.accesskey "S">
+<!ENTITY bodyAsPlaintext.label "Texto sin formato">
+<!ENTITY bodyAsPlaintext.accesskey "T">
+<!ENTITY bodyAllParts.label "Todas las partes del cuerpo">
+<!ENTITY bodyAllParts.accesskey "T">
+
+<!ENTITY bodyMenuFeed.label "Descargar cuerpo del mensaje como">
+<!ENTITY bodyMenuFeed.accesskey "u">
+<!ENTITY viewFeedWebPage.label "Página web">
+<!ENTITY viewFeedWebPage.accesskey "W">
+<!ENTITY viewFeedSummary.label "Resumen">
+<!ENTITY viewFeedSummary.accesskey "m">
+<!ENTITY viewFeedSummaryFeedPropsPref.label "Formato por omisión">
+<!ENTITY viewFeedSummaryFeedPropsPref.accesskey "o">
+
+<!ENTITY viewAttachmentsInlineCmd.label "Ver adjuntos incorporados">
+<!ENTITY viewAttachmentsInlineCmd.accesskey "a">
+
+<!ENTITY pageSourceCmd.label "Formato original del mensaje">
+<!ENTITY pageSourceCmd.accesskey "F">
+<!ENTITY pageSourceCmd.key "u">
+<!ENTITY getNewMessagesCmd.key "y">
+<!ENTITY getAllNewMessagesCmd.key "Y">
+
+<!-- Search Menu -->
+<!ENTITY findMenu.label "Buscar">
+<!ENTITY findMenu.accesskey "B">
+<!ENTITY findCmd.label "Buscar en este mensaje…">
+<!ENTITY findCmd.accesskey "B">
+<!ENTITY findCmd.key "f">
+<!ENTITY findAgainCmd.label "Repetir la búsqueda">
+<!ENTITY findAgainCmd.accesskey "q">
+<!ENTITY findAgainCmd.key "g">
+<!ENTITY findAgainCmd.key2 "VK_F3">
+<!ENTITY findPrevCmd.key "g">
+<!ENTITY findPrevCmd.key2 "VK_F3">
+<!ENTITY searchMailCmd.label "Buscar mensajes…">
+<!ENTITY searchMailCmd.accesskey "m">
+<!ENTITY searchMailCmd.key "f">
+<!ENTITY glodaSearchCmd.label "Búsqueda global…">
+<!ENTITY glodaSearchCmd.accesskey "g">
+<!ENTITY searchAddressesCmd.label "Buscar direcciones…">
+<!ENTITY searchAddressesCmd.accesskey "S">
+
+<!-- Go Menu -->
+<!ENTITY goMenu.label "Ir">
+<!ENTITY goMenu.accesskey "i">
+<!ENTITY nextMenu.label "Siguiente">
+<!ENTITY nextMenu.accesskey "s">
+<!ENTITY nextMsgCmd.label "Mensaje">
+<!ENTITY nextMsgCmd.accesskey "m">
+<!ENTITY nextMsgCmd.key "f">
+<!ENTITY nextUnreadMsgCmd.label "Mensaje no leído">
+<!ENTITY nextUnreadMsgCmd.accesskey "n">
+<!ENTITY nextUnreadMsgCmd.key "n">
+<!ENTITY nextStarredMsgCmd.label "Mensaje con estrella">
+<!ENTITY nextStarredMsgCmd.accesskey "S">
+<!ENTITY nextUnreadThread.label "Conversación no leída">
+<!ENTITY nextUnreadThread.accesskey "v">
+<!ENTITY nextUnreadThread.key "t">
+<!ENTITY prevMenu.label "Anterior">
+<!ENTITY prevMenu.accesskey "a">
+<!ENTITY prevMsgCmd.label "Mensaje">
+<!ENTITY prevMsgCmd.accesskey "m">
+<!ENTITY prevMsgCmd.key "b">
+<!ENTITY prevUnreadMsgCmd.label "Mensaje no leído">
+<!ENTITY prevUnreadMsgCmd.accesskey "n">
+<!ENTITY prevUnreadMsgCmd.key "p">
+<!ENTITY goForwardCmd.label "Adelante">
+<!ENTITY goForwardCmd.accesskey "d">
+<!ENTITY goForwardCmd.commandKey "]">
+<!ENTITY goBackCmd.label "Atrás">
+<!ENTITY goBackCmd.accesskey "t">
+<!ENTITY goBackCmd.commandKey "[">
+<!ENTITY goChatCmd.label "Charlar">
+<!ENTITY goChatCmd.accesskey "h">
+<!ENTITY prevStarredMsgCmd.label "Mensaje con estrella">
+<!ENTITY prevStarredMsgCmd.accesskey "S">
+<!ENTITY folderMenu.label "Carpeta">
+<!ENTITY folderMenu.accesskey "a">
+<!ENTITY goRecentlyClosedTabs.label "Pestañas cerradas recientemente">
+<!ENTITY goRecentlyClosedTabs.accesskey "P">
+<!ENTITY startPageCmd.label "Página de inicio del correo">
+<!ENTITY startPageCmd.accesskey "P">
+
+<!-- Message Menu -->
+<!ENTITY msgMenu.label "Mensaje">
+<!ENTITY msgMenu.accesskey "m">
+<!ENTITY newMsgCmd.label "Nuevo mensaje">
+<!ENTITY newMsgCmd.accesskey "N">
+<!ENTITY newNewMsgCmd.label "Mensaje">
+<!ENTITY newNewMsgCmd.accesskey "M">
+<!ENTITY archiveMsgCmd.label "Archivar">
+<!ENTITY archiveMsgCmd.accesskey "A">
+<!ENTITY archiveMsgCmd.key "a">
+<!ENTITY cancelNewsMsgCmd.label "Cancelar mensaje">
+<!ENTITY cancelNewsMsgCmd.accesskey "C">
+<!ENTITY replyMsgCmd.label "Responder">
+<!ENTITY replyMsgCmd.accesskey "R">
+<!ENTITY replyMsgCmd.key "r">
+<!ENTITY replySenderCmd.label "Responder sólo al remitente">
+<!ENTITY replySenderCmd.accesskey "R">
+<!ENTITY replyNewsgroupCmd2.label "Responder en el grupo de noticias">
+<!ENTITY replyNewsgroupCmd2.accesskey "u">
+<!ENTITY replyToAllMsgCmd.label "Responder a todos">
+<!ENTITY replyToAllMsgCmd.accesskey "p">
+<!ENTITY replyToAllMsgCmd.key "r">
+<!ENTITY replyToListMsgCmd.label "Responder a la lista">
+<!ENTITY replyToListMsgCmd.accesskey "L">
+<!ENTITY replyToListMsgCmd.key "l">
+<!ENTITY forwardMsgCmd.label "Reenviar">
+<!ENTITY forwardMsgCmd.accesskey "v">
+<!ENTITY forwardMsgCmd.key "l">
+<!ENTITY forwardAsMenu.label "Reenviar como">
+<!ENTITY forwardAsMenu.accesskey "v">
+<!ENTITY forwardAsInline.label "Incorporado">
+<!ENTITY forwardAsInline.accesskey "i">
+<!ENTITY forwardAsAttachmentCmd.label "Adjunto">
+<!ENTITY forwardAsAttachmentCmd.accesskey "a">
+<!ENTITY editAsNewMsgCmd.label "Editar como mensaje nuevo">
+<!ENTITY editAsNewMsgCmd.accesskey "E">
+<!ENTITY editAsNewMsgCmd.key "e">
+<!ENTITY editDraftMsgCmd.label "Editar borrador de mensaje">
+<!ENTITY editDraftMsgCmd.accesskey "b">
+<!ENTITY editTemplateMsgCmd.label "Editar plantilla">
+<!ENTITY editTemplateMsgCmd.accesskey "T">
+<!ENTITY newMsgFromTemplateCmd.label "Nuevo mensaje desde plantilla">
+<!ENTITY newMsgFromTemplateCmd.keycode "VK_RETURN"><!-- do not change "VK_RETURN" -->
+<!ENTITY createFilter.label "Crear filtro a partir del mensaje…">
+<!ENTITY createFilter.accesskey "a">
+<!ENTITY moveMsgToMenu.label "Mover a">
+<!ENTITY moveMsgToMenu.accesskey "M">
+<!ENTITY moveCopyMsgRecentMenu.label "Reciente">
+<!ENTITY moveCopyMsgRecentMenu.accesskey "R">
+<!ENTITY copyMessageLocation.label "Copiar URL del mensaje">
+<!ENTITY copyMessageLocation.accesskey "M">
+<!ENTITY copyMsgToMenu.label "Copiar a">
+<!ENTITY copyMsgToMenu.accesskey "C">
+<!ENTITY moveToFolderAgain.label "Mover de nuevo">
+<!ENTITY moveToFolderAgain.accesskey "d">
+<!ENTITY moveToFolderAgainCmd.key "m">
+<!ENTITY killThreadMenu.label "Ignorar conversación">
+<!ENTITY killThreadMenu.accesskey "I">
+<!ENTITY killThreadMenu.key "k">
+<!ENTITY killSubthreadMenu.label "Ignorar sub-conversación">
+<!ENTITY killSubthreadMenu.accesskey "S">
+<!ENTITY killSubthreadMenu.key "k">
+<!ENTITY watchThreadMenu.label "Observar conversación">
+<!ENTITY watchThreadMenu.accesskey "O">
+<!ENTITY watchThreadMenu.key "w">
+<!ENTITY tagMenu.label "Etiquetar">
+<!ENTITY tagMenu.accesskey "u">
+<!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 leídos">
+<!ENTITY markAsReadCmd.accesskey "l">
+<!ENTITY markAsUnreadCmd.label "Como no leído">
+<!ENTITY markAsUnreadCmd.accesskey "n">
+<!ENTITY markThreadAsReadCmd.label "Conversación como leída">
+<!ENTITY markThreadAsReadCmd.accesskey "C">
+<!ENTITY markThreadAsReadCmd.key "r">
+<!ENTITY markReadByDateCmd.label "Como leídos por fecha…">
+<!ENTITY markReadByDateCmd.accesskey "D">
+<!ENTITY markReadByDateCmd.key "c">
+<!ENTITY markAllReadCmd.label "Todos leídos">
+<!ENTITY markAllReadCmd.accesskey "t">
+<!ENTITY markAllReadCmd.key "c">
+<!ENTITY markStarredCmd.label "Añadir estrella">
+<!ENTITY markStarredCmd.accesskey "S">
+<!ENTITY markStarredCmd.key "S">
+<!ENTITY markAsJunkCmd.label "Como correo no deseado">
+<!ENTITY markAsJunkCmd.accesskey "s">
+<!ENTITY markAsJunkCmd.key "j">
+<!ENTITY markAsNotJunkCmd.label "Como correo legítimo">
+<!ENTITY markAsNotJunkCmd.accesskey "m">
+<!ENTITY markAsNotJunkCmd.key "j">
+<!ENTITY recalculateJunkScoreCmd.label "Ejecutar controles de correo no deseado">
+<!ENTITY recalculateJunkScoreCmd.accesskey "C">
+<!ENTITY openMessageWindowCmd.label "Abrir mensaje">
+<!ENTITY openMessageWindowCmd.accesskey "A">
+<!ENTITY openMessageWindowCmd.key "o">
+<!ENTITY openInConversationCmd.label "Abrir en la conversación">
+<!ENTITY openInConversationCmd.accesskey "s">
+<!ENTITY openInConversationCmd.key "o">
+<!ENTITY openAttachmentListCmd.label "Adjuntos">
+<!ENTITY openAttachmentListCmd.accesskey "d">
+<!ENTITY openFeedMessage1.label "Al abrir mensajes de canales web">
+<!ENTITY openFeedMessage1.accesskey "c">
+<!ENTITY openFeedWebPage.label "Abrir como página web">
+<!ENTITY openFeedWebPage.accesskey "m">
+<!ENTITY openFeedSummary.label "Abrir como resumen">
+<!ENTITY openFeedSummary.accesskey "e">
+<!ENTITY openFeedWebPageInMP.label "Alternar el resumen y la página web en el panel de mensajes">
+<!ENTITY openFeedWebPageInMP.accesskey "T">
+
+<!-- Windows Menu -->
+<!ENTITY windowMenu.label "Ventana">
+
+<!-- Tools Menu -->
+<!ENTITY tasksMenu.label "Herramientas">
+<!ENTITY tasksMenu.accesskey "T">
+<!ENTITY messengerCmd.label "Correo y noticias">
+<!ENTITY messengerCmd.accesskey "o">
+<!ENTITY addressBookCmd.label "Libreta de direcciones">
+<!ENTITY addressBookCmd.accesskey "L">
+<!ENTITY addressBookCmd.key "B">
+<!ENTITY addonNoPrefs.label "No se han encontrado ajustes del complemento.">
+<!ENTITY activitymanager.label "Administrador de actividad">
+<!ENTITY activitymanager.accesskey "A">
+<!ENTITY imAccountsStatus.label "Estado de chat">
+<!ENTITY imAccountsStatus.accesskey "C">
+<!ENTITY imStatus.available "Disponible">
+<!ENTITY imStatus.unavailable "No disponible">
+<!ENTITY imStatus.offline "Sin conexión">
+<!ENTITY imStatus.showAccounts "Mostrar cuentas…">
+<!ENTITY joinChatCmd.label "Unirse al chat…">
+<!ENTITY joinChatCmd.accesskey "U">
+<!ENTITY savedFiles.label "Archivos guardados">
+<!ENTITY savedFiles.accesskey "h">
+<!ENTITY savedFiles.key "j">
+<!ENTITY filtersCmd2.label "Filtros de mensajes">
+<!ENTITY filtersCmd2.accesskey "F">
+<!ENTITY filtersApply.label "Ejecutar filtros en la carpeta">
+<!ENTITY filtersApply.accesskey "R">
+<!ENTITY filtersApplyToSelection.label "Ejecutar filtros en los mensajes seleccionados">
+<!ENTITY filtersApplyToSelection.accesskey "u">
+<!ENTITY filtersApplyToMessage.label "Ejecutar filtros en el mensaje">
+<!ENTITY filtersApplyToMessage.accesskey "u">
+<!ENTITY runJunkControls.label "Ejecutar controles de correo no deseado en la carpeta">
+<!ENTITY runJunkControls.accesskey "C">
+<!ENTITY deleteJunk.label "Eliminar mensajes marcados como no deseados en la carpeta">
+<!ENTITY deleteJunk.accesskey "E">
+<!ENTITY importCmd.label "Importar…">
+<!ENTITY importCmd.accesskey "I">
+<!ENTITY exportCmd.label "Exportar…">
+<!ENTITY exportCmd.accesskey "x">
+<!ENTITY clearRecentHistory.label "Limpiar historial reciente…">
+<!ENTITY clearRecentHistory.accesskey "H">
+<!ENTITY accountManagerCmd2.label "Configuración de cuenta">
+<!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 "C">
+
+<!-- Developer Tools Submenu -->
+<!ENTITY devtoolsMenu.label "Herramientas de desarrollador">
+<!ENTITY devtoolsMenu.accesskey "H">
+<!ENTITY devToolboxCmd.label "Caja de herramientas de desarrollador">
+<!ENTITY devToolboxCmd.accesskey "C">
+<!ENTITY devToolboxCmd.commandkey "i">
+<!ENTITY debugAddonsCmd.label "Depurar complementos">
+<!ENTITY debugAddonsCmd.accesskey "c">
+<!ENTITY errorConsoleCmd.label "Consola de errores">
+<!ENTITY errorConsoleCmd.accesskey "E">
+<!ENTITY errorConsoleCmd.commandkey "j">
+
+<!-- Mail Toolbar -->
+<!ENTITY getMsgButton1.label "Recibir mensajes">
+<!ENTITY newMsgButton.label "Redactar">
+<!ENTITY replyButton.label "Responder">
+<!ENTITY replyAllButton.label "Resp. a todos">
+<!ENTITY replyListButton.label "Responder a la lista">
+<!ENTITY forwardButton.label "Reenviar">
+<!ENTITY fileButton.label "Archivo">
+<!ENTITY archiveButton.label "Archivar">
+<!ENTITY openConversationButton.label "Conversación">
+<!ENTITY nextButton.label "Siguiente">
+<!ENTITY nextButtonToolbarItem.label "Siguiente no leído">
+<!ENTITY nextMsgButton.label "Siguiente">
+<!ENTITY previousButton.label "Anterior">
+<!ENTITY previousButtonToolbarItem.label "Anterior no leído">
+<!ENTITY previousMsgButton.label "Anterior">
+<!ENTITY backButton1.label "Retroceder">
+<!ENTITY goForwardButton1.label "Avanzar">
+<!ENTITY deleteItem.title "Eliminar">
+<!ENTITY markButton.label "Marcar">
+<!ENTITY printButton.label "Imprimir">
+<!ENTITY stopButton.label "Detener">
+<!ENTITY throbberItem.title "Indicador de actividad">
+<!ENTITY junkItem.title "Basura">
+<!ENTITY addressBookButton.label "Direcciones">
+<!ENTITY chatButton.label "Charlar">
+<!ENTITY glodaSearch.title "Búsqueda global">
+<!ENTITY searchItem.title "Búsqueda rápida">
+<!ENTITY mailViewsToolbarItem.title "Vistas de correo">
+<!ENTITY folderLocationToolbarItem.title "Ubicación de la carpeta">
+<!ENTITY tagButton.label "Etiqueta">
+<!ENTITY compactButton.label "Compactar">
+<!ENTITY appmenuButton.label "AppMenu">
+
+<!-- Mail Toolbar Tooltips-->
+<!ENTITY advancedButton.tooltip "Búsqueda avanzada de mensajes">
+<!ENTITY getMsgButton.tooltip "Recibir mensajes nuevos">
+<!ENTITY getAllNewMsgCmd.label "Recibir todos los mensajes nuevos">
+<!ENTITY getAllNewMsgCmd.accesskey "R">
+<!ENTITY newMsgButton.tooltip "Crear nuevo mensaje">
+<!ENTITY replyButton.tooltip "Responder al mensaje">
+<!ENTITY replyAllButton.tooltip "Responder al remitente y a todos los destinatarios">
+<!ENTITY replyListButton.tooltip "Responder a la lista de correo">
+<!ENTITY forwardButton.tooltip "Reenviar mensaje seleccionado">
+<!ENTITY forwardAsInline.tooltip "Reenviar el mensaje seleccionado como texto en el cuerpo">
+<!ENTITY forwardAsAttachment.tooltip "Reenviar el mensaje seleccionado como un adjunto">
+<!ENTITY fileButton.tooltip "Archivar mensaje seleccionado">
+<!ENTITY archiveButton.tooltip "Archivar mensajes seleccionados">
+<!ENTITY openMsgConversationButton.tooltip "Mostrar conversación del mensaje seleccionado">
+<!ENTITY nextButton.tooltip "Ir al siguiente mensaje no leído">
+<!ENTITY nextMsgButton.tooltip "Moverse al mensaje siguiente">
+<!ENTITY previousButton.tooltip "Ir al anterior mensaje no leído">
+<!ENTITY previousMsgButton.tooltip "Moverse al mensaje anterior">
+<!ENTITY goForwardButton.tooltip "Ir al mensaje siguiente">
+<!ENTITY goBackButton.tooltip "Ir al mensaje anterior">
+<!ENTITY markButton.tooltip "Marcar mensajes">
+<!ENTITY printButton.tooltip "Imprimir este mensaje">
+<!ENTITY stopButton.tooltip "Detener la transferencia actual">
+<!ENTITY addressBookButton.tooltip "Ir a la libreta de direcciones">
+<!ENTITY chatButton.tooltip "Mostrar la pestaña de chat">
+<!ENTITY tagButton.tooltip "Etiquetar mensajes">
+<!ENTITY compactButton.tooltip "Eliminar mensajes borrados de la carpeta seleccionada">
+<!ENTITY appmenuButton1.tooltip "Mostrar el menú &brandShortName;">
+
+<!-- Toolbar Button Popup -->
+<!ENTITY buttonMenuForwardAsInline.label "Reenviar en el cuerpo del mensaje">
+<!ENTITY buttonMenuForwardAsAttachment.label "Reenviar como adjunto">
+
+<!-- Remote Content Button Popup -->
+<!ENTITY remoteContentOptionsAllowForMsg.label "Mostrar el contenido remoto en este mensaje">
+<!ENTITY remoteContentOptionsAllowForMsg.accesskey "M">
+<!ENTITY editRemoteContentSettings.label "Editar opciones de contenido remoto…">
+<!ENTITY editRemoteContentSettings.accesskey "E">
+<!ENTITY editRemoteContentSettingsUnix.label "Editar preferencias de contenido remoto…">
+<!ENTITY editRemoteContentSettingsUnix.accesskey "E">
+
+<!-- Phishing Button Popup -->
+<!ENTITY phishingOptionIgnore.label "Ignorar advertencia en este mensaje">
+<!ENTITY phishingOptionIgnore.accesskey "n">
+<!ENTITY phishingOptionSettings.label "Editar opciones de detección de fraudes…">
+<!ENTITY phishingOptionSettings.accesskey "d">
+<!ENTITY phishingOptionSettingsUnix.label "Editar preferencias de detección de fraudes…">
+<!ENTITY phishingOptionSettingsUnix.accesskey "d">
+
+<!-- AppMenu Popup -->
+<!ENTITY appmenuNewMsgCmd.label "Nuevo mensaje">
+<!ENTITY appmenuNewContactCmd.label "Contacto de la libreta de direcciones…">
+<!ENTITY appmenuEditMenu.label "Editar">
+<!ENTITY appmenuToolbarLayout.label "Disposición de la barra de herramientas…">
+<!ENTITY appmenuSelectThread.label "Seleccionar conversación">
+<!ENTITY appmenuSelectFlagged.label "Seleccionar mensajes con estrella">
+
+<!-- Tags Menu Popup -->
+<!ENTITY addNewTag.label "Nueva etiqueta…">
+<!ENTITY addNewTag.accesskey "N">
+<!ENTITY manageTags.label "Administrar etiquetas…">
+<!ENTITY manageTags.accesskey "M">
+
+<!-- Folder Pane -->
+<!ENTITY folderNameColumn.label "Nombre">
+<!ENTITY folderUnreadColumn.label "No leídos">
+<!ENTITY folderTotalColumn.label "Total">
+<!ENTITY folderSizeColumn.label "Tamaño">
+
+<!-- Folder Pane Context Menu -->
+<!ENTITY folderContextGetMessages.label "Recibir mensajes">
+<!ENTITY folderContextGetMessages.accesskey "R">
+<!ENTITY folderContextMarkAllFoldersRead.label "Marcar todas las carpetas como leídas">
+<!ENTITY folderContextPauseAllUpdates.label "Pausar todas las actualizaciones">
+<!ENTITY folderContextPauseUpdates.label "Pausar actualizaciones">
+<!ENTITY folderContextPauseUpdates.accesskey "U">
+<!ENTITY folderContextOpenInNewWindow.label "Abrir en una ventana nueva">
+<!ENTITY folderContextOpenInNewWindow.accesskey "e">
+<!ENTITY folderContextOpenNewTab.label "Abrir en una pestaña nueva">
+<!ENTITY folderContextOpenNewTab.accesskey "b">
+<!ENTITY folderContextNew.label "Nueva subcarpeta…">
+<!ENTITY folderContextNew.accesskey "N">
+<!ENTITY folderContextRename.label "Renombrar">
+<!ENTITY folderContextRename.accesskey "r">
+<!ENTITY folderContextRemove.label "Eliminar">
+<!ENTITY folderContextRemove.accesskey "r">
+<!ENTITY folderContextCompact.label "Compactar">
+<!ENTITY folderContextCompact.accesskey "C">
+<!ENTITY folderContextEmptyTrash.label "Vaciar papelera">
+<!ENTITY folderContextEmptyTrash.accesskey "v">
+<!ENTITY folderContextEmptyJunk.label "Vaciar correo no deseado">
+<!ENTITY folderContextEmptyJunk.accesskey "s">
+<!ENTITY folderContextSendUnsentMessages.label "Enviar mensajes pendientes">
+<!ENTITY folderContextSendUnsentMessages.accesskey "n">
+<!ENTITY folderContextUnsubscribe.label "Cancelar suscripción">
+<!ENTITY folderContextUnsubscribe.accesskey "u">
+<!ENTITY folderContextMarkNewsgroupRead.label "Marcar grupo de noticias como leído">
+<!ENTITY folderContextMarkNewsgroupRead.accesskey "g">
+<!ENTITY folderContextMarkMailFolderRead.label "Marcar carpeta como leída">
+<!ENTITY folderContextMarkMailFolderRead.accesskey "l">
+<!ENTITY folderContextSubscribe.label "Suscribirse…">
+<!ENTITY folderContextSubscribe.accesskey "b">
+<!ENTITY folderContextSearchForMessages.label "Buscar mensajes…">
+<!ENTITY folderContextSearchForMessages.accesskey "B">
+<!ENTITY folderContextProperties2.label "Propiedades">
+<!ENTITY folderContextProperties2.accesskey "P">
+<!ENTITY folderContextFavoriteFolder.label "Carpeta favorita">
+<!ENTITY folderContextFavoriteFolder.accesskey "a">
+<!ENTITY folderContextSettings2.label "Configuración">
+<!ENTITY folderContextSettings2.accesskey "o">
+
+<!-- Search Bar -->
+<!ENTITY SearchNameOrEmail.label "El nombre o dirección contiene:">
+<!ENTITY SearchNameOrEmail.accesskey "N">
+
+<!-- Gloda Search Bar -->
+<!ENTITY glodaSearchBar.placeholder "Buscar mensajes…">
+
+<!-- Quick Search Menu Bar -->
+<!ENTITY searchSubjectMenu.label "Asunto">
+<!ENTITY searchFromMenu.label "Remitente">
+<!ENTITY searchSubjectOrFromMenu.label "Asunto o remitente">
+<!ENTITY searchRecipient.label "Para o CC">
+<!ENTITY searchSubjectOrRecipientMenu.label "Asunto, Para o Cc">
+<!ENTITY searchMessageBody.label "Cuerpo del mensaje">
+<!ENTITY saveAsVirtualFolderMenu.label "Guardar la búsqueda como una carpeta…">
+
+<!-- Thread Pane -->
+<!ENTITY selectColumn.label "Seleccionar mensajes">
+<!ENTITY threadColumn.label "Conversación">
+<!ENTITY fromColumn.label "Remitente">
+<!ENTITY recipientColumn.label "Destinatario">
+<!ENTITY correspondentColumn.label "Participantes">
+<!ENTITY subjectColumn.label "Asunto">
+<!ENTITY dateColumn.label "Fecha">
+<!ENTITY priorityColumn.label "Prioridad">
+<!ENTITY tagsColumn.label "Etiqueta">
+<!ENTITY accountColumn.label "Cuenta">
+<!ENTITY statusColumn.label "Estado">
+<!ENTITY sizeColumn.label "Tamaño">
+<!ENTITY junkStatusColumn.label "Estado de correo no deseado">
+<!ENTITY unreadColumn.label "No leídos">
+<!ENTITY totalColumn.label "Total">
+<!ENTITY readColumn.label "Leído">
+<!ENTITY receivedColumn.label "Recibido">
+<!ENTITY starredColumn.label "Con estrella">
+<!ENTITY locationColumn.label "Ubicación">
+<!ENTITY idColumn.label "Orden de recepción">
+<!ENTITY attachmentColumn.label "Adjuntos">
+<!ENTITY deleteColumn.label "Eliminar">
+
+<!-- Thread Pane Tooltips -->
+<!ENTITY columnChooser2.tooltip "Seleccione las columnas que desea mostrar">
+<!ENTITY selectColumn.tooltip "Alternar la selección de todos los mensajes">
+<!ENTITY threadColumn2.tooltip "Mostrar conversaciones de mensajes">
+<!ENTITY fromColumn2.tooltip "Ordenar por remitente">
+<!ENTITY recipientColumn2.tooltip "Ordenar por destinatario">
+<!ENTITY correspondentColumn2.tooltip "Ordenar por participantes">
+<!ENTITY subjectColumn2.tooltip "Ordenar por asunto">
+<!ENTITY dateColumn2.tooltip "Ordenar por fecha">
+<!ENTITY priorityColumn2.tooltip "Ordenar por prioridad">
+<!ENTITY tagsColumn2.tooltip "Ordenar por etiquetas">
+<!ENTITY accountColumn2.tooltip "Ordenar por cuenta">
+<!ENTITY statusColumn2.tooltip "Ordenar por estado">
+<!ENTITY sizeColumn2.tooltip "Ordenar por tamaño">
+<!ENTITY junkStatusColumn2.tooltip "Ordenar por estado de correo basura">
+<!ENTITY unreadColumn2.tooltip "Número de mensajes no leídos en una conversación">
+<!ENTITY totalColumn2.tooltip "Número total de mensajes en la conversación">
+<!ENTITY readColumn2.tooltip "Ordenar por leídos/no leídos">
+<!ENTITY receivedColumn2.tooltip "Ordenar por fecha de recepción">
+<!ENTITY starredColumn2.tooltip "Ordenar por estrella">
+<!ENTITY locationColumn2.tooltip "Ordenar por ubicación">
+<!ENTITY idColumn2.tooltip "Ordenar por orden de recepción">
+<!ENTITY attachmentColumn2.tooltip "Ordenar por adjuntos">
+<!ENTITY deleteColumn.tooltip "Eliminar un mensaje">
+
+<!-- Thread Pane Context Menu -->
+<!ENTITY contextNewMsgFromTemplate.label "Nuevo mensaje desde plantilla">
+<!ENTITY contextOpenNewWindow.label "Abrir el mensaje en una ventana nueva">
+<!ENTITY contextOpenNewWindow.accesskey "A">
+<!-- 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 el mensaje en una pestaña nueva">
+<!ENTITY contextOpenNewTab.accesskey "b">
+<!ENTITY contextOpenConversation.label "Abrir mensaje en la conversación">
+<!ENTITY contextOpenConversation.accesskey "c">
+<!ENTITY contextOpenContainingFolder.label "Abrir mensaje en la carpeta que lo contiene">
+<!ENTITY contextOpenContainingFolder.accesskey "c">
+<!ENTITY contextEditMsgAsNew.label "Editar como mensaje nuevo">
+<!ENTITY contextEditMsgAsNew.accesskey "E">
+<!ENTITY contextEditDraftMsg.label "Editar borrador de mensaje">
+<!ENTITY contextEditTemplate.label "Editar plantilla">
+<!ENTITY contextEditTemplate.accesskey "T">
+<!ENTITY contextArchive.label "Archivar">
+<!ENTITY contextArchive.accesskey "h">
+<!ENTITY contextReplySender.label "Responder sólo al remitente">
+<!ENTITY contextReplySender.accesskey "R">
+<!ENTITY contextReplyNewsgroup2.label "Responder en el grupo de noticias">
+<!ENTITY contextReplyNewsgroup2.accesskey "u">
+<!ENTITY contextReplyAll.label "Responder a todos">
+<!ENTITY contextReplyAll.accesskey "t">
+<!ENTITY contextReplyList.label "Responder a la lista">
+<!ENTITY contextReplyList.accesskey "l">
+<!ENTITY contextForward.label "Reenviar">
+<!ENTITY contextForward.accesskey "n">
+<!ENTITY contextForwardAsMenu.label "Reenviar como">
+<!ENTITY contextForwardAsMenu.accesskey "o">
+<!ENTITY contextForwardAsInline.label "Incorporado">
+<!ENTITY contextForwardAsInline.accesskey "I">
+<!ENTITY contextForwardAsAttachmentItem.label "Adjunto">
+<!ENTITY contextForwardAsAttachmentItem.accesskey "A">
+<!ENTITY contextMultiForwardAsAttachment.label "Reenviar como adjuntos">
+<!ENTITY contextMultiForwardAsAttachment.accesskey "o">
+<!ENTITY contextMoveMsgMenu.label "Mover a">
+<!ENTITY contextMoveMsgMenu.accesskey "m">
+<!ENTITY contextMoveCopyMsgRecentMenu.label "Reciente">
+<!ENTITY contextMoveCopyMsgRecentMenu.accesskey "R">
+<!ENTITY contextMoveCopyMsgFavoritesMenu.label "Favoritos">
+<!ENTITY contextMoveCopyMsgFavoritesMenu.accesskey "F">
+<!ENTITY contextCopyMsgMenu.label "Copiar a">
+<!ENTITY contextCopyMsgMenu.accesskey "C">
+<!ENTITY contextKillThreadMenu.label "Ignorar conversación">
+<!ENTITY contextKillSubthreadMenu.accesskey "b">
+<!ENTITY contextKillThreadMenu.accesskey "I">
+<!ENTITY contextKillSubthreadMenu.label "Ignorar sub-conversación">
+<!ENTITY contextWatchThreadMenu.label "Observar conversación">
+<!-- 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 "G">
+<!ENTITY contextPrint.label "Imprimir…">
+<!ENTITY contextPrint.accesskey "i">
+<!ENTITY contextPrintPreview.label "Vista preliminar">
+<!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 columnas 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 "Carpeta…">
+<!-- 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 "Carpeta y sus subcarpetas…">
+<!-- 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 carpeta">
+
+<!-- Media (video/audio) controls -->
+<!ENTITY contextPlay.label "Reproducir">
+<!ENTITY contextPlay.accesskey "P">
+<!ENTITY contextPause.label "Pausar">
+<!ENTITY contextPause.accesskey "P">
+<!ENTITY contextMute.label "Silenciar">
+<!ENTITY contextMute.accesskey "S">
+<!ENTITY contextUnmute.label "Restaurar sonido">
+<!ENTITY contextUnmute.accesskey "s">
+
+<!-- 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 "Buscar #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;⌘K&gt;">
+
+<!-- Message Header Context Menu -->
+<!ENTITY AddToAddressBook.label "Añadir a la libreta de direcciones…">
+<!ENTITY AddToAddressBook.accesskey "b">
+<!ENTITY AddDirectlyToAddressBook.label "Añadir a la libreta de direcciones">
+<!ENTITY AddDirectlyToAddressBook.accesskey "B">
+<!ENTITY EditContact1.label "Editar contacto">
+<!ENTITY EditContact1.accesskey "E">
+<!ENTITY ViewContact.label "Ver contacto">
+<!ENTITY ViewContact.accesskey "V">
+<!ENTITY SubscribeToNewsgroup.label "Suscribirse a grupo de noticias">
+<!ENTITY SubscribeToNewsgroup.accesskey "n">
+<!ENTITY SendMessageTo.label "Enviar mensaje a">
+<!ENTITY SendMessageTo.accesskey "s">
+<!ENTITY CopyEmailAddress.label "Copiar dirección de correo electrónico">
+<!ENTITY CopyEmailAddress.accesskey "C">
+<!ENTITY CopyNameAndEmailAddress.label "Copiar nombre y dirección de correo">
+<!ENTITY CopyNameAndEmailAddress.accesskey "N">
+<!ENTITY CopyNewsgroupName.label "Copiar nombre del grupo de noticias">
+<!ENTITY CopyNewsgroupName.accesskey "C">
+<!ENTITY CopyNewsgroupURL.label "Copiar URL del grupo de noticias">
+<!ENTITY CopyNewsgroupURL.accesskey "U">
+<!ENTITY CreateFilterFrom.label "Crear filtro a partir de…">
+<!ENTITY CreateFilterFrom.accesskey "f">
+<!ENTITY reportPhishingURL.label "Informar de mensaje fraudulento">
+<!ENTITY reportPhishingURL.accesskey "o">
+
+<!-- Spell checker context menu items -->
+<!ENTITY spellAddDictionaries.label "Añadir diccionarios…">
+<!ENTITY spellAddDictionaries.accesskey "A">
+
+<!-- Content Pane Context Menu -->
+<!ENTITY saveLinkAsCmd.label "Guardar enlace como…">
+<!ENTITY saveLinkAsCmd.accesskey "e">
+<!ENTITY saveImageAsCmd.label "Guardar imagen como…">
+<!ENTITY saveImageAsCmd.accesskey "i">
+<!ENTITY copyLinkCmd.label "Copiar la dirección del enlace">
+<!ENTITY copyLinkCmd.accesskey "L">
+<!ENTITY copyImageAllCmd.label "Copiar imagen">
+<!ENTITY copyImageAllCmd.accesskey "i">
+<!ENTITY copyEmailCmd.label "Copiar dirección de correo electrónico">
+<!ENTITY copyEmailCmd.accesskey "E">
+<!ENTITY stopCmd.label "Parar">
+<!ENTITY stopCmd.accesskey "P">
+<!ENTITY reloadCmd.label "Recargar">
+<!ENTITY reloadCmd.accesskey "R">
+<!ENTITY openInBrowser.label "Abrir en el navegador">
+<!ENTITY openInBrowser.accesskey "A">
+<!ENTITY openLinkInBrowser.label "Abrir enlace en el navegador">
+<!ENTITY openLinkInBrowser.accesskey "A">
+
+<!-- Statusbar -->
+<!ENTITY statusText.label "Terminado">
+
+<!-- Mac OS X Window Menu -->
+<!ENTITY minimizeWindow.label "Minimizar ventana">
+<!ENTITY minimizeWindow.key "m">
+<!ENTITY bringAllToFront.label "Traer todo al frente">
+<!ENTITY zoomWindow.label "Acercar ventana">
+
+<!-- Mac OS X Application Menu (Cocoa widgets) -->
+<!ENTITY preferencesCmdMac2.label "Preferencias">
+<!ENTITY preferencesCmdMac.commandkey ",">
+<!ENTITY preferencesCmdMac.modifiers "accel">
+<!ENTITY servicesMenuMac.label "Servicios">
+<!ENTITY hideThisAppCmdMac.label "Ocultar &brandShortName;">
+<!ENTITY hideThisAppCmdMac.commandkey "H">
+<!ENTITY hideThisAppCmdMac.modifiers "accel">
+<!ENTITY hideOtherAppsCmdMac.label "Ocultar otros">
+<!ENTITY hideOtherAppsCmdMac.commandkey "H">
+<!ENTITY hideOtherAppsCmdMac.modifiers "accel,alt">
+<!ENTITY showAllAppsCmdMac.label "Mostrar todo">
+
+<!-- Mac OS X Dock Icon pop-up menu -->
+<!ENTITY dockOptions.label "Opciones del icono de la aplicación…">
+<!ENTITY writeNewMessageDock.label "Redactar nuevo mensaje">
+<!ENTITY openAddressBookDock.label "Abrir libreta de direcciones">
+
+<!-- Content tab Navigation buttons -->
+<!ENTITY browseBackButton.tooltip "Ir a la página anterior">
+<!ENTITY browseForwardButton.tooltip "Ir a la página siguiente">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messenger.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messenger.properties
new file mode 100644
index 0000000000..92074a9104
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messenger.properties
@@ -0,0 +1,768 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=Eliminar cuenta…
+newFolderMenuItem=Carpeta…
+newSubfolderMenuItem=Subcarpeta…
+newFolder=Nueva carpeta…
+newSubfolder=Nueva subcarpeta…
+markFolderRead=Marcar carpeta como leída;Marcar carpetas como leídas
+markNewsgroupRead=Marcar grupo de noticias como leído;Marcar grupos de noticias cmo leídos
+folderProperties=Propiedades de carpeta
+newTag=Nueva etiqueta…
+# LOCALIZATION NOTE (getNextNewsMessages): Semi-colon list of plural forms.
+# #1 is the number of news messages to get.
+getNextNewsMessages=Obtener #1 mensaje de noticias siguiente;Obtener #1 mensajes de noticias siguientes
+advanceNextPrompt=¿Ir al siguiente mensaje no leído en %S?
+titleNewsPreHost=en
+replyToSender=Responder al remitente
+reply=Responder
+EMLFiles=Archivos de correo (*.eml)
+OpenEMLFiles=Abrir mensaje
+# LOCALIZATION NOTE(defaultSaveMessageAsFileName): Do not translate ".eml"
+# in the line below. Also, the complete file name should be 8.3.
+defaultSaveMessageAsFileName=message.eml
+# LOCALIZATION NOTE(longMsgSubjectTruncator): A suffix string appended to the filename
+# (created from message subject) if it needed to be truncated due to length.
+longMsgSubjectTruncator=...
+SaveMailAs=Guardar mensaje como
+SaveAttachment=Guardar adjunto
+SaveAllAttachments=Guardar todos los adjuntos
+DetachAttachment=Separar adjunto
+DetachAllAttachments=Separar todos los adjuntos
+ChooseFolder=Escoger carpeta
+MessageLoaded=Mensaje cargado…
+PreviewTitle=%S - %S
+saveAttachmentFailed=Imposible guardar el adjunto. Compruebe el nombre de su archivo y vuelva a intentarlo.
+saveMessageFailed=Imposible guardar el mensaje. Compruebe el nombre del archivo y pruebe otra vez.
+fileExists=%S ya existe. ¿Desea reemplazarlo?
+# LOCALIZATION NOTE(failedToReadFile): %1$S is replaced by the file name, %2$S is replaced by the reason the file load failed.
+failedToReadFile=No se ha podido leer el archivo: %1$S razón: %2$S
+
+downloadingNewsgroups=Descargando grupos de noticias para usar sin conexión
+downloadingMail=Descargando el correo para uso sin conexión
+sendingUnsent=Procesando mensajes no enviados
+
+folderExists=Ya existe una carpeta con ese nombre. Pruebe con un nombre 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=Ya existe una subcarpeta con el nombre '%1$S' en la carpeta '%2$S'. ¿Le gustaría mover esta carpeta usando el nombre nuevo '%3$S'?
+folderCreationFailed=La carpeta no pudo crearse porque el nombre de la carpeta que ha especificado contiene un carácter no reconocido. Introduzca un nombre diferente y vuelva a intentarlo.
+
+compactingFolder=Compactando la carpeta %S…
+# LOCALIZATION NOTE(compactingDone): %1$S is the compaction gain.
+compactingDone=Compactación terminada (aprox. %1$S recuperado).
+
+confirmFolderDeletionForFilter=Al eliminar la carpeta '%S' se desactivarán los filtros asociados. ¿Seguro que quiere eliminar la carpeta?
+alertFilterChanged=Los filtros asociados con esta carpeta serán actualizados.
+filterDisabled=La carpeta '%S' no se pudo encontrar, por lo que los filtros asociados con esta carpeta serán desactivados. Compruebe que la carpeta existe, y que los filtros apuntan a una carpeta de destino válida.
+filterFolderDeniedLocked=Los mensajes no pudieron ser filtrados a la carpeta '%S' porque hay otra operación en curso.
+parsingFolderFailed=No se pudo abrir la carpeta %S porque ésta está en uso por alguna otra operación. Espere a que termine esa operación y seleccione esa carpeta de nuevo.
+deletingMsgsFailed=No se pudieron eliminar mensajes en la carpeta %S porque ésta está en uso por alguna otra operación. Espere que esa operación concluya y vuelva a intentarlo.
+alertFilterCheckbox=No volver a avisarme.
+compactFolderDeniedLock=La carpeta '%S' no puede ser compactada porque hay otra operación en curso. Inténtelo más tarde.
+compactFolderWriteFailed=La carpeta '%S' no se pudo compactar porque falló la escritura en la carpeta. Compruebe que tiene suficiente espacio en disco y privilegios de escritura en el directorio, y vuelva a intentarlo.
+compactFolderInsufficientSpace=Algunas carpetas (p.e. '%S') no se pueden compactar porque no hay suficiente espacio libre en disco. Elimine algunos archivos y vuelva a intentarlo.
+filterFolderHdrAddFailed=Los mensajes no se han podido filtrar a la carpeta '%S' porque no se pudo añadir un mensaje en ella. Verifique que la carpeta se está mostrando correctamente o intente repararla desde las propiedades de la carpeta.
+filterFolderWriteFailed=Los mensajes no pudieron ser filtrados a la carpeta '%S' porque falló la escritura a esa carpeta. Compruebe que tiene suficiente espacio en disco y permiso de escritura en el directorio, e inténtelo de nuevo.
+copyMsgWriteFailed=Los mensajes no han podido ser movidos o copiados a la carpeta '%S' porque falló la escritura en esa carpeta. Para conseguir más espacio, desde el menú Archivo, escoja primero Vaciar Papelera, y luego escoja Compactar carpetas, y vuelva a intentarlo.
+cantMoveMsgWOBodyOffline=Cuando se encuentra en modo sin conexión, no puede mover o copiar mensajes que no hayan sido descargados para su uso desconectado. Desde la ventana de correo, abra el menú Archivo, escoja Sin conexión, luego desmarque Trabajar con conexión, y vuelva a intentarlo.
+operationFailedFolderBusy=La operación ha fallado porque otra operación está usando la carpeta. Espere a que ésta termine e inténtelo de nuevo.
+folderRenameFailed=No se pudo renombrar la carpeta. Tal vez la carpeta está siendo releída, o el nuevo nombre de la carpeta no es válido.
+# LOCALIZATION NOTE(verboseFolderFormat): %1$S is folder name, %2$S is server name
+verboseFolderFormat=%1$S en %2$S
+# LOCALIZATION NOTE(filterFolderTruncateFailed): %1$S is replaced by the folder name, %2$S is replaced by the brandShortName
+filterFolderTruncateFailed=Ha sucedido un error al truncar la bandeja de entrada tras filtrar un mensaje a la carpeta '%1$S'. Puede que necesite cerrar %2$S y eliminar INBOX.msf.
+
+mailboxTooLarge=La carpeta %S está llena, y no puede retener más mensajes. Para hacer sitio para más mensajes, borre cualquier correo antiguo o no deseado y compacte la carpeta.
+outOfDiskSpace=No hay suficiente espacio en disco para descargar nuevos mensajes. Pruebe a borrar el correo antiguo, vaciar la papelera de reciclaje y compactar sus carpetas de correo, y luego vuelva a intentarlo.
+errorGettingDB=No se puede abrir el archivo resumen de %S. Quizá hay un error en el disco, o la ruta completa es demasiado larga.
+defaultServerTag=(Predeterminado)
+
+# Used in message database list view to provide a text value for graphic based cells.
+messageUnread=No leído
+messageHasFlag=Con estrella
+messageHasAttachment=Tiene adjunto
+messageJunk=Correo no deseado
+messageExpanded=Expandido
+messageCollapsed=Contraído
+
+# Used in the SMTP Account Settings panel when a server value has no properties
+smtpServerList-NotSpecified=<sin especificar>
+smtpServer-ConnectionSecurityType-0=Ninguna
+smtpServer-ConnectionSecurityType-1=STARTTLS, si está disponible
+smtpServer-ConnectionSecurityType-2=STARTTLS
+smtpServer-ConnectionSecurityType-3=SSL/TLS
+smtpServers-confirmServerDeletionTitle=Eliminar servidor
+smtpServers-confirmServerDeletion=¿Seguro que desea eliminar el servidor: \n %S?
+
+# Account Settings - Both Incoming and SMTP server
+authNo=Sin identificación
+authOld=Contraseña, método original (inseguro)
+authPasswordCleartextInsecurely=Contraseña, transmitida de manera insegura
+authPasswordCleartextViaSSL=Contraseña normal
+authPasswordEncrypted=Contraseña cifrada
+authKerberos=Kerberos / GSSAPI
+authExternal=Certificado TLS
+authNTLM=NTLM
+authOAuth2=OAuth2
+authAnySecure=Cualquier método seguro (obsoleto)
+authAny=Cualquier 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=Introduzca las credenciales para %1$S en %2$S
+
+# LOCALIZATION NOTE(serverType-nntp): Do not translate "NNTP" in the line below
+serverType-nntp=Servidor de noticias (NNTP)
+# LOCALIZATION NOTE(serverType-pop3): Do not translate "POP" in the line below
+serverType-pop3=Servidor de correo POP
+# LOCALIZATION NOTE(serverType-imap): Do not translate "IMAP" in the line below
+serverType-imap=Servidor de correo IMAP
+serverType-none=Almacén de correo local
+
+sizeColumnTooltip2=Ordenar por tamaño
+sizeColumnHeader=Tamaño
+linesColumnTooltip2=Ordenar por líneas
+linesColumnHeader=Líneas
+
+# 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=Recibir mensajes nuevos de %S
+# Used to separate email addresses in a list. Note the trailing space ', '
+getMsgButtonTooltip.listSeparator=,\u0020
+
+# status feedback stuff
+documentDone=
+documentLoading=Cargando mensaje…
+
+# 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=Sincronizando mensajes en %1$S desde %2$S…
+
+unreadMsgStatus=Sin leer: %S
+selectedMsgStatus=Seleccionado: %S
+totalMsgStatus=Total: %S
+
+# localized folder names
+
+localFolders=Carpetas locales
+
+# LOCALIZATION NOTE (inboxFolderName): OK to translate all foldernames, bugzilla #57440 & bugzilla #23625 fixed
+inboxFolderName=Bandeja de entrada
+trashFolderName=Papelera
+sentFolderName=Enviados
+draftsFolderName=Borradores
+templatesFolderName=Plantillas
+outboxFolderName=Bandeja de salida
+junkFolderName=Correo no deseado
+archivesFolderName=Archivos
+
+# "Normal" priority is often blank,
+# depending on the consumers of these strings
+priorityLowest=La más baja
+priorityLow=Baja
+priorityNormal=Normal
+priorityHigh=Alta
+priorityHighest=La más alta
+
+#Group by date thread pane titles
+today=Hoy
+yesterday=Ayer
+lastWeek=Última semana
+last7Days=Los últimos 7 días
+twoWeeksAgo=Hace dos semanas
+last14Days=Los últimos 14 días
+older=Más antiguo
+futureDate=Futuro
+
+#Grouped By Tags
+untaggedMessages=Mensajes no etiquetados
+
+# Grouped by status
+messagesWithNoStatus=Sin estado
+
+#Grouped by priority
+noPriority=Sin prioridad
+
+#Grouped by has attachments
+noAttachments=Sin adjuntos
+attachments=Adjuntos
+
+#Grouped by starred
+notFlagged=Sin estrella
+groupFlagged=Con estrella
+
+# defaults descriptions for tag prefs listed in mailnews.js
+# (we keep the .labels. names for backwards compatibility)
+mailnews.tags.remove=Eliminar todas las etiquetas
+mailnews.labels.description.1=Importante
+mailnews.labels.description.2=Trabajo
+mailnews.labels.description.3=Personal
+mailnews.labels.description.4=Por hacer
+mailnews.labels.description.5=Más 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=Respondido
+forwarded=Reenviado
+redirected=Redirigido
+new=Nuevo
+read=Leído
+flagged=Con estrella
+
+# for junk status picker in search and mail views
+junk=No deseado
+
+# for junk score origin picker in search and mail views
+junkScoreOriginPlugin=Plugin
+junkScoreOriginFilter=Filtro
+junkScoreOriginWhitelist=Lista blanca
+junkScoreOriginUser=Usuario
+junkScoreOriginImapFlag=Indicador IMAP
+
+# for the has attachment picker in search and mail views
+hasAttachments=Tiene adjuntos
+
+# 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=y otros
+
+# 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=El cuerpo de este mensaje no se ha descargado desde el servidor \
+para leerlo sin conexión. Para leer este mensaje, debe volver a \
+conectarse, elegir Sin conexión en el menú Archivo y luego desmarcar \
+Trabajar sin conexión. En el futuro, puede seleccionar qué mensajes \
+o carpetas leer sin conexión. Para ello, elija Sin conexión en el \
+menú Archivo y luego Descargar/Sincronizar ahora. Puede ajustar las \
+preferencias de espacio en disco para evitar descargar mensajes 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=Correo
+newsAcctType=Noticias
+feedsAcctType=Canales
+
+# LOCALIZATION NOTE(nocachedbodytitle): Do not translate "<TITLE>" or "</TITLE>" in the line below
+nocachedbodytitle=<TITLE>Pasar a modo con conexión para ver este mensaje</TITLE>\n
+
+# mailWindowOverlay.js
+confirmUnsubscribeTitle=Confirmar la cancelación de la suscripción
+confirmUnsubscribeText=¿Seguro que quiere cancelar la suscripción a %S?
+confirmUnsubscribeManyText=¿Seguro que quiere desuscribirse de estos grupos de noticias?
+restoreAllTabs=Restaurar todas las pestañas
+
+confirmMarkAllFoldersReadTitle=Marcar todas las carpetas como leídas
+confirmMarkAllFoldersReadMessage=¿Está seguro de que quiere marcar como leídos todos los mensajes en todas las carpetas de esta cuenta?
+
+# LOCALIZATION NOTE(junkBarMessage): %S is brand
+junkBarMessage=%S piensa que este mensaje es correo basura.
+junkBarButton=No es basura
+junkBarButtonKey=N
+junkBarInfoButton=Saber más
+junkBarInfoButtonKey=S
+
+# LOCALIZATION NOTE(remoteContentBarMessage): %S is brand
+remoteContentBarMessage=Para proteger su privacidad, %S ha bloqueado el contenido remoto en este mensaje.
+remoteContentPrefLabel=Opciones
+remoteContentPrefAccesskey=O
+remoteContentPrefLabelUnix=Preferencias
+remoteContentPrefAccesskeyUnix=P
+
+# LOCALIZATION NOTE(remoteAllowResource): %S is origin
+remoteAllowResource=Permitir contenido 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 contenido remoto del origen listado arriba;Permitir contenido remoto de los #1 orígenes listados arriba
+
+phishingBarMessage=Este mensaje puede ser fraudulento.
+phishingBarPrefLabel=Opciones
+phishingBarPrefAccesskey=O
+phishingBarPrefLabelUnix=Preferencias
+phishingBarPrefAccesskeyUnix=P
+
+mdnBarIgnoreButton=Ignorar solicitud
+mdnBarIgnoreButtonKey=n
+mdnBarSendReqButton=Enviar acuse de recibo
+mdnBarSendReqButtonKey=E
+
+draftMessageMsg=Este mensaje es un borrador.
+draftMessageButton=Editar
+draftMessageButtonKey=r
+
+# msgHdrViewOverlay.js
+openLabel=Abrir
+openLabelAccesskey=b
+saveLabel=Guardar como…
+saveLabelAccesskey=A
+detachLabel=Separar adjuntos…
+detachLabelAccesskey=D
+deleteLabel=Eliminar
+deleteLabelAccesskey=r
+openFolderLabel=Abrir carpeta contenedora
+openFolderLabelAccesskey=c
+deleteAttachments=Los siguientes adjuntos se eliminarán permanentemente de este mensaje:\n%S\nEsta acción no se puede deshacer. ¿Desea continuar?
+detachAttachments=Los siguientes adjuntos se han guardado correctamente y se eliminarán permanentemente de este mensaje:\n%S\nEsta acción no se puede deshacer. ¿Desea continuar?
+deleteAttachmentFailure=Fallo al eliminar los adjuntos seleccionados.
+emptyAttachment=Este adjunto parece estar vacío.\nConfírmelo con la persona que envió esto.\nA menudo, los cortafuegos empresariales o los programas antivirus destruyen los adjuntos.
+externalAttachmentNotFound=Este adjunto de archivo o enlace separados ya no se encuentra o no está accesible en esta ubicación.
+
+# LOCALIZATION NOTE (attachmentCount): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# #1 number of attachments
+attachmentCount=#1 adjunto;#1 adjuntos
+
+# 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 adjunto:
+
+# LOCALIZATION NOTE (attachmentSizeUnknown): The string to show for the total
+# size of all attachments when none of the attachments' sizes can be detected.
+attachmentSizeUnknown=tamaño desconocido
+
+# 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=al 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=Adjuntos:
+
+# Connection Error Messages
+# LOCALIZATION NOTE(unknownHostError): %S is the server name
+unknownHostError=No se pudo conectar con el servidor %S.
+# LOCALIZATION NOTE(connectionRefusedError): %S is the server name
+connectionRefusedError=No se pudo conectar con el servidor %S; la conexión fue rechazada.
+# LOCALIZATION NOTE(netTimeoutError): %S is the server name
+netTimeoutError=La conexión al servidor %S ha superado el tiempo de espera máximo.
+# LOCALIZATION NOTE(netResetError): %S is the server name
+netResetError=La conexión al servidor %S se ha reiniciado.
+# LOCALIZATION NOTE(netInterruptError): %S is the server name
+netInterruptError=La conexión al servidor %S se ha interrumpido.
+
+recipientSearchCriteria=El asunto o destinatario contiene:
+fromSearchCriteria=El asunto o remitente contiene:
+
+# LOCALIZATION NOTE(biffNotification): %1$S is the number of new messages
+biffNotification_message=tiene %1$S mensaje nuevo
+biffNotification_messages=tiene %1$S mensajes nuevos
+
+# LOCALIZATION NOTE(newMailNotification_message): %1$S is the name of the account %2$S is the number of new messages
+newMailNotification_message=%1$S ha recibido %2$S mensaje nuevo
+
+# LOCALIZATION NOTE(newMailNotification_messages): %1$S is the name of the account %2$S is the number of new messages
+newMailNotification_messages=%1$S ha recibido %2$S mensajes nuevos
+
+# 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 ha recibido #2 mensaje nuevo;#1 ha recibido #2 mensajes nuevos
+
+# For the Quota tab in the mail folder properties dialog
+quotaPercentUsed=%S%% lleno
+# for quota in main window (commandglue.js)
+percent=%S%%
+quotaTooltip2=Cuota IMAP: %S usados de un total de %S. Pulse para ver detalles.
+
+# for message views
+confirmViewDeleteTitle=Confirmar
+confirmViewDeleteMessage=¿Seguro que quiere eliminar esta vista?
+
+# for virtual folders
+confirmSavedSearchTitle=Confirmar eliminación
+confirmSavedSearchDeleteMessage=¿Seguro que desea eliminar esta búsqueda 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=Introduzca su contraseña para %1$S en %2$S:
+
+## @name ENTER_PASSWORD_PROMPT_TITLE
+## @loc None
+passwordTitle=Contraseña para el servidor de correo requerida
+
+# for checking if the user really wants to open lots of messages in separate windows.
+openWindowWarningTitle=Confirmar
+# LOCALIZATION NOTE (openWindowWarningConfirmation): Semi-colon list of plural forms.
+# #1 is the number of messages the user is attempting to open.
+openWindowWarningConfirmation=Abrir #1 mensaje puede ser lento. ¿Continuar?;Abrir #1 mensajes puede ser lento. ¿Continuar?
+
+# for checking if the user really wants to open lots of messages in tabs.
+openTabWarningTitle=Confirmar
+# LOCALIZATION NOTE (openTabWarningConfirmation): Semi-colon list of plural forms.
+# #1 is the number of messages the user is attempting to open.
+openTabWarningConfirmation=Abrir #1 mensaje puede ser lento. ¿Continuar?;Abrir #1 mensajes puede ser lento. ¿Continuar?
+
+# for warning the user that a tag they're trying to create already exists
+tagExists=Ya existe una etiqueta con ese nombre.
+
+# 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 las propiedades de la búsqueda %S
+# LOCALIZATION NOTE (foldersChosen): #1 number of chosen folders
+virtualFolderSourcesChosen=#1 carpeta elegida;#1 carpetas elegidas
+
+#alert to inform the user to choose one or more folders to search for a saved search folder
+alertNoSearchFoldersSelected=Debe elegir al menos una carpeta en la que buscar para guardar la búsqueda.
+
+# 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 en esta carpeta, %2$S en subcarpetas
+
+# Error message if message for a message id wasn't found
+errorOpenMessageForMessageIdTitle=Error al abrir el message-id
+errorOpenMessageForMessageIdMessage=Mensaje correspondiente al message-id %S no encontrado
+
+# Warnings to alert users about phishing urls
+confirmPhishingTitle=Alerta de correo fraudulento
+linkMismatchTitle=Discordancia detectada en enlace
+#LOCALIZATION NOTE %1$S is the brand name, %2$S is the host name of the url being visited
+confirmPhishingUrl=%1$S piensa que este mensaje es fraudulento. Los enlaces en el mensaje pueden estar tratando de suplantar la página web que quiere visitar. ¿Seguro que quiere 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=El enlace que acaba de pulsar parece dirigir a otro sitio que el indicado por el texto del enlace. Esto se usa a veces para rastrear si ha pulsado el enlace, pero también podría indicar una técnica fraudulenta.\n\nEl texto del enlace indicaba que este dirigiría a %1$S, pero realmente dirige a %2$S.
+#LOCALIZATION NOTE $1$S is the host name of the indicated host.
+confirmPhishingGoAhead=Visitar %1$S de todas formas
+#LOCALIZATION NOTE %1$S is the host name that was displayed to the user.
+confirmPhishingGoDirect=Ir a %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=Buscar actualizaciones…
+updatesItem_defaultFallback=Buscar actualizaciones…
+updatesItem_default.accesskey=C
+updatesItem_downloading=Descargando %S…
+updatesItem_downloadingFallback=Descargando actualización…
+updatesItem_downloading.accesskey=D
+updatesItem_resume=Continuar descargando %S…
+updatesItem_resumeFallback=Continuar descargando la actualización…
+updatesItem_resume.accesskey=d
+updatesItem_pending=Aplicar ahora la actualización descargada…
+updatesItem_pendingFallback=Aplicar ahora la actualización descargada…
+updatesItem_pending.accesskey=A
+
+# Folder Pane Header Title Strings
+folderPaneModeHeader_all=Todas las carpetas
+folderPaneModeHeader_unread=Carpetas no leídas
+folderPaneModeHeader_favorite=Carpetas favoritas
+folderPaneModeHeader_recent=Carpetas recientes
+folderPaneModeHeader_smart=Carpetas unificadas
+unifiedAccountName=Carpetas 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 de nuevo a "%1$S"
+moveToFolderAgainAccessKey=n
+#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 de nuevo a "%1$S"
+copyToFolderAgainAccessKey=n
+
+#LOCALIZATION NOTE(mdnBarMessageNormal) %1$S is the name of the sender
+mdnBarMessageNormal=%1$S ha solicitado que se le notifique cuando Vd. lea este mensaje.
+#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 ha solicitado que se le notifique (en %2$S) cuando Vd. lea este mensaje.
+
+# mailCommands.js
+emptyJunkFolderTitle=Vaciar "%S"
+emptyJunkFolderMessage=¿Eliminar todos los mensajes y subcarpetas de la carpeta Basura?
+emptyJunkDontAsk=No volver a preguntarme.
+emptyTrashFolderTitle=Vaciar "%S"
+emptyTrashFolderMessage=¿Eliminar todos los mensajes y subcarpetas de la carpeta Papelera?
+emptyTrashDontAsk=No volver a preguntarme.
+
+# junkCommands.js
+junkAnalysisPercentComplete=Análisis de correo no deseado completado al %S
+processingJunkMessages=Procesando mensajes de correo no deseado
+
+# Messenger bootstrapping messages
+fileNotFoundTitle = Archivo no encontrado
+#LOCALIZATION NOTE(fileNotFoundMsg): %S is the filename
+fileNotFoundMsg = El archivo %S no existe.
+
+fileEmptyTitle = Archivo vacío
+#LOCALIZATION NOTE(fileEmptyMsg): %S is the filename
+fileEmptyMsg = El archivo %S está vacío.
+
+# LOCALIZATION NOTE (headerMoreAddrs): semicolon separated list of plural
+# forms of the word "more" as used after the number of addresses
+# currently hidden while displaying a header such as "to", "cc", or "bcc"
+# in the message header box. English has two identical forms here, so it will
+# construct strings that look like (for example) "1 more" or "20 more".
+# <https://developer.mozilla.org/en/Localization_and_Plurals> has details
+# on this mechanism.
+headerMoreAddrs=#1 más;#1 más
+
+# 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=, y #1 más;, y #1 más
+
+# 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=mí
+
+# LOCALIZATION NOTE (headerfromFieldMe): first person prepositional object
+# pronoun used in the "from" header of the message header pane.
+headerfromFieldMe=mí
+
+# LOCALIZATION NOTE (headerreply-toFieldMe): first person prepositional
+# object pronoun used in the "reply-to" header of the message header pane.
+headerreply-toFieldMe=mí
+
+# LOCALIZATION NOTE (headerccFieldMe): first person prepositional object
+# pronoun used in the "cc" header of the message header pane.
+headerccFieldMe=mí
+
+# LOCALIZATION NOTE (headerbccFieldMe): first person prepositional object
+# pronoun used in the "bcc" header of the message header pane.
+headerbccFieldMe=mí
+
+expandAttachmentPaneTooltip=Mostrar el panel de adjuntos
+collapseAttachmentPaneTooltip=Ocultar el panel de adjuntos
+
+# Shown when content tabs are being loaded.
+loadingTab=Cargando…
+
+confirmMsgDelete.title=Confirmar eliminación
+confirmMsgDelete.collapsed.desc=Esto eliminará los mensajes en las conversaciones expandidas. ¿Seguro que desea continuar?
+confirmMsgDelete.deleteNoTrash.desc=Esto eliminará los mensajes inmediatamente, sin guardar una copia en la papelera. ¿Seguro que desea continuar?
+confirmMsgDelete.deleteFromTrash.desc=Esto eliminará permanentemente los mensajes de la papelera. ¿Está seguro de que quiere continuar?
+confirmMsgDelete.dontAsk.label=No volver a preguntarme.
+confirmMsgDelete.delete.label=Eliminar
+
+mailServerLoginFailedTitle=Inicio de sesión fallido
+# LOCALIZATION NOTE (mailServerLoginFailedTitleWithAccount):
+# "%S" is the account name.
+mailServerLoginFailedTitleWithAccount=El inicio de sesión en la cuenta "%S" ha fallado
+# LOCALIZATION NOTE (mailServerLoginFailed2):
+# %1$S is the host name of the server, %2$S is the user name.
+mailServerLoginFailed2=El inicio de sesión en el servidor %1$S con el nombre de usuario %2$S ha fallado.
+mailServerLoginFailedRetryButton=&Reintentar
+mailServerLoginFailedEnterNewPasswordButton=&Introduzca nueva contraseña
+
+# 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 cambios?
+# 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 las columnas de la carpeta actual 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 cambios?
+# 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 las columnas de la carpeta actual a %S y sus subcarpetas?
+
+# LOCALIZATION NOTE (lwthemeInstallRequest.message): %S will be replaced with
+# the host name of the site.
+lwthemeInstallRequest.message=Este sitio (%S) ha intentado instalar un tema.
+lwthemeInstallRequest.allowButton=Permitir
+lwthemeInstallRequest.allowButton.accesskey=P
+
+lwthemePostInstallNotification.message=Se ha instalado un nuevo tema.
+lwthemePostInstallNotification.undoButton=Deshacer
+lwthemePostInstallNotification.undoButton.accesskey=D
+lwthemePostInstallNotification.manageButton=Administrar temas…
+lwthemePostInstallNotification.manageButton.accesskey=A
+
+# troubleshootModeRestart
+troubleshootModeRestartPromptTitle=Reiniciar en modo de resolución de problemas
+troubleshootModeRestartPromptMessage=El modo de resolución de problemas desactivará todos los complementos y utilizará temporalmente algunas preferencias predeterminadas. \n¿Está seguro de que desea reiniciar?
+troubleshootModeRestartButton=Reiniciar
+
+# LOCALIZATION NOTE (downloadAndInstallButton.label): %S is replaced by the
+# version of the update: "Update to 28.0".
+update.downloadAndInstallButton.label=Actualizar a %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=Vaciar todo el historial
+sanitizeButtonOK=Limpiar ahora
+# 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=Se eliminará todo el historial.
+# 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=Se eliminarán todos los elementos seleccionados.
+
+learnMoreAboutIgnoreThread=Saber más…
+learnMoreAboutIgnoreThreadAccessKey = L
+undoIgnoreThread=Deshacer Ignorar conversación
+undoIgnoreThreadAccessKey=U
+undoIgnoreSubthread=Deshacer Ignorar subconversación
+undoIgnoreSubthreadAccessKey=U
+# LOCALIZATION NOTE (ignoredThreadFeedback): #1 is the message thread title
+ignoredThreadFeedback=Las respuestas a la conversación "#1" no se mostrarán.
+# LOCALIZATION NOTE (ignoredSubthreadFeedback): #1 is the message subthread title
+ignoredSubthreadFeedback=Las respuestas a la subconversación "#1" no se mostrarán.
+# LOCALIZATION NOTE (ignoredThreadsFeedback): Semi-colon list of plural forms.
+# #1 is the number of threads
+ignoredThreadsFeedback=Las respuestas a la conversación que estaba seleccionada no se mostrarán.;Las respuestas a las #1 conversaciones que estaban seleccionadas no se mostrarán.
+# LOCALIZATION NOTE (ignoredSubthreadsFeedback): Semi-colon list of plural forms.
+# #1 is number of subthreads
+ignoredSubthreadsFeedback=Las respuestas a la subconversación que estaba seleccionada no se mostrarán.;Las respuestas a las #1 subconversaciones que estaban seleccionadas no se mostrarán.
+# LOCALIZATION NOTE (saveAsType): replace %S with the extension of the file to be saved.
+saveAsType=archivo %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=Buscar "%2$S" en %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=Buscar "%2$S…" en %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 errores
+
+# 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 = Error - %S
+
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdAdvancedEdit.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdAdvancedEdit.dtd
new file mode 100644
index 0000000000..0a905f1dca
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 avanzado de propiedades">
+<!ENTITY AttName.label "Atributo: ">
+<!ENTITY AttValue.label "Valor: ">
+<!ENTITY PropertyName.label "Propiedad: ">
+<!ENTITY currentattributesfor.label "Atributos actuales para: ">
+<!ENTITY tree.attributeHeader.label "Atributo">
+<!ENTITY tree.propertyHeader.label "Propiedad">
+<!ENTITY tree.valueHeader.label "Valor">
+<!ENTITY tabHTML.label "Atributos HTML">
+<!ENTITY tabCSS.label "Estilo del elemento">
+<!ENTITY tabJSE.label "Eventos JavaScript">
+
+<!ENTITY editAttribute.label "Haga clic encima de un elemento para editar su valor">
+<!ENTITY removeAttribute.label "Eliminar">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdColorPicker.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdColorPicker.dtd
new file mode 100644
index 0000000000..46c0a01f05
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Color">
+<!ENTITY lastPickedColor.label "Último color seleccionado">
+<!ENTITY lastPickedColor.accessKey "L">
+<!ENTITY chooseColor1.label "Elija un color:">
+<!ENTITY chooseColor2.label "Introduzca una cadena de color HTML">
+<!ENTITY chooseColor2.accessKey "n">
+<!ENTITY setColorExample.label "(p.ej: &quot;#0000ff&quot; ó &quot;blue&quot;):">
+<!ENTITY default.label "Predeterminado">
+<!ENTITY default.accessKey "D">
+<!ENTITY palette.label "Paleta:">
+<!ENTITY standardPalette.label "Estándar">
+<!ENTITY webPalette.label "Todos los colores web">
+<!ENTITY background.label "Fondo para:">
+<!ENTITY background.accessKey "F">
+<!ENTITY table.label "Tabla">
+<!ENTITY table.accessKey "T">
+<!ENTITY cell.label "Celda(s)">
+<!ENTITY cell.accessKey "C">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdConvertToTable.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdConvertToTable.dtd
new file mode 100644
index 0000000000..09679b1267
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdConvertToTable.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 windowTitle.label "Convertir a tabla">
+<!ENTITY instructions1.label "Composer crea una nueva fila en la tabla por cada párrafo en la selección.">
+<!ENTITY instructions2.label "Escoja el carácter utilizado para separar la selección en columnas:">
+<!ENTITY commaRadio.label "Coma">
+<!ENTITY spaceRadio.label "Espacio">
+<!ENTITY otherRadio.label "Otro carácter:">
+<!ENTITY deleteCharCheck.label "Eliminar carácter separador">
+<!ENTITY collapseSpaces.label "Ignorar espacios extra">
+<!ENTITY collapseSpaces.tooltip "Convertir espacios adyacentes a un separador">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdDialogOverlay.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdDialogOverlay.dtd
new file mode 100644
index 0000000000..f1f0a7e5cd
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdDialogOverlay.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 AdvancedEditButton.label "Edición avanzada…">
+<!ENTITY AdvancedEditButton.accessKey "E">
+<!ENTITY AdvancedEditButton.tooltip "Añada o modifique atributos HTML, atributos de estilo y JavaScript">
+<!ENTITY chooseFileButton.label "Elegir archivo...">
+<!ENTITY chooseFileButton.accessKey "a">
+<!ENTITY chooseFileLinkButton.label "Elegir archivo...">
+<!ENTITY chooseFileLinkButton.accessKey "o">
+<!ENTITY makeUrlRelative.label "La URL es relativa a la ruta de la página">
+<!ENTITY makeUrlRelative.accessKey "r">
+<!ENTITY makeUrlRelative.tooltip "Alterna entre URL absoluta y relativa. Debe guardar previamente la página para cambiar esta propiedad.">
+
+<!ENTITY LinkURLEditField2.label "Introduzca una dirección de página web, un archivo local, o seleccione un enlace con nombre o encabezado del menú contextual del campo:">
+<!ENTITY LinkURLEditField2.accessKey "n">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdNamedAnchorProperties.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdNamedAnchorProperties.dtd
new file mode 100644
index 0000000000..7322b5fe64
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EdNamedAnchorProperties.dtd
@@ -0,0 +1,8 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY windowTitle.label "Propiedades del enlace interno">
+<!ENTITY anchorNameEditField.label "Nombre del enlace interno:">
+<!ENTITY anchorNameEditField.accessKey "N">
+<!ENTITY nameInput.tooltip "Introduzca un nombre único para este enlace interno (destino)">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorColorProperties.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorColorProperties.dtd
new file mode 100644
index 0000000000..017a18bb36
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorColorProperties.dtd
@@ -0,0 +1,28 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY windowTitle.label "Fondo y colores de la página">
+<!ENTITY pageColors.label "Colores de la página">
+<!ENTITY defaultColorsRadio.label "Colores predeterminados del lector (no fijar los colores en la página)">
+<!ENTITY defaultColorsRadio.accessKey "D">
+<!ENTITY defaultColorsRadio.tooltip "Usar sólo la configuración de color del navegador del lector">
+<!ENTITY customColorsRadio.label "Usar colores personalizados:">
+<!ENTITY customColorsRadio.accessKey "C">
+<!ENTITY customColorsRadio.tooltip "Esta configuración de colores tendrá preferencia sobre la del navegador del lector">
+
+<!ENTITY normalText.label "Texto normal">
+<!ENTITY normalText.accessKey "N">
+<!ENTITY linkText.label "Texto de enlace">
+<!ENTITY linkText.accessKey "L">
+<!ENTITY activeLinkText.label "Texto de enlace activo">
+<!ENTITY activeLinkText.accessKey "A">
+<!ENTITY visitedLinkText.label "Texto de enlace visitado">
+<!ENTITY visitedLinkText.accessKey "V">
+<!ENTITY background.label "Fondo:">
+<!ENTITY background.accessKey "F">
+<!ENTITY colon.character ":">
+<!ENTITY backgroundImage.label "Imagen de fondo:">
+<!ENTITY backgroundImage.accessKey "m">
+<!ENTITY backgroundImage.tooltip "Usar un archivo de imagen como fondo de su página">
+<!ENTITY backgroundImage.shortenedDataURI "URI de datos acortada (Copiar pondrá la URI completa en el portapapeles)">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorHLineProperties.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorHLineProperties.dtd
new file mode 100644
index 0000000000..d7100b206f
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorHLineProperties.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 windowTitle.label "Propiedades de la línea horizontal">
+
+<!ENTITY dimensionsBox.label "Dimensiones">
+<!ENTITY heightEditField.label "Altura:">
+<!ENTITY heightEditField.accessKey "l">
+<!ENTITY widthEditField.label "Anchura:">
+<!ENTITY widthEditField.accessKey "A">
+<!ENTITY pixelsPopup.value "píxeles">
+<!ENTITY alignmentBox.label "Alineación">
+<!ENTITY leftRadio.label "Izquierda">
+<!ENTITY leftRadio.accessKey "I">
+<!ENTITY centerRadio.label "Centrada">
+<!ENTITY centerRadio.accessKey "C">
+<!ENTITY rightRadio.label "Derecha">
+<!ENTITY rightRadio.accessKey "D">
+
+<!ENTITY threeDShading.label "Sombreado 3-D">
+<!ENTITY threeDShading.accessKey "S">
+<!ENTITY saveSettings.label "Usar como opción predeterminada">
+<!ENTITY saveSettings.accessKey "D">
+<!ENTITY saveSettings.tooltip "Guardar esta configuración para usarla al insertar nuevas líneas horizontales">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorImageProperties.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorImageProperties.dtd
new file mode 100644
index 0000000000..1025ac5f62
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorImageProperties.dtd
@@ -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/. -->
+
+<!-- These strings are for use specifically in the editor's image and form image dialogs. -->
+
+<!ENTITY windowTitle.label "Propiedades de la imagen">
+
+<!ENTITY pixelsPopup.value "píxeles">
+
+<!ENTITY locationEditField.label "URL de la imagen:">
+<!ENTITY locationEditField.accessKey "L">
+<!ENTITY locationEditField.tooltip "Teclee el nombre de archivo de la imagen o su ubicación">
+<!ENTITY locationEditField.shortenedDataURI "URI de datos acortada (Copiar pondrá la URI completa en el portapapeles)">
+<!ENTITY title.label "Consejo:">
+<!ENTITY title.accessKey "C">
+<!ENTITY title.tooltip "El atributo HTML 'title' que se muestra como consejo">
+<!ENTITY altText.label "Texto alternativo:">
+<!ENTITY altText.accessKey "A">
+<!ENTITY altTextEditField.tooltip "Teclee el texto a mostar en lugar de la imagen">
+<!ENTITY noAltText.label "No usar texto alternativo">
+<!ENTITY noAltText.accessKey "n">
+
+<!ENTITY previewBox.label "Vista preliminar">
+
+<!-- These controls are in the Dimensions tab panel -->
+<!-- These controls are in the Dimensions tab panel -->
+<!ENTITY actualSize.label "Tamaño real:">
+<!ENTITY actualSizeRadio.label "Tamaño real">
+<!ENTITY actualSizeRadio.accessKey "A">
+<!ENTITY actualSizeRadio.tooltip "Restablecer al tamaño real de la imagen">
+<!ENTITY customSizeRadio.label "Tamaño personalizado">
+<!ENTITY customSizeRadio.accessKey "S">
+<!ENTITY customSizeRadio.tooltip "Cambiar el tamaño de la imagen al establecido en la página">
+<!ENTITY heightEditField.label "Altura:">
+<!ENTITY heightEditField.accessKey "u">
+<!ENTITY widthEditField.label "Anchura:">
+<!ENTITY widthEditField.accessKey "n">
+<!ENTITY constrainCheckbox.label "Mantener aspecto">
+<!ENTITY constrainCheckbox.accessKey "C">
+<!ENTITY constrainCheckbox.tooltip "Mantener la proporción en el aspecto de la imagen">
+
+<!ENTITY imagemapBox.label "Mapa de imagen">
+<!ENTITY removeImageMapButton.label "Eliminar">
+<!ENTITY removeImageMapButton.accessKey "R">
+
+<!ENTITY alignment.label "Alinear el texto con la imagen">
+<!ENTITY bottomPopup.value "En la parte inferior">
+<!ENTITY topPopup.value "En la parte superior
+">
+<!ENTITY centerPopup.value "En el centro">
+<!ENTITY wrapRightPopup.value "El texto fluye por la derecha">
+<!ENTITY wrapLeftPopup.value "El texto fluye por la izquierda">
+
+<!ENTITY spacingBox.label "Espacio">
+<!ENTITY leftRightEditField.label "Izquierda y derecha:">
+<!ENTITY leftRightEditField.accessKey "I">
+<!ENTITY topBottomEditField.label "Parte superior y parte inferior:">
+<!ENTITY topBottomEditField.accessKey "T">
+<!ENTITY borderEditField.label "Borde sólido:">
+<!ENTITY borderEditField.accessKey "B">
+
+<!ENTITY showImageLinkBorder.label "Mostrar el borde alrededor de la imagen-enlace">
+<!ENTITY showImageLinkBorder.accessKey "B">
+<!ENTITY LinkAdvancedEditButton.label "Edición avanzada del enlace…">
+<!ENTITY LinkAdvancedEditButton.accessKey "E">
+<!ENTITY LinkAdvancedEditButton.tooltip "Añada o modifique atributos HTML, atributos de estilo y JavaScript">
+
+<!ENTITY imageInputTab.label "Formulario">
+<!ENTITY imageLocationTab.label "Ubicación">
+<!ENTITY imageDimensionsTab.label "Dimensiones">
+<!ENTITY imageAppearanceTab.label "Apariencia">
+<!ENTITY imageLinkTab.label "Enlace">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertChars.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertChars.dtd
new file mode 100644
index 0000000000..8d41037e09
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertChars.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 "Insertar carácter">
+<!ENTITY category.label "Categoría">
+<!ENTITY letter.label "Letra:">
+<!ENTITY letter.accessKey "L">
+<!ENTITY character.label "Carácter:">
+<!ENTITY character.accessKey "C">
+<!ENTITY accentUpper.label "Mayúsculas acentuadas">
+<!ENTITY accentLower.label "Minúsculas acentuadas">
+<!ENTITY otherUpper.label "Otras mayúsculas">
+<!ENTITY otherLower.label "Otras minúsculas">
+<!ENTITY commonSymbols.label "Símbolos comunes">
+<!ENTITY insertButton.label "Insertar">
+<!ENTITY closeButton.label "Cerrar">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertMath.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertMath.dtd
new file mode 100644
index 0000000000..f1888b30fb
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertMath.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 windowTitle.label "Insertar expresión matemática">
+
+<!ENTITY sourceEditField.label "Introduzca código LaTeX:">
+
+<!ENTITY options.label "Opciones">
+<!ENTITY optionInline.label "Modo incrustado">
+<!ENTITY optionInline.accesskey "M">
+<!ENTITY optionDisplay.label "Modo de visualización">
+<!ENTITY optionDisplay.accesskey "v">
+<!ENTITY optionLTR.label "Dirección de izquierda a derecha">
+<!ENTITY optionLTR.accesskey "z">
+<!ENTITY optionRTL.label "Dirección de derecha a izquierda">
+<!ENTITY optionRTL.accesskey "d">
+
+<!ENTITY insertButton.label "Insertar">
+<!ENTITY insertButton.accesskey "I">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertSource.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertSource.dtd
new file mode 100644
index 0000000000..8ace269242
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertSource.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 windowTitle.label "Insertar HTML">
+<!ENTITY sourceEditField.label "Introduzca etiquetas HTML y texto:">
+<!ENTITY example.label "Ejemplo: ">
+<!ENTITY exampleOpenTag.label "&lt;i&gt;">
+<!ENTITY exampleCloseTag.label "&lt;/i&gt;">
+<!ENTITY exampleText.label "¡Hola, Mundo!">
+<!ENTITY insertButton.label "Insertar">
+<!ENTITY insertButton.accesskey "I">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertTOC.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertTOC.dtd
new file mode 100644
index 0000000000..0453dc8752
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Tabla de contenidos">
+<!ENTITY buildToc.label "Construir tabla de contenidos de:">
+<!ENTITY tag.label "Etiqueta:">
+<!ENTITY class.label "Clase:">
+<!ENTITY header1.label "Nivel 1">
+<!ENTITY header2.label "Nivel 2">
+<!ENTITY header3.label "Nivel 3">
+<!ENTITY header4.label "Nivel 4">
+<!ENTITY header5.label "Nivel 5">
+<!ENTITY header6.label "Nivel 6">
+<!ENTITY makeReadOnly.label "Hacer de sólo lectura la tabla de contenidos">
+<!ENTITY orderedList.label "Numerar todas las entradas en la tabla de contenidos">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertTable.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertTable.dtd
new file mode 100644
index 0000000000..c014ecb2c1
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorInsertTable.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 windowTitle.label "Insertar tabla">
+
+<!ENTITY size.label "Tamaño">
+<!ENTITY numRowsEditField.label "Filas:">
+<!ENTITY numRowsEditField.accessKey "F">
+<!ENTITY numColumnsEditField.label "Columnas:">
+<!ENTITY numColumnsEditField.accessKey "C">
+<!ENTITY widthEditField.label "Anchura:">
+<!ENTITY widthEditField.accessKey "A">
+<!ENTITY borderEditField.label "Borde:">
+<!ENTITY borderEditField.accessKey "B">
+<!ENTITY borderEditField.tooltip "Teclea un número para el borde de la tabla, o bien cero (0) para omitir el borde">
+<!ENTITY pixels.label "píxeles">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorLinkProperties.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorLinkProperties.dtd
new file mode 100644
index 0000000000..7d990a5fb5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Propiedades del enlace">
+<!ENTITY LinkURLBox.label "Ubicación del enlace">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorListProperties.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorListProperties.dtd
new file mode 100644
index 0000000000..187ef039c8
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorListProperties.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 windowTitle.label "Propiedades de la lista">
+
+<!ENTITY ListType.label "Tipo de lista">
+<!ENTITY bulletStyle.label "Estilo de viñeta:">
+<!ENTITY startingNumber.label "Empezar en:">
+<!ENTITY startingNumber.accessKey "E">
+<!ENTITY none.value "Ninguno">
+<!ENTITY bulletList.value "Lista (no numerada) de viñetas:">
+<!ENTITY numberList.value "Lista numerada">
+<!ENTITY definitionList.value "Lista de definiciones">
+<!ENTITY changeEntireListRadio.label "Cambiar la lista entera">
+<!ENTITY changeEntireListRadio.accessKey "C">
+<!ENTITY changeSelectedRadio.label "Cambiar sólo los elementos seleccionados">
+<!ENTITY changeSelectedRadio.accessKey "I">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorPersonalDictionary.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorPersonalDictionary.dtd
new file mode 100644
index 0000000000..ab217278e4
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorPersonalDictionary.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 windowTitle.label "Diccionario personal">
+
+<!ENTITY wordEditField.label "Nueva palabra:">
+<!ENTITY wordEditField.accessKey "N">
+<!ENTITY AddButton.label "Añadir">
+<!ENTITY AddButton.accessKey "A">
+<!ENTITY DictionaryList.label "Palabras en el diccionario:">
+<!ENTITY DictionaryList.accessKey "d">
+<!ENTITY RemoveButton.label "Eliminar">
+<!ENTITY RemoveButton.accessKey "e">
+
+<!ENTITY CloseButton.label "Cerrar">
+<!ENTITY CloseButton.accessKey "C">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorReplace.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorReplace.dtd
new file mode 100644
index 0000000000..b24c097ccf
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorReplace.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/. -->
+
+<!-- extracted from EdReplace.xhtml -->
+
+<!ENTITY replaceDialog.title "Buscar y reemplazar">
+<!ENTITY findField.label "Buscar texto:">
+<!ENTITY findField.accesskey "t">
+<!ENTITY replaceField.label "Reemplazar con:">
+<!ENTITY replaceField.accesskey "e">
+<!ENTITY caseSensitiveCheckbox.label "Coinc. mayús./minús.">
+<!ENTITY caseSensitiveCheckbox.accesskey "M">
+<!ENTITY wrapCheckbox.label "Buscar en todo el documento">
+<!ENTITY wrapCheckbox.accesskey "t">
+<!ENTITY backwardsCheckbox.label "Buscar hacia atrás">
+<!ENTITY backwardsCheckbox.accesskey "b">
+<!ENTITY findNextButton.label "Buscar siguiente">
+<!ENTITY findNextButton.accesskey "g">
+<!ENTITY replaceButton.label "Reemplazar">
+<!ENTITY replaceButton.accesskey "R">
+<!ENTITY replaceAndFindButton.label "Reemplazar y buscar">
+<!ENTITY replaceAndFindButton.accesskey "y">
+<!ENTITY replaceAllButton.label "Reemplazar todo">
+<!ENTITY replaceAllButton.accesskey "A">
+<!ENTITY closeButton.label "Cerrar">
+<!ENTITY closeButton.accesskey "C">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorSpellCheck.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorSpellCheck.dtd
new file mode 100644
index 0000000000..0352c388dd
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorSpellCheck.dtd
@@ -0,0 +1,37 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY windowTitle.label "Revisar ortografía">
+
+<!ENTITY misspelledWord.label "Palabra mal escrita:">
+<!ENTITY wordEditField.label "Reemplazar con:">
+<!ENTITY wordEditField.accessKey "z">
+<!ENTITY checkwordButton.label "Revisar palabra">
+<!ENTITY checkwordButton.accessKey "s">
+<!ENTITY suggestions.label "Sugerencias:">
+<!ENTITY suggestions.accessKey "u">
+<!ENTITY ignoreButton.label "Ignorar">
+<!ENTITY ignoreButton.accessKey "I">
+<!ENTITY ignoreAllButton.label "Ignorar todo">
+<!ENTITY ignoreAllButton.accessKey "n">
+<!ENTITY replaceButton.label "Reemplazar">
+<!ENTITY replaceButton.accessKey "R">
+<!ENTITY replaceAllButton.label "Reemplazar todo">
+<!ENTITY replaceAllButton.accessKey "A">
+<!ENTITY stopButton.label "Detener">
+<!ENTITY stopButton.accessKey "D">
+<!ENTITY userDictionary.label "Diccionario personal:">
+<!ENTITY moreDictionaries.label "Descargar más diccionarios…">
+<!ENTITY addToUserDictionaryButton.label "Añadir palabra">
+<!ENTITY addToUserDictionaryButton.accessKey "d">
+<!ENTITY editUserDictionaryButton.label "Editar…">
+<!ENTITY editUserDictionaryButton.accessKey "E">
+<!ENTITY recheckButton2.label "Recomprobar texto">
+<!ENTITY recheckButton2.accessKey "b">
+<!ENTITY closeButton.label "Cerrar">
+<!ENTITY closeButton.accessKey "C">
+<!ENTITY sendButton.label "Enviar">
+<!ENTITY sendButton.accessKey "v">
+<!ENTITY languagePopup.label "Idioma:">
+<!ENTITY languagePopup.accessKey "m">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorTableProperties.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorTableProperties.dtd
new file mode 100644
index 0000000000..251f34ce5e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/EditorTableProperties.dtd
@@ -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/. -->
+
+<!ENTITY tableWindow.title "Propiedades de la tabla">
+<!ENTITY applyButton.label "Aplicar">
+<!ENTITY applyButton.accesskey "A">
+<!ENTITY closeButton.label "Cerrar">
+<!ENTITY tableTab.label "Tabla">
+<!ENTITY cellTab.label "Celdas">
+<!ENTITY tableRows.label "Filas:">
+<!ENTITY tableRows.accessKey "F">
+<!ENTITY tableColumns.label "Columnas:">
+<!ENTITY tableColumns.accessKey "C">
+<!ENTITY tableHeight.label "Altura:">
+<!ENTITY tableHeight.accessKey "l">
+<!ENTITY tableWidth.label "Anchura:">
+<!ENTITY tableWidth.accessKey "A">
+<!ENTITY tableBorderSpacing.label "Bordes e interlineado">
+<!ENTITY tableBorderWidth.label "Borde:">
+<!ENTITY tableBorderWidth.accessKey "B">
+<!ENTITY tableSpacing.label "Interlineado:">
+<!ENTITY tableSpacing.accessKey "I">
+<!ENTITY tablePadding.label "Relleno:">
+<!ENTITY tablePadding.accessKey "R">
+<!ENTITY tablePxBetwCells.label "píxeles entre celdas">
+<!ENTITY tablePxBetwBrdrCellContent.label "píxeles entre el borde de la celda y su contenido">
+<!ENTITY tableAlignment.label "Alineación de la tabla:">
+<!ENTITY tableAlignment.accessKey "b">
+<!ENTITY tableCaption.label "Título:">
+<!ENTITY tableCaption.accessKey "T">
+<!ENTITY tableCaptionAbove.label "Encima de la tabla:">
+<!ENTITY tableCaptionBelow.label "Debajo de la tabla:">
+<!ENTITY tableCaptionLeft.label "Izquierda de la tabla">
+<!ENTITY tableCaptionRight.label "Derecha de la tabla">
+<!ENTITY tableCaptionNone.label "Ninguno">
+<!ENTITY tableInheritColor.label "(Permitir que se vea el color de fondo de la página)">
+
+<!ENTITY cellSelection.label "Selección">
+<!ENTITY cellSelectCell.label "Celda">
+<!ENTITY cellSelectRow.label "Fila">
+<!ENTITY cellSelectColumn.label "Columna">
+<!ENTITY cellSelectNext.label "Siguiente">
+<!ENTITY cellSelectNext.accessKey "N">
+<!ENTITY cellSelectPrevious.label "Anterior">
+<!ENTITY cellSelectPrevious.accessKey "A">
+<!ENTITY applyBeforeChange.label "Los cambios actuales se aplicarán antes de cambiar la selección.">
+<!ENTITY cellContentAlignment.label "Alineación del contenido">
+<!ENTITY cellHorizontal.label "Horizontal:">
+<!ENTITY cellHorizontal.accessKey "Z">
+<!ENTITY cellVertical.label "Vertical:">
+<!ENTITY cellVertical.accessKey "V">
+<!ENTITY cellStyle.label "Estilo de celda:">
+<!ENTITY cellStyle.accessKey "C">
+<!ENTITY cellNormal.label "Normal">
+<!ENTITY cellHeader.label "Cabecera">
+<!ENTITY cellTextWrap.label "Ajuste del texto:">
+<!ENTITY cellTextWrap.accessKey "T">
+<!ENTITY cellWrap.label "Permitir ocupar varias líneas">
+<!ENTITY cellNoWrap.label "El contenido ocupa una sola línea">
+<!ENTITY cellAlignTop.label "Parte superior">
+<!ENTITY cellAlignMiddle.label "Medio">
+<!ENTITY cellAlignBottom.label "Parte inferior">
+<!ENTITY cellAlignJustify.label "Justificado">
+<!ENTITY cellInheritColor.label "(Permitir que se vea el color de fondo de la tabla)">
+<!ENTITY cellUseCheckboxHelp.label "Use las casillas de selección para determinar qué propiedades se aplican a todas las celdas seleccionadas">
+
+<!ENTITY size.label "Tamaño">
+<!ENTITY pixels.label "píxeles">
+<!ENTITY backgroundColor.label "Color de fondo:">
+<!ENTITY backgroundColor.accessKey "F">
+<!ENTITY AlignLeft.label "Izquierda">
+<!ENTITY AlignCenter.label "Centro">
+<!ENTITY AlignRight.label "Derecha">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/composeMsgs.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/composeMsgs.properties
new file mode 100644
index 0000000000..7f62afe6b0
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/composeMsgs.properties
@@ -0,0 +1,463 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=No se puede abrir el archivo %S.
+unableToOpenTmpFile=No se puede abrir el archivo temporal %S. Compruebe la configuración de su 'directorio temporal'.
+unableToSaveTemplate=No es posible guardar su mensaje como plantilla.
+unableToSaveDraft=No es posible guardar su mensaje como un borrador.
+couldntOpenFccFolder=No se puede abrir la carpeta Enviados. Verifique que la configuración de su cuenta es correcta.
+noSender=No se ha indicado remitente. Añada su dirección de correo en la configuración de la cuenta.
+noRecipients=No se especificaron destinatarios. Introduzca un destinatario o grupo de noticias en el área de dirección.
+errorWritingFile=Error al escribir el archivo temporal.
+
+## LOCALIZATION NOTE (errorSendingFromCommand): argument %s is the Outgoing server (SMTP) response
+errorSendingFromCommand=Ocurrió un error mientras se enviaba el correo. El servidor de correo respondió: %s. Verifique que su dirección de correo electrónico es correcta en las preferencias de su cuenta y vuelva a intentarlo.
+
+## LOCALIZATION NOTE (errorSendingDataCommand): argument %s is the Outgoing server (SMTP) response
+errorSendingDataCommand=Ocurrió un error en el servidor de salida (SMTP) al enviar el correo. El servidor respondió: %s.
+
+## LOCALIZATION NOTE (errorSendingMessage): argument %s is the Outgoing server (SMTP) response
+errorSendingMessage=Ocurrió un error al enviar el correo. El servidor de correo respondió: %s. Compruebe el mensaje y vuelva a intentarlo.
+postFailed=No se ha podido publicar el mensaje porque ha fallado la conexión al servidor de noticias. El servidor puede no estar disponible o está rechazando conexiones. Verifique que la configuración de su servidor de noticias es correcta y vuelva a intentarlo.
+errorQueuedDeliveryFailed=Ocurrió un error al procesar sus mensajes no enviados.
+sendFailed=Falló el envío del mensaje.
+
+## LOCALIZATION NOTE (sendFailedUnexpected): argument %X is a hex error code value
+sendFailedUnexpected=Envío fallido debido al error inesperado %X. No hay ninguna descripción disponible.
+
+## LOCALIZATION NOTE (smtpSecurityIssue): argument %S is the Outgoing server (SMTP) response
+smtpSecurityIssue=La configuración relacionada con %S debe corregirse.
+
+## LOCALIZATION NOTE (smtpServerError): argument %s is the Outgoing server (SMTP) response
+smtpServerError=Ha sucedido un error al enviar el correo: error en el servidor de salida (SMTP). El servidor respondió: %s.
+unableToSendLater=Lo sentimos, no hemos podido guardar su mensaje para enviarlo más tarde.
+
+## LOCALIZATION NOTE (communicationsError): argument %d is the error code
+communicationsError=Ocurrió un error de comunicación: %d. Vuelva a intentarlo.
+dontShowAlert=ESTO ES SOLO UNA RESERVA DE ESPACIO. NUNCA DEBERÍA VER ESTE TEXTO.
+
+couldNotGetUsersMailAddress2=Ha sucedido un error al enviar el correo: la dirección del remitente (De:) no es válida. Verifique que esta dirección de correo es correcta y vuelva a intentarlo.
+couldNotGetSendersIdentity=Ha sucedido un error al enviar el correo: la identidad del remitente no es válida. Verifique la configuración de su identidad y vuelva a intentarlo.
+
+mimeMpartAttachmentError=Error en adjunto.
+failedCopyOperation=El mensaje se envió con éxito, pero la copia a la carpeta Enviados falló.
+nntpNoCrossPosting=Sólo puede enviar un mensaje a un servidor de noticias a la vez.
+msgCancelling=Cancelando…
+sendFailedButNntpOk=Su mensaje ha sido enviado al grupo de noticias pero no ha sido enviado al otro destinatario.
+errorReadingFile=Error leyendo el archivo.
+followupToSenderMessage=El autor de este mensaje ha pedido que las respuestas sean enviadas únicamente al autor. Si también quiere responder al grupo de noticias, añada una nueva fila en el area de direcciones, elija Grupo de la lista de cabeceras, e introduzca el nombre del grupo de noticias.
+
+## LOCALIZATION NOTE (errorAttachingFile): argument %S is the file name/URI of the object to be attached
+errorAttachingFile=Ha habido un problema al adjuntar %S. Compruebe si tiene acceso al archivo.
+
+## LOCALIZATION NOTE (incorrectSmtpGreeting): argument %s is the Outgoing server (SMTP) greeting
+incorrectSmtpGreeting=Ocurrió un error al enviar el correo: el servidor de correo envió un saludo incorrecto: %s.
+
+## LOCALIZATION NOTE (errorSendingRcptCommand): argument %1$S is the Outgoing server (SMTP) response, argument %2$S is the intended message recipient.
+errorSendingRcptCommand=Ha ocurrido un error al enviar el mensaje. El servidor de correo respondió: \n%1$S.\nVerifique el destinatario "%2$S" y vuelva a intentarlo.
+
+## LOCALIZATION NOTE (startTlsFailed): argument %S is the Outgoing server (SMTP)
+startTlsFailed=Ha ocurrido un error al enviar el mensaje: no es posible establecer un enlace seguro con el servidor de salida (SMTP) %S usando STARTTLS ya que no anuncia ese mecanismo. Desactive STARTTLS para ese servidor o contacte con su proveedor del servicio.
+
+## LOCALIZATION NOTE (smtpPasswordUndefined): argument %S is the Outgoing server (SMTP) account
+smtpPasswordUndefined=Ha ocurrido un error al enviar el mensaje: no se ha podido obtener la contraseña para %S. El mensaje no se ha enviado.
+
+## LOCALIZATION NOTE (smtpSendNotAllowed): argument %s is the Outgoing server (SMTP) response
+smtpSendNotAllowed=Ha ocurrido un error al enviar el mensaje. El servidor de correo ha respondido:\n%s.\nAsegúrese de que está usando la identidad correcta para el envío y el método de identificación usado es correcto. Verifique está autorizado a enviar a través de este servidor SMTP con sus credenciales actuales de la red que está usando ahora.
+
+## LOCALIZATION NOTE (smtpTempSizeExceeded): argument %s is the Outgoing server (SMTP) response
+smtpTempSizeExceeded=El tamaño del mensaje que está intentando enviar excede un límite temporal de tamaño del servidor. El mensaje no se ha enviado; intente reducir el tamaño del mensaje o espere un rato y vuelva a intentarlo. El servidor respondió: %s.
+
+## LOCALIZATION NOTE (smtpTooManyRecipients): argument %s is the Outgoing server (SMTP) response
+smtpTooManyRecipients=El mensaje no se envió por exceder el número permitido de destinatarios. El servidor respondió: %s.
+
+## LOCALIZATION NOTE (smtpClientid): argument %s is the Outgoing server (SMTP) response
+smtpClientid=El servidor de salida (SMTP) ha detectado un error en la orden CLIENTID. No se ha enviado el mensaje. El servidor ha respondido: %s
+
+## LOCALIZATION NOTE (smtpClientidPermission): argument %s is the Outgoing server (SMTP) response
+smtpClientidPermission=La respuesta del servidor de salida (SMTP) a la orden CLIENTID indica que su dispositivo no tiene permitido enviar correo. El servidor ha respondido: %s
+
+## LOCALIZATION NOTE (smtpPermSizeExceeded1): argument %d is the Outgoing server (SMTP) size limit
+smtpPermSizeExceeded1=El tamaño del mensaje que está intentando enviar excede el límite global de tamaño (%d bytes) del servidor. El mensaje no se ha enviado; reduzca el tamaño del mensaje y vuelva a intentarlo.
+
+## LOCALIZATION NOTE (smtpPermSizeExceeded2): argument %s is the Outgoing server (SMTP) response
+smtpPermSizeExceeded2=El tamaño del mensaje que está intentando enviar excede el límite global de tamaño del servidor. El mensaje no se ha enviado; reduzca el tamaño del mensaje y vuelva a intentarlo. El servidor respondió: %s.
+
+## LOCALIZATION NOTE (smtpSendFailedUnknownServer): argument %S is the Outgoing server (SMTP)
+smtpSendFailedUnknownServer=Ha ocurrido un error al enviar el mensaje: el servidor de salida (SMTP) %S es desconocido. El servidor puede estar mal configurado. Verifique que la configuración de su servidor de salida (SMTP) es correcta y vuelva a intentarlo.
+
+## LOCALIZATION NOTE (smtpSendRequestRefused): argument %S is the Outgoing server (SMTP)
+smtpSendRequestRefused=El mensaje no se ha podido enviar porque ha fallado la conexión al servidor de salida (SMTP) %S. El servidor puede no estar disponible o está rechazando conexiones SMTP. Verifique que los ajustes de su servidor de salida (SMTP) son correctos y vuelva a intentarlo.
+
+## LOCALIZATION NOTE (smtpSendInterrupted): argument %S is the Outgoing server (SMTP)
+smtpSendInterrupted=El mensaje no se ha podido enviar porque la conexión al servidor de salida (SMTP) %S se perdió en mitad de la transacción. Vuelva a intentarlo.
+
+## LOCALIZATION NOTE (smtpSendTimeout): argument %S is the Outgoing server (SMTP)
+smtpSendTimeout=El mensaje no se ha podido enviar porque ha caducado la conexión al servidor de salida (SMTP) %S. Vuelva a intentarlo.
+
+## LOCALIZATION NOTE (smtpSendFailedUnknownReason): argument %S is the Outgoing server (SMTP)
+smtpSendFailedUnknownReason=El mensaje no se ha podido enviar usando el servidor de salida (SMTP) %S por una razón desconocida. Verifique que los ajustes de su servidor de salida (SMTP) son correctos y vuelva a intentarlo.
+
+# LOCALIZATION NOTE (smtpHintAuthEncryptToPlainNoSsl): %S is the server hostname
+smtpHintAuthEncryptToPlainNoSsl=El servidor de salida (SMTP) %S no parece admitir contraseñas cifradas. Si acaba de configurar la cuenta, pruebe a cambiar el 'Método de identificación' en la 'Configuración de cuentas | Servidor de salida (SMTP)' a 'Contraseña, transmitida de forma insegura'. Si antes funcionaba pero ya no, puede que se le haya sustraído su contraseña.
+
+# LOCALIZATION NOTE (smtpHintAuthEncryptToPlainSsl): %S is the server hostname
+smtpHintAuthEncryptToPlainSsl=El servidor de salida (SMTP) %S no parece admitir contraseñas cifradas. Si acaba de configurar la cuenta, pruebe a cambiar el 'Método de identificación' en la 'Configuración de cuentas | Servidor de salida (SMTP)' a 'Contraseña normal'.
+
+# LOCALIZATION NOTE (smtpHintAuthPlainToEncrypt): %S is the server hostname
+smtpHintAuthPlainToEncrypt=El servidor de salida (SMTP) %S no admite contraseñas no cifradas. Pruebe a cambiar el 'Método de identificación' en la 'Configuración de cuentas | Servidor de salida (SMTP)' a 'Contraseña cifrada'.
+
+# LOCALIZATION NOTE (smtpAuthFailure): %S is the server hostname
+smtpAuthFailure=No se puede identificar al servidor de salida (SMTP) %S. Compruebe la contraseña y verifique el 'Método de identificación' en 'Configuración de cuentas | Servidor de salida (SMTP)'.
+
+# LOCALIZATION NOTE (smtpAuthGssapi): %S is the server hostname
+smtpAuthGssapi=El tique Kerberos/GSSAPI no ha sido aceptado por el servidor de salida (SMTP) %S. Compruebe que ha iniciado sesión en el dominio Kerberos/GSSAPI.
+
+# LOCALIZATION NOTE (smtpAuthMechNotSupported): %S is the server hostname
+smtpAuthMechNotSupported=El servidor de salida (SMTP) %S no admite el mecanismo de identificación seleccionado. Cambie el 'Método de identificación' en la 'Configuración de cuentas | Servidor de salida (SMTP)'.
+
+# LOCALIZATION NOTE (errorIllegalLocalPart2): %s is an email address with an illegal localpart
+errorIllegalLocalPart2=Hay caracteres no-ASCII en la parte local de la dirección de destino %s y su servidor no admite SMTPUTF8. Cambie esta dirección y vuelva a intentarlo.
+
+## Strings used for the save message dialog shown when the user closes a message compose window
+saveDlogTitle=Guardar mensaje
+
+## 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 este mensaje en su carpeta de borradores (%1$S) y cerrar la ventana de redacción?
+discardButtonLabel=&Descartar cambios
+
+## generics string
+defaultSubject=(sin asunto)
+chooseFileToAttach=Adjuntar archivo(s)
+genericFailureExplanation=Verifique que la configuración de su cuenta es correcta y vuelva a intentarlo.
+
+## LOCALIZATION NOTE (undisclosedRecipients): this string must use only US_ASCII characters
+undisclosedRecipients=destinatarios-no-revelados
+
+# LOCALIZATION NOTE (chooseFileToAttachViaCloud): %1$S is the cloud
+# provider to save the file to.
+chooseFileToAttachViaCloud=Adjuntar archivo(s) a travé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=Escribir: %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=Vista preliminar: %1$S - %2$S
+
+## From field
+msgIdentityPlaceholder=Introduzca la dirección Desde personalizada que quiere usar en lugar de %S
+customizeFromAddressTitle=Personalizar dirección De
+customizeFromAddressWarning=Si su proveedor de correo lo admite, Personalizar dirección De le permite hacer una alteración menor puntual a su dirección de remite sin tener que crear una nueva identidad en la configuración de cuentas. Por ejemplo, si su dirección de remite es Juan Pérez <juan@example.com> puede que quiera cambiarlo a Juan Pếrez <juan+perez@example.com> o Juan <juan@example.com>.
+customizeFromAddressIgnore=No volver a avisarme de nuevo
+
+## Strings used by the empty subject dialog
+subjectEmptyTitle=Recordatorio de asunto
+subjectEmptyMessage=Su mensaje no tiene asunto.
+sendWithEmptySubjectButton=&Enviar sin asunto
+cancelSendingButton=&Cancelar envío
+
+## Strings used by the dialog that informs about the lack of newsgroup support.
+noNewsgroupSupportTitle=Grupos de noticias no admitidos
+recipientDlogMessage=Esta cuenta sólo soporta destinatarios de correo. Continuar ignorará los grupos de noticias.
+
+## Strings used by the alert that tells the user that an email address is invalid.
+addressInvalidTitle=Dirección de destinatario no válida
+addressInvalid=%1$S no es una dirección de correo electrónico válida porque no tiene la forma usuario@dominio. Debe corregirse antes de enviar el correo.
+
+## String used by the dialog that asks the user to attach a web page
+attachPageDlogTitle=Especifique qué dirección desea adjuntar
+attachPageDlogMessage=Página web (URL):
+
+## String used for attachment pretty name, when the attachment is a message
+messageAttachmentSafeName=Mensaje adjunto
+
+## String used for attachment pretty name, when the attachment is a message part
+partAttachmentSafeName=Parte del mensaje adjunto
+
+# LOCALIZATION NOTE (attachmentBucketAttachFilesTooltip):
+# This tooltip should be same as attachFile.label in messengercompose.dtd,
+# but without ellipsis (…).
+attachmentBucketAttachFilesTooltip=Adjuntar archivo(s)
+attachmentBucketClearSelectionTooltip=Limpiar selección
+attachmentBucketHeaderShowTooltip=Mostrar el panel de adjuntos
+attachmentBucketHeaderMinimizeTooltip=Minimizar panel de adjuntos
+attachmentBucketHeaderRestoreTooltip=Restaurar panel de adjuntos
+
+## String used by the Initialization Error dialog
+initErrorDlogTitle=Redacción de mensaje
+initErrorDlgMessage=Ha sucedido un error al crear una ventana de redacción de mensajes. Vuelva a intentarlo.
+
+## String used if a file to attach does not exist when passed as
+## a command line argument
+errorFileAttachTitle=Anexado de archivo
+
+## LOCALIZATION NOTE (errorFileAttachMessage): %1$S will be replaced by the non-existent file name.
+errorFileAttachMessage=El archivo %1$S no existe por lo que no ha podido adjuntarse al mensaje.
+
+## 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=Archivo de mensajes
+
+## LOCALIZATION NOTE (errorFileMessageMessage): %1$S will be replaced by the non-existent file name.
+errorFileMessageMessage=El archivo %1$S no existe y no se ha podido usar como contenido del mensaje.
+
+## LOCALIZATION NOTE (errorLoadFileMessageMessage): %1$S will be replaced by the name of the file that can't be loaded.
+errorLoadFileMessageMessage=No se ha podido cargar el archivo %1$S como contenido del mensaje.
+
+## Strings used by the Save as Draft/Template dialog
+SaveDialogTitle=Guardar mensaje
+
+## LOCALIZATION NOTE (SaveDialogMsg): %1$S is the folder name, %2$S is the host name
+SaveDialogMsg=Su mensaje se ha guardado en la carpeta %1$S en %2$S.
+CheckMsg=No volver a mostrarme esta ventana de diálogo.
+
+## Strings used by the prompt when Quitting while in progress
+quitComposeWindowTitle=Enviando mensaje
+
+## LOCALIZATION NOTE (quitComposeWindowMessage2): don't translate \n
+quitComposeWindowMessage2=%1$S está actualmente enviando un mensaje.\n¿Quiere salir ahora, o esperar hasta que el mensaje haya sido enviado antes de salir?
+quitComposeWindowQuitButtonLabel2=&Salir
+quitComposeWindowWaitButtonLabel2=&Esperar
+quitComposeWindowSaveTitle=Guardando mensaje
+
+## LOCALIZATION NOTE (quitComposeWindowSaveMessage): don't translate \n
+quitComposeWindowSaveMessage=%1$S está actualmente guardando un mensaje.\n¿Quiere salir ahora, o esperar hasta que el mensaje haya sido guardado antes de salir?
+
+## Strings used by the prompt for Ctrl-Enter check before sending message
+sendMessageCheckWindowTitle=Enviar mensaje
+sendMessageCheckLabel=¿Seguro que está preparado para mandar este mensaje?
+sendMessageCheckSendButtonLabel=Enviar
+assemblingMessageDone=Ensamblando el mensaje… Listo
+assemblingMessage=Ensamblando el mensaje…
+smtpDeliveringMail=Enviando correo…
+smtpMailSent=Correo enviado con éxito
+assemblingMailInformation=Ensamblando la información de correo…
+
+## LOCALIZATION NOTE (gatheringAttachment): argument %S is the file name/URI of attachment
+gatheringAttachment=Adjuntando %S…
+creatingMailMessage=Creando mensaje de correo…
+
+## LOCALIZATION NOTE (copyMessageStart): argument %S is the folder name
+copyMessageStart=Copiando el mensaje a la carpeta %S…
+copyMessageComplete=Copia completada.
+copyMessageFailed=Falló la copia.
+filterMessageComplete=Filtro completo.
+filterMessageFailed=Filtro fallido.
+
+## LOCALIZATION NOTE (largeMessageSendWarning):
+## Do not translate %S. It is the size of the message in user-friendly notation.
+largeMessageSendWarning=¡Advertencia! Está a punto de enviar un mensaje de tamaño %S. ¿Está seguro de que quiere hacerlo?
+sendingMessage=Enviando el mensaje…
+sendMessageErrorTitle=Error de envío de mensaje
+postingMessage=Publicando el mensaje…
+sendLaterErrorTitle=Error de envío posterior
+saveDraftErrorTitle=Error guardando el borrador
+saveTemplateErrorTitle=Error guardando la plantilla
+
+## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSaving): argument %.200S is the file name/URI of object to be embedded
+failureOnObjectEmbeddingWhileSaving=Hubo un problema al incluir el archivo %.200S en el mensaje. ¿Quiere seguir guardando el mensaje sin el archivo?
+
+## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSending): argument %.200S is the file name/URI of object to be embedded
+failureOnObjectEmbeddingWhileSending=Hubo un problema al incluir el archivo %.200S en el mensaje. ¿Quiere continuar el envío del mensaje sin este archivo?
+returnToComposeWindowQuestion=¿Quiere volver a la ventana de redacción?
+
+## 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 escribió:
+
+## LOCALIZATION NOTE (mailnews.reply_header_ondateauthorwrote): #1 is the author, #2 is the date, #3 is the time
+mailnews.reply_header_ondateauthorwrote=El #2 a las #3, #1 escribió:
+
+## LOCALIZATION NOTE (mailnews.reply_header_authorwroteondate): #1 is the author, #2 is the date, #3 is the time
+mailnews.reply_header_authorwroteondate=#1 escribió el #2 a las #3:
+
+## reply header in composeMsg
+## user specified
+mailnews.reply_header_originalmessage=-------- Mensaje original --------
+
+## forwarded header in composeMsg
+## user specified
+mailnews.forward_header_originalmessage=-------- Mensaje reenviado --------
+
+## Strings used by the rename attachment dialog
+renameAttachmentTitle=Renombrar adjunto
+renameAttachmentMessage=Nuevo nombre del adjunto:
+
+## Attachment Reminder
+## LOCALIZATION NOTE (mail.compose.attachment_reminder_keywords): comma separated
+## words that should trigger an attachment reminder.
+mail.compose.attachment_reminder_keywords=adjunto,adjuntado,.doc,.pdf,.xls,.ppt,.rtf,.pps,currículum,CV,carta de presentación,envío
+
+remindLaterButton=Recordármelo más tarde
+remindLaterButton.accesskey=R
+disableAttachmentReminderButton=Desactivar recordatorio de adjuntos en el mensaje actual
+attachmentReminderTitle=Recordatorio de adjuntos
+attachmentReminderMsg=¿Ha olvidado añadir un adjunto?
+
+# LOCALIZATION NOTE (attachmentReminderKeywordsMsgs): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# #1 number of keywords
+attachmentReminderKeywordsMsgs=Encontrada una palabra clave de adjuntos:;Encontradas #1 palabras clave de adjuntos:
+attachmentReminderOptionsMsg=Las palabras recordatorios de adjuntos se pueden configurar en sus preferencias
+attachmentReminderYesIForgot=¡Uups, sí, se me ha olvidado!
+attachmentReminderFalseAlarm=No, enviar ahora
+
+# Strings used by the Filelink offer notification bar.
+learnMore.label=Saber más…
+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 archivo es grande. Podría ser mejor usar Filelink.;Estos archivos son grandes. Podría ser mejor usar Filelink.
+bigFileShare.label=Enlazar
+bigFileShare.accesskey=E
+bigFileAttach.label=Ignorar
+bigFileAttach.accesskey=I
+bigFileChooseAccount.title=Elija una cuenta
+bigFileChooseAccount.text=Elija una cuenta en la nube a la que subir el adjunto
+bigFileHideNotification.title=No subir mis archivos
+bigFileHideNotification.text=No se le avisará si adjunta más archivos grandes a este mensaje.
+bigFileHideNotification.check=No volver a avisarme.
+
+# 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=Subiendo a %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=Subido a %S
+cloudFileUploadingNotification=Su archivo está siendo enlazado. Aparecerá en el cuerpo del mensaje cuando esté completo.;Sus archivos están siendo enlazados. Aparecerán en el cuerpo del mensaje cuando estén completos.
+cloudFileUploadingCancel.label=Cancelar
+cloudFileUploadingCancel.accesskey=C
+cloudFilePrivacyNotification=Enlazado completado. Tenga en cuenta que los adjuntos enlazados pueden ser accesibles a las personas que puedan ver o adivinar los enlaces.
+
+## LOCALIZATION NOTE(smtpEnterPasswordPrompt): Do not translate the
+## word %S. Place the word %S where the host name should appear.
+smtpEnterPasswordPrompt=Introduzca su contraseña 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=Introduzca la contraseña para %2$S en %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=Contraseña necesaria para el servidor saliente (SMTP) %1$S
+
+# LOCALIZATION NOTE (removeAttachmentMsgs): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+removeAttachmentMsgs=Eliminar adjunto;Eliminar adjuntos
+
+## 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=Su mensaje se ha enviado pero no se ha copiado a su carpeta de mensajes enviados (%1$S) debido a errores de red o acceso a archivos.\nPuede reintentar o guardar el mensaje en modo local a %3$S/%1$S-%2$S.
+errorFilteringMsg=Su mensaje ha sido enviado y guardado, pero ha sucedido un error al aplicarle los filtros de mensajes.
+errorCloudFileAuth.title=Error de identificación
+
+## 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=Su borrador de mensaje no se ha copiado a su carpeta de borradores (%1$S) debido a errores de red o acceso a archivos.\nPuede reintentar o guardar el borrador en modo local a %3$S/%1$S-%2$S.
+buttonLabelRetry2=&Reintentar
+
+## 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=Su plantilla de mensaje no se ha copiado a su carpeta de plantillas (%1$S) debido a errores de red o acceso a archivos.\nPuede reintentar o guardar la plantilla en modo local a %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=No se puede guardar su mensaje en las carpetas locales. Posiblemente no disponga de espacio de almacenamiento suficiente.
+
+## LOCALIZATION NOTE(errorCloudFileAuth.message):
+## %1$S is the name of the online storage service against which the authentication failed.
+errorCloudFileAuth.message=No se puede iniciar sesión en %1$S.
+errorCloudFileUpload.title=Error de subida
+
+## 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=No se puede subir %2$S a %1$S.
+errorCloudFileQuota.title=Error de cuota
+
+## 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=Subir %2$S a %1$S excedería su cuota de espacio.
+errorCloudFileLimit.title=Error en el tamaño del archivo
+
+## 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 el tamaño máximo para %1$S.
+errorCloudFileOther.title=Error desconocido\u0020
+
+## LOCALIZATION NOTE(errorCloudFileOther.message):
+## %1$S is the name of the online storage service that cannot be communicated with.
+errorCloudFileOther.message=Ha sucedido un error desconocido durante la comunicación con %1$S.
+errorCloudFileDeletion.title=Error de borrado
+
+## 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=Ha sucedido un problema al eliminar %2$S de %1$S.
+errorCloudFileUpgrade.label=Actualizar
+
+## 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=No mostrar esto de nuevo
+replaceButton.label=Reemplazar…
+replaceButton.accesskey=R
+replaceButton.tooltip=Mostrar el diálogo Buscar y reemplazar
+
+## 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=%S ha bloqueado la carga de un archivo en este mensaje. Desbloquear el archivo lo incluirá en su mensaje enviado.;%S ha bloqueado la carga de algunos archivos en este mensaje. Desbloquear un archivo lo incluirá en su mensaje enviado.
+
+blockedContentPrefLabel=Opciones
+blockedContentPrefAccesskey=O
+
+blockedContentPrefLabelUnix=Preferencias
+blockedContentPrefAccesskeyUnix=P
+
+## Recipient pills fields.
+## LOCALIZATION NOTE(confirmRemoveRecipientRowTitle2): %S will be replaced with the field name.
+confirmRemoveRecipientRowTitle2=Eliminar direcciones %S
+## LOCALIZATION NOTE(confirmRemoveRecipientRowBody2): %S will be replaced with the field name.
+confirmRemoveRecipientRowBody2=¿Está seguro de que quiere eliminar las direcciones %S?
+confirmRemoveRecipientRowButton=Eliminar
+
+## LOCALIZATION NOTE headersSpaceStyle is for aligning label of a newly create recipient row.
+## It should be larger than the largest Header label and identical to &headersSpace2.style;
+headersSpaceStyle=width: 8em
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/editor.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/editor.properties
new file mode 100644
index 0000000000..14e853ad48
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/editor.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/.
+
+No = No
+Save = Guardar
+More = Más
+Less = Menos
+MoreProperties = Más propiedades
+FewerProperties = Menos propiedades
+PropertiesAccessKey = P
+None = Ninguno
+none = Ninguno
+OpenHTMLFile = Abrir archivo HTML
+OpenTextFile = Abrir archivo de texto
+SelectImageFile = Seleccionar archivo de imagen
+SaveDocument = Guardar página
+SaveDocumentAs = Guardar página como
+SaveTextAs = Guardar texto como
+EditMode = Modo de edición
+Preview = Vista preliminar
+Publish = Publicar
+PublishPage = Publicar página
+DontPublish = No publicar
+SavePassword = Guardar esta contraseña usando el administrador de contraseñas
+CorrectSpelling = (ortografía correcta)
+NoSuggestedWords = (no hay palabras sugeridas)
+NoMisspelledWord = No hay errores de ortografía
+CheckSpellingDone = Corrección ortográfica completada.
+CheckSpelling = Revisar ortografía
+InputError = Error
+Alert = Alerta
+CantEditFramesetMsg = Composer no puede editar conjuntos de marcos HTML o páginas con marcos incrustados (IFRAME). En el caso de los conjuntos de marcos, intente editar cada marco de forma separada. En el caso de marcos incrustados, guarde una copia de la página y elimine la etiqueta &lt;iframe&gt;.
+CantEditMimeTypeMsg = Este tipo de página no puede editarse.
+CantEditDocumentMsg = Esta página no puede editarse por alguna razón desconocida.
+BeforeClosing = antes de cerrar
+BeforePreview = antes de ver en el navegador
+BeforeValidate = antes de validar el documento
+SaveFilePrompt = ¿Guardar cambios en "%title%" %reason%?
+PublishPrompt = ¿Guardar cambios en "%title%" %reason%?
+SaveFileFailed = ¡Fallo al guardar el archivo!
+
+FileNotFound = %file% no encontrado.
+SubdirDoesNotExist = El subdirectorio "%dir%" no existe en este sitio o el nombre de archivo "%file%" ya está siendo usado por otro subdirectorio.
+FilenameIsSubdir = El nombre de archivo "%file%" ya está siendo usado por otro subdirectorio.
+ServerNotAvailable = El servidor no está disponible. Compruebe su conexión e vuelva a intentarlo más tarde.
+Offline = Se encuentra actualmente en modo sin conexión. Haga clic en el icono cerca de la esquina inferior derecha de cualquier ventana para conectarse.
+DiskFull = No hay suficiente espacio en el disco para guardar el archivo "%file%".
+NameTooLong = El nombre de archivo o subdirectorio es demasiado largo.
+AccessDenied = No tiene permiso para publicar en esta ubicación.
+UnknownPublishError = Ha ocurrido un error de publicación desconocido.
+PublishFailed = Fallo al publicar.
+PublishCompleted = Publicación completada.
+AllFilesPublished = Todos los archivos publicados
+FailedFileMsg = %x% de %total% archivos no se publicaron correctamente.
+Prompt = Preguntar
+PromptFTPUsernamePassword = Introduzca nombre de usuario y contraseña para el servidor FTP %host%
+RevertCaption = Revertir a la última copia guardada
+Revert = Revertir
+SendPageReason = antes de enviar esta página
+Send = Enviar
+PublishProgressCaption = Publicando: %title%
+PublishToSite = Publicando en el sitio: %title%
+AbandonChanges = ¿Abandonar cambios no guardados a "%title%" y recargar la página?
+DocumentTitle = Título de la página
+NeedDocTitle = Introduzca un título para la página actual.
+DocTitleHelp = Esto indentifica la página en el título de la ventana y en los marcadores.
+CancelPublishTitle = ¿Cancelar publicación?
+CancelPublishMessage = Cancelar mientras la publicación está en progreso puede dar lugar a que sus archivos no se transfieran completamente. ¿Desea continuar o cancelar?
+CancelPublishContinue = Continuar
+MissingImageError = Introduzca o elija una imagen de tipo gif, jpg o png.
+EmptyHREFError = Elija una dirección para crear un nuevo enlace.
+LinkText = Texto del enlace
+LinkImage = Imagen del enlace
+MixedSelection = [Selección mezclada]
+Mixed = (mezclado)
+NotInstalled = %S (no instalada)
+EnterLinkText = Introduzca el texto a mostrar para el enlace:
+EnterLinkTextAccessKey = t
+EmptyLinkTextError = Introduzca algún texto para este enlace.
+EditTextWarning = Esto reemplazará el contenido existente.
+ValidateRangeMsg = El número que ha introducido (%n%) está fuera del rango permitido.
+ValidateNumberMsg = Introduzca un número entre %min% y %max%.
+MissingAnchorNameError = Introduzca un nombre para este enlace interno.
+DuplicateAnchorNameError = "%name%" ya existe en esta página. Introduzca un nombre diferente.
+BulletStyle = Estilo de viñeta
+SolidCircle = Círculo sólido
+OpenCircle = Circunferencia
+SolidSquare = Cuadrado sólido
+NumberStyle = Estilo de numeración
+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 = píxeles
+Percent = porcentaje
+PercentOfCell = % de la celda
+PercentOfWindow = % de la ventana
+PercentOfTable = % de la tabla
+untitledTitle = Sin título-%S
+untitledDefaultFilename = sin título
+ShowToolbar = Mostrar barra de herramientas
+HideToolbar = Ocultar barra de herramientas
+ImapError = No es posible cargar la imagen
+ImapCheck = \nSeleccione una nueva dirección (URL) y vuelva a intentarlo.
+SaveToUseRelativeUrl = Las URLs relativas sólo pueden usarse en páginas ya guardadas
+NoNamedAnchorsOrHeadings = (Esta página no contiene enlaces internos o cabeceras)
+TextColor = Color del texto
+HighlightColor = Color de texto resaltado
+PageColor = Color de fondo de la página
+BlockColor = Bloquear color de fondo
+TableColor = Color de fondo de la tabla
+CellColor = Color de fondo de celda
+TableOrCellColor = Color de la tabla o de la celda
+LinkColor = Color del texto de los enlaces
+ActiveLinkColor = Color de enlace activo
+VisitedLinkColor = Color de enlace visitado
+NoColorError = Seleccione un color o introduzca una cadena HTML de color válida
+Table = Tabla
+TableCell = Celda de tabla
+NestedTable = Tabla anidada
+HLine = Línea horizontal
+Link = Enlace
+Image = Imagen
+ImageAndLink = Imagen y enlace
+NamedAnchor = Enlace interno
+List = Lista
+ListItem = Elemento de la lista
+Form = Formulario
+InputTag = Campo de formulario
+InputImage = Imagen de formulario
+TextArea = Área de texto
+Select = Lista de opciones
+Button = Botón
+Label = Etiqueta
+FieldSet = Conjunto de campos
+Tag = Etiqueta
+MissingSiteNameError = Introduzca un nombre para este sitio de publicación.
+MissingPublishUrlError = Introduzca una ubicación para publicar esta página.
+MissingPublishFilename = Introduzca un nombre de archivo para la página actual.
+DuplicateSiteNameError = "%name%" ya existe. Introduzca un nombre diferente para el sitio.
+AdvancedProperties = Propiedades avanzadas…
+AdvancedEditForCellMsg = La edición avanzada no está disponible cuando se seleccionan varias celdas
+ObjectProperties = Propiedades de %obj%…
+ObjectPropertiesAccessKey = o
+JoinSelectedCells = Unir celdas seleccionadas
+JoinCellToRight = Unir a la celda de la derecha
+JoinCellAccesskey = U
+TableSelectKey = Ctrl+
+XulKeyMac = Cmd+
+Del = Supr
+Delete = Eliminar
+DeleteCells = Eliminar celdas
+DeleteTableTitle = Eliminar filas o columnas
+DeleteTableMsg = Reducir el número de filas o de columnas eliminará celdas de la tabla y sus contenidos. ¿Desea realmente hacer esto?
+Clear = Limpiar
+Click = Hacer clic
+Drag = Arrastrar
+Unknown = Desconocido
+RemoveTextStylesAccesskey = x
+RemoveTextStyles = Eliminar todos los estilos de texto
+StopTextStyles = Descontinuar estilos de texto
+RemoveLinksAccesskey = n
+RemoveLinks = Eliminar enlaces
+StopLinks = Descontinuar enlace
+NoFormAction = Se recomienda que especifique una acción para este formulario. Los formularios auto-posteados son una técnica avanzada que puede no funcionar de la misma manera en todos los navegadores.
+NoAltText = Si la imagen es relevante para el contenido del documento, debe proporcionar un texto alternativo que aparecerá en los navegadores en modo texto y que aparecerá en el resto de navegadores cuando la imagen se esté cargando o cuando la carga de imágenes esté desactivada.
+Malformed = El código fuente no se ha podido convertir de nuevo en el documento porque no es XHTML válido.
+NoLinksToCheck = No hay elementos con enlaces por comprobar
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/editorOverlay.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/editorOverlay.dtd
new file mode 100644
index 0000000000..8f96e97ea4
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/editorOverlay.dtd
@@ -0,0 +1,284 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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. -->
+
+<!ENTITY pasteNoFormatting.label "Pegar sin formato">
+<!ENTITY pasteNoFormatting.accesskey "s">
+<!ENTITY pasteNoFormatting.key "V">
+<!ENTITY pasteAsQuotationCmd.label "Pegar como cita">
+<!ENTITY pasteAsQuotationCmd.accesskey "i">
+
+<!ENTITY insertMenu.label "Insertar">
+<!ENTITY insertMenu.accesskey "I">
+<!ENTITY insertLinkCmd2.label "Enlace…">
+<!ENTITY insertLinkCmd2.accesskey "L">
+<!ENTITY insertLinkCmd2.key "K">
+<!ENTITY insertAnchorCmd.label "Enlace interno con nombre…">
+<!ENTITY insertAnchorCmd.accesskey "A">
+<!ENTITY insertImageCmd.label "Imagen…">
+<!ENTITY insertImageCmd.accesskey "I">
+<!ENTITY insertHLineCmd.label "Línea horizontal">
+<!ENTITY insertHLineCmd.accesskey "o">
+<!ENTITY insertTableCmd.label "Tabla…">
+<!ENTITY insertTableCmd.accesskey "T">
+<!ENTITY insertHTMLCmd.label "HTML…">
+<!ENTITY insertHTMLCmd.accesskey "H">
+<!ENTITY insertMathCmd.label "Expresión matemática…">
+<!ENTITY insertMathCmd.accesskey "M">
+<!ENTITY insertCharsCmd.label "Caracteres y símbolos…">
+<!ENTITY insertCharsCmd.accesskey "C">
+<!ENTITY insertBreakAllCmd.label 'Ruptura tras imágenes (&lt;br clear="all"&gt;)'>
+<!ENTITY insertBreakAllCmd.accesskey "u">
+
+<!ENTITY createLinkCmd.label "Crear enlace…">
+<!ENTITY createLinkCmd.accesskey "n">
+<!ENTITY editLinkCmd.label "Editar enlace en ventana de Composer nueva">
+<!ENTITY editLinkCmd.accesskey "i">
+
+<!ENTITY FontFaceSelect.tooltip "Elija un tipo de letra">
+<!ENTITY fontfaceMenu.label "Tipo de letra">
+<!ENTITY fontfaceMenu.accesskey "T">
+<!ENTITY fontVarWidth.label "Anchura variable">
+<!ENTITY fontVarWidth.accesskey "V">
+<!ENTITY fontFixedWidth.label "Anchura fija">
+<!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">
+
+<!ENTITY FontSizeSelect.tooltip "Elija un tamaño de letra">
+<!ENTITY decreaseFontSize.label "Menor">
+<!ENTITY decreaseFontSize.accesskey "r">
+<!ENTITY decrementFontSize.key "&lt;">
+<!ENTITY decrementFontSize.key2 ",">
+<!ENTITY increaseFontSize.label "Mayor">
+<!ENTITY increaseFontSize.accesskey "y">
+<!ENTITY incrementFontSize.key "&gt;">
+<!ENTITY incrementFontSize.key2 ".">
+<!-- > is above this key on many keyboards -->
+
+<!ENTITY fontSizeMenu.label "Tamaño">
+<!ENTITY fontSizeMenu.accesskey "T">
+<!ENTITY size-tinyCmd.label "Diminuto">
+<!ENTITY size-tinyCmd.accesskey "D">
+<!ENTITY size-smallCmd.label "Pequeño">
+<!ENTITY size-smallCmd.accesskey "P">
+<!ENTITY size-mediumCmd.label "Medio">
+<!ENTITY size-mediumCmd.accesskey "M">
+<!ENTITY size-largeCmd.label "Grande">
+<!ENTITY size-largeCmd.accesskey "G">
+<!ENTITY size-extraLargeCmd.label "Extragrande">
+<!ENTITY size-extraLargeCmd.accesskey "x">
+<!ENTITY size-hugeCmd.label "Enorme">
+<!ENTITY size-hugeCmd.accesskey "E">
+
+<!ENTITY fontStyleMenu.label "Estilo de texto">
+<!ENTITY fontStyleMenu.accesskey "S">
+<!ENTITY styleBoldCmd.label "Negrita">
+<!ENTITY styleBoldCmd.accesskey "N">
+<!ENTITY styleBoldCmd.key "B">
+<!ENTITY styleItalicCmd.label "Cursiva">
+<!ENTITY styleItalicCmd.accesskey "I">
+<!ENTITY styleItalicCmd.key "I">
+<!ENTITY styleUnderlineCmd.label "Subrayar">
+<!ENTITY styleUnderlineCmd.accesskey "U">
+<!ENTITY styleUnderlineCmd.key "U">
+<!ENTITY styleStrikeThruCmd.label "Tachado">
+<!ENTITY styleStrikeThruCmd.accesskey "h">
+<!ENTITY styleSuperscriptCmd.label "Superíndice">
+<!ENTITY styleSuperscriptCmd.accesskey "p">
+<!ENTITY styleSubscriptCmd.label "Subíndice">
+<!ENTITY styleSubscriptCmd.accesskey "S">
+<!ENTITY styleNonbreakingCmd.label "Sin romper">
+<!ENTITY styleNonbreakingCmd.accesskey "N">
+<!ENTITY styleEm.label "Énfasis">
+<!ENTITY styleEm.accesskey "f">
+<!ENTITY styleStrong.label "Más énfasis">
+<!ENTITY styleStrong.accesskey "f">
+<!ENTITY styleCite.label "Cita">
+<!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 "o">
+<!ENTITY styleSamp.label "Aspecto de ejemplo">
+<!ENTITY styleSamp.accesskey "m">
+<!ENTITY styleVar.label "Variable">
+<!ENTITY styleVar.accesskey "V">
+
+<!ENTITY formatFontColor.label "Color del texto…">
+<!ENTITY formatFontColor.accesskey "C">
+<!ENTITY tableOrCellColor.label "Color de fondo de la tabla o celda…">
+<!ENTITY tableOrCellColor.accesskey "B">
+
+<!ENTITY formatRemoveStyles.key "Y">
+<!ENTITY formatRemoveLinks.key "K">
+<!ENTITY formatRemoveNamedAnchors.label "Eliminar enlaces internos con nombre">
+<!ENTITY formatRemoveNamedAnchors.accesskey "m">
+<!ENTITY formatRemoveNamedAnchors2.key "R">
+
+<!ENTITY paragraphMenu.label "Párrafo">
+<!ENTITY paragraphMenu.accesskey "P">
+<!ENTITY paragraphParagraphCmd.label "Párrafo">
+<!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 "Dirección">
+<!ENTITY paragraphAddressCmd.accesskey "D">
+<!ENTITY paragraphPreformatCmd.label "Preformato">
+<!ENTITY paragraphPreformatCmd.accesskey "f">
+
+<!ENTITY formatlistMenu.label "Lista">
+<!ENTITY formatlistMenu.accesskey "L">
+<!ENTITY noneCmd.label "Ninguna">
+<!ENTITY noneCmd.accesskey "N">
+<!ENTITY listBulletCmd.label "No numerada">
+<!ENTITY listBulletCmd.accesskey "o">
+<!ENTITY listNumberedCmd.label "Numerada">
+<!ENTITY listNumberedCmd.accesskey "m">
+<!ENTITY listTermCmd.label "Término">
+<!ENTITY listTermCmd.accesskey "T">
+<!ENTITY listDefinitionCmd.label "Definición">
+<!ENTITY listDefinitionCmd.accesskey "D">
+<!ENTITY listPropsCmd.label "Listar propiedades…">
+<!ENTITY listPropsCmd.accesskey "L">
+
+<!ENTITY ParagraphSelect.tooltip "Elija un formato de párrafo">
+<!ENTITY bodyTextCmd.label "Cuerpo del texto">
+<!ENTITY bodyTextCmd.accesskey "T">
+
+<!ENTITY alignMenu.label "Alinear">
+<!ENTITY alignMenu.accesskey "A">
+<!ENTITY alignLeft.label "Izquierda">
+<!ENTITY alignLeft.accesskey "I">
+<!ENTITY alignLeft.tooltip "Alinear a la izquierda">
+<!ENTITY alignCenter.label "Centrar">
+<!ENTITY alignCenter.accesskey "C">
+<!ENTITY alignCenter.tooltip "Alinear al centro">
+<!ENTITY alignRight.label "Derecha">
+<!ENTITY alignRight.accesskey "R">
+<!ENTITY alignRight.tooltip "Alinear a la derecha">
+<!ENTITY alignJustify.label "Justificar">
+<!ENTITY alignJustify.accesskey "J">
+<!ENTITY alignJustify.tooltip "Justificar">
+
+<!ENTITY increaseIndent.label "Incrementar sangrado">
+<!ENTITY increaseIndent.accesskey "I">
+<!ENTITY increaseIndent.key "]">
+<!ENTITY decreaseIndent.label "Reducir sangrado">
+<!ENTITY decreaseIndent.accesskey "D">
+<!ENTITY decreaseIndent.key "[">
+
+<!ENTITY colorsAndBackground.label "Color y fondo de la página…">
+<!ENTITY colorsAndBackground.accesskey "f">
+
+<!ENTITY tableMenu.label "Tabla">
+<!ENTITY tableMenu.accesskey "b">
+
+<!ENTITY tableSelectMenu.label "Seleccionar">
+<!ENTITY tableSelectMenu.accesskey "S">
+
+<!ENTITY tableSelectMenu2.label "Seleccionar tabla">
+<!ENTITY tableSelectMenu2.accesskey "S">
+<!ENTITY tableInsertMenu2.label "Insertar tabla">
+<!ENTITY tableInsertMenu2.accesskey "I">
+<!ENTITY tableDeleteMenu2.label "Eliminar tabla">
+<!ENTITY tableDeleteMenu2.accesskey "l">
+
+<!ENTITY tableInsertMenu.label "Insertar">
+<!ENTITY tableInsertMenu.accesskey "I">
+<!ENTITY tableTable.label "Tabla">
+<!ENTITY tableTable.accesskey "T">
+<!ENTITY tableRow.label "Fila">
+<!ENTITY tableRows.label "Fila(s)">
+<!ENTITY tableRow.accesskey "F">
+<!ENTITY tableRowAbove.label "Fila superior">
+<!ENTITY tableRowAbove.accesskey "F">
+<!ENTITY tableRowBelow.label "Fila inferior">
+<!ENTITY tableRowBelow.accesskey "i">
+<!ENTITY tableColumn.label "Columna">
+<!ENTITY tableColumns.label "Columna(s)">
+<!ENTITY tableColumn.accesskey "o">
+<!ENTITY tableColumnBefore.label "Columna anterior">
+<!ENTITY tableColumnBefore.accesskey "o">
+<!ENTITY tableColumnAfter.label "Columna siguiente">
+<!ENTITY tableColumnAfter.accesskey "A">
+<!ENTITY tableCell.label "Celda">
+<!ENTITY tableCells.label "Celda(s)">
+<!ENTITY tableCell.accesskey "C">
+<!ENTITY tableCellContents.label "Contenido de la celda">
+<!ENTITY tableCellContents.accesskey "n">
+<!ENTITY tableAllCells.label "Todas las celdas">
+<!ENTITY tableAllCells.accesskey "A">
+<!ENTITY tableCellBefore.label "Celda anterior">
+<!ENTITY tableCellBefore.accesskey "C">
+<!ENTITY tableCellAfter.label "Celda siguiente">
+<!ENTITY tableCellAfter.accesskey "u">
+<!ENTITY tableDeleteMenu.label "Eliminar">
+<!ENTITY tableDeleteMenu.accesskey "l">
+
+<!ENTITY tableJoinCells.label "U">
+<!ENTITY tableJoinCells.accesskey "U">
+<!ENTITY tableSplitCell.label "Dividir celda">
+<!ENTITY tableSplitCell.accesskey "C">
+<!ENTITY convertToTable.label "Crear tabla a partir de la selección">
+<!ENTITY convertToTable.accesskey "r">
+<!ENTITY tableProperties.label "Propiedades de la tabla…">
+<!ENTITY tableProperties.accesskey "o">
+
+<!ENTITY imageToolbarCmd.label "Imagen">
+<!ENTITY imageToolbarCmd.tooltip "Inserta una nueva imagen o edita las propiedades de la imagen seleccionada">
+<!ENTITY hruleToolbarCmd.label "Línea horiz.">
+<!ENTITY hruleToolbarCmd.tooltip "Inserta una nueva línea horizontal o modifica las propiedades de la línea horizontal seleccionada">
+<!ENTITY tableToolbarCmd.label "Tabla">
+<!ENTITY tableToolbarCmd.tooltip "Inserta una nueva tabla o modifica las propiedades de la tabla seleccionada">
+<!ENTITY linkToolbarCmd.label "Enlace">
+<!ENTITY linkToolbarCmd.tooltip "Inserta un nuevo enlace o edita las propiedades del enlace seleccionado">
+<!ENTITY anchorToolbarCmd.label "Enlace interno">
+<!ENTITY anchorToolbarCmd.tooltip "Inserta un nuevo enlace con nombre o modifica las propiedades del enlace con nombre seleccionado">
+<!ENTITY TextColorButton.tooltip "Elija un color para el texto">
+<!ENTITY BackgroundColorButton.tooltip "Elija un color para el fondo">
+
+<!ENTITY absoluteFontSizeToolbarCmd.tooltip "Establecer tamaño de letra">
+<!ENTITY decreaseFontSizeToolbarCmd.tooltip "Reducir el tamaño de la letra">
+<!ENTITY increaseFontSizeToolbarCmd.tooltip "Aumentar el tamaño de la letra">
+<!ENTITY boldToolbarCmd.tooltip "Negrita">
+<!ENTITY italicToolbarCmd.tooltip "Cursiva">
+<!ENTITY underlineToolbarCmd.tooltip "Subrayar">
+<!ENTITY bulletListToolbarCmd.tooltip "Aplicar o eliminar lista no numerada">
+<!ENTITY numberListToolbarCmd.tooltip "Aplicar o eliminar lista numerada">
+<!ENTITY outdentToolbarCmd.tooltip "Reducir sangrado (mover a la izquierda)">
+<!ENTITY indentToolbarCmd.tooltip "Sangrar texto (mover a la derecha)">
+<!ENTITY AlignPopupButton.tooltip "Elegir alineación del texto">
+<!ENTITY InsertPopupButton.tooltip "Insertar un enlace, enlace con nombre, imagen, línea horizontal o tabla">
+<!ENTITY alignLeftButton.tooltip "Alinear texto a lo largo del margen izquierdo">
+<!ENTITY alignCenterButton.tooltip "Alinear texto centrado">
+<!ENTITY alignRightButton.tooltip "Alinear texto a lo largo del margen derecho">
+<!ENTITY alignJustifyButton.tooltip "Alinear texto a los márgenes izquierdo y derecho">
+
+<!ENTITY insertTOC.label "Insertar">
+<!ENTITY insertTOC.accesskey "i">
+<!ENTITY updateTOC.label "Actualizar">
+<!ENTITY updateTOC.accesskey "u">
+<!ENTITY removeTOC.label "Eliminar">
+<!ENTITY removeTOC.accesskey "r">
+<!ENTITY tocMenu.label "Tabla de contenidos…">
+<!ENTITY tocMenu.accesskey "b">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/mailComposeEditorOverlay.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/mailComposeEditorOverlay.dtd
new file mode 100644
index 0000000000..e54a6bfbab
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Adjuntar esta imagen al mensaje">
+<!ENTITY attachImageSource.accesskey "s">
+
+<!ENTITY attachLinkSource.label "Adjuntar el origen de este enlace al mensaje">
+<!ENTITY attachLinkSource.accesskey "o">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/messengercompose.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/messengercompose.dtd
new file mode 100644
index 0000000000..29968c77a2
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Redacción: (sin asunto)">
+
+<!-- File Menu -->
+<!ENTITY fileMenu.label "Archivo">
+<!ENTITY fileMenu.accesskey "a">
+<!ENTITY newMenu.label "Nuevo">
+<!ENTITY newMenu.accesskey "N">
+<!ENTITY newMessage.label "Mensaje">
+<!ENTITY newMessage.accesskey "M">
+<!ENTITY newMessageCmd2.key "N">
+<!ENTITY newContact.label "Contacto de la libreta de direcciones…">
+<!ENTITY newContact.accesskey "C">
+<!ENTITY attachMenu.label "Adjuntar">
+<!ENTITY attachMenu.accesskey "A">
+<!ENTITY attachCloudCmd.label "Filelink">
+<!ENTITY attachCloudCmd.accesskey "i">
+<!ENTITY attachPageCmd.label "Adjuntar página web…">
+<!ENTITY attachPageCmd.accesskey "W">
+<!ENTITY remindLater.label "Recordármelo más tarde">
+<!ENTITY remindLater.accesskey "R">
+<!ENTITY closeCmd.label "Cerrar">
+<!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 "Archivo…">
+<!ENTITY saveAsFileCmd.accesskey "A">
+<!ENTITY saveAsDraftCmd.label "Borrador">
+<!ENTITY saveAsDraftCmd.accesskey "D">
+<!ENTITY saveAsTemplateCmd.label "Plantilla">
+<!ENTITY saveAsTemplateCmd.accesskey "T">
+<!ENTITY sendNowCmd.label "Enviar ahora">
+<!ENTITY sendCmd.keycode "VK_RETURN">
+<!ENTITY sendNowCmd.accesskey "v">
+<!ENTITY sendLaterCmd.label "Enviar más tarde">
+<!ENTITY sendLaterCmd.keycode "VK_RETURN">
+<!ENTITY sendLaterCmd.accesskey "t">
+<!ENTITY printCmd.label "Imprimir…">
+<!ENTITY printCmd.key "P">
+<!ENTITY printCmd.accesskey "P">
+
+<!-- Edit Menu -->
+<!ENTITY editMenu.label "Editar">
+<!ENTITY editMenu.accesskey "e">
+<!ENTITY undoCmd.label "Deshacer">
+<!ENTITY undoCmd.key "Z">
+<!ENTITY undoCmd.accesskey "h">
+<!ENTITY redoCmd.label "Rehacer">
+<!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 "j">
+<!ENTITY deleteCmd.label "Eliminar">
+<!ENTITY deleteCmd.accesskey "r">
+<!ENTITY editRewrapCmd.label "Reajuste de línea">
+<!ENTITY editRewrapCmd.key "R">
+<!ENTITY renameAttachmentCmd.label "Renombrar adjunto…">
+<!ENTITY renameAttachmentCmd.accesskey "e">
+<!ENTITY reorderAttachmentsCmd.label "Reordenar adjuntos…">
+<!ENTITY reorderAttachmentsCmd.accesskey "R">
+<!ENTITY reorderAttachmentsCmd.key "x">
+<!ENTITY selectAllCmd.accesskey "t">
+<!ENTITY findBarCmd.label "Buscar…">
+<!ENTITY findBarCmd.accesskey "B">
+<!ENTITY findBarCmd.key "F">
+<!ENTITY findReplaceCmd.label "Buscar y reemplazar…">
+<!ENTITY findReplaceCmd.accesskey "R">
+<!ENTITY findReplaceCmd.key "H">
+<!ENTITY findAgainCmd.label "Repetir la búsqueda">
+<!ENTITY findAgainCmd.accesskey "q">
+<!ENTITY findAgainCmd.key "G">
+<!ENTITY findAgainCmd.key2 "VK_F3">
+<!ENTITY findPrevCmd.label "Buscar anterior">
+<!ENTITY findPrevCmd.accesskey "i">
+<!ENTITY findPrevCmd.key "G">
+<!ENTITY findPrevCmd.key2 "VK_F3">
+
+<!-- Reorder Attachment Panel -->
+<!ENTITY reorderAttachmentsPanel.label "Reordenar adjuntos">
+<!ENTITY moveAttachmentBundleUpPanelBtn.label "Mover juntos">
+
+<!-- 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 selección: A - Z">
+<!ENTITY sortAttachmentsPanelBtn.SortSelection.ZA.label "Ordenar selección: Z - A">
+<!ENTITY sortAttachmentsPanelBtn.key "y">
+
+<!-- View Menu -->
+<!ENTITY viewMenu.label "Ver">
+<!ENTITY viewMenu.accesskey "v">
+<!ENTITY viewToolbarsMenuNew.label "Barras de herramientas">
+<!ENTITY viewToolbarsMenuNew.accesskey "h">
+<!ENTITY menubarCmd.label "Barra de menú">
+<!ENTITY menubarCmd.accesskey "M">
+<!ENTITY showCompositionToolbarCmd.label "Barra de herramientas de redacción">
+<!ENTITY showCompositionToolbarCmd.accesskey "r">
+<!ENTITY showFormattingBarCmd.label "Barra de formato">
+<!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 "Panel lateral de contactos">
+<!ENTITY addressSidebar.accesskey "o">
+
+<!-- Format Menu -->
+<!ENTITY formatMenu.label "Formato">
+<!ENTITY formatMenu.accesskey "o">
+
+<!-- Options Menu -->
+<!ENTITY optionsMenu.label "Opciones">
+<!ENTITY optionsMenu.accesskey "p">
+<!ENTITY checkSpellingCmd2.label "Revisar ortografía…">
+<!ENTITY checkSpellingCmd2.key "p">
+<!ENTITY checkSpellingCmd2.key2 "VK_F7">
+<!ENTITY checkSpellingCmd2.accesskey "o">
+<!ENTITY enableInlineSpellChecker.label "Revisar mientras escribe">
+<!ENTITY enableInlineSpellChecker.accesskey "S">
+<!ENTITY quoteCmd.label "Citar mensaje">
+<!ENTITY quoteCmd.accesskey "m">
+
+<!--LOCALIZATION NOTE attachVCard.label Don't translate the term 'vCard' -->
+<!ENTITY attachVCard.label "Adjuntar tarjeta personal (vCard)">
+<!ENTITY attachVCard.accesskey "v">
+
+<!ENTITY returnReceiptMenu.label "Acuse de recibo">
+<!ENTITY returnReceiptMenu.accesskey "D">
+<!ENTITY dsnMenu.label "Notificación de estado de entrega">
+<!ENTITY dsnMenu.accesskey "N">
+<!ENTITY priorityMenu.label "Prioridad">
+<!ENTITY priorityMenu.accesskey "p">
+<!ENTITY priorityButton.title "Prioridad">
+<!ENTITY priorityButton.tooltiptext "Cambiar la prioridad del mensaje">
+<!ENTITY priorityButton.label "Prioridad:">
+<!ENTITY lowestPriorityCmd.label "La más baja">
+<!ENTITY lowestPriorityCmd.accesskey "M">
+<!ENTITY lowPriorityCmd.label "Baja">
+<!ENTITY lowPriorityCmd.accesskey "B">
+<!ENTITY normalPriorityCmd.label "Normal">
+<!ENTITY normalPriorityCmd.accesskey "n">
+<!ENTITY highPriorityCmd.label "Alta">
+<!ENTITY highPriorityCmd.accesskey "A">
+<!ENTITY highestPriorityCmd.label "La más alta">
+<!ENTITY highestPriorityCmd.accesskey "L">
+<!ENTITY fileCarbonCopyCmd.label "Enviar una copia a">
+<!ENTITY fileCarbonCopyCmd.accesskey "v">
+<!ENTITY fileHereMenu.label "Archivar aquí">
+
+<!-- Tools Menu -->
+<!ENTITY tasksMenu.label "Herramientas">
+<!ENTITY tasksMenu.accesskey "T">
+<!ENTITY messengerCmd.label "Correo y noticias">
+<!ENTITY messengerCmd.accesskey "o">
+<!ENTITY messengerCmd.commandkey "1">
+<!ENTITY addressBookCmd.label "Libreta de direcciones">
+<!ENTITY addressBookCmd.accesskey "L">
+<!ENTITY addressBookCmd.key "B">
+<!ENTITY accountManagerCmd2.label "Configuración de cuenta">
+<!ENTITY accountManagerCmd2.accesskey "C">
+<!ENTITY accountManagerCmdUnix2.accesskey "C">
+
+<!-- Mac OS X Window Menu -->
+<!ENTITY minimizeWindow.key "m">
+<!ENTITY minimizeWindow.label "Minimizar ventana">
+<!ENTITY bringAllToFront.label "Traer todo al frente">
+<!ENTITY zoomWindow.label "Acercar ventana">
+<!ENTITY windowMenu.label "Ventana">
+
+<!-- Mail Toolbar -->
+<!ENTITY sendButton.label "Enviar">
+<!ENTITY quoteButton.label "Citar">
+<!ENTITY addressButton.label "Contactos">
+<!ENTITY spellingButton.label "Ortografía">
+<!ENTITY saveButton.label "Guardar">
+<!ENTITY printButton.label "Imprimir">
+
+<!-- Mail Toolbar Tooltips -->
+<!ENTITY sendButton.tooltip "Enviar este mensaje ahora">
+<!ENTITY sendlaterButton.tooltip "Enviar este mensaje más tarde">
+<!ENTITY quoteButton.tooltip "Citar el mensaje anterior">
+<!ENTITY addressButton.tooltip "Seleccionar un destinatario de una libreta de direcciones">
+<!ENTITY spellingButton.tooltip "Revisar ortografía de la selección o del mensaje completo">
+<!ENTITY saveButton.tooltip "Guardar este mensaje">
+<!ENTITY cutButton.tooltip "Cortar">
+<!ENTITY copyButton.tooltip "Copiar">
+<!ENTITY pasteButton.tooltip "Pegar">
+<!ENTITY printButton.tooltip "Imprimir este mensaje">
+
+<!-- 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 "Remitente">
+<!ENTITY fromAddr.accesskey "D">
+<!ENTITY replyAddr2.label "Responder a">
+<!ENTITY newsgroupsAddr2.label "Grupo de noticias">
+<!ENTITY followupAddr2.label "Followup-To">
+<!ENTITY subject2.label "Asunto">
+<!ENTITY subject.accesskey "S">
+<!ENTITY attachmentBucketCloseButton.tooltip "Ocultar el panel de adjuntos">
+
+<!-- Format Toolbar, imported from editorAppShell.xhtml -->
+<!ENTITY SmileButton.tooltip "Insertar un emoticono">
+<!ENTITY smiley1Cmd.label "Sonriendo">
+<!ENTITY smiley2Cmd.label "Triste">
+<!ENTITY smiley3Cmd.label "Pícaro">
+<!ENTITY smiley4Cmd.label "Sacando la lengua">
+<!ENTITY smiley5Cmd.label "Riendo a carcajadas">
+<!ENTITY smiley6Cmd.label "Avergonzado">
+<!ENTITY smiley7Cmd.label "Indeciso">
+<!ENTITY smiley8Cmd.label "Sorprendido">
+<!ENTITY smiley9Cmd.label "Beso">
+<!ENTITY smiley10Cmd.label "Gritar">
+<!ENTITY smiley11Cmd.label "Guay">
+<!ENTITY smiley12Cmd.label "Dinero en la boca">
+<!ENTITY smiley13Cmd.label "Pie en la boca">
+<!ENTITY smiley14Cmd.label "Inocente">
+<!ENTITY smiley15Cmd.label "Llorando">
+<!ENTITY smiley16Cmd.label "Labios sellados">
+
+<!-- Message Pane Context Menu -->
+<!ENTITY spellCheckNoSuggestions.label "No se encontraron sugerencias">
+<!ENTITY spellCheckIgnoreWord.label "Ignorar palabra">
+<!ENTITY spellCheckIgnoreWord.accesskey "I">
+<!ENTITY spellCheckAddToDictionary.label "Añadir al diccionario">
+<!ENTITY spellCheckAddToDictionary.accesskey "n">
+<!ENTITY undo.label "Deshacer">
+<!ENTITY undo.accesskey "h">
+<!ENTITY cut.label "Cortar">
+<!ENTITY cut.accesskey "t">
+<!ENTITY copy.label "Copiar">
+<!ENTITY copy.accesskey "C">
+<!ENTITY paste.label "Pegar">
+<!ENTITY paste.accesskey "P">
+<!ENTITY pasteQuote.label "Pegar como cita">
+<!ENTITY pasteQuote.accesskey "g">
+
+<!-- Attachment Item and List Context Menus -->
+<!ENTITY openAttachment.label "Abrir">
+<!ENTITY openAttachment.accesskey "A">
+<!ENTITY delete.label "Eliminar">
+<!ENTITY delete.accesskey "l">
+<!ENTITY removeAttachment.label "Eliminar adjunto">
+<!ENTITY removeAttachment.accesskey "M">
+<!ENTITY renameAttachment.label "Renombrar…">
+<!ENTITY renameAttachment.accesskey "R">
+<!ENTITY reorderAttachments.label "Reordenar adjuntos…">
+<!ENTITY reorderAttachments.accesskey "R">
+<!ENTITY removeAllAttachments.label "Eliminar todos los adjuntos">
+<!ENTITY removeAllAttachments.accesskey "j">
+<!ENTITY selectAll.label "Seleccionar todo">
+<!ENTITY selectAll.accesskey "A">
+<!ENTITY attachCloud.label "Filelink…">
+<!ENTITY attachCloud.accesskey "i">
+<!ENTITY convertCloud.label "Convertir a…">
+<!ENTITY convertCloud.accesskey "C">
+<!ENTITY cancelUpload.label "Cancelar subida">
+<!ENTITY cancelUpload.accesskey "n">
+<!ENTITY convertRegularAttachment.label "Adjunto normal">
+<!ENTITY convertRegularAttachment.accesskey "A">
+<!ENTITY attachPage.label "Adjuntar 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 "Al abrir, mostrar el panel de adjuntos">
+<!ENTITY initiallyShowAttachmentPane.accesskey "m">
+
+<!-- Spell checker context menu items -->
+<!ENTITY spellAddDictionaries.label "Añadir diccionarios…">
+<!ENTITY spellAddDictionaries.accesskey "A">
+
+<!-- Title for the address picker panel -->
+<!ENTITY addressesSidebarTitle.label "Contactos">
+
+<!-- Identity popup customize menuitem -->
+<!ENTITY customizeFromAddress.label "Personalizar dirección De…">
+<!ENTITY customizeFromAddress.accesskey "D">
+
+<!-- Accessibility name for the document -->
+<!ENTITY aria.message.bodyName "Cuerpo del mensaje">
+
+<!-- Status Bar -->
+<!ENTITY languageStatusButton.tooltip "Idioma de revisión ortográfica">
+<!ENTITY encodingStatusPanel.tooltip "Codificación de texto">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/sendProgress.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/sendProgress.dtd
new file mode 100644
index 0000000000..f1e6936726
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/sendProgress.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 sendDialog.title "Procesando mensaje">
+<!ENTITY status.label "Estado:">
+<!ENTITY progress.label "Progreso:">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/sendProgress.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/sendProgress.properties
new file mode 100644
index 0000000000..e72df5b58a
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/messengercompose/sendProgress.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/.
+
+titleSendMsgSubject = Enviando mensaje - %S
+titleSendMsg = Enviando mensaje
+titleSaveMsgSubject = Guardando mensaje - %S
+titleSaveMsg = Guardando mensaje
+
+percentMsg = %S%%
+
+messageSent = Se ha enviado su mensaje.
+messageSaved = Se ha guardado su mensaje.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/migration/migration.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/migration/migration.dtd
new file mode 100644
index 0000000000..125e1de439
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Asistente para importar">
+
+<!ENTITY importFromWin.label "Importar opciones, configuración de cuentas, libretas de direcciones, filtros y otros datos de:">
+<!ENTITY importFromNonWin.label "Importar preferencias, configuraciones de cuentas, libretas de direcciones, filtros y otros datos de:">
+<!ENTITY importSourceNotFound.label "No se ha encontrado aplicación de la que importar datos.">
+
+<!ENTITY importFromNothing.label "No importar nada">
+<!ENTITY importFromNothing.accesskey "D">
+<!ENTITY importFromSeamonkey3.label "SeaMonkey 2 o posterior">
+<!ENTITY importFromSeamonkey3.accesskey "S">
+<!ENTITY importFromOutlook.label "Outlook">
+<!ENTITY importFromOutlook.accesskey "O">
+
+<!ENTITY importSource.title "Importar configuración y carpetas de correo">
+<!ENTITY importItems.title "Elementos a importar">
+<!ENTITY importItems.label "Seleccionar los elementos a importar:">
+
+<!ENTITY migrating.title "Importando…">
+<!ENTITY migrating.label "Se están importando los siguientes elementos…">
+
+<!ENTITY selectProfile.title "Seleccionar perfil">
+<!ENTITY selectProfile.label "Los siguientes perfiles están disponibles para importar:">
+
+<!ENTITY done.title "Importación completa">
+<!ENTITY done.label "Los siguientes elementos se importaron correctamente:">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/migration/migration.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/migration/migration.properties
new file mode 100644
index 0000000000..267402b4ed
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Preferencias
+
+1_thunderbird=Preferencias
+
+2_seamonkey=Configuración de la cuenta
+2_thunderbird=Configuración de la cuenta
+2_outlook=Configuración de la cuenta
+
+4_seamonkey=Libretas de direcciones
+4_thunderbird=Libretas de direcciones
+4_outlook=Libreta de direcciones
+
+8_seamonkey=Entrenamiento de correo no deseado
+
+16_seamonkey=Contraseñas guardadas
+
+32_seamonkey=Otros datos
+
+64_seamonkey=Carpetas de grupos de noticias
+
+64_thunderbird=Carpetas de grupos de noticias
+
+128_seamonkey=Carpetas de correo
+128_thunderbird=Carpetas de correo
+128_outlook=Carpetas de correo
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mime.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mime.properties
new file mode 100644
index 0000000000..4429b67b7b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mime.properties
@@ -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/.
+
+#
+# The following are used by libmime to emit header display in HTML
+#
+
+1000 = Asunto
+
+1001 = Resent-Comments
+
+1002 = Resent-Date
+
+1003 = Resent-Sender
+
+1004 = Resent-From
+
+1005 = Resent-To
+
+1006 = Resent-CC
+
+1007 = Fecha
+
+1008 = Remitente
+
+1009 = De
+
+1010 = Responder a
+
+1011 = Organización
+
+1012 = Para
+
+1013 = CC
+
+1014 = Grupos de noticias
+
+1015 = Followup-To
+
+1016 = Referencias
+
+1021 = Message-ID
+
+1023 = BCC
+
+1026 = Enlace al documento
+
+1027 = <B>Información del documento:</B>
+
+1028 = Adjunto
+
+1040 = Parte %s
+
+1041 = -------- Mensaje original --------
+
+MIME_MSG_PARTIAL_TRUNCATED = ¡Truncado!
+
+MIME_MSG_PARTIAL_TRUNCATED_EXPLANATION = Este mensaje ha superado el tamaño máximo de mensaje establecido en la configuración de la cuenta, por lo que sólo se han descargado las primeras líneas del servidor de correo.
+
+MIME_MSG_PARTIAL_NOT_DOWNLOADED = No descargado
+
+MIME_MSG_PARTIAL_NOT_DOWNLOADED_EXPLANATION = Sólo se han descargado del servidor de correo las cabeceras de este mensaje.
+
+MIME_MSG_PARTIAL_CLICK_FOR_REST = Descargar el resto del mensaje.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mimeheader.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mimeheader.properties
new file mode 100644
index 0000000000..1f04e9a2c5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/mimeheader.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/.
+
+TO = Para
+BCC = BCC
+CC = CC
+DATE = Fecha
+DISTRIBUTION = Distribución
+FCC = FCC
+FOLLOWUP-TO = Followup-To
+FROM = De
+STATUS = Estado
+LINES = Líneas
+MESSAGE-ID = Message-ID
+MIME-VERSION = MIME-Version
+NEWSGROUPS = Grupos de noticias
+ORGANIZATION = Organización
+REFERENCES = Referencias
+REPLY-TO = Responder a
+RESENT-COMMENTS = Resent-Comments
+RESENT-DATE = Resent-Date
+RESENT-FROM = Resent-From
+RESENT-MESSAGE-ID = Resent-Message-ID
+RESENT-SENDER = Resent-Sender
+RESENT-TO = Resent-To
+RESENT-CC = Resent-CC
+SENDER = Remitente
+SUBJECT = Asunto
+APPROVED-BY = Approved-By
+USER-AGENT = Agente de usuario:
+FILENAME = Nombre de archivo
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/morkImportMsgs.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/morkImportMsgs.properties
new file mode 100644
index 0000000000..eb668f26cc
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Libretas de direcciones Mork
+
+# Short name of import module
+morkImportName = Base de datos Mork (.mab)
+
+# Description of import module
+morkImportDescription = Importar una libreta de direcciones de SeaMonkey o de versiones anteriores de Thunderbird.
+
+morkImportSuccess = ¡Correcto!
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgAccountCentral.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgAccountCentral.dtd
new file mode 100644
index 0000000000..d93bc58c35
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Correo electrónico">
+<!ENTITY readMsgsLink.label "Leer mensajes">
+<!ENTITY composeMsgLink.label "Redactar un nuevo mensaje">
+
+<!ENTITY newsSectionHdr.label "Grupos de noticias">
+<!ENTITY subscribeNewsLink.label "Administrar suscripciones a grupos de noticias">
+
+<!ENTITY feedsSectionHdr.label "Canales">
+<!ENTITY subscribeFeeds.label "Administrar suscripciones">
+
+<!ENTITY chat.label "Chat">
+
+<!ENTITY accountsSectionHdr.label "Cuentas">
+<!ENTITY subscribeImapFolders.label "Administrar suscripciones a carpetas">
+<!ENTITY settingsLink.label "Ver configuración de esta cuenta">
+<!ENTITY setupNewAcct.label "Configurar una cuenta:">
+
+<!ENTITY advFeaturesSectionHdr.label "Características avanzadas">
+<!ENTITY searchMsgsLink.label "Buscar mensajes">
+<!ENTITY filtersLink.label "Administrar filtros de mensajes">
+<!ENTITY junkSettings.label "Correo no deseado">
+<!ENTITY offlineLink.label "Configuración sin conexión">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgHdrViewOverlay.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgHdrViewOverlay.dtd
new file mode 100644
index 0000000000..9ba51bb0cb
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgHdrViewOverlay.dtd
@@ -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/. -->
+
+<!ENTITY toField4.label "A">
+<!ENTITY fromField4.label "De">
+<!ENTITY senderField4.label "Remitente">
+<!ENTITY author.label "Autor">
+<!ENTITY organizationField4.label "Organización">
+<!ENTITY replyToField4.label "Responder a">
+
+<!ENTITY subjectField4.label "Asunto">
+<!ENTITY ccField4.label "Cc">
+<!ENTITY bccField4.label "Bcc">
+<!ENTITY newsgroupsField4.label "Grupos de noticias">
+<!ENTITY followupToField4.label "Continuación en">
+<!ENTITY tagsHdr4.label "Etiquetas">
+<!ENTITY dateField4.label "Fecha">
+<!ENTITY userAgentField4.label "Agente de usuario">
+<!ENTITY referencesField4.label "Referencias">
+<!ENTITY messageIdField4.label "Message ID">
+<!ENTITY inReplyToField4.label "En respuesta a">
+<!ENTITY originalWebsite4.label "Sitio web">
+
+<!ENTITY hdrArchiveButton1.label "Archivar">
+<!ENTITY hdrArchiveButton1.tooltip "Archivar este mensaje">
+<!ENTITY hdrSmartReplyButton1.label "Responder a interesados">
+<!ENTITY hdrReplyButton1.label "Responder">
+<!ENTITY hdrReplyButton2.tooltip "Contestar al remitente de este mensaje">
+<!ENTITY hdrReplyAllButton1.label "Responder a todos">
+<!ENTITY hdrReplyAllButton1.tooltip "Responder al remitente y a todos los destinatarios">
+<!ENTITY hdrReplyListButton1.label "Responder a la lista">
+<!ENTITY hdrReplyListButton1.tooltip "Responder a la lista de correo">
+<!ENTITY hdrFollowupButton1.label "Responder">
+<!ENTITY hdrFollowupButton1.tooltip "Publicar una respuesta a la conversación en este grupo de noticias">
+<!ENTITY hdrForwardButton1.label "Reenviar">
+<!ENTITY hdrForwardButton1.tooltip "Reenviar este mensaje">
+<!ENTITY hdrJunkButton1.label "No deseado">
+<!ENTITY hdrJunkButton1.tooltip "Marcar este mensaje como correo no deseado">
+<!ENTITY hdrTrashButton1.label "Eliminar">
+<!ENTITY hdrTrashButton1.tooltip "Eliminar este mensaje">
+
+<!ENTITY hdrViewToolbarShowFull.label "Mostrar iconos y texto">
+<!ENTITY hdrViewToolbarShowFull.accesskey "M">
+<!ENTITY hdrViewToolbarShowIcons.label "Mostrar sólo iconos">
+<!ENTITY hdrViewToolbarShowIcons.accesskey "a">
+<!ENTITY hdrViewToolbarShowText.label "Mostrar sólo texto">
+<!ENTITY hdrViewToolbarShowText.accesskey "e">
+<!ENTITY hdrViewToolbarAlwaysReplySender.label "Mostrar siempre Responder al remitente">
+<!ENTITY hdrViewToolbarAlwaysReplySender.accesskey "R">
+
+<!ENTITY otherActionsButton2.label "Más">
+<!ENTITY otherActionsButton.tooltip "Más acciones">
+<!ENTITY otherActionsOpenConversation1.label "Abrir en la conversación">
+<!ENTITY otherActionsOpenConversation1.accesskey "c">
+<!ENTITY otherActionsOpenInNewWindow1.label "Abrir en una ventana nueva">
+<!ENTITY otherActionsOpenInNewWindow1.accesskey "v">
+<!ENTITY otherActionsOpenInNewTab1.label "Abrir en una pestaña nueva">
+<!ENTITY otherActionsOpenInNewTab1.accesskey "t">
+<!ENTITY markAsReadMenuItem1.label "Marcar como leído">
+<!ENTITY markAsReadMenuItem1.accesskey "r">
+<!ENTITY markAsUnreadMenuItem1.label "Marcar como no leído">
+<!ENTITY markAsUnreadMenuItem1.accesskey "r">
+<!ENTITY saveAsMenuItem1.label "Guardar como…">
+<!ENTITY saveAsMenuItem1.accesskey "G">
+<!ENTITY viewSourceMenuItem1.label "Ver código fuente">
+<!ENTITY viewSourceMenuItem1.accesskey "V">
+<!ENTITY otherActionsPrint1.label "Imprimir…">
+<!ENTITY otherActionsPrint1.accesskey "I">
+
+<!ENTITY startExpandedCmd.label "Al abrir, mostrar el panel de adjuntos">
+<!ENTITY startExpandedCmd.accesskey "b">
+
+<!ENTITY openAttachmentCmd.label "Abrir">
+<!ENTITY openAttachmentCmd.accesskey "b">
+<!ENTITY saveAsAttachmentCmd.label "Guardar como…">
+<!ENTITY saveAsAttachmentCmd.accesskey "G">
+<!ENTITY detachAttachmentCmd.label "Separar adjuntos…">
+<!ENTITY detachAttachmentCmd.accesskey "S">
+<!ENTITY deleteAttachmentCmd.label "Eliminar">
+<!ENTITY deleteAttachmentCmd.accesskey "E">
+<!ENTITY openAllAttachmentsCmd.label "Abrir todo…">
+<!ENTITY openAllAttachmentsCmd.accesskey "o">
+<!ENTITY saveAllAttachmentsCmd.label "Guardar todo…">
+<!ENTITY saveAllAttachmentsCmd.accesskey "G">
+<!ENTITY detachAllAttachmentsCmd.label "Separar todos los adjuntos…">
+<!ENTITY detachAllAttachmentsCmd.accesskey "D">
+<!ENTITY deleteAllAttachmentsCmd.label "Eliminar todos…">
+<!ENTITY deleteAllAttachmentsCmd.accesskey "d">
+
+<!ENTITY openAttachment.tooltip "Abrir el archivo adjunto">
+
+<!ENTITY detachedAttachmentFolder.show.label "Abrir carpeta contenedora">
+<!ENTITY detachedAttachmentFolder.show.accesskey "c">
+<!ENTITY detachedAttachmentFolder.showMac.label "Mostrar en Finder">
+<!ENTITY detachedAttachmentFolder.showMac.accesskey "F">
+
+<!ENTITY saveAttachmentButton1.label "Guardar">
+<!ENTITY saveAttachmentButton1.tooltip "Guardar el archivo adjunto">
+<!ENTITY saveAllAttachmentsButton1.label "Guardar todo">
+<!ENTITY saveAllAttachmentsButton1.tooltip "Guardar todos los archivos adjuntos">
+
+<!ENTITY copyLinkCmd.label "Copiar la dirección del enlace">
+<!ENTITY copyLinkCmd.accesskey "C">
+
+<!ENTITY CopyMessageId.label "Copiar Message-ID">
+<!ENTITY CopyMessageId.accesskey "C">
+<!ENTITY OpenMessageForMsgId.label "Abrir mensaje para el Message-ID">
+<!ENTITY OpenMessageForMsgId.accesskey "m">
+<!ENTITY OpenBrowserWithMsgId.label "Abrir navegador con el Message-ID">
+<!ENTITY OpenBrowserWithMsgId.accesskey "A">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgSynchronize.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgSynchronize.dtd
new file mode 100644
index 0000000000..1b0a547aed
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Descargar y sincronizar mensajes">
+<!ENTITY MsgSelect.label "Elementos para usar sin conexión">
+<!ENTITY MsgSyncDesc.label "Si ya ha seleccionado las carpetas de correo o grupos de noticias para uso sin conexión, puede descargarlos y/o sincronizarlos ahora. Si no, utilice el botón &quot;Seleccionar&quot; para escoger las carpetas de correo y noticias que quiere utilizar sin conexión.">
+<!ENTITY MsgSyncDirections.label "Descargar y/o sincronizar las siguientes:">
+<!ENTITY syncTypeMail.label "Mensajes de correo">
+<!ENTITY syncTypeMail.accesskey "M">
+<!ENTITY syncTypeNews.label "Mensajes de noticias">
+<!ENTITY syncTypeNews.accesskey "N">
+<!ENTITY sendMessage.label "Enviar mensajes pendientes">
+<!ENTITY sendMessage.accesskey "S">
+<!ENTITY workOffline.label "Trabajar sin conexión al acabar la descarga y/o sincronización">
+<!ENTITY workOffline.accesskey "r">
+<!ENTITY selectButton.label "Seleccionar…">
+<!ENTITY selectButton.accesskey "E">
+<!ENTITY MsgSelectDesc.label "Seleccionar las carpetas de correo y noticias para usar sin conexión.">
+<!ENTITY MsgSelectInd.label "Descargar">
+<!ENTITY MsgSelectItems.label "Carpetas y grupos de noticias">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgViewPickerOverlay.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgViewPickerOverlay.dtd
new file mode 100644
index 0000000000..1ca691b261
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgViewPickerOverlay.dtd
@@ -0,0 +1,22 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgViewPickerOverlay.dtd UI for showing various views on a folder -->
+
+<!ENTITY viewPicker.label "Ver:">
+<!ENTITY viewPicker.accesskey "r">
+<!ENTITY viewAll.label "Todo">
+<!ENTITY viewAll.accesskey "T">
+<!ENTITY viewUnread.label "No leídos">
+<!ENTITY viewUnread.accesskey "N">
+<!ENTITY viewNotDeleted.label "No eliminados">
+<!ENTITY viewNotDeleted.accesskey "e">
+<!ENTITY viewTags.label "Etiquetas">
+<!ENTITY viewTags.accesskey "E">
+<!ENTITY viewCustomViews.label "Vistas personalizadas">
+<!ENTITY viewCustomViews.accesskey "V">
+<!ENTITY viewVirtualFolder.label "Guardar vista como una carpeta…">
+<!ENTITY viewVirtualFolder.accesskey "G">
+<!ENTITY viewCustomizeView.label "Personalizar…">
+<!ENTITY viewCustomizeView.accesskey "P">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgmdn.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/msgmdn.properties
new file mode 100644
index 0000000000..8f068b8948
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 acuse de recibo sólo acredita que el mensaje se mostró en el ordenador del destinatario. No hay garantía de que el destinatario haya leído o comprendido el contenido del mensaje.
+MsgMdnDispatched = El mensaje fue impreso, mandado por fax o reenviado sin ser mostrado al destinatario. No hay garantía de que el destinatario pueda leer el mensaje posteriormente.
+MsgMdnProcessed = El mensaje fue procesado por el cliente de correo del destinatario sin ser mostrado. No hay garantía de que el mensaje pueda ser leido con posterioridad.
+MsgMdnDeleted = El mensaje ha sido borrado. La persona a quien lo envió quizá no lo haya visto, pero podría restaurarlo posteriormente y leerlo.
+MsgMdnDenied = El destinatario del mensaje no quiere enviar la confirmación del acuse de recibo.
+MsgMdnFailed = Ha ocurrido un fallo. No se ha podido generar adecuadamente el acuse de recibo.
+MsgMdnMsgSentTo = Este es un acuse de recibo para el mensaje que usted envió a %S.
+MdnDisplayedReceipt = Acuse de recibo (mostrado)
+MdnDispatchedReceipt = Acuse de recibo (enviado)
+MdnProcessedReceipt = Acuse de recibo (procesado)
+MdnDeletedReceipt = Acuse de recibo (borrado)
+MdnDeniedReceipt = Acuse de recibo (denegado)
+MdnFailedReceipt = Acuse de recibo (fallo)
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/multimessageview.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/multimessageview.dtd
new file mode 100644
index 0000000000..cc4f7ce3dd
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Resumen del mensaje">
+<!ENTITY selectedmessages.label "Mensajes seleccionados">
+<!ENTITY archiveButton.label "Archivar">
+<!ENTITY deleteButton.label "Eliminar">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/multimessageview.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/multimessageview.properties
new file mode 100644
index 0000000000..a7cb2892f6
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/multimessageview.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/.
+
+numConversations = #1 conversación; #1 conversaciones
+
+atLeastNumConversations = #1+ conversación; #1+ conversaciones
+
+numMessages = #1 mensaje;#1 mensajes
+
+numUnread = , #1 no leído;, #1 no leídos
+
+numIgnored = , #1 ignorado;, #1 ignorados
+
+atLeastNumIgnored = , #1+ ignorado;, #1+ ignorados
+
+noSubject = (sin asunto)
+
+messagesTotalSize = Estos mensajes ocupan #1.
+
+messagesTotalSizeMoreThan = Estos mensajes ocupan más de #1.
+
+maxCountExceeded = (Nota: #1 mensajes están seleccionados, se muestran los #2 primeros)
+
+maxThreadCountExceeded = (Nota: #1 conversaciones están seleccionadas, se muestran las #2 primeras)
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/newFolderDialog.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/newFolderDialog.dtd
new file mode 100644
index 0000000000..aa86b26542
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/newFolderDialog.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 newFolderDialog.title "Nueva carpeta">
+<!ENTITY name.label "Nombre:">
+<!ENTITY name.accesskey "n">
+<!ENTITY description.label "Crear como subcarpeta de:">
+<!ENTITY description.accesskey "C">
+<!ENTITY folderRestriction1.label "Este servidor restringe las carpetas a dos tipos especiales.">
+<!ENTITY folderRestriction2.label "Permitir que su nueva carpeta contenga:">
+<!ENTITY foldersOnly.label "Sólo carpetas">
+<!ENTITY messagesOnly.label "Sólo mensajes">
+<!ENTITY accept.label "Crear carpeta">
+<!ENTITY accept.accesskey "a">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/news.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/news.properties
new file mode 100644
index 0000000000..c02c089247
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/news.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/.
+
+downloadHeadersTitlePrefix = Descargar cabeceras
+downloadHeadersInfoText = Hay %S nuevas cabeceras de mensajes para descargar de este grupo.
+cancelDisallowed = Parece que este mensaje no es suyo. Sólo se pueden cancelar mensajes propios, no los de otras personas.
+cancelConfirm = ¿Desea cancelar este mensaje?
+messageCancelled = Mensaje cancelado.
+enterUserPassTitle = Se necesita nombre de usuario y contraseña del servidor de noticias
+enterUserPassServer = Introduzca un nombre de usuario y contraseña para %S:
+enterUserPassGroup = Introduzca un nombre de usuario y contraseña para %1$S en %2$S:
+okButtonText = Descargar
+
+noNewMessages = No hay mensajes nuevos en el servidor.
+newNewsgroupHeaders = Descargando %1$S de %2$S cabeceras para %3$S
+newNewsgroupFilteringHeaders = Obteniendo cabeceras para los filtros: %1$S (%2$S/%3$S) en %4$S
+downloadingArticles = Descargando los artículos %S-%S
+bytesReceived = Descargando grupos de noticias: %S recibidos (%SKB leídos a %SKB/seg.)
+downloadingArticlesForOffline = Descargando los artículos %S-%S en %S
+
+autoUnsubscribeText = No se pudo actualizar el grupo %1$S porque puede que en el servidor %2$S ya no exista o que haya dejado de tenerlo. ¿Desea cancelar la suscripción?
+
+autoSubscribeText = ¿Quiere suscribirse a %1$S?
+
+-304 = Se ha producido un error en noticias (NNTP):
+
+-305 = Se ha producido un error de noticias. La exploración de los grupos de noticias no es completa. Vuelva a intentar visualizar todos los grupos de noticias.
+
+-260 = Se ha producido un error de autorización. Vuelva a escribir su nombre y/o contraseña.
+
+-206 = Se ha producido un error de comunicaciones. Vuelva a intentar la conexión. Error de TCP:
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/newsError.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/newsError.dtd
new file mode 100644
index 0000000000..0f488d0eac
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/newsError.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 newsError.title "Problema al cargar el artículo">
+
+<!ENTITY articleNotFound.title "Artículo no encontrado">
+
+<!ENTITY articleNotFound.desc "El servidor de grupos de noticias informa que no puede encontrar el artículo.">
+
+<!ENTITY serverResponded.title "El servidor de grupos de noticias ha respondido:">
+
+<!ENTITY articleExpired.title "¿Quizá ha caducado el artículo?">
+
+<!ENTITY trySearching.title "Pruebe a buscar el artículo:">
+
+<!ENTITY removeExpiredArticles.title "Eliminar todos los artículos caducados">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/offline.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/offline.properties
new file mode 100644
index 0000000000..99171fc125
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/offline.properties
@@ -0,0 +1,24 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+downloadMessagesWindowTitle1 = Descargar mensajes
+downloadMessagesLabel1 = ¿Quiere descargar mensajes antes de desconectar?
+downloadMessagesCheckboxLabel1 = Preguntar siempre que pase al modo sin conexión
+downloadMessagesNow2 = &Descargar ahora
+
+sendMessagesWindowTitle1 = Mensajes no enviados
+sendMessagesLabel2 = ¿Quiere enviar sus mensajes pendientes ahora?
+sendMessagesCheckboxLabel1 = Preguntar siempre que pase al modo con conexión
+sendMessagesNow2 = &Enviar ahora
+
+processMessagesLater2 = &Más tarde
+
+getMessagesOfflineWindowTitle1 = Recibir mensajes
+getMessagesOfflineLabel1 = Está actualmente en modo sin conexión. ¿Quiere pasar al modo con conexión para recibir nuevos mensajes?
+
+sendMessagesOfflineWindowTitle1 = Mensajes no enviados
+sendMessagesOfflineLabel1 = En este momento está en modo sin conexión. ¿Quiere pasar al modo con conexión para enviar los mensajes pendientes?
+
+offlineTooltip = Está actualmente en modo sin conexión.
+onlineTooltip = Está actualmente en modo con conexión.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/offlineStartup.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/offlineStartup.properties
new file mode 100644
index 0000000000..453f08bda1
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Trabajar con conexión
+desc = ¿Desea pasar a modo con conexión?\n\n(Si decide trabajar sin conexión, puede pasar a modo con conexión más tarde - elija 'Trabajar con conexión' en el menú Archivo)
+workOnline = Trabajar con conexión
+workOffline = Trabajar sin conexión
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/outlookImportMsgs.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/outlookImportMsgs.properties
new file mode 100644
index 0000000000..0974b83baa
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/outlookImportMsgs.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/.
+
+#
+# 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
+#
+
+2000 = Outlook
+
+2010 = Correo, libreta de direcciones y configuración de Outlook
+
+2002 = Buzón %S, importados %d mensajes
+
+2003 = Parámetro erróneo al importar el buzón de correo.
+
+2004 = Error al importar los mensajes del buzón %S. Puede que no se hayan importado todos los mensajes de este buzón.
+
+2005 = Libretas de direcciones de Outlook
+
+2006 = Importada libreta de direcciones %S
+
+2007 = Parámetro erróneo al importar la libreta de direcciones.
+
+2008 = Error al acceder al archivo de la libreta de direcciones de %S.
+
+2009 = Error al importar la libreta de direcciones %S. Puede que no se hayan importado todas las direcciones.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/pgpmime.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/pgpmime.properties
new file mode 100644
index 0000000000..ddcbfb4db8
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/pgpmime.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/.
+
+#
+# The following are used by the pgpmime content type handler
+#
+
+pgpNotAvailable = Este es un mensaje cifrado con OpenPGP, pero no está disponible la compatibilidad con descifrado OpenPGP.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/preferences/applicationManager.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/preferences/applicationManager.properties
new file mode 100644
index 0000000000..0405900af9
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/preferences/applicationManager.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/.
+
+descriptionApplications = Se pueden usar las siguientes aplicaciones para manejar %S.
+
+handleProtocol = enlaces %S
+handleFile = Contenido %S
+
+descriptionWebApp = Esta aplicación web está alojada en:
+descriptionLocalApp = Esta aplicación está ubicada en:
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/preferences/applications.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/preferences/applications.properties
new file mode 100644
index 0000000000..d2c5361e56
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/preferences/applications.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/.
+
+dialog_removeAccount = ¿Seguro que quiere eliminar la cuenta "%S"?
+
+addProvider = Añadir %S
+
+notConfiguredYet = Esta cuenta no ha sido configurada aún
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/preferences/messagestyle.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/preferences/messagestyle.properties
new file mode 100644
index 0000000000..8ca0ad9542
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/preferences/messagestyle.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/.
+
+default = Predeterminado
+nick1 = Florian
+buddy1 = florian@im.instantbird.org
+nick2 = Patrick
+buddy2 = patrick@im.instantbird.org
+message1 = ¡Hola! :-)
+message2 = ¿Qué hay?
+message3 = ¡Estoy probando Thunderbird! ;-)
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/preferences/preferences.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/preferences/preferences.properties
new file mode 100644
index 0000000000..62bd47dfbe
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Confirmar
+confirmResetJunkTrainingText=¿Seguro que quiere reiniciar los datos de aprendizaje del filtro adaptativo?
+
+#### Downloads
+desktopFolderName=Escritorio
+myDownloadsFolderName=Mis descargas
+chooseAttachmentsFolderTitle=Escoger carpeta
+
+#### Applications
+
+fileEnding=fichero %S
+saveFile=Guardar archivo
+
+# LOCALIZATION NOTE (useApp, useDefault): %S = Application name
+useApp=Usar %S
+useDefault=Usar %S (predeterminado)
+
+useOtherApp=Usar otra…
+fpTitleChooseApp=Seleccionar aplicación auxiliar
+manageApp=Detalles de la aplicación…
+alwaysAsk=Preguntar siempre
+delete=Eliminar acción
+confirmDeleteTitle=Eliminar acción
+confirmDeleteText=¿Seguro que quiere eliminar esta acción?
+
+# 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=Elegir sonido
+
+#### Remote content
+imagepermissionstext=Puede especificar de qué sitios web se permite cargar imágenes y otro contenido remoto. También puede permitir todo el contenido remoto basándose en la dirección del remitente. Escriba la dirección del sitio o dirección de correo electrónico que quiere administrar y luego pulse Bloquear o Permitir.
+imagepermissionstitle=Excepciones - Contenido remoto
+
+#### Cookies
+cookiepermissionstitle=Excepciones - Cookies
+cookiepermissionstext=Puede especificar qué sitios web tienen permitido siempre o nunca usar cookies. Escriba la dirección exacta del sitio que quiere administrar y luego pulse Bloquear, Permitir durante la sesión, o Permitir.
+
+#### Cookie Viewer
+hostColon=Servidor:
+domainColon=Dominio:
+forSecureOnly=Conexiones cifradas únicamente
+forAnyConnection=Cualquier tipo de conexión
+expireAtEndOfSession=Al final de la sesión
+
+noCookieSelected=<no hay cookie seleccionada>
+cookiesAll=Están guardadas en su ordenador las siguientes cookies:
+cookiesFiltered=Las siguientes cookies se ajustan a su búsqueda:
+# 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=Eliminar seleccionado;Eliminar seleccionados
+defaultUserContextLabel=Ninguno
+
+####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=Su caché está usando actualmente %1$S %2$S de espacio en disco
+actualDiskCacheSizeCalculated=Calculando tamaño de caché…
+
+# LOCALIZATION NOTE (labelDefaultFont): %S = font name
+labelDefaultFont=Predeterminado (%S)
+labelDefaultFontUnnamed=Predeterminado
+
+# LOCALIZATION NOTE (appLocale.label): %S = Name of the application locale,
+# e.g. English (United States)
+appLocale.label=Idioma de la aplicación: %S
+appLocale.accesskey=I
+# LOCALIZATION NOTE (rsLocale.label): %S = Name of the locale chosen in regional settings,
+# e.g. German (Germany)
+rsLocale.label=Localización de ajustes regionales: %S
+rsLocale.accesskey=L
+
+applications-type-pdf = Portable Document Format (PDF)
+
+# LOCALIZATION NOTE (previewInApp): %S = brandShortName
+previewInApp=Previsualizar en %S
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/prefs.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/prefs.properties
new file mode 100644
index 0000000000..e793c87850
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/prefs.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/.
+
+enterValidEmail = Introduzca una dirección de correo electrónico válida.
+accountNameExists = Ya existe una cuenta con este nombre. Introduzca un nombre diferente de cuenta.
+accountNameEmpty = El nombre de la cuenta no puede estar vacío.
+modifiedAccountExists = Ya existe una cuenta con ese nombre de usuario y servidor. Introduzca un nombre de usuario y/o servidor diferente.
+userNameChanged = Su nombre de usuario ha sido actualizado. Puede que también tenga que actualizar su dirección de correo y/o el nombre de usuario asociado a esta cuenta.
+serverNameChanged = Ha cambiado el nombre del servidor en la configuración. Compruebe que todas las carpetas utilizadas por los filtros existen en el nuevo servidor.
+junkSettingsBroken = La configuración de correo basura de la cuenta "%1$S" puede tener un problema. ¿Quiere revisarla antes de guardar la configuración de la cuenta?
+localDirectoryChanged = %1$S necesita reiniciarse ahora para aplicar los cambios en la configuración del directorio local.
+localDirectoryRestart = Reiniciar
+userNameEmpty = El nombre de usuario no puede estar vacío.
+localDirectoryInvalid = La ruta del directorio local "%1$S" no es válida. Elija un directorio diferente.
+localDirectoryNotAllowed = La ruta de directorio local "%1$S" no es adecuada para el almacenamiento de mensajes. Elija otro directorio.
+cancelWizard = ¿Seguro que quiere salir del asistente para cuentas?\n\nSi sale, cualquier información introducida se perderá y no se creará la cuenta.
+accountWizard = Asistente para cuentas
+WizardExit = Salir
+WizardContinue = Cancelar
+enterValidServerName = Introduzca un nombre de servidor válido.
+failedRemoveAccount = Fallo al eliminar esta cuenta.
+accountName = %1$S - %2$S
+
+confirmDeferAccountWarning = Si guarda el correo nuevo de esta cuenta en la bandeja de entrada de una cuenta diferente, ya no podrá acceder al correo ya descargado de esta cuenta. Si tiene correo en esta cuenta, cópielo a otra cuenta primero.\n\nSi tiene filtros que se apliquen al correo de esta cuenta, debería desactivarlos o cambiar la carpeta de destino. Si alguna cuenta tiene carpetas especiales en esta cuenta (Enviados, Borradores, Plantillas, Archivos, Basura), debería cambiarlas para que estén en otra cuenta.\n\n¿Aún desea guardar el correo de esta cuenta en una cuenta diferente?
+confirmDeferAccountTitle = ¿Delegar cuenta?
+
+directoryAlreadyUsedByOtherAccount = La cuenta "%S" ya está usando el directorio especificado en la configuración de directorio local. Elija un directorio diferente.
+directoryParentUsedByOtherAccount = La cuenta "%S" ya está usando un directorio padre del directorio especificado en la configuración de directorio local. Elija un directorio diferente.
+directoryChildUsedByOtherAccount = La cuenta "%S" ya está usando un subdirectorio del directorio especificado en la configuración de directorio local. Elija un directorio diferente.
+exampleEmailUserName = usuario
+exampleEmailDomain = ejemplo.net
+emailFieldText = Dirección de correo electrónico:
+defaultEmailText = Introduzca su dirección de correo electrónico. Ésta es la dirección que utilizarán los demás para enviarle correos a usted (por ejemplo, "%1$S@%2$S").
+customizedEmailText = Introduzca su %1$S %2$S (por ejemplo, si su %1$S dirección de correo electrónico es "%3$S", su %2$S es "%4$S").
+
+prefPanel-server = Configuración del servidor
+prefPanel-copies = Copias y carpetas
+prefPanel-synchronization = Sincronización y almacenamiento
+prefPanel-diskspace = Espacio en disco
+prefPanel-addressing = Redacción y direcciones
+prefPanel-junk = Correo no deseado
+prefPanel-smtp = Servidor de salida (SMTP)
+
+identity-list-title = Identidades para %1$S
+
+identityDialogTitleAdd = Nueva identidad
+identityDialogTitleEdit = Editar %S
+
+identity-edit-req = Debe especificar una dirección de correo válida para esta identidad.
+identity-edit-req-title = Error al crear la identidad
+
+identity-delete-confirm = ¿Seguro que quiere eliminar la identidad\n%S?
+identity-delete-confirm-title = Eliminando identidad de %S
+identity-delete-confirm-button = Eliminar
+
+choosefile = Elegir un fichero
+
+forAccount = Para la cuenta "%S"
+
+removeFromServerTitle = Confirmar la eliminación permanente y automática de mensaje antiguos
+removeFromServer = Este ajuste eliminará permanentemente los mensajes antiguos del servidor Y de su almacenamiento local. ¿Está seguro de que desea continuar?
+
+confirmSyncChangesTitle = Confirmar cambios por la sincronización
+confirmSyncChanges = La configuración de sincronización de mensajes ha cambiado.\n\n¿Desea guardarlos?
+confirmSyncChangesDiscard = Descartar
+
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/profileDowngrade.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/profileDowngrade.dtd
new file mode 100644
index 0000000000..4268f622d3
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/profileDowngrade.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 window.title "Ha abierto una versión más antigua de &brandProductName;">
+<!ENTITY window.style "width: 510px;">
+
+<!ENTITY window.nosync2 "Puede que una versión más reciente de &brandProductName; haya hecho cambios en su perfil que lo hacen incompatible con esta versión más antigua. Use este perfil solo con esa versión más reciente o cree un nuevo perfil para esta instalación de &brandShortName;. Crear un perfil nuevo requiere configurar de nuevo sus cuentas, calendarios y complementos.">
+
+<!ENTITY window.moreinfo "Más información…">
+<!ENTITY window.create "Crear perfil nuevo">
+<!ENTITY window.quit-win "Salir">
+<!ENTITY window.quit-nonwin "Salir">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/removeAccount.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/removeAccount.dtd
new file mode 100644
index 0000000000..b9bee89679
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Eliminar cuenta y datos">
+<!ENTITY removeButton.label "Eliminar">
+<!ENTITY removeButton.accesskey "E">
+<!ENTITY removeAccount.label "Eliminar información de la cuenta">
+<!ENTITY removeAccount.accesskey "a">
+<!ENTITY removeAccount.desc "Elimina solo el conocimiento de &brandShortName; de esta cuenta. No afecta a la cuenta en sí en el servidor.">
+<!ENTITY removeData.label "Eliminar datos de mensajes">
+<!ENTITY removeData.accesskey "d">
+<!ENTITY removeDataChat.label "Eliminar datos de la conversación">
+<!ENTITY removeDataChat.accesskey "d">
+<!ENTITY removeDataLocalAccount.desc "Elimina todos los mensajes, carpetas y filtros asociados con esta cuenta en su disco duro. Esto no afecta a los mensajes que aún estén guardados en el servidor. No elija esto si planea archivar los datos locales o reutilizarlos en &brandShortName; más tarde.">
+<!ENTITY removeDataServerAccount.desc "Elimina todos los mensajes, carpetas y filtros asociados con esta cuenta en su disco duro. Sus mensajes y carpetas seguirán guardados en el servidor.">
+<!ENTITY removeDataChatAccount.desc "Eliminar todos los registros de conversaciones guardados en esta cuenta en su disco local.">
+<!ENTITY showData.label "Mostrar ubicación de los datos">
+<!ENTITY showData.accesskey "M">
+<!ENTITY progressPending "Eliminando datos seleccionados…">
+<!ENTITY progressSuccess "Eliminación correcta.">
+<!ENTITY progressFailure "Eliminación fallida.">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/removeAccount.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/removeAccount.properties
new file mode 100644
index 0000000000..e4bdab8304
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = ¿Seguro que quiere eliminar la cuenta "%S"?
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/renameFolderDialog.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/renameFolderDialog.dtd
new file mode 100644
index 0000000000..499f1e73dc
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Renombrar carpeta">
+<!ENTITY rename.label "Introduzca el nuevo nombre de la carpeta:">
+<!ENTITY rename.accesskey "e">
+<!ENTITY accept.label "Renombrar">
+<!ENTITY accept.accesskey "R">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/sanitize.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/sanitize.dtd
new file mode 100644
index 0000000000..9fc95abdbe
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Limpiar historial reciente">
+
+<!-- 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 tiempo a limpiar: ">
+<!ENTITY clearTimeDuration.accesskey "I">
+<!ENTITY clearTimeDuration.lastHour "La última hora">
+<!ENTITY clearTimeDuration.last2Hours "Las últimas dos horas">
+<!ENTITY clearTimeDuration.last4Hours "Las últimas cuatro horas">
+<!ENTITY clearTimeDuration.today "Hoy">
+<!ENTITY clearTimeDuration.everything "Todo">
+<!-- Localization note (clearTimeDuration.suffix) - trailing entity for languages
+that require it. -->
+<!ENTITY clearTimeDuration.suffix "">
+
+
+<!ENTITY historyGroup.label "Historial">
+
+<!ENTITY itemHistory.label "Historial de navegación">
+<!ENTITY itemHistory.accesskey "H">
+<!ENTITY itemCookies.label "Cookies">
+<!ENTITY itemCookies.accesskey "C">
+<!ENTITY itemCache.label "Caché">
+<!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 acción no puede ser deshecha.">
+
+<!ENTITY dialog.width "28em">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/seamonkeyImportMsgs.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/seamonkeyImportMsgs.properties
new file mode 100644
index 0000000000..fc538f5795
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/seamonkeyImportMsgs.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/.
+#
+# The following are used by the seamonkey import code to display status/error
+# and informational messages
+
+SeamonkeyImportName = SeaMonkey
+
+SeamonkeyImportDescription = Importar libretas de direcciones, correo y cuentas de SeaMonkey.
+
+SeamonkeyImportAddressSuccess = Se han importado con éxito las libretas de direcciones.
+
+SeamonkeyImportSettingsSuccess = Se han importado con éxito los mensajes y cuentas locales.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/search-attributes.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/search-attributes.properties
new file mode 100644
index 0000000000..d8ce87f097
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/search-attributes.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/.
+
+Subject = Asunto
+From = Remitente
+Body = Cuerpo
+Date = Fecha
+Priority = Prioridad
+Status = Estado
+To = A
+Cc = Cc
+ToOrCc = Para o CC
+AgeInDays = Antigüedad en días
+SizeKB = Tamaño (KB)
+Tags = Etiquetas
+AnyName = Cualquier nombre
+DisplayName = Nombre mostrado
+Nickname = Apodo
+ScreenName = Nombre en pantalla
+Email = Correo electrónico
+AdditionalEmail = Correo electrónico adicional
+AnyNumber = Cualquier número
+WorkPhone = Teléfono del trabajo
+HomePhone = Teléfono particular
+Fax = Fax
+Pager = Buscapersonas
+Mobile = Móvil
+City = Ciudad
+Street = Calle
+Title = Puesto
+Organization = Organización
+Department = Departamento
+FromToCcOrBcc = De, Para, Cc o Bcc
+JunkScoreOrigin = Origen de la puntuación de correo no deseado
+JunkPercent = Porcentaje de correo no deseado
+AttachmentStatus = Estado del adjunto
+JunkStatus = Estado de correo no deseado
+Label = Etiqueta
+Customize = Personalizar…
+MissingCustomTerm = Falta término personalizado
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/search-operators.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/search-operators.properties
new file mode 100644
index 0000000000..d8544cfa34
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = contiene
+1 = no contiene
+2 = es
+3 = no es
+4 = está vacío
+
+5 = es anterior a
+6 = es posterior a
+
+7 = es mayor que
+8 = es menor que
+
+9 = comienza por
+10 = termina con
+
+11 = suena como
+12 = LdapDwim
+
+13 = es mayor que
+14 = es menor que
+
+15 = CompletarNombre
+16 = está en mi libreta de direcciones
+17 = no está en mi libreta de direcciones
+18 = no está vacío
+19 = coincide
+20 = no coincide
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/search.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/search.properties
new file mode 100644
index 0000000000..b9180b7778
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/search.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/.
+
+# 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 = Buscando…
+matchesFound = #1 coincidencia encontrada;#1 coincidencias encontradas
+noMatchesFound = No se han encontrado coincidencias
+labelForStopButton = Detener
+labelForSearchButton = Buscar
+labelForStopButton.accesskey = D
+labelForSearchButton.accesskey = S
+
+moreButtonTooltipText = Añadir una nueva regla
+lessButtonTooltipText = Eliminar esta regla
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/searchTermOverlay.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/searchTermOverlay.dtd
new file mode 100644
index 0000000000..3b18cea978
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/searchTermOverlay.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 matchAll.label "Todas estas reglas">
+<!ENTITY matchAll.accesskey "a">
+<!ENTITY matchAny.label "Cualquiera de estas reglas">
+<!ENTITY matchAny.accesskey "q">
+<!ENTITY matchAllMsgs.label "Incluir todos los mensajes">
+<!ENTITY matchAllMsgs.accesskey "m">
+
+<!ENTITY searchTermListAttributesFlexValue "4">
+<!ENTITY searchTermListOperatorsFlexValue "4">
+<!ENTITY searchTermListValueFlexValue "4">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/shutdownWindow.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/shutdownWindow.properties
new file mode 100644
index 0000000000..749e77520e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/shutdownWindow.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/.
+
+
+shutdownDialogTitle = Ventana de progreso de apagado
+taskProgress = Procesando %1$S de %2$S tareas
+
+# These strings are loaded by the individual shutdown tasks.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/smime.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/smime.properties
new file mode 100644
index 0000000000..eb9f0d24aa
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/smime.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/.
+
+#
+# The following are used by the smime content type handler
+#
+
+1000 = Este es un mensaje <B>CIFRADO</B> o <B>FIRMADO</B>.<br>Esta aplicación de correo no soporta correo cifrado o firmado.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/smtpEditOverlay.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/smtpEditOverlay.dtd
new file mode 100644
index 0000000000..4182264d1e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Configuración">
+<!ENTITY security.caption "Seguridad e identificación">
+<!ENTITY serverName.label "Nombre del servidor:">
+<!ENTITY serverName.accesskey "S">
+<!ENTITY serverDescription.label "Descripción:">
+<!ENTITY serverDescription.accesskey "D">
+<!ENTITY serverPort.label "Puerto:">
+<!ENTITY serverPort.accesskey "P">
+<!ENTITY userName.label "Nombre de usuario:">
+<!ENTITY userName.accesskey "m">
+<!ENTITY connectionSecurity.label "Seguridad de la conexión:">
+<!ENTITY connectionSecurity.accesskey "n">
+<!ENTITY connectionSecurityType-0.label "Ninguna">
+<!ENTITY connectionSecurityType-1.label "STARTTLS, si está disponible">
+<!ENTITY connectionSecurityType-2.label "STARTTLS">
+<!ENTITY connectionSecurityType-3.label "SSL/TLS">
+<!ENTITY smtpEditTitle.label "Servidor SMTP">
+<!ENTITY serverPortDefault.label "Predeterminado:">
+<!ENTITY authMethod.label "Método de identificación:">
+<!ENTITY authMethod.accesskey "a">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/subscribe.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/subscribe.dtd
new file mode 100644
index 0000000000..4fb0701f04
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/subscribe.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 subscribeDialog.title "Suscribirse">
+<!ENTITY subscribeButton.label "Suscribirse">
+<!ENTITY subscribeButton.accesskey "S">
+<!ENTITY unsubscribeButton.label "Cancelar suscripción">
+<!ENTITY unsubscribeButton.accesskey "U">
+<!ENTITY newGroupsTab.label "Nuevos grupos">
+<!ENTITY newGroupsTab.accesskey "N">
+<!ENTITY refreshButton.label "Recargar">
+<!ENTITY refreshButton.accesskey "R">
+<!ENTITY stopButton.label "Detener">
+<!ENTITY stopButton.accesskey "T">
+<!ENTITY server.label "Cuenta:">
+<!ENTITY server.accesskey "A">
+<!ENTITY subscribedHeader.label "Suscribirse">
+<!ENTITY namefield.label "Mostrar grupos que incluyan:">
+<!ENTITY namefield.accesskey "O">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/subscribe.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/subscribe.properties
new file mode 100644
index 0000000000..22a958ae83
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Seleccione los grupos de noticias a los que suscribirse:
+subscribeLabel-imap = Seleccione las carpetas a las que suscribirse:
+currentListTab-nntp.label = Lista actual de grupos
+currentListTab-nntp.accesskey = L
+currentListTab-imap.label = Lista de carpetas
+currentListTab-imap.accesskey = L
+pleaseWaitString = Espere…
+offlineState = Está desconectado. No se han podido recuperar los elementos del servidor.
+errorPopulating = Error al recuperar elementos del servidor.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/tabmail.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/tabmail.dtd
new file mode 100644
index 0000000000..438e4b2171
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/tabmail.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 closeTab.label "Cerrar pestaña">
+<!ENTITY listAllTabs.label "Listar todas las pestañas">
+<!ENTITY defaultTabTitle.label "Inicio">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/taskbar.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/taskbar.properties
new file mode 100644
index 0000000000..d8400d00a2
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Redactar nuevo mensaje
+taskbar.tasks.composeMessage.description = Redactar un nuevo mensaje.
+taskbar.tasks.openAddressBook.label = Abrir libreta de direcciones
+taskbar.tasks.openAddressBook.description = Abrir su libreta de direcciones.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/telemetry.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/telemetry.properties
new file mode 100644
index 0000000000..e53f74d430
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/telemetry.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/.
+
+telemetryText = ¿Le gustaría ayudar a mejorar %1$S informando automáticamente del uso de memoria, rendimiento y tiempo de respuesta a %2$S?
+telemetryLinkLabel = Saber más
+telemetryYesButtonLabel = Sí
+telemetryYesButtonAccessKey = S
+telemetryNoButtonLabel = No
+telemetryNoButtonAccessKey = N
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/templateUtils.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/templateUtils.properties
new file mode 100644
index 0000000000..aabdaa7d28
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/templateUtils.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/.
+
+yesterday = ayer
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/textImportMsgs.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/textImportMsgs.properties
new file mode 100644
index 0000000000..6a11bfe553
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/textImportMsgs.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/.
+
+#
+# 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
+#
+
+2000 = Ficheros de texto (LDIF, .tab, .csv, .txt)
+
+2001 = Importar una libreta de direcciones desde un archivo de texto, incluyendo: LDIF (.ldif, ldi), delimitado por tabuladores (.tab, .txt) o delimitado por comas (.csv).
+
+2002 = Libreta de direcciones de texto
+
+2003 = Importada libreta de direcciones %S
+
+2004 = Parámetro erróneo al importar la libreta de direcciones.
+
+2005 = Error al acceder al archivo de la libreta de direcciones %S.
+
+2006 = Error al importar la libreta de direcciones %S. Puede que no se hayan importado todas las direcciones.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/vCardImportMsgs.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/vCardImportMsgs.properties
new file mode 100644
index 0000000000..18bda1dc58
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/vCardImportMsgs.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/.
+
+#
+# The following are used by the vCard import code to display status, error, and
+# informational messages
+#
+
+vCardImportName = Archivo vCard (.vcf)
+
+vCardImportDescription = Importar una libreta de direcciones en formato vCard
+
+vCardImportAddressName = Libreta de direcciones vCard
+
+vCardImportAddressSuccess = Importada libreta de direcciones %S
+
+vCardImportAddressBadSourceFile = Error al acceder al archivo del libro de direcciones %S.
+
+vCardImportAddressConvertError = Error al importar la libreta de direcciones %S. Puede que no se hayan importado todas las direcciones.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/viewLog.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/viewLog.dtd
new file mode 100644
index 0000000000..c400ee3ace
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Registro de filtros">
+<!ENTITY viewLogInfo.text "El registro de filtros es un archivo que documenta qué filtros han sido ejecutados. Utilice la casilla de selección que hay debajo para habilitar el registro.">
+<!ENTITY clearLog.label "Limpiar registro">
+<!ENTITY clearLog.accesskey "L">
+<!ENTITY enableLog.label "Habilitar el registro de filtrado">
+<!ENTITY enableLog.accesskey "E">
+<!ENTITY closeLog.label "Cerrar">
+<!ENTITY closeLog.accesskey "c">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/viewSource.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/viewSource.dtd
new file mode 100644
index 0000000000..5e1ed56bfb
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/viewSource.dtd
@@ -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/. -->
+
+<!-- extracted from content/viewSource.xul -->
+
+<!-- extracted from content/viewSource.xhtml -->
+
+<!ENTITY mainWindow.title "&brandFullName;">
+<!ENTITY mainWindow.titlemodifier "&brandFullName;">
+<!ENTITY mainWindow.titlemodifierseparator " - ">
+<!ENTITY mainWindow.preface "Fuente de: ">
+
+<!ENTITY editMenu.label "Editar">
+<!ENTITY editMenu.accesskey "E">
+<!ENTITY fileMenu.label "Archivo">
+<!ENTITY fileMenu.accesskey "A">
+<!ENTITY savePageCmd.label "Guardar página como…">
+<!ENTITY savePageCmd.accesskey "G">
+<!ENTITY savePageCmd.commandkey "S">
+<!ENTITY printCmd.label "Imprimir…">
+<!ENTITY printCmd.accesskey "I">
+<!ENTITY printCmd.commandkey "P">
+<!ENTITY closeCmd.label "Cerrar">
+<!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 a la línea…">
+<!ENTITY goToLineCmd.accesskey "r">
+<!ENTITY goToLineCmd.commandkey "l">
+
+<!ENTITY viewMenu.label "Ver">
+<!ENTITY viewMenu.accesskey "V">
+<!ENTITY reloadCmd.label "Recargar">
+<!ENTITY reloadCmd.accesskey "R">
+<!ENTITY reloadCmd.commandkey "r">
+<!ENTITY menu_wrapLongLines.title "Ajustar líneas largas">
+<!ENTITY menu_wrapLongLines.accesskey "j">
+<!ENTITY menu_highlightSyntax.label "Resaltado de sintaxis">
+<!ENTITY menu_highlightSyntax.accesskey "x">
+<!ENTITY menu_textSize.label "Tamaño del texto">
+<!ENTITY menu_textSize.accesskey "T">
+<!ENTITY menu_textEnlarge.label "Ampliar">
+<!ENTITY menu_textEnlarge.accesskey "A">
+<!ENTITY menu_textReduce.label "Reducir">
+<!ENTITY menu_textReduce.accesskey "R">
+<!ENTITY menu_textReset.label "Normal">
+<!ENTITY menu_textReset.accesskey "N">
+
+<!ENTITY findOnCmd.label "Buscar en esta página…">
+<!ENTITY findOnCmd.accesskey "B">
+<!ENTITY findOnCmd.commandkey "f">
+<!ENTITY findAgainCmd.label "Buscar otra vez">
+<!ENTITY findAgainCmd.accesskey "u">
+<!ENTITY findAgainCmd.commandkey "g">
+<!ENTITY findAgainCmd.commandkey2 "VK_F3">
+<!ENTITY findSelectionCmd.commandkey "e">
+
+<!ENTITY backCmd.label "Anterior">
+<!ENTITY backCmd.accesskey "n">
+<!ENTITY forwardCmd.label "Siguiente">
+<!ENTITY forwardCmd.accesskey "S">
+<!ENTITY goBackCmd.commandKey "[">
+<!ENTITY goForwardCmd.commandKey "]">
+
+<!ENTITY copyLinkCmd.label "Copiar la dirección del enlace">
+<!ENTITY copyLinkCmd.accesskey "d">
+<!ENTITY copyEmailCmd.label "Copiar dirección de correo elec.">
+<!ENTITY copyEmailCmd.accesskey "p">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/viewSource.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/viewSource.properties
new file mode 100644
index 0000000000..5b3e8d0651
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 a la línea
+goToLineText = Introduzca número de línea
+invalidInputTitle = Entrada no válida
+invalidInputText = El número de línea introducido no es válido.
+outOfRangeTitle = Línea no encontrada
+outOfRangeText = No se ha encontrado la línea especificada.
+viewSelectionSourceTitle = Fuente DOM de la selección
+viewMathMLSourceTitle = Fuente DOM de MathML
+
+context_goToLine_label = Ir a la línea…
+context_goToLine_accesskey = S
+context_wrapLongLines_label = Ajustar líneas largas
+context_highlightSyntax_label = Resaltado de sintaxis
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/viewZoomOverlay.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/viewZoomOverlay.dtd
new file mode 100644
index 0000000000..842bb27768
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/viewZoomOverlay.dtd
@@ -0,0 +1,30 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE :
+fullZoomEnlargeCmd.commandkey3, fullZoomReduceCmd.commandkey2 and
+fullZoomResetCmd.commandkey2 are alternative acceleration keys for zoom.
+If shift key is needed with your locale popular keyboard for them,
+you can use these alternative items. Otherwise, their values should be empty. -->
+
+<!ENTITY fullZoomEnlargeCmd.label "Aumentar tamaño">
+<!ENTITY fullZoomEnlargeCmd.accesskey "A">
+<!ENTITY fullZoomEnlargeCmd.commandkey "+">
+<!ENTITY fullZoomEnlargeCmd.commandkey2 "=">
+<!ENTITY fullZoomEnlargeCmd.commandkey3 "">
+
+<!ENTITY fullZoomReduceCmd.label "Disminuir tamaño">
+<!ENTITY fullZoomReduceCmd.accesskey "D">
+<!ENTITY fullZoomReduceCmd.commandkey "-">
+<!ENTITY fullZoomReduceCmd.commandkey2 "">
+
+<!ENTITY fullZoomResetCmd.label "Restablecer">
+<!ENTITY fullZoomResetCmd.accesskey "R">
+<!ENTITY fullZoomResetCmd.commandkey "0">
+<!ENTITY fullZoomResetCmd.commandkey2 "">
+
+<!ENTITY fullZoomToggleCmd.label "Aumentar sólo el texto">
+<!ENTITY fullZoomToggleCmd.accesskey "e">
+<!ENTITY fullZoom.label "Tamaño">
+<!ENTITY fullZoom.accesskey "T">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/virtualFolderListDialog.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/virtualFolderListDialog.dtd
new file mode 100644
index 0000000000..ba45be089c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Seleccionar carpeta(s)">
+<!ENTITY virtualFolderDesc.label "Seleccionar las carpetas en las que buscar:">
+<!ENTITY folderName.label "Nombre de carpeta">
+<!ENTITY folderSearch.label "Buscar">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/virtualFolderProperties.dtd b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/virtualFolderProperties.dtd
new file mode 100644
index 0000000000..7f115e8836
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 "Nueva carpeta de búsquedas guardadas">
+<!ENTITY name.label "Nombre:">
+<!ENTITY name.accesskey "N">
+<!ENTITY description.label "Crear como subcarpeta de:">
+<!ENTITY description.accesskey "C">
+
+<!ENTITY searchTermCaption.label "Configurar el criterio de busqueda usado para esta carpeta virtual: ">
+
+<!ENTITY folderSelectionCaption.label "Seleccionar las carpetas en las que buscar: ">
+<!ENTITY chooseFoldersButton.label "Elegir…">
+<!ENTITY chooseFoldersButton.accesskey "r">
+
+<!ENTITY searchOnline.label "Buscar en línea (da resultados actualizados de carpetas IMAP y de noticias, pero aumenta el tiempo de apertura de la carpeta)">
+<!ENTITY searchOnline.accesskey "B">
+<!ENTITY newFolderButton.label "Crear">
+<!ENTITY newFolderButton.accesskey "e">
+<!ENTITY editFolderButton.label "Actualizar">
+<!ENTITY editFolderButton.accesskey "A">
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/wmImportMsgs.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/wmImportMsgs.properties
new file mode 100644
index 0000000000..915333ff7e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/messenger/wmImportMsgs.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/.
+
+#
+# The following are used by the windows live mail import code to display status/error
+# and informational messages
+#
+
+2000 = Windows Live Mail
+
+2001 = Configuración de Windows Live Mail
+
+2002 = Buzón %1$S, %2$d mensajes importados
+
+2003 = Parametro erróneo al importar el buzón de correo.
+
+2004 = Error al acceder al archivo del buzón de correo %S.
+
+2005 = Error al importar los mensajes del buzón %S. Puede que no se hayan importado todos los mensajes de este buzón.
+
+2006 = Libreta de direcciones de Windows Live Mail
+
+2007 = Libreta de direcciones de Windows Live Mail (libreta de direcciones de Windows)
+
+2008 = Importada libreta de direcciones %S
+
+2009 = Error al importar la libreta de direcciones %S. Puede que no se hayan importado todas las direcciones.
+
+2010 = Parámetro incorrecto para importar el buzón.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozapps/downloads/downloads.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozapps/downloads/downloads.properties
new file mode 100644
index 0000000000..60eb6a9233
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Descargas
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozapps/downloads/unknownContentType.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozapps/downloads/unknownContentType.properties
new file mode 100644
index 0000000000..15f1f6430c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Abriendo %S
+saveDialogTitle=Escriba el nombre con el que guardar el archivo…
+defaultApp=%S (predeterminada)
+chooseAppFilePickerTitle=Elegir aplicación auxiliar
+badApp=La aplicación que ha elegido ("%S") no ha podido encontrarse. Compruebe el nombre del archivo o escoja otra aplicación.
+badApp.title=Aplicación no encontrada
+badPermissions=No se ha podido guardar el archivo porque no tiene los permisos adecuados. Elija otro directorio donde guardarlo.
+badPermissions.title=Permisos no válidos para guardar
+unknownAccept.label=Guardar archivo
+unknownCancel.label=Cancelar
+fileType=archivo %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=Archivo de imagen AV1 (AVIF)
+pdfExtHandlerDescription=Portable Document Format (PDF)
+svgExtHandlerDescription=Scalable Vector Graphics (SVG)
+webpExtHandlerDescription=Imagen WebP
+xmlExtHandlerDescription=Extensible Markup Language (XML)
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozapps/profile/profileSelection.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozapps/profile/profileSelection.properties
new file mode 100644
index 0000000000..9d6f1362df
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Cerrar %S
+restartMessageNoUnlocker2=%S ya se está ejecutando, pero no está respondiendo. Para usar %S, debe cerrar primero el proceso %S existente, reiniciar su sistema o usar un perfil diferente.
+restartMessageUnlocker=%S ya se está ejecutando, pero no responde. Debe cerrar antes el anterior proceso %S para abrir una ventana nueva.
+restartMessageNoUnlockerMac=Ya hay abierta una copia de %S. Sólo puede haber una copia de %S abierta a la vez.
+restartMessageUnlockerMac=Ya hay abierta una copia de %S. La copia en ejecución de %S se cerrará para 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' - Ruta: '%S'
+
+pleaseSelectTitle=Seleccionar perfil
+pleaseSelect=Seleccione un perfil para iniciar %S, o cree un nuevo perfil.
+
+renameProfileTitle=Renombrar perfil
+renameProfilePrompt=Renombrar el perfil "%S" a:
+
+profileNameInvalidTitle=Nombre de perfil no válido
+profileNameInvalid=El nombre de perfil "%S" no está permitido.
+
+chooseFolder=Elegir carpeta de perfil
+profileNameEmpty=No se permite un nombre de perfil en blanco.
+invalidChar=El carácter "%S" no está permitido en los nombres de perfil. Escoja otro nombre.
+
+deleteTitle=Eliminar perfil
+deleteProfileConfirm=Eliminar un perfil suprimirá el perfil de la lista de perfiles disponibles y no se puede deshacer.\nPuede elegir además eliminar los archivos de datos del perfil, incluyendo su configuración, certificados y otros datos relativos al usuario. Esta opción eliminará la carpeta "%S" y no se puede deshacer.\n¿Desea eliminar los archivos de datos del perfil?
+deleteFiles=Eliminar archivos
+dontDeleteFiles=No eliminar archivos
+
+profileCreationFailed=No se ha podido crear el perfil. Probablemente la carpeta escogida es de sólo lectura.
+profileCreationFailedTitle=Creación del perfil fallida
+profileExists=Ya existe un perfil con ese nombre. Por favor, escoja otro nombre.
+profileFinishText=Pulse el botón Terminar para crear este nuevo perfil.
+profileFinishTextMac=Pulse Terminado para crear este nuevo perfil.
+profileMissing=No se puede cargar su perfil %S. Puede que esté inaccesible o haya desaparecido.
+profileMissingTitle=Perfil desaparecido
+profileDeletionFailed=No se ha podido eliminar el perfil ya que puede estar en uso.
+profileDeletionFailedTitle=Fallo en la eliminación
+
+# 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=Datos antiguos de %S
+
+flushFailTitle=Cambios no guardados
+flushFailMessage=Un error inesperado ha evitado que se guarden los cambios.
+# LOCALIZATION NOTE (flushFailRestartButton): $S is brandShortName.
+flushFailRestartButton=Reiniciar %S
+flushFailExitButton=Salir
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozapps/update/updates.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozapps/update/updates.properties
new file mode 100644
index 0000000000..dc483a152a
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozapps/update/updates.properties
@@ -0,0 +1,45 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: The 1st %S is brandShortName and 2nd %S is update version
+# where update version from the update xml
+# example: MyApplication 10.0.5
+updateName=%S %S
+
+noThanksButton=No, gracias
+noThanksButton.accesskey=N
+restartLaterButton=Reiniciar más tarde
+restartLaterButton.accesskey=m
+restartNowButton=Reiniciar %S
+restartNowButton.accesskey=R
+
+statusFailed=Instalación incorrecta
+
+installSuccess=La actualización se instaló correctamente
+installPending=Instalación pendiente
+patchApplyFailure=No se pudo instalar la actualización (fallo al aplicar el parche)
+elevationFailure=No tiene los permisos necesarios para instalar esta actualización. Contacte con su administrador de sistema.
+
+check_error-200=Archivo XML de actualización mal formado (200)
+check_error-403=Acceso denegado (403)
+check_error-404=Archivo XML de actualización no encontrado (404)
+check_error-500=Error interno del servidor (500)
+check_error-2152398849=Fallido (razón desconocida)
+check_error-2152398861=Conexión rechazada
+check_error-2152398862=Conexión caducada
+# NS_ERROR_OFFLINE
+check_error-2152398864=La red está desconectada (conectarse)
+check_error-2152398867=Puerto no permitido
+check_error-2152398868=No se han recibido datos (vuelva a intentarlo)
+check_error-2152398878=Servidor de actualizaciones no encontrado (compruebe su conexión a internet)
+check_error-2152398890=Servidor proxy no encontrado (compruebe su conexión a internet)
+# NS_ERROR_DOCUMENT_NOT_CACHED
+check_error-2152398918=La red está desconectada (conectarse)
+check_error-2152398919=Se ha interrumpido la transferencia de datos (vuelva a intentarlo)
+check_error-2152398920=Conexión al servidor proxy rechazada
+check_error-2153390069=El certificado del servidor ha caducado (ajuste el reloj de su sistema a la fecha y hora correctas si es necesario)
+check_error-verification_failed=No se ha podido verificar la integridad de la actualización
+check_error-move_failed=No ha sido posible preparar la actualización para la instalación
+check_error-update_url_not_available=URL de actualización no disponible
+check_error-connection_aborted=Conexión abortada
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozldap/ldap.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozldap/ldap.properties
new file mode 100644
index 0000000000..5a6c3e5f22
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/mozldap/ldap.properties
@@ -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/.
+
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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:
+
+authPromptTitle = Contraseña requerida para el servidor LDAP
+
+authPromptText = Introduzca su contraseña 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.
+
+1 = Error de operaciones
+
+2 = Error de protocolo
+
+3 = Límite de tiempo excedido
+
+4 = Límite de tamaño excedido
+
+5 = Comparación a falso
+
+6 = Comparación a verdadero
+
+7 = Método de identificación no soportado
+
+8 = Identificación fuerte requerida
+
+9 = Resultados parciales y referral recibidos
+
+10 = Recibido referral
+
+11 = Límite administrativo excedido
+
+12 = Extensión crítica no disponible
+
+13 = Confidencialidad requerida
+
+14 = Enlace SASL en progreso
+
+16 = No existe ese atributo
+
+17 = Tipo de atributo no definido
+
+18 = Coincidencia inapropiada
+
+19 = Violación de límite
+
+20 = Existe el tipo o valor
+
+21 = Sintaxis no válida
+
+32 = No existe tal objeto
+
+33 = Problema con el alias
+
+34 = Sintaxis del DN no válida
+
+35 = El objeto es una hoja
+
+36 = Problema al dereferenciar el alias
+
+48 = Identificación inapropiada
+
+49 = Credenciales no válidas
+
+50 = Acceso insuficiente
+
+51 = El servidor LDAP está ocupado
+
+52 = El servidor LDAP no está disponible
+
+53 = El servidor LDAP no acepta ejecutar
+
+54 = Detectado bucle
+
+60 = Falta el control de ordenación
+
+61 = Los resultados de la búsqueda exceden el rango especificado por los desplazamientos
+
+64 = Violación de nombrado
+
+65 = Violación en la clase de objeto
+
+66 = La operación no está permitida en un elemento distinto de una hoja
+
+67 = Operación no permitida en un RDN (DN relativo)
+
+68 = Ya existe
+
+69 = No se puede modificar la clase del objeto
+
+70 = Resultados demasiado grandes
+
+71 = Afecta a múltiples servidores
+
+80 = Error desconocido
+
+81 = No puede contactarse con el servidor LDAP
+
+82 = Error local
+
+83 = Error de codificación
+
+84 = Error de decodificación
+
+85 = El servidor LDAP no respondió en el tiempo permitido
+
+86 = Método de identificación desconocido
+
+87 = Filtro de búsqueda no válido
+
+88 = Operación cancelada por el usuario
+
+89 = Parámetro incorrecto en una rutina LDAP
+
+90 = Memoria agotada
+
+91 = No puede conectarse con el servidor LDAP
+
+92 = No soportado por esta versión del protocolo LDAP
+
+93 = Control LDAP solicitado no encontrado
+
+94 = No se devolvió ningún resultado
+
+95 = Más resultados a devolver
+
+96 = Bucle de cliente detectado
+
+97 = Límite de saltos de referral excedido
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/necko/necko.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/necko/necko.properties
new file mode 100644
index 0000000000..316f603c7a
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Resolviendo %1$S…
+4=Conectado a %1$S…
+5=Enviando petición a %1$S…
+6=Transfiriendo datos desde %1$S…
+7=Conectando a %1$S…
+8=Leído %1$S\u0020
+9=Escrito %1$S
+10=Esperando a %1$S…
+11=Se ha resuelto %1$S…
+12=Realizando una negociación TLS con %1$S…
+13=La negociación TLS ha terminado con %1$S…
+
+RepostFormData=Esta página web está siendo redirigida a una nueva dirección. ¿Le gustaría volver a enviar los datos del formulario que ha cumplimentado a la nueva dirección?
+
+# Directory listing strings
+DirTitle=Índice de %1$S
+DirGoUp=Subir al directorio superior.
+ShowHidden=Mostrar objetos ocultos
+DirColName=Nombre
+DirColSize=Tamaño
+DirColMTime=Última modificación
+DirFileLabel=Archivo:\u0020
+
+SuperfluousAuth=Está a punto de iniciar sesión en el sitio “%1$S” con el nombre de usuario “%2$S”, pero el sitio web no requiere identificación. Esto puede ser un intento de engañarle.\n\n¿Es “%1$S” el sitio que quiere visitar?
+AutomaticAuth=Está a punto de iniciar sesión en el sitio “%1$S” con el nombre de usuario “%2$S”.
+
+TrackerUriBlocked=El recurso en “%1$S” ha sido bloqueado porque está habilitado el bloqueo de contenido.
+UnsafeUriBlocked=El recurso en "%1$S" ha sido bloqueado por la navegación segura.
+
+# LOCALIZATION NOTE (StrictUrlProtocolSetter): %1$S is the URL that has attempted to be changed. %2$S is the invalid target protocol.
+StrictUrlProtocolSetter=Se ha bloqueado el cambio de url “%1$S“ al protocolo “%2$S“.
+
+# LOCALIZATION NOTE (CORPBlocked): %1$S is the URL of the blocked resource. %2$S is the URL of the MDN page about CORP.
+CORPBlocked=El recurso en “%1$S” ha sido bloqueado debido a su encabezado de política de recursos de origen cruzado (CORS) o la falta de éste. Vea %2$S
+CookieBlockedByPermission=La solicitud de acceso a las cookies o al almacenamiento en “%1$S” fue bloqueada debido al permiso personalizado de cookies.
+CookieBlockedTracker=La solicitud de acceso a las cookies o al almacenamiento en “%1$S” fue bloqueada porque provino de un rastreador y está habilitado el bloqueo de contenido.
+CookieBlockedAll=La solicitud de acceso a las cookies o al almacenamiento en “%1$S” fue bloqueada porque estamos bloqueando todas las solicitudes de acceso al almacenamiento.
+CookieBlockedForeign=La solicitud para acceder a las cookies o al almacenamiento en “%1$S” fue bloqueada porque estamos bloqueando todas las solicitudes de acceso de terceros y el bloqueo de contenido está habilitado.
+# 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=Se ha proporcionado cookie particionada o acceso de almacenamiento a “%1$S” porque se carga en el contexto de terceros y está activada la partición de estado dinámico.
+
+# LOCALIZATION NOTE (CookieAllowedForOriginByStorageAccessAPI): %2$S and %1$S are URLs.
+CookieAllowedForOriginByStorageAccessAPI=Concedido acceso al almacenamiento para el origen “%2$S” en “%1$S”.
+# LOCALIZATION NOTE (CookieAllowedForOriginByHeuristic): %2$S and %1$S are URLs.
+CookieAllowedForOriginByHeuristic=Concedido automáticamente acceso al almacenamiento para el origen “%2$S” en “%1$S”.
+# LOCALIZATION NOTE (CookieAllowedForFpiByHeuristic): %2$S and %1$S are URLs.
+CookieAllowedForFpiByHeuristic=Acceso al almacenamiento concedido automáticamente para el aislamiento First-Party “%2$S” en “%1$S”.
+
+# LOCALIZATION NOTE(CookieRejectedNonRequiresSecure2): %1$S is the cookie name. Do not localize "SameSite=None" and "secure".
+CookieRejectedNonRequiresSecure2=Cookie “%1$S” rechazada porque tiene el atributo “SameSite=none” pero le falta el atributo “secure”.
+# LOCALIZATION NOTE(CookieRejectedNonRequiresSecureForBeta3): %1$S is the cookie name. %2$S is a URL. Do not localize "SameSite", "SameSite=None" and "secure".
+CookieRejectedNonRequiresSecureForBeta3=La cookie “%1$S” se rechazará pronto porque tiene el atributo “SameSite” establecido en “None” sin el atributo “secure”. Para saber más sobre el atributo “SameSite“, lea %2$S
+# LOCALIZATION NOTE(CookieLaxForced2): %1$S is the cookie name. Do not localize "SameSite", "Lax" and "SameSite=Lax".
+CookieLaxForced2=La cookie “%1$S” tiene la política “SameSite” establecida en "Lax" porque le falta un atributo “SameSite”, y “SameSite=Lax” es el valor predeterminado 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=La cookie “%1$S” no tiene un valor de atributo “SameSite” adecuado. Pronto, las cookies sin el atributo “SameSite o con un valor no válido serán tratadas como “Lax”. Esto significa que la cookie ya no se enviará en contextos de terceros. Si su aplicación depende de que esta cookie esté disponible en dichos contextos, añada el atributo “SameSite=none“. Para saber más sobre el atributo “SameSite“, lea %2$S
+# LOCALIZATION NOTE(CookieSameSiteValueInvalid2): %1$S is cookie name. Do not localize "SameSite", "Lax", "Strict" and "None"
+CookieSameSiteValueInvalid2=Valor “SameSite“ no válido para la cookie “%1$S”. Los valores admitidos son: “Lax“, “Strict“, “None“.
+# LOCALIZATION NOTE (CookieOversize): %1$S is the cookie name. %2$S is the number of bytes. "B" means bytes.
+CookieOversize=La cookie "%1$S" no es válida porque su tamaño es demasiado grande. El tamaño máximo es de %2$S B.
+# LOCALIZATION NOTE (CookiePathOversize): %1$S is the cookie name. %2$S is the number of bytes. "B" means bytes.
+CookiePathOversize=La cookie “%1$S” no es válida porque el tamaño de su ruta es demasiado grande. El tamaño máximo es de %2$S B.
+# LOCALIZATION NOTE (CookieRejectedByPermissionManager): %1$S is the cookie response header.
+CookieRejectedByPermissionManager=La cookie "%1$S" ha sido rechazada por los permisos establecidos por el usuario.
+# LOCALIZATION NOTE (CookieRejectedInvalidCharName): %1$S is the cookie name.
+CookieRejectedInvalidCharName=La cookie "%1$S" ha sido rechazada por caracteres no válidos en el nombre.
+# LOCALIZATION NOTE (CookieRejectedInvalidDomain): %1$S is the cookie name.
+CookieRejectedInvalidDomain=La cookie “%1$S” ha sido rechazada por un dominio no válido.
+# LOCALIZATION NOTE (CookieRejectedInvalidPrefix): %1$S is the cookie name.
+CookieRejectedInvalidPrefix=La cookie “%1$S” ha sido rechazada por un prefijo no válido.
+# LOCALIZATION NOTE (CookieRejectedInvalidCharValue): %1$S is the cookie name.
+CookieRejectedInvalidCharValue=La cookie “%1$S” ha sido rechazada por caracteres no válidos en el valor.
+# LOCALIZATION NOTE (CookieRejectedHttpOnlyButFromScript): %1$S is the cookie name.
+CookieRejectedHttpOnlyButFromScript=La cookie “%1$S” ha sido rechazada porque ya hay una cookie HTTP-Only pero el script intentó almacenar una nueva.
+# LOCALIZATION NOTE (CookieRejectedSecureButHttp): %1$S is the cookie name.
+CookieRejectedSecureButNonHttps=La cookie “%1$S” ha sido rechazada porque una cookie no-HTTPS no se puede establecer como “segura”.
+# LOCALIZATION NOTE (CookieRejectedThirdParty): %1$S is the cookie response header.
+CookieRejectedThirdParty=La cookie “%1$S” ha sido rechazada por ser de terceros.
+# LOCALIZATION NOTE (CookieRejectedNonsecureOverSecure): %1$S is the cookie name.
+CookieRejectedNonsecureOverSecure=La cookie “%1$S” ha sido rechazada porque ya existe una cookie “segura”.
+# LOCALIZATION NOTE (CookieRejectedForNonSameSiteness): %1$S is the cookie name.
+CookieRejectedForNonSameSiteness=La cookie “%1$S” ha sido rechazada porque se encuentra en un contexto de sitios cruzados y su “SameSite” es “Lax” o “Strict”.
+
+# LOCALIZATION NOTE (CookieBlockedCrossSiteRedirect): %1$S is the cookie name. Do not translate "SameSite", "Lax" or "Strict".
+CookieBlockedCrossSiteRedirect=Se omitió la cookie “%1$S” con el atributo “SameSite” con valor “Lax” o “Strict” por una redirección de sitio cruzado.
+
+# LOCALIZATION NOTE (APIDeprecationWarning): %1$S is the deprecated API; %2$S is the API function that should be used.
+APIDeprecationWarning=Advertencia: ’%1$S’ obsoleto, por favor use ’%2$S’
+
+# LOCALIZATION NOTE (ResourceBlockedCORS): %1$S is the url of the resource blocked by ORB. $2$S is the reason.
+# example: The resource at <url> was blocked by OpaqueResponseBlocking. Reason: “nosniff with either blocklisted or text/plain”.
+ResourceBlockedORB=El recurso en “%1$S” ha sido bloqueado por OpaqueResponseBlocking. Motivo: “%2$S”.
+
+InvalidHTTPResponseStatusLine=La línea de estado de la respuesta HTTP no es válida
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/passwordmgr/passwordmgr.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/passwordmgr/passwordmgr.properties
new file mode 100644
index 0000000000..ca2bf77cc3
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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 = Use el administrador de contraseñas para recordar esta contraseña.
+savePasswordTitle = Confirmar
+# LOCALIZATION NOTE (saveLoginMsg2, saveLoginMsgNoUser2):
+# %S is the login's hostname.
+saveLoginMsg2 = ¿Guardar el inicio de sesión para %S?
+saveLoginMsgNoUser2 = ¿Guardar la contraseña para %S?
+saveLoginButtonAllow.label = Guardar
+saveLoginButtonAllow.accesskey = G
+saveLoginButtonDeny.label = No guardar
+saveLoginButtonDeny.accesskey = N
+saveLoginButtonNever.label = No guardar nunca
+saveLoginButtonNever.accesskey = n
+# LOCALIZATION NOTE (updateLoginMsg3, updateLoginMsgNoUser3):
+# %S is the login's hostname.
+updateLoginMsg3 = ¿Actualizar el inicio de sesión para %S?
+updateLoginMsgNoUser3 = ¿Actualizar la contraseña para %S?
+updateLoginMsgAddUsername2 = ¿Añadir nombre de usuario a la contraseña guardada?
+updateLoginButtonText = Actualizar
+updateLoginButtonAccessKey = U
+updateLoginButtonDeny.label = No actualizar
+updateLoginButtonDeny.accesskey = a
+updateLoginButtonDelete.label = Eliminar inicio de sesión guardado
+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 = ¿Desea recordar la contraseña para "%1$S" en %2$S?
+# LOCALIZATION NOTE (rememberPasswordMsgNoUsername):
+# String is the login's hostname.
+rememberPasswordMsgNoUsername = ¿Desea recordar la contraseña en %S?
+# LOCALIZATION NOTE (noUsernamePlaceholder):
+# This is displayed in place of the username when it is missing.
+noUsernamePlaceholder=Sin nombre de usuario
+togglePasswordLabel=Mostrar contraseña
+togglePasswordAccessKey2=M
+notNowButtonText = Esta ve&z no
+neverForSiteButtonText = &Nunca para este sitio
+rememberButtonText = &Recordar
+passwordChangeTitle = Confirmar cambio de contraseña
+# LOCALIZATION NOTE (updatePasswordMsg):
+# String is the username for the login.
+updatePasswordMsg = ¿Desea actualizar la contraseña guardada de "%S"?
+updatePasswordMsgNoUser = ¿Desea actualizar la contraseña guardada?
+userSelectText2 = Seleccione qué cuenta actualizar:
+loginsDescriptionAll2=Se guardan inicios de sesión de los siguientes sitios en su equipo
+
+# LOCALIZATION NOTE (useASecurelyGeneratedPassword):
+# Shown in the autocomplete popup to allow filling a generated password into a password field.
+useASecurelyGeneratedPassword=Usar una contraseña generada de forma segura
+# LOCALIZATION NOTE (generatedPasswordWillBeSaved):
+# %S will contain the brandShorterName. This informs the user that the generated password will be automatically saved.
+generatedPasswordWillBeSaved=%S va a guardar esta contraseña para este sitio web.
+# 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=Sin nombre de usuario
+# LOCALIZATION NOTE (displaySameOrigin):
+# String is used on the autocomplete row when the login origin is a domain match with the document origin
+displaySameOrigin=De este sitio web
+
+# 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 conexión no es segura. Las credenciales introducidas aquí pueden verse comprometidas. %1$S
+insecureFieldWarningLearnMore = Saber más
+
+# LOCALIZATION NOTE (viewSavedLogins.label):
+# This label is used in the footer of login autocomplete menus.
+viewSavedLogins.label= Ver credenciales guardadas
+
+# LOCALIZATION NOTE (managePasswords.label):
+# This label is used in the footer of login autocomplete menus.
+managePasswords.label= Administrar contraseñas
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/pipnss/nsserrors.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/pipnss/nsserrors.properties
new file mode 100644
index 0000000000..33f36cf480
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=No es posible comunicar de forma segura. El otro extremo de la conexión no admite cifrado de grado alto.
+SSL_ERROR_US_ONLY_SERVER=No es posible comunicar de forma segura. El otro extremo de la conexión requiere cifrado de grado alto que no está admitido.
+SSL_ERROR_NO_CYPHER_OVERLAP=No se puede comunicar de forma segura con la otra parte: no hay algoritmos de cifrado comunes.
+SSL_ERROR_NO_CERTIFICATE=No es posible encontrar el certificado o clave necesarios para la identificación.
+SSL_ERROR_BAD_CERTIFICATE=No es posible comunicar de forma segura con el otro extremo de la conexión porque el certificado de este ha sido rechazado.
+SSL_ERROR_BAD_CLIENT=El servidor ha encontrado datos erróneos del cliente.
+SSL_ERROR_BAD_SERVER=El cliente ha encontrado datos erróneos del servidor.
+SSL_ERROR_UNSUPPORTED_CERTIFICATE_TYPE=Tipo de certificado no admitido.
+SSL_ERROR_UNSUPPORTED_VERSION=La otra parte está usando una versión del protocolo de seguridad no admitida.
+SSL_ERROR_WRONG_CERTIFICATE=Identificación del cliente fallida: la clave privada en la base de datos de claves no coincide con la clave pública en la base de datos de certificados.
+SSL_ERROR_BAD_CERT_DOMAIN=No es posible comunicar de forma segura con el otro extremo de la conexión porque el nombre de dominio solicitado no coincide con el certificado del servidor.
+SSL_ERROR_POST_WARNING=Código de error SSL no reconocido.
+SSL_ERROR_SSL2_DISABLED=La otra parte sólo admite SSL versión 2, que está desactivado localmente.
+SSL_ERROR_BAD_MAC_READ=SSL ha recibido un registro con un código de identificación de mensaje incorrecto.
+SSL_ERROR_BAD_MAC_ALERT=El otro extremo de la conexión SSL informa de un código de identificación de mensaje incorrecto.
+SSL_ERROR_BAD_CERT_ALERT=El otro extremo de la conexión SSL no puede verificar su certificado.
+SSL_ERROR_REVOKED_CERT_ALERT=El otro extremo de la conexión SSL ha rechazado su certificado por considerarlo revocado.
+SSL_ERROR_EXPIRED_CERT_ALERT=El otro extremo de la conexión SSL ha rechazado su certificado por considerarlo caducado.
+SSL_ERROR_SSL_DISABLED=No se puede conectar: SSL está desactivado.
+SSL_ERROR_FORTEZZA_PQG=No se puede conectar: el otro extremo de la conexión SSL está en otro dominio FORTEZZA.
+SSL_ERROR_UNKNOWN_CIPHER_SUITE=Se ha solicitado una suite de cifrado SSL desconocida.
+SSL_ERROR_NO_CIPHERS_SUPPORTED=No hay suites de cifrado presentes y activas en este programa.
+SSL_ERROR_BAD_BLOCK_PADDING=SSL ha recibido un registro con un ajuste de bloque incorrecto.
+SSL_ERROR_RX_RECORD_TOO_LONG=SSL ha recibido un registro que excedía la longitud máxima permitida.
+SSL_ERROR_TX_RECORD_TOO_LONG=SSL ha intentado enviar un registro que excede la longitud máxima admisible.
+SSL_ERROR_RX_MALFORMED_HELLO_REQUEST=SSL ha recibido un mensaje de negociación Hello Request mal formado.
+SSL_ERROR_RX_MALFORMED_CLIENT_HELLO=SSL ha recibido un mensaje de negociación Client Hello mal formado.
+SSL_ERROR_RX_MALFORMED_SERVER_HELLO=SSL ha recibido un mensaje de negociación Server Hello mal formado.
+SSL_ERROR_RX_MALFORMED_CERTIFICATE=SSL ha recibido un mensaje de negociación Certificate mal formado.
+SSL_ERROR_RX_MALFORMED_SERVER_KEY_EXCH=SSL ha recibido un mensaje de negociación Server Key Exchange mal formado.
+SSL_ERROR_RX_MALFORMED_CERT_REQUEST=SSL ha recibido un mensaje de negociación de Certificate Request mal formado.
+SSL_ERROR_RX_MALFORMED_HELLO_DONE=SSL ha recibido un mensaje de negociación Server Hello Done mal formado.
+SSL_ERROR_RX_MALFORMED_CERT_VERIFY=SSL ha recibido un mensaje de negociación Certificate Verify mal formado.
+SSL_ERROR_RX_MALFORMED_CLIENT_KEY_EXCH=SSL ha recibido un mensaje de negociación Client Key Exchange mal formado.
+SSL_ERROR_RX_MALFORMED_FINISHED=SSL ha recibido un mensaje de negociación Finished mal formado.
+SSL_ERROR_RX_MALFORMED_CHANGE_CIPHER=SSL ha recibido un registro de cambio de especificaciones de cifrado mal formado.
+SSL_ERROR_RX_MALFORMED_ALERT=SSL ha recibido un registro de alerta mal formada.
+SSL_ERROR_RX_MALFORMED_HANDSHAKE=SSL ha recibido un registro de negociación mal formado.
+SSL_ERROR_RX_MALFORMED_APPLICATION_DATA=SSL ha recibido un registro de datos de aplicación mal formado.
+SSL_ERROR_RX_UNEXPECTED_HELLO_REQUEST=SSL ha recibido un mensaje de negociación Hello Request inesperado.
+SSL_ERROR_RX_UNEXPECTED_CLIENT_HELLO=SSL ha recibido un mensaje de negociación Client Hello inesperado.
+SSL_ERROR_RX_UNEXPECTED_SERVER_HELLO=SSL ha recibido un mensaje de negociación Server Hello inesperado.
+SSL_ERROR_RX_UNEXPECTED_CERTIFICATE=SSL ha recibido un mensaje de negociación Certificate inesperado.
+SSL_ERROR_RX_UNEXPECTED_SERVER_KEY_EXCH=SSL ha recibido un mensaje de negociación Server Key Exchange inesperado.
+SSL_ERROR_RX_UNEXPECTED_CERT_REQUEST=SSL ha recibido un mensaje de negociación Certificate Request inesperado.
+SSL_ERROR_RX_UNEXPECTED_HELLO_DONE=SSL ha recibido un mensaje de negociación Server Hello Done inesperado.
+SSL_ERROR_RX_UNEXPECTED_CERT_VERIFY=SSL ha recibido un mensaje de negociación Certificate Verify inesperado.
+SSL_ERROR_RX_UNEXPECTED_CLIENT_KEY_EXCH=SSL ha recibido un mensaje de negociación Client Key Exchange inesperado.
+SSL_ERROR_RX_UNEXPECTED_FINISHED=SSL ha recibido un mensaje de negociación Finished inesperado.
+SSL_ERROR_RX_UNEXPECTED_CHANGE_CIPHER=SSL ha recibido un registro Change Cipher Spec inesperado.
+SSL_ERROR_RX_UNEXPECTED_ALERT=SSL ha recibido un registro Alert inesperado.
+SSL_ERROR_RX_UNEXPECTED_HANDSHAKE=SSL ha recibido un registro de negociación inesperado.
+SSL_ERROR_RX_UNEXPECTED_APPLICATION_DATA=SSL ha recibido un registro Application Data inesperado.
+SSL_ERROR_RX_UNKNOWN_RECORD_TYPE=SSL ha recibido un registro con un tipo de contenido desconocido.
+SSL_ERROR_RX_UNKNOWN_HANDSHAKE=SSL ha recibido un mensaje de negociación con un tipo de mensaje desconocido.
+SSL_ERROR_RX_UNKNOWN_ALERT=SSL ha recibido un registro de alerta con una descripción de alerta desconocida.
+SSL_ERROR_CLOSE_NOTIFY_ALERT=El otro extremo de la conexión SSL ha cerrado esta conexión.
+SSL_ERROR_HANDSHAKE_UNEXPECTED_ALERT=El otro extremo de la conexión SSL no esperaba un mensaje de negociación que ha recibido.
+SSL_ERROR_DECOMPRESSION_FAILURE_ALERT=El otro extremo de la conexión SSL no ha podido descomprimir con éxito un registro SSL que ha recibido.
+SSL_ERROR_HANDSHAKE_FAILURE_ALERT=El otro extremo de la conexión SSL no ha podido negociar un conjunto aceptable de parámetros de seguridad.
+SSL_ERROR_ILLEGAL_PARAMETER_ALERT=El otro extremo de la conexión SSL ha rechazado un mensaje de negociación por contenido no aceptable.
+SSL_ERROR_UNSUPPORTED_CERT_ALERT=El otro extremo de la conexión SSL no admite certificados del tipo que ha recibido.
+SSL_ERROR_CERTIFICATE_UNKNOWN_ALERT=El otro extremo de la conexión SSL ha tenido algún problema no especificado con el certificado que ha recibido.
+SSL_ERROR_GENERATE_RANDOM_FAILURE=SSL ha experimentado un fallo de su generador de números aleatorios.
+SSL_ERROR_SIGN_HASHES_FAILURE=No es posible firmar digitalmente los datos requeridos para verificar su certificado.
+SSL_ERROR_EXTRACT_PUBLIC_KEY_FAILURE=SSL no ha podido extraer la clave pública del certificado del otro extremo de la conexión.
+SSL_ERROR_SERVER_KEY_EXCHANGE_FAILURE=Fallo no especificado mientras se procesaba la negociación de intercambio de claves servidor de SSL.
+SSL_ERROR_CLIENT_KEY_EXCHANGE_FAILURE=Fallo no especificado mientras se procesaba la negociación de intercambio de claves cliente de SSL.
+SSL_ERROR_ENCRYPTION_FAILURE=Ha fallado el algoritmo de cifrado de lotes de datos en la suite de cifrado seleccionada.
+SSL_ERROR_DECRYPTION_FAILURE=Ha fallado el algoritmo de descifrado de lotes de datos en la suite de cifrado seleccionada.
+SSL_ERROR_SOCKET_WRITE_FAILURE=Ha fallado un intento de escribir datos cifrados en el socket subyacente.
+SSL_ERROR_MD5_DIGEST_FAILURE=Función resumen MD5 fallida.
+SSL_ERROR_SHA_DIGEST_FAILURE=Función resumen SHA-1 fallida.
+SSL_ERROR_MAC_COMPUTATION_FAILURE=Cálculo MAC fallido.
+SSL_ERROR_SYM_KEY_CONTEXT_FAILURE=No se ha podido crear un contexto de clave simétrica.
+SSL_ERROR_SYM_KEY_UNWRAP_FAILURE=No se ha podido desempaquetar la clave simétrica en el mensaje de intercambio de claves de cliente.
+SSL_ERROR_PUB_KEY_SIZE_LIMIT_EXCEEDED=El servidor SSL ha intentado usar una clave pública de grado doméstico con una suite de cifrado de exportación.
+SSL_ERROR_IV_PARAM_FAILURE=El código PKCS11 no permite traducir un IV en un parámetro.
+SSL_ERROR_INIT_CIPHER_SUITE_FAILURE=No se ha podido inicializar la suite de cifrado seleccionada.
+SSL_ERROR_SESSION_KEY_GEN_FAILURE=El cliente no ha podido generar claves de sesión para la sesión SSL.
+SSL_ERROR_NO_SERVER_KEY_FOR_ALG=El servidor no tiene clave para el algoritmo de intercambio de claves intentado.
+SSL_ERROR_TOKEN_INSERTION_REMOVAL=El token PKCS#11 se ha insertado o eliminado mientras la operación estaba en progreso.
+SSL_ERROR_TOKEN_SLOT_NOT_FOUND=No se ha podido encontrar un token PKCS#11 para hacer una operación requerida.
+SSL_ERROR_NO_COMPRESSION_OVERLAP=No se puede comunicar de forma segura con la otra parte: no hay algoritmos de compresión comunes.
+SSL_ERROR_HANDSHAKE_NOT_COMPLETED=No se puede iniciar otra negociación SSL (SSL handshake) hasta que la actual se haya completado.
+SSL_ERROR_BAD_HANDSHAKE_HASH_VALUE=Se han recibido de la otra parte valores hash incorrectos de negociación.
+SSL_ERROR_CERT_KEA_MISMATCH=El certificado proporcionado no puede usarse con el algoritmo de intercambio de claves seleccionado.
+SSL_ERROR_NO_TRUSTED_SSL_CLIENT_CA=No se confía en ninguna autoridad certificadora para la identificación del cliente SSL.
+SSL_ERROR_SESSION_NOT_FOUND=La ID de sesión SSL del cliente no se ha encontrado en el caché de sesión del servidor.
+SSL_ERROR_DECRYPTION_FAILED_ALERT=La otra parte no ha podido descifrar un registro SSL recibido por ella.
+SSL_ERROR_RECORD_OVERFLOW_ALERT=La otra parte ha recibido un registro SSL más largo de lo permitido.
+SSL_ERROR_UNKNOWN_CA_ALERT=La otra parte no reconoce o confía en la CA que emitió su certificado.
+SSL_ERROR_ACCESS_DENIED_ALERT=La otra parte ha recibido un certificado válido, pero el acceso ha sido denegado.
+SSL_ERROR_DECODE_ERROR_ALERT=El otro extremo de la conexión no ha podido decodificar un mensaje de negociación SSL (SSL handshake).
+SSL_ERROR_DECRYPT_ERROR_ALERT=La otra parte indica un fallo en la verificación de la firma o intercambio de claves.
+SSL_ERROR_EXPORT_RESTRICTION_ALERT=La otra parte informa que la negociación no cumple las regulaciones de exportación.
+SSL_ERROR_PROTOCOL_VERSION_ALERT=La otra parte informa de una versión del protocolo incompatible o no admitida.
+SSL_ERROR_INSUFFICIENT_SECURITY_ALERT=El servidor requiere cifrado más segudo del soportado por el cliente.
+SSL_ERROR_INTERNAL_ERROR_ALERT=La otra parte informa que ha experimentado un error interno.
+SSL_ERROR_USER_CANCELED_ALERT=El usuario del otro extremo de la conexión ha cancelado el negociación.
+SSL_ERROR_NO_RENEGOTIATION_ALERT=La otra parte no permite renegociar los parámetros de seguridad SSL.
+SSL_ERROR_SERVER_CACHE_NOT_CONFIGURED=El caché del servidor SSL no está configurado ni desactivado en este socket.
+SSL_ERROR_UNSUPPORTED_EXTENSION_ALERT=El otro extremo de la conexión SSL no admite la extensión hello TLS solicitada.
+SSL_ERROR_CERTIFICATE_UNOBTAINABLE_ALERT=El otro extremo de la conexión SSL no ha podido obtener el certificado de usted de la URL suministrada.
+SSL_ERROR_UNRECOGNIZED_NAME_ALERT=El otro extremo de la conexión SSL no tiene certificado para el nombre DNS solicitado.
+SSL_ERROR_BAD_CERT_STATUS_RESPONSE_ALERT=El otro extremo de la conexión SSL no ha podido obtener una respuesta OCSP para su certificado.
+SSL_ERROR_BAD_CERT_HASH_VALUE_ALERT=El otro extremo de la conexión SSL ha informado de un valor hash de certificado erróneo.
+SSL_ERROR_RX_UNEXPECTED_NEW_SESSION_TICKET=SSL ha recibido un mensaje de negociación Nuevo tique de sesión inesperado.
+SSL_ERROR_RX_MALFORMED_NEW_SESSION_TICKET=SSL ha recibido un mensaje de negociación Nuevo tique de sesión mal formado.
+SSL_ERROR_DECOMPRESSION_FAILURE=SSL ha recibido un registro comprimido que no ha podido ser descomprimido.
+SSL_ERROR_RENEGOTIATION_NOT_ALLOWED=No se permite la renegociación en este socket SSL.
+SSL_ERROR_UNSAFE_NEGOTIATION=La otra parte ha intentado una negociación al estilo antiguo (potencialmente vulnerable).
+SSL_ERROR_RX_UNEXPECTED_UNCOMPRESSED_RECORD=SSL ha recibido un registro no comprimido inesperado.
+SSL_ERROR_WEAK_SERVER_EPHEMERAL_DH_KEY=SSL ha recibido una clave Diffie-Hellman efímera débil en el mensaje de negociación de intercambio de claves de servidor.
+SSL_ERROR_NEXT_PROTOCOL_DATA_INVALID=SSL ha recibido datos no válidos de la extensión NPN.
+SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_SSL2=Característica SSL no compatible con las conexiones SSL 2.0.
+SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_SERVERS=Característica SSL no admitida en los servidores.
+SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_CLIENTS=Característica SSL no admitida en los clientes.
+SSL_ERROR_INVALID_VERSION_RANGE=El intervalo de versiones SSL no es válido.
+SSL_ERROR_CIPHER_DISALLOWED_FOR_VERSION=El interlocutor SSL ha seleccionado una suite de cifrado no permitida en la versión de protocolo elegida.
+SSL_ERROR_RX_MALFORMED_HELLO_VERIFY_REQUEST=SSL ha recibido un mensaje de negociación Hello Verify Request mal formado.
+SSL_ERROR_RX_UNEXPECTED_HELLO_VERIFY_REQUEST=SSL ha recibido un mensaje de negociación Hello Verify Request inesperado.
+SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_VERSION=Característica SSL no admitida en esa versión del protocolo.
+SSL_ERROR_RX_UNEXPECTED_CERT_STATUS=SSL ha recibido un mensaje de negociación Certificate Status inesperado.
+SSL_ERROR_UNSUPPORTED_HASH_ALGORITHM=Algoritmo hash no admitido utilizado por el interlocutor TLS.
+SSL_ERROR_DIGEST_FAILURE=Falló la función de resumen.
+SSL_ERROR_INCORRECT_SIGNATURE_ALGORITHM=Algoritmo de firma incorrecto especificado en un elemento firmado digitalmente.
+SSL_ERROR_NEXT_PROTOCOL_NO_CALLBACK=Se activó la extensión de negociación del siguiente protocolo, pero la llamada de respuesta se inicializó antes de necesitarse.
+SSL_ERROR_NEXT_PROTOCOL_NO_PROTOCOL=El servidor no admite protocolos anunciados por el cliente en la extensión ALPN.
+SSL_ERROR_INAPPROPRIATE_FALLBACK_ALERT=El servidor rechazó la negociación porque el cliente degradó a una versión TLS inferior a la que admite el servidor.
+SSL_ERROR_WEAK_SERVER_CERT_KEY=El certificado de servidor incluía una clave pública que era demasiado débil.
+SSL_ERROR_RX_SHORT_DTLS_READ=No hay espacio suficiente en el buffer para el registro DTLS.
+SSL_ERROR_NO_SUPPORTED_SIGNATURE_ALGORITHM=No se ha configurado un algoritmo de firma TLS compatible.
+SSL_ERROR_UNSUPPORTED_SIGNATURE_ALGORITHM=El par usó una combinación no admitida de firma y algoritmo resumen.
+SSL_ERROR_MISSING_EXTENDED_MASTER_SECRET=El par intentó continuar sin una extensión extended_master_secret correcta.
+SSL_ERROR_UNEXPECTED_EXTENDED_MASTER_SECRET=El par intentó continuar conn una extensión extended_master_secret inesperada.
+SEC_ERROR_IO=Ha ocurrido un error de E/S durante la autorización de seguridad.
+SEC_ERROR_LIBRARY_FAILURE=fallo de la biblioteca de seguridad.
+SEC_ERROR_BAD_DATA=biblioteca de seguridad: se han recibido datos incorrectos.
+SEC_ERROR_OUTPUT_LEN=biblioteca de seguridad: error de longitud de salida.
+SEC_ERROR_INPUT_LEN=la biblioteca de seguridad ha experimentado un error de longitud de entrada.
+SEC_ERROR_INVALID_ARGS=biblioteca de seguridad: argumentos no válidos.
+SEC_ERROR_INVALID_ALGORITHM=biblioteca de seguridad: algoritmo no válido.
+SEC_ERROR_INVALID_AVA=biblioteca de seguridad: AVA no válido.
+SEC_ERROR_INVALID_TIME=Cadena de fecha/hora incorrectamente formateada.
+SEC_ERROR_BAD_DER=biblioteca de seguridad: mensaje codificado en DER incorrectamente formateado.
+SEC_ERROR_BAD_SIGNATURE=El certificado de la otra parte tiene una firma no válida.
+SEC_ERROR_EXPIRED_CERTIFICATE=El certificado de la otra parte ha caducado.
+SEC_ERROR_REVOKED_CERTIFICATE=El certificado de la otra parte ha sido revocado.
+SEC_ERROR_UNKNOWN_ISSUER=El emisor del certificado de la otra parte no se reconoce.
+SEC_ERROR_BAD_KEY=La clave pública de la otra parte no es válida.
+SEC_ERROR_BAD_PASSWORD=La contraseña de seguridad introducida es incorrecta.
+SEC_ERROR_RETRY_PASSWORD=La nueva contraseña se ha introducido incorrectamente. Inténtelo de nuevo.
+SEC_ERROR_NO_NODELOCK=biblioteca de seguridad: no hay bloqueo de nodo (nodelock).
+SEC_ERROR_BAD_DATABASE=biblioteca de seguridad: base de datos incorrecta.
+SEC_ERROR_NO_MEMORY=biblioteca de seguridad: fallo de ubicación (allocation) de memoria.
+SEC_ERROR_UNTRUSTED_ISSUER=El emisor del certificado de la otra parte ha sido marcado como no confiable por el usuario.
+SEC_ERROR_UNTRUSTED_CERT=El certificado de la otra parte ha sido marcado como no confiable por el usuario.
+SEC_ERROR_DUPLICATE_CERT=El certificado ya existe en su base de datos.
+SEC_ERROR_DUPLICATE_CERT_NAME=El nombre del certificado descargado duplica uno ya instalado en su base de datos.
+SEC_ERROR_ADDING_CERT=Error al añadir el certificado a la base de datos.
+SEC_ERROR_FILING_KEY=Error al rellenar la clave para este certificado.
+SEC_ERROR_NO_KEY=La clave privada de este certificado no puede encontrarse en la base de datos de claves
+SEC_ERROR_CERT_VALID=Este certificado es válido.
+SEC_ERROR_CERT_NOT_VALID=Este certificado no es válido.
+SEC_ERROR_CERT_NO_RESPONSE=Biblioteca de certificados: no hay respuesta
+SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE=El certificado del emisor del certificado ha caducado. Compruebe la fecha y hora de su sistema.
+SEC_ERROR_CRL_EXPIRED=La CRL del emisor del certificado ha caducado. Actualícela o compruebe la fecha y hora de su sistema.
+SEC_ERROR_CRL_BAD_SIGNATURE=La CRL del emisor del certificado tiene una firma no válida.
+SEC_ERROR_CRL_INVALID=La nueva CRL tiene un formato no válido.
+SEC_ERROR_EXTENSION_VALUE_INVALID=El valor de la extensión del certificado no es válido.
+SEC_ERROR_EXTENSION_NOT_FOUND=No se ha encontrado una extensión del certificado.
+SEC_ERROR_CA_CERT_INVALID=El certificado del emisor no es válido.
+SEC_ERROR_PATH_LEN_CONSTRAINT_INVALID=La restricción a la longitud de la ruta del certificado no es válida.
+SEC_ERROR_CERT_USAGES_INVALID=El campo de usos del certificado no es válido.
+SEC_INTERNAL_ONLY=**Módulo EXCLUSIVAMENTE interno**
+SEC_ERROR_INVALID_KEY=La clave no admite la operación solicitada.
+SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION=El certificado contiene una extensión crítica desconocida.
+SEC_ERROR_OLD_CRL=La nueva CRL no es posterior a la actual.
+SEC_ERROR_NO_EMAIL_CERT=No cifrado o firmado: aún no tiene un certificado de correo electrónico.
+SEC_ERROR_NO_RECIPIENT_CERTS_QUERY=No cifrado: no tiene ciertificados para cada uno de los recipientes.
+SEC_ERROR_NOT_A_RECIPIENT=No se puede descrifrar: usted no es un destinatario, o bien no se ha encontrado una clave privada o certificado apropiados.
+SEC_ERROR_PKCS7_KEYALG_MISMATCH=No se puede descifrar: el algoritmo de cifrado de clave no coincide con su certificado.
+SEC_ERROR_PKCS7_BAD_SIGNATURE=Verificación de la firma fallida: o no se ha encontrado firmante, o se han encontrado demasiados firmantes, o los datos son inadecuados o corruptos.
+SEC_ERROR_UNSUPPORTED_KEYALG=Algoritmo de claves no admitido o desconocido.
+SEC_ERROR_DECRYPTION_DISALLOWED=No se puede descifrar: se ha cifrado usando un algoritmo o tamaño de clave no permitidos.
+XP_SEC_FORTEZZA_BAD_CARD=La tarjeta Fortezza no ha sido correctamente inicializada. Retírela y devuélvala a su emisor.
+XP_SEC_FORTEZZA_NO_CARD=No se han encontrado tarjetas Fortezza
+XP_SEC_FORTEZZA_NONE_SELECTED=No hay tarjeta Fortezza seleccionada
+XP_SEC_FORTEZZA_MORE_INFO=Seleccione una personalidad para obtener más información sobre
+XP_SEC_FORTEZZA_PERSON_NOT_FOUND=Personalidad no encontrada
+XP_SEC_FORTEZZA_NO_MORE_INFO=No hay más información en esa personalidad
+XP_SEC_FORTEZZA_BAD_PIN=PIN no válido
+XP_SEC_FORTEZZA_PERSON_ERROR=No se pueden inicializar las personalidades Fortezza.
+SEC_ERROR_NO_KRL=No se ha encontrado KRL para el certificado de este sitio.
+SEC_ERROR_KRL_EXPIRED=La KRL del certificado de este sitio ha caducado.
+SEC_ERROR_KRL_BAD_SIGNATURE=La KRL del certificado de este sitio tiene una firma no válida.
+SEC_ERROR_REVOKED_KEY=La clave para el certificado de este sitio ha sido revocada.
+SEC_ERROR_KRL_INVALID=La nueva KRL tiene un formato no válido.
+SEC_ERROR_NEED_RANDOM=biblioteca de seguridad: se necesitan datos aleatorios.
+SEC_ERROR_NO_MODULE=biblioteca de seguridad: ningún módulo de seguridad puede ejecutar la operación solicitada.
+SEC_ERROR_NO_TOKEN=La tarjeta o token de seguridad no existe, tiene que ser inicializada, o ha sido eliminada.
+SEC_ERROR_READ_ONLY=biblioteca de seguridad: base de datos de sólo lectura.
+SEC_ERROR_NO_SLOT_SELECTED=No se ha seleccionado una ranura o token.
+SEC_ERROR_CERT_NICKNAME_COLLISION=Ya existe un certificado con el mismo apodo.
+SEC_ERROR_KEY_NICKNAME_COLLISION=Ya existe una clave con el mismo apodo.
+SEC_ERROR_SAFE_NOT_CREATED=error al crear el objeto seguro
+SEC_ERROR_BAGGAGE_NOT_CREATED=error al crear el objeto de transporte (baggage object)
+XP_JAVA_REMOVE_PRINCIPAL_ERROR=No se puede eliminar el principal
+XP_JAVA_DELETE_PRIVILEGE_ERROR=No se puede eliminar el privilegio
+XP_JAVA_CERT_NOT_EXISTS_ERROR=Este principal no tiene un certificado
+SEC_ERROR_BAD_EXPORT_ALGORITHM=Un algoritmo requerido no está permitido.
+SEC_ERROR_EXPORTING_CERTIFICATES=Error al intentar exportar certificados.
+SEC_ERROR_IMPORTING_CERTIFICATES=Error al intentar importar certificados.
+SEC_ERROR_PKCS12_DECODING_PFX=No es posible importar. Error de decodificación. Archivo no válido.
+SEC_ERROR_PKCS12_INVALID_MAC=No es posible importar. MAC no válida. Contraseña incorrecta o archivo corrupto.
+SEC_ERROR_PKCS12_UNSUPPORTED_MAC_ALGORITHM=No es posible importar. Algoritmo MAC no admitido.
+SEC_ERROR_PKCS12_UNSUPPORTED_TRANSPORT_MODE=No es posible importar. Sólo se admiten los modos de privacidad e integridad de contraseña.
+SEC_ERROR_PKCS12_CORRUPT_PFX_STRUCTURE=No es posible importar. La estructura del archivo está corrupta.
+SEC_ERROR_PKCS12_UNSUPPORTED_PBE_ALGORITHM=No es posible importar. Algoritmo de cifrado no admitido.
+SEC_ERROR_PKCS12_UNSUPPORTED_VERSION=No es posible importar. Versión del archivo no admitida.
+SEC_ERROR_PKCS12_PRIVACY_PASSWORD_INCORRECT=No es posible importar. Contraseña de privacidad incorrecta.
+SEC_ERROR_PKCS12_CERT_COLLISION=No es posible importar. El mismo apodo existe ya en la base de datos.
+SEC_ERROR_USER_CANCELLED=El usuario ha presionado Cancelar.
+SEC_ERROR_PKCS12_DUPLICATE_DATA=No importado, ya en la base de datos.
+SEC_ERROR_MESSAGE_SEND_ABORTED=Mensaje no enviado.
+SEC_ERROR_INADEQUATE_KEY_USAGE=El uso de la clave del certificado es inapropiada para la operación pretendida.
+SEC_ERROR_INADEQUATE_CERT_TYPE=Tipo de certificado no aprobado para la aplicación.
+SEC_ERROR_CERT_ADDR_MISMATCH=La dirección en el certificado de firma no coincide con la dirección en las cabeceras del mensaje.
+SEC_ERROR_PKCS12_UNABLE_TO_IMPORT_KEY=No es posible importar. Error al intentar importar la clave privada.
+SEC_ERROR_PKCS12_IMPORTING_CERT_CHAIN=No es posible importar. Error al intentar importar la cadena de certificados.
+SEC_ERROR_PKCS12_UNABLE_TO_LOCATE_OBJECT_BY_NAME=No es posible exportar. No se puede localizar el certificado o clave por el apodo.
+SEC_ERROR_PKCS12_UNABLE_TO_EXPORT_KEY=No es posible exportar. La clave privada no ha podido ser localizada y exportada.
+SEC_ERROR_PKCS12_UNABLE_TO_WRITE=No es posible exportar. No se puede escribir el archivo de exportación.
+SEC_ERROR_PKCS12_UNABLE_TO_READ=No es posible importar. No se puede leer el archivo de importación.
+SEC_ERROR_PKCS12_KEY_DATABASE_NOT_INITIALIZED=No es posible exportar. La base de datos de claves está corrupta o ha sido borrada.
+SEC_ERROR_KEYGEN_FAIL=No es posible generar el par de claves pública/privada.
+SEC_ERROR_INVALID_PASSWORD=La contraseña introducida no es válida. Por favor, escoja una diferente.
+SEC_ERROR_RETRY_OLD_PASSWORD=Contraseña anterior introducida incorrectamente. Vuelva a intentarlo.
+SEC_ERROR_BAD_NICKNAME=El apodo del certificado ya está en uso.
+SEC_ERROR_NOT_FORTEZZA_ISSUER=La cadena FORTEZZA de la otra parte tiene un certificado que no es de FORTEZZA.
+SEC_ERROR_CANNOT_MOVE_SENSITIVE_KEY=No se puede mover una clave confidencial a la ranura donde se necesita.
+SEC_ERROR_JS_INVALID_MODULE_NAME=Nombre de módulo no válido.
+SEC_ERROR_JS_INVALID_DLL=Ruta o nombre de archivo de módulo no válido
+SEC_ERROR_JS_ADD_MOD_FAILURE=No es posible añadir el módulo
+SEC_ERROR_JS_DEL_MOD_FAILURE=No es posible eliminar el módulo
+SEC_ERROR_OLD_KRL=La nueva KRL no es posterior a la actual.
+SEC_ERROR_CKL_CONFLICT=La nueva CKL tiene un emisor diferente de la CKL actual. Borre la CKL actual.
+SEC_ERROR_CERT_NOT_IN_NAME_SPACE=La autoridad certificadora de este certificado no tiene permitido emitir un certificado con este nombre.
+SEC_ERROR_KRL_NOT_YET_VALID=La lista de revocación de claves para este certificado no es válida aún.
+SEC_ERROR_CRL_NOT_YET_VALID=La lista de revocación de certificados para este certificado no es válido aún.
+SEC_ERROR_UNKNOWN_CERT=No se ha podido encontrar el certificado solicitado.
+SEC_ERROR_UNKNOWN_SIGNER=No se ha podido encontrar el certificado del firmante.
+SEC_ERROR_CERT_BAD_ACCESS_LOCATION=La dirección del servidor de estado de certificado tiene un formato no válido.
+SEC_ERROR_OCSP_UNKNOWN_RESPONSE_TYPE=La respuesta OCSP no puede decodificarse totalmente; es de un tipo desconocido.
+SEC_ERROR_OCSP_BAD_HTTP_RESPONSE=El servidor OCSP ha devuelto datos HTTP inesperados/no válidos.
+SEC_ERROR_OCSP_MALFORMED_REQUEST=El servidor OCSP ha encontrado que la solicitud está corrupta o incorrectamente formada.
+SEC_ERROR_OCSP_SERVER_ERROR=El servidor OCSP ha experimentado un error interno.
+SEC_ERROR_OCSP_TRY_SERVER_LATER=El servidor OCSP sugiere que lo intente de nuevo más tarde.
+SEC_ERROR_OCSP_REQUEST_NEEDS_SIG=El servidor OCSP requiere una firma en esta solicitud.
+SEC_ERROR_OCSP_UNAUTHORIZED_REQUEST=El servidor OCSP ha rechazado esta solicitud como no autorizada.
+SEC_ERROR_OCSP_UNKNOWN_RESPONSE_STATUS=El servidor OCSP ha devuelto un estado irreconocible.
+SEC_ERROR_OCSP_UNKNOWN_CERT=El servidor OCSP no tiene estado para el certificado.
+SEC_ERROR_OCSP_NOT_ENABLED=Debe activar OCSP antes de ejecutar esta operación.
+SEC_ERROR_OCSP_NO_DEFAULT_RESPONDER=Debe establecer el respondedor OCSP predeterminado antes de ejecutar esta operación.
+SEC_ERROR_OCSP_MALFORMED_RESPONSE=La respuesta del servidor OCSP estaba corrupta o incorrectamente formada.
+SEC_ERROR_OCSP_UNAUTHORIZED_RESPONSE=El firmante de la respuesta OCSP no está autorizado a proporcionar el estado de este certificado.
+SEC_ERROR_OCSP_FUTURE_RESPONSE=La respuesta OCSP no es válida aún (contiene una fecha en el futuro).
+SEC_ERROR_OCSP_OLD_RESPONSE=La respuesta OCSP contiene información no actualizada.
+SEC_ERROR_DIGEST_NOT_FOUND=No se ha encontrado el resumen CMS o PKCS #7 en el mensaje firmado.
+SEC_ERROR_UNSUPPORTED_MESSAGE_TYPE=El tipo de mensaje CMS o PKCS #7 no está admitido.
+SEC_ERROR_MODULE_STUCK=El módulo PKCS #11 no se ha podido eliminar porque está aún en uso.
+SEC_ERROR_BAD_TEMPLATE=No se ha podido decodificar los datos ASN.1. La plantilla especificada no era válida.
+SEC_ERROR_CRL_NOT_FOUND=No se ha encontrado CRL apropiada.
+SEC_ERROR_REUSED_ISSUER_AND_SERIAL=Está intentando importar un certificado con el mismo número de serie/emisor que un certificado existente, pero no es el mismo certificado.
+SEC_ERROR_BUSY=NSS no se pudo cerrar. Hay objetos aún en uso.
+SEC_ERROR_EXTRA_INPUT=El mensaje codificado con DER contenía datos extra no usados.
+SEC_ERROR_UNSUPPORTED_ELLIPTIC_CURVE=Curva elíptica no admitida.
+SEC_ERROR_UNSUPPORTED_EC_POINT_FORM=Forma de punto de curva elíptica no admitida.
+SEC_ERROR_UNRECOGNIZED_OID=Identificador de objeto no reconocido.
+SEC_ERROR_OCSP_INVALID_SIGNING_CERT=Certificado de firma OCSP no valido en respuesta OCSP.
+SEC_ERROR_REVOKED_CERTIFICATE_CRL=El certificado está revocado en la lista de revocación de certificados del emisor.
+SEC_ERROR_REVOKED_CERTIFICATE_OCSP=El respondedor OCSP del emisor informa que el certificado está revocado.
+SEC_ERROR_CRL_INVALID_VERSION=La lista de revocación de certificados del emisor tiene un número de versión desconocido.
+SEC_ERROR_CRL_V1_CRITICAL_EXTENSION=La lista de revocación de certificados V1 del emisor tiene una extensión crítica.
+SEC_ERROR_CRL_UNKNOWN_CRITICAL_EXTENSION=La lista de revocación de certificados V2 del emisor tiene una extensión crítica desconocida.
+SEC_ERROR_UNKNOWN_OBJECT_TYPE=Tipo de objeto especificado desconocido.
+SEC_ERROR_INCOMPATIBLE_PKCS11=El controlador PKCS #11 viola la especificación en una forma incompatible.
+SEC_ERROR_NO_EVENT=No hay disponible ningún nuevo evento de ranura en este momento.
+SEC_ERROR_CRL_ALREADY_EXISTS=La CRL ya existe.
+SEC_ERROR_NOT_INITIALIZED=NSS no está inicializado.
+SEC_ERROR_TOKEN_NOT_LOGGED_IN=La operación ha fallado porque el token PKCS#11 no ha iniciado sesión.
+SEC_ERROR_OCSP_RESPONDER_CERT_INVALID=El certificado configurado del respondedor OCSP no es válido.
+SEC_ERROR_OCSP_BAD_SIGNATURE=La respuesta OCSP tiene una firma no válida.
+SEC_ERROR_OUT_OF_SEARCH_LIMITS=La búsqueda de validación del certificado está fuera de los límites de búsqueda
+SEC_ERROR_INVALID_POLICY_MAPPING=El mapeo de políticas contiene anypolicy
+SEC_ERROR_POLICY_VALIDATION_FAILED=La cadena de certificados no cumple la validación de políticas
+SEC_ERROR_UNKNOWN_AIA_LOCATION_TYPE=Tipo de dirección desconocido en la extensión de certificado AIA
+SEC_ERROR_BAD_HTTP_RESPONSE=El servidor ha devuelto una respuesta HTTP no válida
+SEC_ERROR_BAD_LDAP_RESPONSE=El servidor ha devuelto una respuesta LDAP no válida
+SEC_ERROR_FAILED_TO_ENCODE_DATA=Fallo al codificar datos con el codificador ASN1
+SEC_ERROR_BAD_INFO_ACCESS_LOCATION=Dirección de acceso a información no válida en extensión de certificado
+SEC_ERROR_LIBPKIX_INTERNAL=Ha ocurrido un error interno Libpkix durante la validación del certificado.
+SEC_ERROR_PKCS11_GENERAL_ERROR=Un módulo PKCS #11 ha devuelto CKR_GENERAL_ERROR, indicando que ha sucedido un error no recuperable.
+SEC_ERROR_PKCS11_FUNCTION_FAILED=Un módulo PKCS #11 ha devuelto CKR_FUNCTION_FAILED, indicando que la función solicitada no se ha podido ejecutar. Si se intenta de nuevo la misma operación podría tener éxito.
+SEC_ERROR_PKCS11_DEVICE_ERROR=Un módulo PKCS #11 ha devuelto CKR_DEVICE_ERROR, indicando que ha ocurrido un problema con el token o slot.
+SEC_ERROR_BAD_INFO_ACCESS_METHOD=Método de acceso a información desconocido en extensión de certificado.
+SEC_ERROR_CRL_IMPORT_FAILED=Error al intentar importar una CRL.
+SEC_ERROR_EXPIRED_PASSWORD=La contraseña ha caducado.
+SEC_ERROR_LOCKED_PASSWORD=La contraseña está bloqueada.
+SEC_ERROR_UNKNOWN_PKCS11_ERROR=Error PKCS #11 desconocido.
+SEC_ERROR_BAD_CRL_DP_URL=URL no válida o no admitida en el nombre del punto de distribución de la CRL.
+SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED=El certificado se firmó usando un algoritmo de firma que está desactivado porque no es seguro.
+MOZILLA_PKIX_ERROR_KEY_PINNING_FAILURE=Este servidor usa key pinning (HPKP) pero no se ha podido construir una cadena de certificados confiables que coincida con el pinset. Las violaciones de key pinning no se pueden solventar.
+MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY=El servidor usa un certificado con una extensión básica de restricciones que lo identifica como autoridad de certificación. Esto no debería ser el caso para un certificado emitido correctamente.
+MOZILLA_PKIX_ERROR_INADEQUATE_KEY_SIZE=El servidor ha presentado un certificado con un tamaño de clave que es demasiado pequeño para establecer una conexión segura.
+MOZILLA_PKIX_ERROR_V1_CERT_USED_AS_CA=Para emitir el certificado del servidor se ha usado un certificado X.509 versión 1 que no es confiable. Los certificados X.509 versión 1 están desaprobados no deben usarse para firmar otros certificados.
+MOZILLA_PKIX_ERROR_NOT_YET_VALID_CERTIFICATE=El servidor ha presentado un certificado que aún no es válido.
+MOZILLA_PKIX_ERROR_NOT_YET_VALID_ISSUER_CERTIFICATE=Se ha usado un certificado que aún no es válido para emitir el certificado del servidor.
+MOZILLA_PKIX_ERROR_SIGNATURE_ALGORITHM_MISMATCH=El algoritmo de firma en el campo de firma del certificado no concuerda con el algoritmo en su campo signatureAlgorithm.
+MOZILLA_PKIX_ERROR_OCSP_RESPONSE_FOR_CERT_MISSING=La respuesta OCSP no incluye un estado para el certificado que se está verificando.
+MOZILLA_PKIX_ERROR_VALIDITY_TOO_LONG=El servidor ha presentado un certificado con una validez excesivamente amplia.
+MOZILLA_PKIX_ERROR_REQUIRED_TLS_FEATURE_MISSING=Falta una característica necesaria de TLS.
+MOZILLA_PKIX_ERROR_INVALID_INTEGER_ENCODING=El servidor ha presentado un certificado que contiene una codificación no válida de un entero. Las causas más habituales incluyen números de serie negativos, módulos RSA negativos y codificaciones que son más largas de lo necesario.
+MOZILLA_PKIX_ERROR_EMPTY_ISSUER_NAME=El servidor ha presentado un certificado con un nombre distinguido de emisor vacío.
+MOZILLA_PKIX_ERROR_ADDITIONAL_POLICY_CONSTRAINT_FAILED=Una restricción de política adicional falló al validar este certificado.
+MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT=No se confía en el certificado porque está autofirmado.
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/pipnss/pipnss.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/pipnss/pipnss.properties
new file mode 100644
index 0000000000..6e0ca4b7b5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Introduzca la contraseña para el token PKCS#11 %S.
+
+CertPasswordPromptDefault=Introduzca su contraseña maestra.
+
+# 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 certificados raíz
+# 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=Serv. criptografía interna PSM
+# LOCALIZATION NOTE (TokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+TokenDescription=Serv. criptografía genéricos
+# LOCALIZATION NOTE (PrivateTokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+PrivateTokenDescription=Disp. software de seguridad
+# LOCALIZATION NOTE (SlotDescription): string limit is 64 bytes after conversion
+# to UTF-8.
+# length_limit = 64 bytes
+SlotDescription=Servicios de cifrado interno PSM
+# LOCALIZATION NOTE (PrivateSlotDescription): string limit is 64 bytes after
+# conversion to UTF-8.
+# length_limit = 64 bytes
+PrivateSlotDescription=Claves privadas del PSM
+# LOCALIZATION NOTE (Fips140TokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+Fips140TokenDescription=Disp. seguridad software (FIPS)
+# LOCALIZATION NOTE (Fips140SlotDescription): string limit is 64 bytes after
+# conversion to UTF-8.
+# length_limit = 64 bytes
+Fips140SlotDescription=Serv. FIPS 140 criptogr., de clave y cert.
+
+# LOCALIZATION NOTE (nick_template): $1s is the common name from a cert (e.g. "Mozilla"), $2s is the CA name (e.g. VeriSign)
+nick_template=%1$s’s %2$s ID
+
+CertDumpKUSign=Firmando
+CertDumpKUNonRep=No-repudio
+CertDumpKUEnc=Cifrado de la clave
+CertDumpKUDEnc=Cifrado de datos
+CertDumpKUKA=Aceptación de la clave
+CertDumpKUCertSign=Firmante del certificado
+CertDumpKUCRLSigner=Firmante de la CRL
+
+PSMERR_SSL_Disabled=No se puede conectar de forma segura porque el protocolo SSL ha sido desactivado.
+PSMERR_SSL2_Disabled=No se puede conectar de forma segura porque el sitio usa una versión antigua e insegura del protocolo SSL.
+PSMERR_HostReusedIssuerSerial=Ha recibido un certificado no válido. Contacte con el administrador o dirección de correo electrónico de contacto del servidor y facilíteles la siguiente información:\n\nSu certificado contiene el mismo número de serie que otro certificado emitido por la autoridad de certificación. Obtenga un nuevo certificado que contenga un número de serie único.
+
+# LOCALIZATION NOTE (SSLConnectionErrorPrefix2): %1$S is the host string, %2$S is more detailed information (localized as well).
+SSLConnectionErrorPrefix2=Ha ocurrido un error al conectar con %1$S. %2$S\n
+
+certErrorIntro=%S usa un certificado de seguridad no válido.
+
+certErrorTrust_SelfSigned=No se confía en el certificado porque está autofirmado.
+certErrorTrust_UnknownIssuer=No se confía en el certificado porque el certificado emisor es desconocido.
+certErrorTrust_UnknownIssuer2=El servidor podría no estar enviando los certificados intermedios apropiados.
+certErrorTrust_UnknownIssuer3=Puede ser necesario importar un certificado raíz adicional.
+certErrorTrust_CaInvalid=No se confía en el certificado porque fue emitido por un certificado CA no válido.
+certErrorTrust_Issuer=No se confía en el certificado porque no se confía en el certificado emisor.
+certErrorTrust_SignatureAlgorithmDisabled=No se confía en el certificado porque ha sido firmado usando un algoritmo de firma que fue desactivado porque es inseguro.
+certErrorTrust_ExpiredIssuer=No se confía en el certificado porque el certificado emisor ha caducado.
+certErrorTrust_Untrusted=El certificado no procede de una fuente confiable.
+certErrorTrust_MitM=Un proxy TLS está interceptando su conexión. Si puede, desinstálelo o configure su dispositivo para que confíe en el certificado raíz.
+
+certErrorMismatch=El certificado no es válido para el nombre %S.
+# LOCALIZATION NOTE (certErrorMismatchSinglePrefix): %S is replaced by the domain for which the certificate is valid
+certErrorMismatchSinglePrefix=El certificado solo es válido para %S.
+certErrorMismatchMultiple=El certificado sólo es válido para los siguientes nombres:
+
+# LOCALIZATION NOTE (certErrorExpiredNow): Do not translate %1$S (date+time of expired certificate) or %2$S (current date+time)
+certErrorExpiredNow=El certificado está caducado desde %1$S. La fecha y hora actual es %2$S.
+
+# LOCALIZATION NOTE (certErrorNotYetValidNow): Do not translate %1$S (date+time certificate will become valid) or %2$S (current date+time)
+certErrorNotYetValidNow=El certificado no será válido hasta %1$S. La fecha y hora actual es %2$S.
+
+certErrorMitM=Los sitios web demuestran su identidad a través de certificados, que son emitidos por autoridades de certificación.
+# LOCALIZATION NOTE (certErrorMitM2): %S is brandShortName
+certErrorMitM2=%S está respaldado por la organización sin ánimo de lucro Mozilla, que administra un almacén de autoridad de certificados (CA) completamente abierto. El almacén de CA ayuda a garantizar que las autoridades de certificación siguen las mejores prácticas para la seguridad del usuario.
+# LOCALIZATION NOTE (certErrorMitM3): %S is brandShortName
+certErrorMitM3=%S usa el almacén de Mozilla CA para verificar que la conexión sea segura, en lugar de los certificados proporcionados por el sistema operativo del usuario. Por lo tanto, si un programa antivirus o una red está interceptando una conexión con un certificado de seguridad emitido por una CA que no se encuentra en el almacén de Mozilla CA, la conexión se considera insegura.
+
+certErrorSymantecDistrustAdministrator=Puede avisar al administrador del sitio web acerca de este problema.
+
+# LOCALIZATION NOTE (certErrorCodePrefix3): %S is replaced by the error code.
+certErrorCodePrefix3=Código de error: %S
+
+P12DefaultNickname=Certificado importado
+CertUnknown=Desconocido
+CertNoEmailAddress=(sin dirección de correo)
+CaCertExists=Este certificado ya está instalado como una autoridad certificadora.
+NotACACert=Esta no es una autoridad certificadora, de modo que no puede importarse en la lista de autoridades certificadoras.
+UserCertIgnoredNoPrivateKey=Este certificado personal no puede ser instalado porque Vd. no posee la correspondiente clave privada que se creó cuando se solicitó el certificado.
+UserCertImported=Su certificado personal ha sido instalado. Debería conservar una copia de seguridad de este certificado.
+CertOrgUnknown=(Desconocido)
+CertNotStored=(No guardado)
+CertExceptionPermanent=Permanente
+CertExceptionTemporary=Temporal
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/pippki/pippki.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/pippki/pippki.properties
new file mode 100644
index 0000000000..e059929996
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/pippki/pippki.properties
@@ -0,0 +1,38 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+newCAMessage1 = ¿Quiere confiar en “%S” para los siguientes propósitos?
+unnamedCA = Autoridad certificadora (sin nombre)
+
+getPKCS12FilePasswordMessage = Introduzca la contraseña que se usó para cifrar esta copia de respaldo del certificado:
+
+clientAuthRemember = Recordar esta decisión
+clientAuthNickAndSerial = %1$S [%2$S]
+clientAuthHostnameAndPort = %1$S:%2$S
+clientAuthMessage1 = Organización: “%S”
+clientAuthMessage2 = Emitido bajo: “%S”
+clientAuthIssuedTo = Emitido para: %1$S
+clientAuthSerial = Número de serie: %1$S
+clientAuthValidityPeriod = Válido de %1$S a %2$S
+clientAuthKeyUsages = Usos de la clave: %1$S
+clientAuthEmailAddresses = Direcciones de correo: %1$S
+clientAuthIssuedBy = Emitido por: %1$S
+clientAuthStoredOn = Guardado en: %1$S
+
+pageInfo_NoEncryption = Conexión sin cifrar
+pageInfo_Privacy_None1 = El sitio web %S no admite cifrado para la página que está viendo.
+pageInfo_Privacy_None2 = La información enviada por Internet sin cifrar puede ser vista por otras personas.\u0020
+pageInfo_Privacy_None4 = La página que está viendo no fue cifrada antes de transmitirse por Internet.
+pageInfo_EncryptionWithBitsAndProtocol = Conexión cifrada (%1$S, claves de %2$S bits, %3$S)
+pageInfo_BrokenEncryption = Cifrado estropeado (%1$S, claves de %2$S bits, %3$S)
+pageInfo_Privacy_Encrypted1 = La página que está viendo fue cifrada antes de transmitirse por Internet.
+pageInfo_Privacy_Encrypted2 = El cifrado dificulta que personas no autorizadas vean la información que viaja entre sistemas. Es, por tanto, improbable que nadie lea esta página mientras viajó por la red.
+pageInfo_MixedContent = Conexión parcialmente cifrada
+pageInfo_MixedContent2 = Parte de la página que está viendo no estaba cifrada antes de ser transmitida por Internet.
+pageInfo_WeakCipher = Su conexión a este sitio web usa cifrado débil y no es privado. Otras personas pueden ver su información o modificar el comportamiento del sitio web.
+pageInfo_CertificateTransparency_Compliant = Este sitio web cumple con la directiva de transparencia de certificados.
+
+password_not_set = (sin definir)
+enable_fips = Habilitar FIPS
+
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/places/places.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/places/places.properties
new file mode 100644
index 0000000000..75c4115a0d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/locale/es-ES/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=Menú Marcadores
+BookmarksToolbarFolderTitle=Barra de herramientas de marcadores
+OtherBookmarksFolderTitle=Otros marcadores
+TagsFolderTitle=Etiquetas
+MobileBookmarksFolderTitle=Marcadores móviles
+
+OrganizerQueryHistory=Historial
+OrganizerQueryDownloads=Descargas
+OrganizerQueryAllBookmarks=Todos los marcadores
+
+# LOCALIZATION NOTE (dateName):
+# These are used to generate history containers when history is grouped by date
+finduri-AgeInDays-is-0=Hoy
+finduri-AgeInDays-is-1=Ayer
+finduri-AgeInDays-is=Hace %S días
+finduri-AgeInDays-last-is=Últimos %S días
+finduri-AgeInDays-isgreater=Anterior a %S días
+finduri-AgeInMonths-is-0=Este mes
+finduri-AgeInMonths-isgreater=Anterior a %S meses
+
+# LOCALIZATION NOTE (localFiles):
+# This is used to generate local files container when history is grouped by site
+localhost=(archivos locales)
+
+# LOCALIZATION NOTE
+# The string is used for showing file size of each backup in the "fileRestorePopup" popup
+# %1$S is the file size
+# %2$S is the file size unit
+backupFileSizeText=%1$S %2$S
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/pdfviewer/chrome.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/pdfviewer/chrome.properties
new file mode 100644
index 0000000000..236ec9f0bb
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/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 podría no mostrarse correctamente.
+unsupported_feature_forms=Este documento PDF contiene formularios. La cumplimentación de los campos de formularios no está implementada.
+unsupported_feature_signatures=Este documento PDF contiene firmas digitales. No se admite la validación de firmas.
+open_with_different_viewer=Abrir con un visor diferente
+open_with_different_viewer.accessKey=o
diff --git a/thunderbird-l10n/es-ES/chrome/es-ES/locale/pdfviewer/viewer.properties b/thunderbird-l10n/es-ES/chrome/es-ES/locale/pdfviewer/viewer.properties
new file mode 100644
index 0000000000..9226ec9ea8
--- /dev/null
+++ b/thunderbird-l10n/es-ES/chrome/es-ES/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 siguiente
+next_label=Siguiente
+
+# 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=Reducir
+zoom_out_label=Reducir
+zoom_in.title=Aumentar
+zoom_in_label=Aumentar
+zoom.title=Tamaño
+presentation_mode.title=Cambiar al modo presentación
+presentation_mode_label=Modo presentación
+open_file.title=Abrir archivo
+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=Descargar
+# 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=Descargar
+bookmark1.title=Página actual (Ver URL de la página actual)
+bookmark1_label=Página actual
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Abrir en aplicación
+# 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 en aplicación
+
+# Secondary toolbar and context menu
+tools.title=Herramientas
+tools_label=Herramientas
+first_page.title=Ir a la primera página
+first_page_label=Ir a la primera página
+last_page.title=Ir a la última página
+last_page_label=Ir a la última página
+page_rotate_cw.title=Rotar en sentido horario
+page_rotate_cw_label=Rotar en sentido horario
+page_rotate_ccw.title=Rotar en sentido antihorario
+page_rotate_ccw_label=Rotar en sentido antihorario
+
+cursor_text_select_tool.title=Activar herramienta de selección de texto
+cursor_text_select_tool_label=Herramienta de selección de texto
+cursor_hand_tool.title=Activar herramienta de mano
+cursor_hand_tool_label=Herramienta de mano
+
+scroll_page.title=Usar desplazamiento de página
+scroll_page_label=Desplazamiento de página
+scroll_vertical.title=Usar desplazamiento vertical
+scroll_vertical_label=Desplazamiento vertical
+scroll_horizontal.title=Usar desplazamiento horizontal
+scroll_horizontal_label=Desplazamiento horizontal
+scroll_wrapped.title=Usar desplazamiento en bloque
+scroll_wrapped_label=Desplazamiento en bloque
+
+spread_none.title=No juntar páginas en vista de libro
+spread_none_label=Vista de libro
+spread_odd.title=Juntar las páginas partiendo de una con número impar
+spread_odd_label=Vista de libro impar
+spread_even.title=Juntar las páginas partiendo de una con número par
+spread_even_label=Vista de libro par
+
+# Document properties dialog box
+document_properties.title=Propiedades del documento…
+document_properties_label=Propiedades del documento…
+document_properties_file_name=Nombre de archivo:
+document_properties_file_size=Tamaño de archivo:
+# 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=Asunto:
+document_properties_keywords=Palabras clave:
+document_properties_creation_date=Fecha de creación:
+document_properties_modification_date=Fecha de modificación:
+# 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=Creador:
+document_properties_producer=Productor PDF:
+document_properties_version=Versión PDF:
+document_properties_page_count=Número de páginas:
+document_properties_page_size=Tamaño de la página:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=vertical
+document_properties_page_size_orientation_landscape=horizontal
+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 de la web:
+document_properties_linearized_yes=Sí
+document_properties_linearized_no=No
+document_properties_close=Cerrar
+
+print_progress_message=Preparando documento para impresión…
+# 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=Cambiar barra lateral
+toggle_sidebar_notification2.title=Alternar barra lateral (el documento contiene esquemas/adjuntos/capas)
+toggle_sidebar_label=Cambiar barra lateral
+document_outline.title=Mostrar resumen del documento (doble clic para expandir/contraer todos los elementos)
+document_outline_label=Resumen de documento
+attachments.title=Mostrar adjuntos
+attachments_label=Adjuntos
+layers.title=Mostrar capas (doble clic para restablecer todas las capas al estado predeterminado)
+layers_label=Capas
+thumbs.title=Mostrar miniaturas
+thumbs_label=Miniaturas
+current_outline_item.title=Encontrar elemento de esquema actual
+current_outline_item_label=Elemento de esquema actual
+findbar.title=Buscar en el documento
+findbar_label=Buscar
+
+additional_layers=Capas adicionales
+# 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 de la página {{page}}
+
+# Find panel button title and messages
+find_input.title=Buscar
+find_input.placeholder=Buscar en el documento…
+find_previous.title=Encontrar la anterior aparición de la frase
+find_previous_label=Anterior
+find_next.title=Encontrar la siguiente aparición de esta frase
+find_next_label=Siguiente
+find_highlight=Resaltar todos
+find_match_case_label=Coincidencia de mayús./minús.
+find_match_diacritics_label=Coincidir diacríticos
+find_entire_word_label=Palabras completas
+find_reached_top=Se alcanzó el inicio del documento, se continúa desde el final
+find_reached_bottom=Se alcanzó el final del documento, se continúa desde el inicio
+# 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}} coincidencia
+find_match_count[two]={{current}} de {{total}} coincidencias
+find_match_count[few]={{current}} de {{total}} coincidencias
+find_match_count[many]={{current}} de {{total}} coincidencias
+find_match_count[other]={{current}} de {{total}} coincidencias
+# 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]=Más de {{limit}} coincidencias
+find_match_count_limit[one]=Más de {{limit}} coincidencia
+find_match_count_limit[two]=Más de {{limit}} coincidencias
+find_match_count_limit[few]=Más de {{limit}} coincidencias
+find_match_count_limit[many]=Más de {{limit}} coincidencias
+find_match_count_limit[other]=Más de {{limit}} coincidencias
+find_not_found=Frase no encontrada
+
+# Predefined zoom values
+page_scale_width=Anchura de la página
+page_scale_fit=Ajuste de la página
+page_scale_auto=Tamaño automático
+page_scale_actual=Tamaño real
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=Ocurrió un error al cargar el PDF.
+invalid_file_error=Fichero PDF no válido o corrupto.
+missing_file_error=No hay fichero PDF.
+unexpected_response_error=Respuesta inesperada del servidor.
+rendering_error=Ocurrió un error al renderizar la 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=[Anotación {{type}}]
+password_label=Introduzca la contraseña para abrir este archivo PDF.
+password_invalid=Contraseña no válida. Vuelva a intentarlo.
+password_ok=Aceptar
+password_cancel=Cancelar
+
+printing_not_supported=Advertencia: Imprimir no está totalmente soportado por este navegador.
+printing_not_ready=Advertencia: Este PDF no se ha cargado completamente para poder imprimirse.
+web_fonts_disabled=Las tipografías web están desactivadas: es imposible usar las tipografías PDF embebidas.
+
+# Editor
+editor_free_text2.title=Texto
+editor_free_text2_label=Texto
+editor_ink2.title=Dibujar
+editor_ink2_label=Dibujar
+
+editor_stamp1.title=Añadir o editar imágenes
+editor_stamp1_label=Añadir o editar imágenes
+
+free_text2_default_content=Empezar a escribir…
+
+# Editor Parameters
+editor_free_text_color=Color
+editor_free_text_size=Tamaño
+editor_ink_color=Color
+editor_ink_thickness=Grosor
+editor_ink_opacity=Opacidad
+
+editor_stamp_add_image_label=Añadir imagen
+editor_stamp_add_image.title=Añadir imagen
+
+# Editor aria
+editor_free_text2_aria_label=Editor de texto
+editor_ink2_aria_label=Editor de dibujos
+editor_ink_canvas_aria_label=Imagen creada por el usuario
+
+# 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 el texto alternativo
+editor_alt_text_dialog_label=Eligir una opción
+editor_alt_text_dialog_description=El texto alternativo (texto alternativo) ayuda cuando las personas no pueden ver la imagen o cuando no se carga.
+editor_alt_text_add_description_label=Añadir una descripción
+editor_alt_text_add_description_description=Intente escribir 1 o 2 frases que describan el tema, el entorno o las acciones.
+editor_alt_text_mark_decorative_label=Marcar como decorativa
+editor_alt_text_mark_decorative_description=Se utiliza para imágenes ornamentales, como bordes o marcas de agua.
+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 ejemplo: “Un joven se sienta a la mesa a comer”
+
+# 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=Esquina superior izquierda — 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=Borde superior en el medio — 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=Esquina superior derecha — 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=Borde derecho en el medio — 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=Esquina inferior derecha — 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=Borde inferior en el medio — 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=Esquina inferior izquierda — 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=Borde izquierdo en el medio — redimensionar
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/branding/brand.ftl b/thunderbird-l10n/es-ES/localization/es-ES/branding/brand.ftl
new file mode 100644
index 0000000000..40d607c6f2
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/branding/brand.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Thunderbird Brand
+##
+## Thunderbird must be treated as a brand, and kept in English.
+## It cannot be:
+## - Transliterated.
+## - Translated.
+##
+## Reference: https://www.mozilla.org/styleguide/communications/translation/
+
+-brand-shorter-name = Thunderbird
+-brand-short-name = Thunderbird
+-brand-full-name = Mozilla Thunderbird
+# This brand name can be used in messages where the product name needs to
+# remain unchanged across different versions (Daily, Beta, etc.).
+-brand-product-name = Thunderbird
+-vendor-short-name = Mozilla
+trademarkInfo = Mozilla Thunderbird y los logotipos de Thunderbird son marcas comerciales de la Fundación Mozilla.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/browser/appExtensionFields.ftl b/thunderbird-l10n/es-ES/localization/es-ES/browser/appExtensionFields.ftl
new file mode 100644
index 0000000000..bc39c84cf5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 del sistema — Automático
+extension-default-theme-description = Seguir la configuración del sistema operativo para botones, menús y ventanas.
+
+extension-thunderbird-compact-light-name = Claro
+extension-thunderbird-compact-light-description = Un tema con un esquema de color claro.
+
+extension-thunderbird-compact-dark-name = Oscuro
+extension-thunderbird-compact-dark-description = Un tema con un esquema de color oscuro.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/browser/branding/brandings.ftl b/thunderbird-l10n/es-ES/localization/es-ES/browser/branding/brandings.ftl
new file mode 100644
index 0000000000..9ada8da73a
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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/es-ES/localization/es-ES/browser/components/mozFiveStar.ftl b/thunderbird-l10n/es-ES/localization/es-ES/browser/components/mozFiveStar.ftl
new file mode 100644
index 0000000000..f9f2dc0357
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Calificación de { NUMBER($rating, maximumFractionDigits: 1) } sobre 5
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/browser/components/mozSupportLink.ftl b/thunderbird-l10n/es-ES/localization/es-ES/browser/components/mozSupportLink.ftl
new file mode 100644
index 0000000000..f788d8ff90
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 más
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-context-menus.ftl b/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000..b1a33e0f47
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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/es-ES/localization/es-ES/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000..f7684e0d8d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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] ¿Realmente quiere eliminar este evento?
+ *[other] ¿Realmente quiere eliminar { $count } eventos?
+ }
+calendar-delete-task-prompt-title =
+ { $count ->
+ [one] Eliminar tarea
+ *[other] Eliminar tareas
+ }
+calendar-delete-task-prompt-message =
+ { $count ->
+ [one] ¿Realmente quiere eliminar esta tarea?
+ *[other] ¿Realmente quiere eliminar { $count } tareas?
+ }
+calendar-delete-item-prompt-title =
+ { $count ->
+ [one] Eliminar elemento
+ *[other] Eliminar elementos
+ }
+calendar-delete-item-prompt-message =
+ { $count ->
+ [one] ¿Realmente quiere eliminar este elemento?
+ *[other] ¿Realmente quiere eliminar { $count } elementos?
+ }
+calendar-delete-prompt-disable-message = No preguntarme de nuevo.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-editable-item.ftl b/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000..e3985f4fc9
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Privacidad: Evento privado
+calendar-editable-item-privacy-icon-confidential =
+ .alt = Privacidad: Mostrar solo fecha y hora
+calendar-editable-item-recurrence =
+ .alt = Periódico
+calendar-editable-item-recurrence-exception =
+ .alt = Excepción a la periodicidad
+calendar-editable-item-todo-icon-task =
+ .alt = Tarea
+calendar-editable-item-todo-icon-completed-task =
+ .alt = Tareas completada
+calendar-editable-item-multiday-event-icon-start =
+ .alt = Comienza el evento de varios días
+calendar-editable-item-multiday-event-icon-continue =
+ .alt = Continúa el evento de varios días
+calendar-editable-item-multiday-event-icon-end =
+ .alt = Termina el evento de varios días
+calendar-editable-item-reminder-icon-alarm =
+ .alt = Se ha programado una alerta de recordatorio
+calendar-editable-item-reminder-icon-suppressed-alarm =
+ .alt = Hay una alerta de recordatorio programada, pero actualmente está suprimida.
+calendar-editable-item-reminder-icon-email =
+ .alt = Se ha programado un correo electrónico de recordatorio
+calendar-editable-item-reminder-icon-audio =
+ .alt = Se ha programado una alerta con audio de recordatorio
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000..6fab8a47a5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 una alerta
+calendar-event-reminder-icon-email =
+ .alt = Enviar un correo electrónico
+calendar-event-reminder-icon-audio =
+ .alt = Reproducir una alerta con audio
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-event-listing.ftl b/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-event-listing.ftl
new file mode 100644
index 0000000000..c9d1cc44fa
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Cerrar búsqueda y lista de eventos
+
+## Listing columns
+
+calendar-event-listing-column-calendar-name =
+ .label = Nombre del calendario
+ .tooltiptext = Ordenar por nombre de calendario
+calendar-event-listing-column-category =
+ .label = Categoría
+ .tooltiptext = Ordenar por categoría
+# 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 = Hecho
+ .tooltiptext = Ordenar por progreso
+calendar-event-listing-column-completed-date =
+ .label = Completado
+ .tooltiptext = Ordenar por fecha en la que se completó
+calendar-event-listing-column-due-date =
+ .label = Vencimiento
+ .tooltiptext = Ordenar por fecha límite
+calendar-event-listing-column-end-date =
+ .label = Fin
+ .tooltiptext = Ordenar por fecha final
+calendar-event-listing-column-location =
+ .label = Lugar
+ .tooltiptext = Ordenar por ubicación
+calendar-event-listing-column-percent-complete =
+ .label = % completo
+ .tooltiptext = Ordenar por % progreso
+calendar-event-listing-column-priority =
+ .label = Prioridad
+ .tooltiptext = Ordenar por prioridad
+calendar-event-listing-column-start-date =
+ .label = Inicio
+ .tooltiptext = Ordenar por fecha de inicio
+calendar-event-listing-column-status =
+ .label = Estado
+ .tooltiptext = Ordenar por estado
+calendar-event-listing-column-time-until-due =
+ .label = Vence en
+ .tooltiptext = Ordenar por tiempo hasta vencimiento
+calendar-event-listing-column-title =
+ .label = Título
+ .tooltiptext = Ordenar por tamaño
+
+## Interval dropdown options
+
+calendar-event-listing-interval-calendar-month =
+ .label = Eventos en este mes del calendario
+calendar-event-listing-interval-current-view =
+ .label = Eventos en la vista actual
+calendar-event-listing-interval-next-7-days =
+ .label = Eventos en los próximos 7 días
+calendar-event-listing-interval-next-14-days =
+ .label = Eventos en los próximos 14 días
+calendar-event-listing-interval-next-31-days =
+ .label = Eventos en los próximos 31 días
+calendar-event-listing-interval-next-6-months =
+ .label = Eventos en los próximos 6 meses
+calendar-event-listing-interval-next-12-months =
+ .label = Eventos en los próximos 12 meses
+calendar-event-listing-interval-selected-day =
+ .label = Día seleccionado
+calendar-event-listing-interval-today =
+ .label = Eventos de hoy
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-ics-file-dialog.ftl b/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000..bf036d650d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 y tareas del calendario
+calendar-ics-file-window-title = Importar eventos y tareas del calendario
+calendar-ics-file-dialog-import-event-button-label = Importar evento
+calendar-ics-file-dialog-import-task-button-label = Importar tarea
+calendar-ics-file-dialog-2 =
+ .buttonlabelaccept = Importar todo
+calendar-ics-file-accept-button-ok-label = Aceptar
+calendar-ics-file-cancel-button-close-label = Cerrar
+calendar-ics-file-dialog-message-2 = Importar desde archivo:
+calendar-ics-file-dialog-calendar-menu-label = Importar en el calendario:
+calendar-ics-file-dialog-items-loading-message =
+ .value = Cargando elementos…
+calendar-ics-file-dialog-search-input =
+ .placeholder = Filtrar elementos…
+calendar-ics-file-dialog-sort-start-ascending =
+ .label = Ordenar por fecha inicial (primera a última)
+calendar-ics-file-dialog-sort-start-descending =
+ .label = Ordenar por fecha inicial (última a primera)
+# "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 = Importando…
+calendar-ics-file-import-success = ¡Importado correctamente!
+calendar-ics-file-import-error = Ha ocurrido un error y ha fallado la importación.
+calendar-ics-file-import-complete = Importación completa.
+calendar-ics-file-import-duplicates =
+ { $duplicatesCount ->
+ [one] Se ha ignorado un elemento porque ya existe en el calendario de destino.
+ *[other] Se han ignorado { $duplicatesCount } elementos porque ya existen en el calendario de destino.
+ }
+calendar-ics-file-import-errors =
+ { $errorsCount ->
+ [one] Ha fallado la importación de un elemento. Revise la consola de errores para obtener más detalles.
+ *[other] Ha fallado la importación de { $errorsCount } elementos. Revise la consola de errores para obtener más detalles.
+ }
+calendar-ics-file-dialog-no-calendars = No hay calendarios que puedan importar eventos o tareas.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-invitation-panel.ftl b/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-invitation-panel.ftl
new file mode 100644
index 0000000000..85b6746f26
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-invitation-panel.ftl
@@ -0,0 +1,113 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $organizer (String) - The participant that created the original invitation.
+calendar-invitation-panel-intro = { $organizer } te ha invitado a:
+calendar-invitation-panel-status-new = Ha sido invitado a este evento.
+calendar-invitation-panel-status-processed = Este evento ya ha sido añadido a su calendario.
+calendar-invitation-panel-status-updateminor = Este mensaje contiene una actualización para este evento.
+calendar-invitation-panel-status-updatemajor = Este mensaje contiene una actualización para este evento. Debería volver a confirmar su asistencia.
+calendar-invitation-panel-status-cancelled = Este mensaje contiene una cancelación para este evento.
+calendar-invitation-panel-status-cancelled-notfound = Este mensaje contiene una actualización para un evento no encontrado en su calendario.
+# Variables:
+# $organizer (String) - The participant that cancelled the invitation.
+calendar-invitation-panel-intro-cancel = { $organizer } ha cancelado:
+# 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 = Actualizar
+calendar-invitation-panel-delete-button = Eliminar
+calendar-invitation-panel-accept-button = Sí
+calendar-invitation-panel-decline-button = No
+calendar-invitation-panel-tentative-button = Tal vez
+calendar-invitation-panel-reply-status = * Aún no has decidido ni respondido
+calendar-invitation-panel-more-button = Más
+calendar-invitation-panel-menu-item-save-copy =
+ .label = Guardar una copia
+calendar-invitation-panel-menu-item-toggle-changes =
+ .label = Mostrar cambios
+calendar-invitation-panel-prop-title-when = Cuándo:
+calendar-invitation-panel-prop-title-location = Ubicación:
+# 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 }, { $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 = Repeticiones:
+calendar-invitation-panel-prop-title-attendees = Asistentes:
+calendar-invitation-panel-prop-title-description = Descripción:
+# Variables:
+# $count (Number) - The number of attendees with the "ACCEPTED" participation status.
+calendar-invitation-panel-partstat-accepted = { $count } sí
+# Variables:
+# $count (Number) - The number of attendees with the "DECLINED" participation status.
+calendar-invitation-panel-partstat-declined = { $count } no
+# Variables:
+# $count (Number) - The number of attendees with the "TENTATIVE" participation status.
+calendar-invitation-panel-partstat-tentative = { $count } tal vez
+# Variables:
+# $count (Number) - The number of attendees with the "NEEDS-ACTION" participation status.
+calendar-invitation-panel-partstat-needs-action = { $count } pendientes
+# Variables:
+# $count (Number) - The total number of attendees.
+calendar-invitation-panel-partstat-total = { $count } participantes
+calendar-invitation-panel-prop-title-attachments = Adjuntos:
+calendar-invitation-change-indicator-removed = Eliminado
+calendar-invitation-change-indicator-added = Nuevo
+calendar-invitation-change-indicator-modified = Cambiado
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000..7a0c2eef69
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Actualmente aceptado
+calendar-invitation-current-participation-status-icon-declined =
+ .alt = Actualmente declinado
+calendar-invitation-current-participation-status-icon-needs-action =
+ .alt = Actualmente indeciso
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000..4a96bcee1e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = ¿Colándose en una fiesta?
+calendar-itip-identity-warning = Aún no está en la lista de invitados.
+calendar-itip-identity-label = Responder como:
+calendar-itip-identity-label-none = Asociar este evento con:
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-print.ftl b/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-print.ftl
new file mode 100644
index 0000000000..125d6f4db2
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Diseño
+calendar-print-layout-list = Lista
+calendar-print-layout-month-grid = Cuadrícula mensual
+calendar-print-layout-week-planner = Planificador semanal
+calendar-print-filter-label = Qué imprimir
+calendar-print-filter-events = Eventos
+calendar-print-filter-tasks = Tareas
+calendar-print-filter-completedtasks = Tareas completadas
+calendar-print-filter-taskswithnoduedate = Tareas sin fecha límite
+calendar-print-range-from = Desde
+calendar-print-range-to = Hasta
+calendar-print-back-button = Anterior
+calendar-print-next-button = Siguiente
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-recurrence-dialog.ftl b/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-recurrence-dialog.ftl
new file mode 100644
index 0000000000..cd50e6d1fd
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Vista preliminar
+calendar-recurrence-next = Mes siguiente
+calendar-recurrence-previous = Mes anterior
+calendar-recurrence-today = Hoy
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-summary-dialog.ftl b/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000..f766f08554
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 solo esta repetición
+ .accesskey = t
+edit-button-context-menu-all-occurrences =
+ .label = Editar todas las repeticiones
+ .accesskey = a
+description-context-menu-copy-link-text =
+ .label = Copiar texto del enlace
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000..1b783468a5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Redireccionar URI de calendario
+calendar-uri-redirect-window-title = Redireccionar URI de calendario
+calendar-uri-redirect-description =
+ El servidor está redirigiendo la URI del calendario "{ $calendarName }".
+ ¿Aceptar la redirección y comenzar a usar la nueva URI para este calendario?
+calendar-uri-redirect-original-uri-label = URI actual:
+calendar-uri-redirect-target-uri-label = Redireccionar a la nueva URI:
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-widgets.ftl b/thunderbird-l10n/es-ES/localization/es-ES/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000..85a33dcaa5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 los calendarios están desactivados actualmente. Active un calendario existente o añada uno nuevo para crear y editar eventos.
+calendar-deactivated-notification-tasks = Todos los calendarios están desactivados actualmente. Active un calendario existente o añada uno nuevo para crear y editar tareas.
+calendar-notifications-label = Mostrar notificaciones para eventos futuros
+calendar-add-notification-button =
+ .label = Añadir notificación
+
+## Side panel
+
+calendar-list-header = Calendarios
+# Variables:
+# $calendarName (String) - Calendar name as given by the user
+calendar-no-reminders-tooltip =
+ .title = Se ha silenciado el calendario { $calendarName }
+calendar-enable-button = Activar
+# Variables:
+# $calendarName (String) - Calendar name as given by the user
+calendar-list-item-context-button =
+ .title = Opciones del calendario { $calendarName }
+calendar-import-new-calendar = Nuevo calendario…
+ .title = Crear o suscribirse a un nuevo calendario
+calendar-refresh-calendars =
+ .title = Recargar todos los calendarios y sincronizar los cambios
+calendar-new-event-primary-button = Nuevo evento
+calendar-new-task-primary-button = Nueva tarea
+
+## Calendar navigation
+
+calendar-nav-button-prev-tooltip-day =
+ .title = Día anterior
+ .accesskey = r
+calendar-nav-button-prev-tooltip-week =
+ .title = Semana anterior
+ .accesskey = r
+calendar-nav-button-prev-tooltip-multiweek =
+ .title = Semana anterior
+ .accesskey = r
+calendar-nav-button-prev-tooltip-month =
+ .title = Mes anterior
+ .accesskey = r
+calendar-nav-button-prev-tooltip-year =
+ .title = Año anterior
+ .accesskey = r
+calendar-nav-button-next-tooltip-day =
+ .title = Día siguiente
+ .accesskey = s
+calendar-nav-button-next-tooltip-week =
+ .title = Semana siguiente
+ .accesskey = s
+calendar-nav-button-next-tooltip-multiweek =
+ .title = Semana siguiente
+ .accesskey = s
+calendar-nav-button-next-tooltip-month =
+ .title = Mes siguiente
+ .accesskey = s
+calendar-nav-button-next-tooltip-year =
+ .title = Año siguiente
+ .accesskey = g
+calendar-today-button-tooltip =
+ .title = Ir a hoy
+calendar-view-toggle-day = Día
+ .title = Cambiar a vista diaria
+calendar-view-toggle-week = Semana
+ .title = Cambiar a vista semanal
+calendar-view-toggle-multiweek = Multisemana
+ .title = Cambiar a vista multisemanal
+calendar-view-toggle-month = Mes
+ .title = Cambiar a vista mensual
+
+## Menu on calendar control bar
+
+calendar-control-bar-menu-button =
+ .title = Opciones de diseño del calendario
+calendar-find-events-menu-option =
+ .label = Panel de búsqueda de eventos
+calendar-hide-weekends-option =
+ .label = Sólo días laborables
+calendar-define-workweek-option =
+ .label = Definir días laborables
+calendar-show-tasks-calendar-option =
+ .label = Mostrar tareas en el calendario
+
+## Calendar Context Menu
+
+calendar-context-menu-previous-day =
+ .label = Día anterior
+ .accesskey = t
+calendar-context-menu-previous-week =
+ .label = Semana anterior
+ .accesskey = t
+calendar-context-menu-previous-multiweek =
+ .label = Semana anterior
+ .accesskey = t
+calendar-context-menu-previous-month =
+ .label = Mes anterior
+ .accesskey = t
+calendar-context-menu-next-day =
+ .label = Día siguiente
+ .accesskey = s
+calendar-context-menu-next-week =
+ .label = Semana siguiente
+ .accesskey = s
+calendar-context-menu-next-multiweek =
+ .label = Semana siguiente
+ .accesskey = s
+calendar-context-menu-next-month =
+ .label = Mes siguiente
+ .accesskey = s
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/calendar/category-dialog.ftl b/thunderbird-l10n/es-ES/localization/es-ES/calendar/category-dialog.ftl
new file mode 100644
index 0000000000..8bc2004022
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/calendar/category-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/.
+
+category-name-label = Nombre
+
+category-color-label =
+ .label = Usar color
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/calendar/preferences.ftl b/thunderbird-l10n/es-ES/localization/es-ES/calendar/preferences.ftl
new file mode 100644
index 0000000000..0ea0d1538c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Calendario
+calendar-title-reminder = Recordatorios
+calendar-title-notification = Notificaciones
+calendar-title-category = Categorías
+dateformat-label =
+ .value = Formato de texto de fecha:
+ .accesskey = F
+# $date (String) - the formatted example date
+dateformat-long =
+ .label = Largo: { $date }
+# $date (String) - the formatted example date
+dateformat-short =
+ .label = Corto: { $date }
+use-system-timezone-radio-button =
+ .label = Usar la zona horaria del sistema
+set-timezone-manually-radio-button =
+ .label = Establecer la zona horaria manualmente
+timezone-label =
+ .value = Zona horaria:
+weekstart-label =
+ .value = Comenzar la semana en:
+ .accesskey = r
+day-1-name =
+ .label = Domingo
+day-2-name =
+ .label = Lunes
+day-3-name =
+ .label = Martes
+day-4-name =
+ .label = Miercoles
+day-5-name =
+ .label = Jueves
+day-6-name =
+ .label = Viernes
+day-7-name =
+ .label = Sábado
+show-weeknumber-label =
+ .label = Mostrar el número de semana en las vistas y el minimés
+ .accesskey = n
+workdays-label =
+ .value = Días laborables:
+day-1-checkbox =
+ .label = Dom
+ .accesskey = D
+day-2-checkbox =
+ .label = Lun
+ .accesskey = L
+day-3-checkbox =
+ .label = Mar
+ .accesskey = M
+day-4-checkbox =
+ .label = Mié
+ .accesskey = X
+day-5-checkbox =
+ .label = Jue
+ .accesskey = J
+day-6-checkbox =
+ .label = Vie
+ .accesskey = V
+day-7-checkbox =
+ .label = Sáb
+ .accesskey = S
+dayweek-legend = Vistas diaria y semanal
+visible-hours-label =
+ .value = Mostrar:
+ .accesskey = o
+visible-hours-end-label =
+ .value = horas a la vez
+day-start-label =
+ .value = El día comienza a las:
+ .accesskey = c
+day-end-label =
+ .value = El día termina a las:
+ .accesskey = t
+midnight-label =
+ .label = Medianoche
+noon-label =
+ .label = Mediodía
+location-checkbox =
+ .label = Mostrar ubicación
+ .accesskey = u
+multiweek-legend = Vista multisemana
+number-of-weeks-label =
+ .value = Número de semanas que mostrar (incluyendo anteriores):
+ .accesskey = e
+week-0-label =
+ .label = ninguna
+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 previas que mostrar:
+ .accesskey = p
+todaypane-legend = Panel para hoy
+agenda-days =
+ .value = La agenda muestra:
+ .accesskey = g
+event-task-legend = Eventos y tareas
+default-length-label =
+ .value = Duración predeterminada de eventos y tareas:
+ .accesskey = D
+task-start-label =
+ .value = Fecha de inicio:
+task-start-1-label =
+ .label = Ninguna
+task-start-2-label =
+ .label = Inicio del día
+task-start-3-label =
+ .label = Final del día
+task-start-4-label =
+ .label = Mañana
+task-start-5-label =
+ .label = Próxima semana
+task-start-6-label =
+ .label = Relativa a la fecha actual
+task-start-7-label =
+ .label = Relativa al inicio
+task-start-8-label =
+ .label = Relativa a la siguiente hora
+task-due-label =
+ .value = Fecha de finalización:
+edit-intab-label =
+ .label = Editar eventos y tareas en una pestaña en lugar de una ventana de diálogo.
+ .accesskey = E
+prompt-delete-label =
+ .label = Preguntar antes de eliminar eventos y tareas.
+ .accesskey = v
+reminder-legend = Cuando salta un recordatorio:
+reminder-play-checkbox =
+ .label = Reproducir un sonido
+ .accesskey = R
+reminder-play-alarm-button =
+ .label = Reproducir
+ .accesskey = p
+reminder-default-sound-label =
+ .label = Usar el sonido predeterminado
+ .accesskey = s
+reminder-custom-sound-label =
+ .label = Usar el siguiente archivo de sonido
+ .accesskey = U
+reminder-browse-sound-label =
+ .label = Examinar…
+ .accesskey = x
+reminder-dialog-label =
+ .label = Mostrar el diálogo del recordatorio
+ .accesskey = d
+missed-reminder-label =
+ .label = Mostrar recordatorios perdidos en calendarios escribibles
+ .accesskey = M
+reminder-default-legend = Valores predeterminados de recordatorios
+default-snooze-label =
+ .value = Duración predeterminada del retardo:
+ .accesskey = D
+event-alarm-label =
+ .value = Configuración predeterminada de recordatorio de eventos:
+ .accesskey = e
+alarm-on-label =
+ .label = Activado
+alarm-off-label =
+ .label = Desactivado
+task-alarm-label =
+ .value = Configuración predeterminada de recordatorio de tareas:
+ .accesskey = a
+event-alarm-time-label =
+ .value = Tiempo predeterminado de recordatorio antes de un evento:
+ .accesskey = u
+task-alarm-time-label =
+ .value = Tiempo predeterminado de recordatorio antes de una tarea:
+ .accesskey = o
+calendar-notifications-customize-label = Las notificaciones se pueden personalizar para cada calendario en la ventana de propiedades del calendario.
+category-new-label = Nueva categoría
+category-edit-label = Editar categoría
+category-overwrite-title = Advertencia: nombre duplicado
+category-overwrite = Ya existe una categoría con ese nombre. ¿Desea sobrescribirla?
+category-blank-warning = Debe introducir un nombre de categoría.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/chat/matrix.ftl b/thunderbird-l10n/es-ES/localization/es-ES/chat/matrix.ftl
new file mode 100644
index 0000000000..b2e061569c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/chat/matrix.ftl
@@ -0,0 +1,34 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Matrix Protocol strings
+
+
+## Conversation names when a room has no user readable name.
+
+room-name-empty = Conversación vacía
+# Variables:
+# $oldName (String) - The previous name the conversation had before it was
+# removed.
+room-name-empty-had-name = Conversación vacía (era { $oldName })
+# Variables:
+# $participant (String) - The name of one participant that isn't the user.
+# $otherParticipantsCount (Number) - The count of other participants apart from
+# the user and $participant.
+room-name-others =
+ { $otherParticipantsCount ->
+ [one] { $participant } y { $otherParticipantCount } más
+ *[other] { $participant } y { $otherParticipantCount } más
+ }
+# 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 } y { $otherParticipantCount } más
+ [many] muchos
+ *[other] { $participant } y { $otherParticipantCount } más
+ }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/crashreporter/aboutcrashes.ftl b/thunderbird-l10n/es-ES/localization/es-ES/crashreporter/aboutcrashes.ftl
new file mode 100644
index 0000000000..54f4c73d5c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Informes de fallos
+
+submit-all-button-label = Enviar todo
+delete-button-label = Borrar todo
+delete-confirm-title = ¿Está seguro?
+delete-unsubmitted-description = Esto eliminará todos los informes de fallos no enviados y no se puede deshacer.
+delete-submitted-description = Esto eliminará la lista de informes de fallos enviados, pero no eliminará los datos que se hayan enviado. Esto no se puede deshacer.
+
+crashes-unsubmitted-label = Informes de fallos no enviados
+id-heading = ID del informe
+date-crashed-heading = Fecha del fallo
+submit-crash-button-label = Enviar
+# This text is used to replace the label of the crash submit button
+# if the crash submission fails.
+submit-crash-button-failure-label = Fallo
+
+crashes-submitted-label = Informes de fallos enviados
+date-submitted-heading = Fecha del envío
+view-crash-button-label = Ver
+
+no-reports-label = No se han enviado informes de fallo.
+no-config-label = Esta aplicación no ha sido configurada para mostrar informes de fallos. Debe configurarse la preferencia <code>breakpad.reportURL</code>.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/aboutdebugging.ftl b/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/aboutdebugging.ftl
new file mode 100644
index 0000000000..689b745765
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Depuración - Configuración
+
+# 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 = Depuración - Tiempo de ejecución / { $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 = Configuración
+
+# Text displayed in the about:debugging sidebar when USB devices discovery is enabled.
+about-debugging-sidebar-usb-enabled = USB habilitado
+
+# 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 deshabilitado
+
+# Connection status (connected) for runtime items in the sidebar
+aboutdebugging-sidebar-runtime-connection-status-connected = Conectado
+# Connection status (disconnected) for runtime items in the sidebar
+aboutdebugging-sidebar-runtime-connection-status-disconnected = Desconectado
+
+# Text displayed in the about:debugging sidebar when no device was found.
+about-debugging-sidebar-no-devices = No se han encontrado dispositivos
+
+# 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 = Conectar
+
+# Text displayed in buttons found in sidebar items when the runtime is connecting.
+about-debugging-sidebar-item-connect-button-connecting = Conectando...
+
+# Text displayed in buttons found in sidebar items when the connection failed.
+about-debugging-sidebar-item-connect-button-connection-failed = Falló la conexión
+
+# 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 = La conexión todavía está pendiente, compruebe si hay mensajes en el 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 = La conexión ha caducado
+
+# 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 = Esperando al navegador...
+
+# Text displayed in sidebar items for remote devices that have been disconnected from the
+# computer.
+about-debugging-sidebar-runtime-item-unplugged = Desconectado
+
+# 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 = Asistencia de depuración
+
+# 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 = Icono de Ayuda
+
+# 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 = Actualizar dispositivos
+
+# Setup Page strings
+
+# Title of the Setup page.
+about-debugging-setup-title = Configuración
+
+# Introduction text in the Setup page to explain how to configure remote debugging.
+about-debugging-setup-intro = Configure el método de conexión con el que desea depurar remotamente su dispositivo.
+
+# Explanatory text in the Setup page about what the 'This Firefox' page is for
+about-debugging-setup-this-firefox2 = Usa <a>{ about-debugging-this-firefox-runtime-name }</a> para depurar extensiones y service workers en esta versión de { -brand-shorter-name }.
+
+# Title of the heading Connect section of the Setup page.
+about-debugging-setup-connect-heading = Conectar un 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 = Si habilita esta opción, se descargarán y agregarán los componentes de depuración necesarios de Android USB para { -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 = Habilitar 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 = Deshabilitar 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 = Actualizando...
+
+# USB section of the Setup page (USB status)
+about-debugging-setup-usb-status-enabled = Habilitado
+about-debugging-setup-usb-status-disabled = Deshabilitado
+about-debugging-setup-usb-status-updating = Actualizando...
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-dev-menu2 = Activar menú de desarrollador en su dispositivo Android.
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-debug2 = Activar depuración USB en el menú de desarrollador de Android.
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-debug-firefox2 = Activar depuración USB en Firefox en el dispositivo Android.
+
+# USB section step by step guide
+about-debugging-setup-usb-step-plug-device = Conectar el dispositivo Android a su equipo.
+
+# 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 de conexión al dispositivo USB? <a>Solucionar problemas</a>
+
+# Network section of the Setup page
+about-debugging-setup-network =
+ .title = Ubicación de red
+
+# 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 de conexión a través de la ubicación de la red? <a>Solucionar 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 = Agregar
+
+# Text to display when there are no locations to show.
+about-debugging-network-locations-empty-text = No se han añadido ubicaciones de red.
+
+# 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 = Eliminar
+
+# 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 = El servidor no es válido “{ $host-value }”. El formato esperado es "nombreDeServidor:numeroDePuerto".
+
+# 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 = El servidor “{ $host-value }” ya está registrado
+
+# 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 = Extensiones temporales
+# Title of the extensions category.
+about-debugging-runtime-extensions =
+ .name = Extensiones
+# Title of the tabs category.
+about-debugging-runtime-tabs =
+ .name = Pestañas
+# 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 = Otros Workers
+# Title of the processes category.
+about-debugging-runtime-processes =
+ .name = Procesos
+
+# Label of the button opening the performance profiler panel in runtime pages for remote
+# runtimes.
+about-debugging-runtime-profile-button2 = Rendimiento del 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 = La configuración de su navegador no es compatible con Service Workers. <a>Saber más</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 = El navegador conectado tiene una versión antigua ({ $runtimeVersion }). La versión mínima compatible es ({ $minVersion }). Ésta es una configuración incompatible y puede hacer que las herramientas de desarrollo fallen. Por favor, actualice el navegador conectado. <a>Resolución 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 versión de Firefox no puede depurar Firefox para Android (68). Recomendamos instalar Firefox para Android Nightly en su teléfono para realizar pruebas. <a>Más detalles</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 = El navegador conectado es más reciente ({ $runtimeVersion }, buildID { $runtimeID }) que su { -brand-shorter-name } ({ $localVersion }, buildID { $localID }). Ésta es una configuración incompatible y puede hacer que las herramientas de desarrollo fallen. Por favor actualice Firefox. <a>Resolución 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 = Desconectar
+
+# 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 = Activar solicitud de conexión
+
+# 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 = Desactivar solicitud de conexión
+
+# Title of a modal dialog displayed on remote runtime pages after clicking on the Profile Runtime button.
+about-debugging-profiler-dialog-title2 = Analizador
+
+# 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 = Contraer / 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 todavía.
+
+# 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 = Inspeccionar
+
+# 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 = Cargar complemento temporal...
+
+# Text displayed when trying to install a temporary extension in the "This Firefox" page.
+about-debugging-tmp-extension-install-error = Hubo un error durante la instalación del complemento temporal.
+
+# 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 = Recargar
+
+# 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 = Eliminar
+
+# 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 secuencia de comandos en segundo plano
+
+# 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 = Selecciona el archivo manifest.json o .xpi/.zip
+
+# This string is displayed as a message about the add-on having a temporaryID.
+about-debugging-tmp-extension-temporary-id = Esta WebExtension tiene un ID temporal. <a>Saber más</a>
+
+# Text displayed for extensions in "runtime" pages, before displaying a link the extension's
+# manifest URL.
+about-debugging-extension-manifest-url =
+ .label = URL del manifiesto
+
+# 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 = Ubicación
+
+# 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 de la extensión
+
+# Text displayed for extensions in "runtime" pages, before displaying the status of the
+# extension background script.
+about-debugging-extension-backgroundscript =
+ .label = Secuencia de comandos en segundo plano
+
+# 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 = En ejecución
+
+# Displayed for extension using a non-persistent background page when is currently stopped.
+about-debugging-extension-backgroundscript-status-stopped = Detenido
+
+# 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 = El Service Worker Push está actualmente desactivado para el modo multiproceso de { -brand-shorter-name }
+
+# This string is displayed as a label of the button that starts a service worker.
+about-debugging-worker-action-start2 = Inicio
+ .disabledTitle = El inicio de Service Worker está actualmente desactivado para el modo multiproceso de { -brand-shorter-name }
+
+# This string is displayed as a label of the button that unregisters a service worker.
+about-debugging-worker-action-unregister = Eliminar registro
+
+# Displayed for service workers in runtime pages that listen to Fetch events.
+about-debugging-worker-fetch-listening =
+ .label = Fetch
+ .value = Escuchando 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 = No se están escuchando eventos fetch
+
+# Displayed for service workers in runtime pages that are currently running (service
+# worker instance is active).
+about-debugging-worker-status-running = En ejecución
+
+# Displayed for service workers in runtime pages that are registered but stopped.
+about-debugging-worker-status-stopped = Detenido
+
+# Displayed for service workers in runtime pages that are registering.
+about-debugging-worker-status-registering = Registrando
+
+# 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 = Servicio Push
+
+# Displayed as title of the inspect button when service worker debugging is disabled.
+about-debugging-worker-inspect-action-disabled =
+ .title = La inspección de Service Worker está actualmente desactivada para el modo multiproceso de { -brand-shorter-name }
+
+# Displayed as title of the inspect button for zombie tabs (e.g. tabs loaded via a session restore).
+about-debugging-zombie-tab-inspect-action-disabled =
+ .title = La pestaña no está completamente cargada y no se puede inspeccionar
+
+# Displayed instead of the Main Process debug target when the preference
+# `devtools.browsertoolbox.fission` is true.
+about-debugging-multiprocess-toolbox-name = Caja de herramientas de multiproceso
+
+# Description for the Multiprocess Toolbox target.
+about-debugging-multiprocess-toolbox-description = Proceso principal y procesos de contenido para el navegador de destino
+
+# Alt text used for the close icon of message component (warnings, errors and notifications).
+about-debugging-message-close-icon =
+ .alt = Cerrar mensaje
+
+# Label text used for the error details of message component.
+about-debugging-message-details-label-error = Detalles del error
+
+# Label text used for the warning details of message component.
+about-debugging-message-details-label-warning = Detalles de la advertencia
+
+# Label text used for default state of details of message component.
+about-debugging-message-details-label = Detalles
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/accessibility.ftl b/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/accessibility.ftl
new file mode 100644
index 0000000000..3bb8cf228e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 más
+
+accessibility-text-label-header = Etiquetas de texto y nombres
+
+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 = Inicializando…
+ .aria-valuetext = Inicializando…
+
+# 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] Verificando { $nodeCount } nodo
+ *[other] Verificando { $nodeCount } nodos
+ }
+
+accessibility-progress-finishing = Finalizando…
+ .aria-valuetext = Finalizando…
+
+## Text entries that are used as text alternative for icons that depict accessibility issues.
+
+accessibility-warning =
+ .alt = Advertencia
+
+accessibility-fail =
+ .alt = Error
+
+accessibility-best-practices =
+ .alt = Prácticas idóneas
+
+## Text entries for a paragraph used in the accessibility panel sidebar's checks section
+## that describe that currently selected accessible object has an accessibility issue
+## with its text label or accessible name.
+
+accessibility-text-label-issue-area = Use <code>alt</code> para etiquetar los elementos del <div>área</div> que tengan el atributo <span>href</span>. <a>Saber más</a>
+
+accessibility-text-label-issue-dialog = Los cuadros de diálogo deben etiquetarse. <a>Más información</a>
+
+accessibility-text-label-issue-document-title = Los documentos deben llevar <code>título</code>. <a>Descubre más</a>
+
+accessibility-text-label-issue-embed = El contenido incrustado debe etiquetarse. <a>Más información</a>
+
+accessibility-text-label-issue-figure = Las figuras con subtítulos opcionales tienen que etiquetarse. <a>Saber más</a>
+
+accessibility-text-label-issue-fieldset = Los elementos <code>fieldset</code> deben ser etiquetados. <a>Saber más</a>
+
+accessibility-text-label-issue-fieldset-legend2 = Use un elemento <code>legend</code> para etiquetar un <span>fieldset</span>. <a>Saber más</a>
+
+accessibility-text-label-issue-form = Los elementos del formulario deben etiquetarse. <a>Más información</a>
+
+accessibility-text-label-issue-form-visible = Los elementos de formulario deberían tener una etiqueta de texto visible. <a>Saber más</a>
+
+accessibility-text-label-issue-frame = Los elementos <code>frame</code> deben ser etiquetados. <a>Saber más</a>
+
+accessibility-text-label-issue-glyph = Use el atributo <code>alt</code> para etiquetar elementos <span>mglyph</span>. <a>Saber más</a>
+
+accessibility-text-label-issue-heading = Los encabezados deben ser etiquetados. <a>Saber más</a>
+
+accessibility-text-label-issue-heading-content = Los encabezados deberían tener contenido de texto visible. <a>Saber más</a>
+
+accessibility-text-label-issue-iframe = Use el atributo <code>title</code> para describir contenido <span>iframe</span>. <a>Saber más</a>
+
+accessibility-text-label-issue-image = El contenido con imágenes debe ser etiquetado. <a>Saber más</a>
+
+accessibility-text-label-issue-interactive = Los elementos interactivos deben ser etiquetados. <a>Saber más</a>
+
+accessibility-text-label-issue-optgroup-label2 = Use el atributo <code>label</code> para etiquetar un <span>optgroup</span>. <a>Saber más</a>
+
+accessibility-text-label-issue-toolbar = Las barras de herramientas deben estar etiquetadas cuando hay más de una barra de herramientas. <a>Saber más</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 = Los elementos que pueden recibir el foco deberían tener una semántica interactiva. <a>Saber más</a>
+
+accessibility-keyboard-issue-tabindex = Evite utilizar el atributo <code>tabindex</code> mayor que cero. <a>Saber más</a>
+
+accessibility-keyboard-issue-action = Los elementos interactivos tienen que poder activarse con el teclado. <a>Saber más</a>
+
+accessibility-keyboard-issue-focusable = Los elementos interactivos tiene que poder recibir el foco. <a>Saber más</a>
+
+accessibility-keyboard-issue-focus-visible = Al elemento que puede recibir el foco le puede faltar estilo de enfoque. <a>Saber más</a>
+
+accessibility-keyboard-issue-mouse-only = Los elementos sobre los que se puede hacer clic tienen que poder recibir el foco y deberían tener una semántica interactiva. <a>Saber más</a>
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/application.ftl b/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/application.ftl
new file mode 100644
index 0000000000..60f2878e1b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Abra <a>about:debugging</a> para Service Workers de otros dominios
+
+# Text for the button to unregister a Service Worker. Displayed for active Service Workers.
+serviceworker-worker-unregister = Deregistrar
+
+# 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 = Depurar
+ .title = Solo se pueden depurar service workers en ejecución
+
+# Alt text for the image icon displayed inside a debug link for a service worker.
+serviceworker-worker-inspect-icon =
+ .alt = Inspeccionar
+
+# 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 = Actualizado el <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 = En ejecución
+
+# Service Worker status. A stopped service worker is registered but not currently active.
+serviceworker-worker-status-stopped = Detenido
+
+# Text displayed when no service workers are visible for the current page.
+serviceworker-empty-intro2 = No se han encontrado service workers
+
+# Link will open https://developer.mozilla.org/docs/Web/API/Service_Worker_API/Using_Service_Workers
+serviceworker-empty-intro-link = Saber más
+
+# 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 = Si la página actual debe tener un service worker, puede buscar errores en la <a>Consola</a> o ir al registro de su service worker en el <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 otros dominios
+
+# Header for the Manifest page when we have an actual manifest
+manifest-view-header = Manifesto de la aplicación
+
+# Header for the Manifest page when there's no manifest to inspect
+manifest-empty-intro2 = No se detectó ningún manifiesto de aplicación web
+
+# The link will open https://developer.mozilla.org/en-US/docs/Web/Manifest
+manifest-empty-intro-link = Aprenda a añadir un manifesto
+
+# Header for the Errors and Warnings section of Manifest inspection displayed in the application panel.
+manifest-item-warnings = Errores y advertencias
+
+# Header for the Identity section of Manifest inspection displayed in the application panel.
+manifest-item-identity = Identidad
+
+# Header for the Presentation section of Manifest inspection displayed in the application panel.
+manifest-item-presentation = Presentación
+
+# Header for the Icon section of Manifest inspection displayed in the application panel.
+manifest-item-icons = Iconos
+
+# Text displayed while we are loading the manifest file
+manifest-loading = Cargando manifesto...
+
+# Text displayed when the manifest has been successfully loaded
+manifest-loaded-ok = Se cargó el manifesto.
+
+# Text displayed as a caption when there has been an error while trying to
+# load the manifest
+manifest-loaded-error = Hubo un error al cargar el manifesto:
+
+# Text displayed as an error when there has been a Firefox DevTools error while
+# trying to load the manifest
+manifest-loaded-devtools-error = Error de Firefox DevTools
+
+# Text displayed when the page has no manifest available
+manifest-non-existing = No se encontró ningún manifesto.
+
+# 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 = El manifiesto está integrado en una URL de datos.
+
+# Text displayed at manifest icons to label their purpose, as declared
+# in the manifest.
+manifest-icon-purpose = Propósito: <code>{ $purpose }</code>
+
+# Text displayed as the alt attribute for <img> tags showing the icons in the
+# manifest.
+manifest-icon-img =
+ .alt = Icono
+
+# 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 = Icono con tamaños: { $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 = Icono de tamaño no especificado
+
+# Sidebar navigation item for Manifest sidebar item section
+sidebar-item-manifest = Manifesto
+ .alt = Icono del Manifesto
+ .title = Manifesto
+
+# Sidebar navigation item for Service Workers sidebar item section
+sidebar-item-service-workers = Service Workers
+ .alt = Icono de Service Workers
+ .title = Service Workers
+
+# Text for the ALT and TITLE attributes of the warning icon
+icon-warning =
+ .alt = Icono de advertencia
+ .title = Advertencia
+
+# Text for the ALT and TITLE attributes of the error icon
+icon-error =
+ .alt = Icono de error
+ .title = Error
+
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/compatibility.ftl b/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/compatibility.ftl
new file mode 100644
index 0000000000..470c7c62ed
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 seleccionado
+compatibility-all-elements-header = Todos los problemas
+
+## Message used as labels for the type of issue
+
+compatibility-issue-deprecated = (obsoleto)
+compatibility-issue-experimental = (experimental)
+compatibility-issue-prefixneeded = (se necesita prefijo)
+compatibility-issue-deprecated-experimental = (obsoleto, experimental)
+compatibility-issue-deprecated-prefixneeded = (obsoleto, se necesita prefijo)
+compatibility-issue-experimental-prefixneeded = (experimental, se necesita prefijo)
+compatibility-issue-deprecated-experimental-prefixneeded = (obsoleto, experimental, se necesita prefijo)
+
+## Messages used as labels and titles for buttons in the footer
+
+compatibility-settings-button-label = Ajustes
+compatibility-settings-button-title =
+ .title = Ajustes
+
+## Messages used as headers in settings pane
+
+compatibility-settings-header = Ajustes
+compatibility-target-browsers-header = Navegadores de destino
+
+##
+
+# 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 } ocurrencia
+ *[other] { $number } ocurrencias
+ }
+
+compatibility-no-issues-found = No se encontraron problemas de compatibilidad.
+compatibility-close-settings-button =
+ .title = Cerrar ajustes
+
+# 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 compatibilidad en:
+ { $browsers }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/perftools.ftl b/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/perftools.ftl
new file mode 100644
index 0000000000..cd6b988381
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/perftools.ftl
@@ -0,0 +1,161 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used in DevTools’ performance-new panel, about:profiling, and
+### the remote profiling panel. There are additional profiler strings in the appmenu.ftl
+### file that are used for the profiler popup.
+
+perftools-intro-title = Ajustes del perfilador
+perftools-intro-description =
+ Las grabaciones abren profiler.firefox.com en una nueva pestaña. Todos los datos están almacenados
+ localmente, pero puede elegir subirlos para compartirlos.
+
+## All of the headings for the various sections.
+
+perftools-heading-settings = Configuración completa
+perftools-heading-buffer = Ajustes de buffer
+perftools-heading-features = Funcionalidades
+perftools-heading-features-default = Funciones (se recomienda activarlas de forma predeterminada)
+perftools-heading-features-disabled = Funcionalidades desactivadas
+perftools-heading-features-experimental = Experimental
+perftools-heading-threads = Hilos
+perftools-heading-threads-jvm = Subprocesos JVM
+perftools-heading-local-build = Compilación local
+
+##
+
+perftools-description-intro =
+ Las grabaciones abren <a>profiler.firefox.com</a> en una nueva pestaña. Todos los datos están almacenados
+ localmente, pero puede elegir subirlos para compartirlos.
+perftools-description-local-build =
+ Si está perfilando una compilación hecha por usted mismo en esta
+ máquina, añada el objdir de la misma a la lista de abajo para que
+ pueda utilizarse para buscar información de símbolos.
+
+## The controls for the interval at which the profiler samples the code.
+
+perftools-range-interval-label = Intervalo de muestreo:
+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 = Tamaño del buffer:
+
+perftools-custom-threads-label = Añadir hilos personalizados por nombre:
+
+perftools-devtools-interval-label = Intervalo:
+perftools-devtools-threads-label = Hilos:
+perftools-devtools-settings-label = Ajustes
+
+## Various statuses that affect the current state of profiling, not typically displayed.
+
+perftools-status-recording-stopped-by-another-tool = Otra herramienta detuvo la grabación.
+perftools-status-restart-required = Se debe reiniciar el navegador para activar esta función.
+
+## These are shown briefly when the user is waiting for the profiler to respond.
+
+perftools-request-to-stop-profiler = Deteniendo grabación
+perftools-request-to-get-profile-and-stop-profiler = Capturando perfil
+
+##
+
+perftools-button-start-recording = Iniciar grabación
+perftools-button-capture-recording = Capturar la grabación
+perftools-button-cancel-recording = Guardar grabación
+perftools-button-save-settings = Guardar ajustes y volver
+perftools-button-restart = Reiniciar
+perftools-button-add-directory = Añadir un directorio
+perftools-button-remove-directory = Eliminar lo seleccionado
+perftools-button-edit-settings = Editar ajustes…
+
+## These messages are descriptions of the threads that can be enabled for the profiler.
+
+perftools-thread-gecko-main =
+ .title = Los procesos principales tanto para el proceso principal como para los procesos de contenido
+perftools-thread-compositor =
+ .title = Combina diferentes elementos pintados en la página.
+perftools-thread-dom-worker =
+ .title = Esto se ocupa tanto de los web workers como de los service workers
+perftools-thread-renderer =
+ .title = Cuando WebRender está activado, el hilo que ejecuta las llamadas OpenGL
+perftools-thread-render-backend =
+ .title = El hilo WebRender RenderBackend
+perftools-thread-timer =
+ .title = Los temporizadores de manejo de subprocesos (setTimeout, setInterval, nsITimer)
+perftools-thread-style-thread =
+ .title = El cálculo de estilo se divide en múltiples hilos
+pref-thread-stream-trans =
+ .title = Transporte de flujo de red
+perftools-thread-socket-thread =
+ .title = El hilo donde el código de red ejecuta cualquier llamada bloqueante de socket
+perftools-thread-img-decoder =
+ .title = Hilos de decodificación de imágenes
+perftools-thread-dns-resolver =
+ .title = La resolución de DNS ocurre en este hilo
+perftools-thread-task-controller =
+ .title = Hilos del grupo de subprocesos de TaskController
+perftools-thread-jvm-gecko =
+ .title = El subproceso principal de Gecko JVM
+perftools-thread-jvm-nimbus =
+ .title = Los subprocesos principales para el SDK de experimentos de Nimbus
+perftools-thread-jvm-default-dispatcher =
+ .title = El dispatcher predeterminado para la biblioteca de rutinas de Kotlin
+perftools-thread-jvm-glean =
+ .title = Los subprocesos principales del SDK de telemetría de Glean
+perftools-thread-jvm-arch-disk-io =
+ .title = El dispatcher IO para la librería de rutinas de Kotlin
+perftools-thread-jvm-pool =
+ .title = Subprocesos creados en un grupo de subprocesos sin nombre
+
+##
+
+perftools-record-all-registered-threads = Omitir las selecciones de arriba y grabar todos los hilos registrados
+
+perftools-tools-threads-input-label =
+ .title = Estos nombres de hilos son una lista separada por comas que se utiliza para activar la creación de perfiles de los hilos en el perfilador. El nombre debe ser solo una coincidencia parcial del nombre del hilo para que se incluya. Es sensible a los espacios en blanco.
+
+## 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>Nuevo</b>: { -profiler-brand-name } ahora está integrado en las herramientas para desarrolladores. <a>Saber más</a> sobre esta poderosa herramienta.
+
+perftools-onboarding-close-button =
+ .aria-label = Cerrar el mensaje introductorio
+
+## 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 = Desarrollador web
+perftools-presets-web-developer-description = Configuración recomendada para la depuración de la mayoría de aplicaciones web, con poca sobrecarga.
+
+perftools-presets-firefox-label = { -brand-shorter-name }
+perftools-presets-firefox-description = Valor predeterminado recomendado para la creación de perfiles { -brand-shorter-name }.
+
+perftools-presets-graphics-label = Gráficos
+perftools-presets-graphics-description = Preestablecido para investigar errores gráficos en { -brand-shorter-name }.
+
+perftools-presets-media-label = Multimedia
+perftools-presets-media-description2 = Preestablecido para investigar errores de audio y vídeo en { -brand-shorter-name }.
+
+perftools-presets-networking-label = Red
+perftools-presets-networking-description = Preestablecido para investigar problemas de red en { -brand-shorter-name }.
+
+# "Power" is used in the sense of energy (electricity used by the computer).
+perftools-presets-power-label = Energía
+perftools-presets-power-description = Preestablecido para investigar errores relacionados con el consumo de energía en { -brand-shorter-name }, con poca sobrecarga.
+
+perftools-presets-custom-label = Personalizado
+
+##
+
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/storage.ftl b/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/storage.ftl
new file mode 100644
index 0000000000..bc7348f8af
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/storage.ftl
@@ -0,0 +1,132 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the Storage Inspector.
+
+# Key shortcut used to focus the filter box on top of the data view
+storage-filter-key = CmdOrCtrl+F
+
+# Hint shown when the selected storage host does not contain any data
+storage-table-empty-text = No hay datos para el servidor seleccionado
+
+# 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 = Vea y edite cookies seleccionando un servidor. <a data-l10n-name="learn-more-link">Saber más</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 = Vea y edite el almacenamiento local seleccionando un servidor. <a data-l10n-name="learn-more-link">Saber más</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 = Vea y edite el almacenamiento de sesión seleccionando un servidor. <a data-l10n-name="learn-more-link">Saber más</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 = Vea y elimine entradas de IndexedDB seleccionando una base de datos. <a data-l10n-name="learn-more-link">Saber más</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 = Vea y elimine las entradas de almacenamiento caché seleccionando un almacenamiento. <a data-l10n-name="learn-more-link">Saber más</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 = Vea y edite el almacenamiento de extensión seleccionando un servidor. <a data-l10n-name="learn-more-link">Saber más</a>
+
+# Placeholder for the searchbox that allows you to filter the table items
+storage-search-box =
+ .placeholder = Filtrar elementos
+
+# Placeholder text in the sidebar search box
+storage-variable-view-search-box =
+ .placeholder = Filtrar valores
+
+# Add Item button title
+storage-add-button =
+ .title = Añadir elemento
+
+# Refresh button title
+storage-refresh-button =
+ .title = Actualizar elementos
+
+# Context menu action to delete all storage items
+storage-context-menu-delete-all =
+ .label = Eliminar todo
+
+# Context menu action to delete all session cookies
+storage-context-menu-delete-all-session-cookies =
+ .label = Eliminar todas las cookies de sesión
+
+# 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 = Eliminar “{ $itemName }“
+
+# Context menu action to add an item
+storage-context-menu-add-item =
+ .label = Añadir elemento
+
+# 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 = Eliminar todo 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 = Nombre
+storage-table-headers-cookies-value = Valor
+storage-table-headers-cookies-expires = Expires / Max-Age
+storage-table-headers-cookies-size = Tamaño
+storage-table-headers-cookies-last-accessed = Último acceso
+storage-table-headers-cookies-creation-time = Creado
+storage-table-headers-cache-status = Estado
+storage-table-headers-extension-storage-area = Área de almacenamiento
+
+## 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 = Almacenamiento local
+storage-tree-labels-session-storage = Almacenamiento de sesión
+storage-tree-labels-indexed-db = Indexed DB
+storage-tree-labels-cache = Almacenamiento en caché
+storage-tree-labels-extension-storage = Almacenamiento de la extensión
+
+##
+
+# Tooltip for the button that collapses the right panel in the
+# storage UI when the panel is closed.
+storage-expand-pane =
+ .title = Expandir panel
+
+# Tooltip for the button that collapses the right panel in the
+# storage UI when the panel is open.
+storage-collapse-pane =
+ .title = Colapsar panel
+
+# String displayed in the expires column when the cookie is a Session Cookie
+storage-expires-session = Sesión
+
+# Heading displayed over the item value in the sidebar
+storage-data = Datos
+
+# Heading displayed over the item parsed value in the sidebar
+storage-parsed-value = Valor interpretado
+
+# Warning notification when IndexedDB database could not be deleted immediately.
+# Variables:
+# $dbName (String) - Name of the database
+storage-idb-delete-blocked = La base de datos “{ $dbName }” se eliminará tras cerrarse todas sus conexiones.
+
+# Error notification when IndexedDB database could not be deleted.
+# Variables:
+# $dbName (String) - Name of the database
+storage-idb-delete-error = La base de datos “{ $dbName }” no se ha podido eliminar.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/styleeditor.ftl b/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/styleeditor.ftl
new file mode 100644
index 0000000000..8e4babfce6
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Crear y adjuntar una nueva hoja de estilos al documento
+ .accesskey = N
+styleeditor-import-button =
+ .tooltiptext = Importar y adjuntar una hoja de estilos existente al documento
+ .accesskey = I
+styleeditor-filter-input =
+ .placeholder = Filtrar hojas de estilo
+styleeditor-visibility-toggle =
+ .tooltiptext = Cambiar la visibilidad de la hoja de estilos
+ .accesskey = G
+styleeditor-visibility-toggle-system =
+ .tooltiptext = Las hojas de estilo del sistema no se pueden desactivar
+styleeditor-save-button = Guardar
+ .tooltiptext = Guardar esta hoja de estilos a un fichero
+ .accesskey = G
+styleeditor-options-button =
+ .tooltiptext = Opciones del editor de estilos
+styleeditor-at-rules = At-rules
+styleeditor-editor-textbox =
+ .data-placeholder = Escriba CSS aquí.
+styleeditor-no-stylesheet = Esta página no tiene hoja de estilos.
+styleeditor-no-stylesheet-tip = Quizás le gustaría <a data-l10n-name="append-new-stylesheet">adjuntar una nueva hoja de estilos</a>?
+styleeditor-open-link-new-tab =
+ .label = Abrir enlace en una pestaña nueva
+styleeditor-copy-url =
+ .label = Copiar URL
+styleeditor-find =
+ .label = Buscar
+ .accesskey = B
+styleeditor-find-again =
+ .label = Repetir la búsqueda
+ .accesskey = R
+styleeditor-go-to-line =
+ .label = Saltar a la línea…
+ .accesskey = l
+# Label displayed when searching a term that is not found in any stylesheet path
+styleeditor-stylesheet-all-filtered = No se ha encontrado ninguna hoja de estilo coincidente.
+# 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 } regla
+ *[other] { $ruleCount } reglas.
+ }
+# Title for the pretty print button in the editor footer.
+styleeditor-pretty-print-button =
+ .title = Imprimir hoja de estilos formateada
+# Title for the pretty print button in the editor footer, when it's disabled
+styleeditor-pretty-print-button-disabled =
+ .title = Solo se puede dar formato a archivos CSS
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/toolbox-options.ftl b/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/toolbox-options.ftl
new file mode 100644
index 0000000000..3b9dbcaad1
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/toolbox-options.ftl
@@ -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/.
+
+
+### Localization for Developer Tools options
+
+
+## Default Developer Tools section
+
+# The heading
+options-select-default-tools-label = Herramientas de desarrollo predeterminadas
+
+# 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 = * No compatible con el elemento actual de la caja de herramientas
+
+# 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 = Herr. desarr. instaladas por complementos
+
+# The label for the heading of group of checkboxes corresponding to the default developer
+# tool buttons.
+options-select-enabled-toolbox-buttons-label = Botones en la caja de herramientas
+
+# 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 = Inspector
+
+# The label for the checkbox option to show user agent styles
+options-show-user-agent-styles-label = Mostrar estilos del navegador
+options-show-user-agent-styles-tooltip =
+ .title = Activar esto mostrará los estilos predeterminados que se cargan por el 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 largos en el inspector
+
+# The label for the checkbox option to enable the "drag to update" feature
+options-inspector-draggable-properties-label = Haga clic y arrastre para editar los valores de tamaño
+options-inspector-draggable-properties-tooltip =
+ .title = Haga clic y arrastre para editar los valores de tamaño en la vista de reglas del inspector.
+
+# 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 = Usar resaltadores más simples con prefers-reduced-motion
+options-inspector-simplified-highlighters-tooltip =
+ .title = Activar resaltadores simplificados cuando se habilita prefers-reduced-motion. Dibuja líneas en lugar de rectángulos rellenos alrededor de los elementos resaltados para evitar efectos de parpadeo.
+
+## "Default Color Unit" options for the Inspector
+
+options-default-color-unit-label = Unidad de color predeterminada
+options-default-color-unit-authored = como indicó el autor
+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 = Nombres de colores
+
+## 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 = Autocompletar CSS
+options-stylesheet-autocompletion-tooltip =
+ .title = Autocompletar propiedades, valores y selectores CSS en el editor de estilos a medida que escribe
+
+## Screenshot section
+
+# The heading
+options-screenshot-label = Comportamiento de pantalla
+
+# Label for the checkbox that toggles screenshot to clipboard feature
+options-screenshot-clipboard-only-label = Captura de pantalla solo al portapapeles
+options-screenshot-clipboard-tooltip2 =
+ .title = Guarda la captura de pantalla directamente en el portapapeles
+
+# Label for the checkbox that toggles the camera shutter audio for screenshot tool
+options-screenshot-audio-label = Reproducir sonido del obturador de la cámara
+options-screenshot-audio-tooltip =
+ .title = Activa el sonido de la cámara al tomar una captura
+
+## Editor section
+
+# The heading
+options-sourceeditor-label = Preferencias del editor
+
+options-sourceeditor-detectindentation-tooltip =
+ .title = Deducir sangrado basándose en el contenido del código fuente
+options-sourceeditor-detectindentation-label = Detectar sangrado
+options-sourceeditor-autoclosebrackets-tooltip =
+ .title = Insertar llaves de cerrado automáticamente
+options-sourceeditor-autoclosebrackets-label = Cerrar llaves automáticamente
+options-sourceeditor-expandtab-tooltip =
+ .title = Usar espacios en lugar del carácter de tabulación
+options-sourceeditor-expandtab-label = Sangrar usando espacios
+options-sourceeditor-tabsize-label = Tamaño de la pestaña
+options-sourceeditor-keybinding-label = Combinaciones de teclas
+options-sourceeditor-keybinding-default-label = Predeterminado
+
+## Advanced section
+
+# The heading (this item is also used in perftools.ftl)
+options-context-advanced-settings = Ajustes avanzados
+
+# The label for the checkbox that toggles the HTTP cache on or off
+options-disable-http-cache-label = Desactivar caché HTTP (cuando la caja de herramientas está abierta)
+options-disable-http-cache-tooltip =
+ .title = Activar esta opción desactivará el caché HTTP en todas las pestañas que tengan abierta la caja de herramientas. Los Service Workers no se ven afectados por esta opción.
+
+# The label for checkbox that toggles JavaScript on or off
+options-disable-javascript-label = Desactivar JavaScript *
+options-disable-javascript-tooltip =
+ .title = Activar esta opción desactivará JavaScript en la pestaña actual. Si la pestaña o la caja de herramientas se cierra entonces este ajuste será descartado.
+
+# The label for checkbox that toggles chrome debugging, i.e. the devtools.chrome.enabled preference
+options-enable-chrome-label = Activar cajas herr. depur. chrome del navegador y de complementos
+options-enable-chrome-tooltip =
+ .title = Activar esta opción le permitirá usar varias herramientas de desarrollador en el contexto del navegador (a través de Herramientas > Desarrollador web > Caja de herramientas del navegador) y depurar complementos desde el administrador de complementos
+
+# The label for checkbox that toggles remote debugging, i.e. the devtools.debugger.remote-enabled preference
+options-enable-remote-label = Activar depuración remota
+options-enable-remote-tooltip2 =
+ .title = Activar esta opción permitirá depurar esta instancia del navegador de forma remota
+
+# The label for checkbox that enables F12 as a shortcut to open DevTools
+options-enable-f12-label = Usar la tecla F12 para abrir o cerrar DevTools
+options-enable-f12-tooltip =
+ .title = Activar esta opción vinculará la tecla F12 para abrir o cerrar la caja de herramientas DevTools
+
+# The label for checkbox that toggles custom formatters for objects
+options-enable-custom-formatters-label = Activar formateadores personalizados
+options-enable-custom-formatters-tooltip =
+ .title = Activar esta opción permite que los sitios definan formateadores 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 = Activar service workers bajo HTTP (si la caja de herramientas está abierta)
+options-enable-service-workers-http-tooltip =
+ .title = Activar esta opción permitirá funcionar a los service workers bajo HTTP en todas las pestañas que tengan abierta la caja de herramientas.
+
+# The label for the checkbox that toggles source maps in all tools.
+options-source-maps-label = Activar mapas de código fuente
+options-source-maps-tooltip =
+ .title = Si activa esta opción, los códigos fuentes serán mapeados en las herramientas.
+
+# The message shown for settings that trigger page reload
+options-context-triggers-page-refresh = * Sólo sesión actual, recarga la página
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/toolbox.ftl b/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/toolbox.ftl
new file mode 100644
index 0000000000..4ff5acff76
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Fijar en la parte inferior
+toolbox-meatball-menu-dock-left-label = Anclar a la izquierda
+toolbox-meatball-menu-dock-right-label = Anclar a la derecha
+toolbox-meatball-menu-dock-separate-window-label = Ventana separada
+
+toolbox-meatball-menu-splitconsole-label = Mostrar la consola dividida
+toolbox-meatball-menu-hideconsole-label = Ocultar la consola dividida
+
+toolbox-meatball-menu-settings-label = Ajustes
+toolbox-meatball-menu-documentation-label = Documentación…
+toolbox-meatball-menu-community-label = Comunidad…
+
+# 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 = Desactivar la ocultación automática de ventanas emergentes
+
+toolbox-meatball-menu-pseudo-locale-accented = Activar idioma “acentuado”
+toolbox-meatball-menu-pseudo-locale-bidi = Activar idioma “bidi”
+
+##
+
+
+## These labels are shown in the top-toolbar in the Browser Toolbox and Browser Console
+
+toolbox-mode-browser-toolbox-label = Modo de caja de herramientas del navegador
+toolbox-mode-browser-console-label = Modo de consola del navegador
+
+toolbox-mode-everything-label = Multiproceso
+toolbox-mode-everything-sub-label = (Más lento)
+toolbox-mode-everything-container =
+ .title = Depurar todo en todos los procesos
+
+toolbox-mode-parent-process-label = Solo proceso padre
+toolbox-mode-parent-process-sub-label = (Rápido)
+toolbox-mode-parent-process-container =
+ .title = Concentrarse únicamente en los recursos del proceso padre.
+
+toolbox-always-on-top-enabled2 = Desactivar siempre visible
+ .title = Esto reiniciará las herramientas para desarrolladores
+toolbox-always-on-top-disabled2 = Activar siempre visible
+ .title = Esto reiniciará las herramientas para desarrolladores
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/tooltips.ftl b/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/tooltips.ftl
new file mode 100644
index 0000000000..9647ca1997
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/devtools/client/tooltips.ftl
@@ -0,0 +1,101 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Localization for Developer Tools tooltips.
+
+learn-more = <span data-l10n-name="link">Saber más</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> no tiene ningún efecto en este elemento ya que no es un contenedor flex ni un contenedor de rejilla.
+inactive-css-not-grid-or-flex-container-or-multicol-container = <strong>{ $property }</strong> no tiene ningún efecto en este elemento, ya que no es un contenedor flex, un contenedor grid o un contenedor multicolumna.
+inactive-css-not-multicol-container = <strong>{ $property }</strong> no tiene ningún efecto en este elemento ya que no es un contenedor multicolumna.
+inactive-css-not-grid-or-flex-item = <strong>{ $property }</strong> no tiene ningún efecto en este elemento ya que no es un un ítem grid ni flex.
+inactive-css-not-grid-item = <strong>{ $property }</strong> no tiene ningún efecto en este elemento ya que no es un ítem grid.
+inactive-css-not-grid-container = <strong>{ $property }</strong> no tiene ningún efecto en este elemento ya que no es un contenedor grid.
+inactive-css-not-flex-item = <strong>{ $property }</strong> no tiene ningún efecto en este elemento ya que no es un ítem flex.
+inactive-css-not-flex-container = <strong>{ $property }</strong> no tiene ningún efecto en este elemento ya que no es un contenedor flex.
+inactive-css-not-inline-or-tablecell = <strong>{ $property }</strong> no tiene ningún efecto en este elemento ya que no es un elemento en línea o de celda de tabla.
+inactive-css-first-line-pseudo-element-not-supported = <strong>{ $property }</strong> no es compatible con los pseudoelementos ::first-line.
+inactive-css-first-letter-pseudo-element-not-supported = <strong>{ $property }</strong> no es compatible con los pseudoelementos ::first-letter.
+inactive-css-placeholder-pseudo-element-not-supported = <strong>{ $property }</strong> no es compatible con pseudoelementos ::placeholder.
+inactive-css-property-because-of-display = <strong>{ $property }</strong> no tiene ningún efecto en este elemento ya que su valor de "display" es <strong>{ $display }</strong>.
+inactive-css-not-display-block-on-floated = El motor cambió el valor de <strong>display</strong> a <strong>block</strong> porque el elemento es <strong>floated</strong>.
+inactive-css-property-is-impossible-to-override-in-visited = No es posible anular <strong>{ $property }</strong> debido a la restricción <strong>:visited</strong>.
+inactive-css-position-property-on-unpositioned-box = <strong>{ $property }</strong> no tiene efecto en este elemento ya que no es un elemento posicionado.
+inactive-text-overflow-when-no-overflow = <strong>{ $property }</strong> no tiene ningún efecto en este elemento ya que <strong>overflow:hidden</strong> no está establecido.
+inactive-css-not-for-internal-table-elements = <strong>{ $property }</strong> no tiene efecto en elementos internos de la tabla.
+inactive-css-not-for-internal-table-elements-except-table-cells = <strong>{ $property }</strong> no tiene efecto en elementos internos de la tabla excepto en celdas de la tabla.
+inactive-css-not-table = <strong>{ $property }</strong> no tiene efecto en este elemento ya que no es una tabla.
+inactive-css-not-table-cell = <strong>{ $property }</strong> no tiene efecto en este elemento ya que no es una celda de una tabla.
+inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</strong> no tiene efecto en este elemento ya que no se desplaza.
+inactive-css-border-image = <strong>{ $property }</strong> no tiene efecto en este elemento ya que no se puede aplicar a los elementos de la tabla interna donde <strong>border-collapse</strong> tiene el valor <strong>collapse</strong> en el elemento de la tabla principal.
+inactive-css-ruby-element = <strong>{ $property }</strong> no tiene efecto en este elemento ya que es un elemento ruby. Su tamaño está determinado por el tamaño de fuente del texto ruby.
+inactive-css-highlight-pseudo-elements-not-supported = <strong>{ $property }</strong> no es compatible con los pseudoelementos resaltados.
+inactive-css-cue-pseudo-element-not-supported = <strong>{ $property }</strong> no es compatible con los pseudoelementos ::cue.
+# Variables:
+# $lineCount (integer) - The number of lines the element has.
+inactive-css-text-wrap-balance-lines-exceeded =
+ { $lineCount ->
+ [one] <strong>{ $property }</strong> no tiene efecto en este elemento porque tiene más de { $lineCount } línea.
+ *[other] <strong>{ $property }</strong> no tiene efecto en este elemento porque tiene más de { $lineCount } líneas.
+ }
+inactive-css-text-wrap-balance-fragmented = <strong>{ $property }</strong> no tiene efecto en este elemento porque está fragmentado, ej: su contenido está dividido en múltiples columnas o 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 = Pruebe a añadir <strong>display:grid</strong> o <strong>display:flex</strong>. { learn-more }
+inactive-css-not-grid-or-flex-container-or-multicol-container-fix = Intenta añadir <strong>display:grid</strong>, <strong>display:flex</strong>, o <strong>columns:2</strong>. { learn-more }
+inactive-css-not-multicol-container-fix = Pruebe a añadir <strong>column-count</strong> o <strong>column-width</strong>. { learn-more }
+inactive-css-not-grid-or-flex-item-fix-3 = Pruebe a añadir <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong> o <strong>display:inline-flex</strong> al padre del elemento. { learn-more }
+inactive-css-not-grid-item-fix-2 = Pruebe a añadir <strong>display:grid</strong> o <strong>display:inline-grid</strong> al padre del item. { learn-more }
+inactive-css-not-grid-container-fix = Pruebe a añadir <strong>display:grid</strong> o <strong>display:inline-grid</strong>. { learn-more }
+inactive-css-not-flex-item-fix-2 = Pruebe a añadir <strong>display:flex</strong> o <strong>display:inline-flex</strong> al padre del elemento. { learn-more }
+inactive-css-not-flex-container-fix = Pruebe a añadir <strong>display:flex</strong> o <strong>display:inline-flex</strong>. { learn-more }
+inactive-css-not-inline-or-tablecell-fix = Pruebe a agregar <strong>display:inline</strong> o <strong>display:table-cell</strong>. { learn-more }
+inactive-css-non-replaced-inline-or-table-row-or-row-group-fix = Pruebe a añadir <strong>display:inline-block</strong> o <strong>display:block</strong>. { learn-more }
+inactive-css-non-replaced-inline-or-table-column-or-column-group-fix = Pruebe a añadir <strong>display:inline-block</strong>. { learn-more }
+inactive-css-not-display-block-on-floated-fix = Pruebe a eliminar <strong>float</strong> o añada <strong>display:block</strong>. { learn-more }
+inactive-css-position-property-on-unpositioned-box-fix = Intente establecer la propiedad <strong>position</strong> en algo diferente a <strong>static</strong>. { learn-more }
+inactive-text-overflow-when-no-overflow-fix = Pruebe a añadir <strong>overflow:hidden</strong>. { learn-more }
+inactive-css-not-for-internal-table-elements-fix = Pruebe a configurar su propiedad <strong>display</strong> a algo diferente a <strong>table-cell</strong>, <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong> o <strong>table-footer-group</strong>. { learn-more }
+inactive-css-not-for-internal-table-elements-except-table-cells-fix = Pruebe a configurar su propiedad <strong>display</strong> a algo diferente a <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong> o <strong>table-footer-group</strong>. { learn-more }
+inactive-css-not-table-fix = Pruebe a añadir <strong>display:table</strong> o <strong>display:inline-table</strong>. { learn-more }
+inactive-css-not-table-cell-fix = Pruebe a añadir <strong>display:table-cell</strong>. { learn-more }
+inactive-scroll-padding-when-not-scroll-container-fix = Pruebe a añadir<strong>overflow:auto</strong>, <strong>overflow:scroll</strong>, o <strong>overflow:hidden</strong>. { learn-more }
+inactive-css-border-image-fix = En el elemento de la tabla principal, elimine la propiedad o cambie el valor de <strong>border-collapse</strong> a un valor que no sea <strong>collapse</strong>. { learn-more }
+inactive-css-ruby-element-fix = Intente cambiar el <strong>tamaño de fuente</strong> del texto ruby. { learn-more }
+inactive-css-text-wrap-balance-lines-exceeded-fix = Intente reducir el número de líneas. { learn-more }
+inactive-css-text-wrap-balance-fragmented-fix = Evite dividir el contenido del elemento, ej: eliminando las columnas o usando <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> no es compatible con los siguientes navegadores:
+css-compatibility-deprecated-experimental-message = <strong>{ $property }</strong> era una propiedad experimental que ahora está obsoleta por los estándares W3C. No es compatible con los siguientes navegadores:
+css-compatibility-deprecated-experimental-supported-message = <strong>{ $property }</strong> era una propiedad experimental que ahora está obsoleta por los estándares W3C.
+css-compatibility-deprecated-message = <strong>{ $property }</strong> está obsoleta por los estándares W3C. No es compatible con los siguientes navegadores:
+css-compatibility-deprecated-supported-message = <strong>{ $property }</strong> está obsoleta por los estándares W3C.
+css-compatibility-experimental-message = <strong>{ $property }</strong> es una propiedad experimental. No es compatible con los siguientes navegadores:
+css-compatibility-experimental-supported-message = <strong>{ $property }</strong> es una propiedad experimental.
+css-compatibility-learn-more-message = <span data-l10n-name="link">Saber más</span> sobre <strong>{ $rootProperty }</strong>
+
+## In the Rule View when a rule selector can causes issues, we display an icon.
+## When this icon is hovered one or more of those messages are displayed to explain what
+## the issue are.
+
+# :has() should not be translated
+css-selector-warning-unconstrained-has = Este selector utiliza <strong>:has()</strong> sin restricciones, lo que puede ser lento.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/devtools/shared/debugger-paused-reasons.ftl b/thunderbird-l10n/es-ES/localization/es-ES/devtools/shared/debugger-paused-reasons.ftl
new file mode 100644
index 0000000000..0e3072a763
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 en sentencia del depurador
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a breakpoint
+whypaused-breakpoint = Pausado en punto de ruptura
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an event breakpoint.
+whypaused-event-breakpoint = Pausado en punto de ruptura de evento
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an exception
+whypaused-exception = Pausado en excepción
+
+# 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 en mutación de DOM
+
+# The text that is displayed to describe an added node which triggers a subtree
+# modification
+whypaused-mutation-breakpoint-added = Añadido:
+
+# The text that is displayed to describe a removed node which triggers a subtree
+# modification
+whypaused-mutation-breakpoint-removed = Eliminado:
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused at a JS execution
+whypaused-interrupted = Pausado en la ejecución
+
+# 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 en la ejecución paso a paso
+
+# 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 en escuchador de evento
+
+# The text that is displayed in an info block when evaluating a conditional
+# breakpoint throws an error
+whypaused-breakpoint-condition-thrown = Error con punto de ruptura 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 en 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 en rechazo 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 en el acceso a la propiedad
+
+# 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 al establecer una propiedad
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an assert
+whypaused-assert = Pausado en aseveración (assertion)
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a debugger statement
+whypaused-debug-command = Pausado en función en depuración
+
+# 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/es-ES/localization/es-ES/devtools/shared/highlighters.ftl b/thunderbird-l10n/es-ES/localization/es-ES/devtools/shared/highlighters.ftl
new file mode 100644
index 0000000000..cf57eb6a0b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Fila { $row } / Columna { $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 = Contenedor de cuadrícula
+
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is a grid item.
+gridtype-item = Elemento de cuadrícula
+
+# 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 = Contenedor o elemento de cuadrícula
+
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is a flex container.
+flextype-container = Contenedor 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 = Elemento 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 = Contenedor o elemento 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 = Selector de nodos de DevTools activado. { $action }
+
+# Text displayed in `remote-node-picker-notice`, when the remote page is on desktop
+remote-node-picker-notice-action-desktop = Haga clic en un elemento para seleccionarlo en el Inspector
+
+# Text displayed in `remote-node-picker-notice`, when the remote page is on Android
+remote-node-picker-notice-action-touch = Toque un elemento para seleccionarlo en el Inspector
+
+# The text displayed in the button that is in the notice in the content page when the user
+# clicks on the "Pick an element from the page" in about:devtools-toolbox inspector panel,
+# when debugging a remote page.
+remote-node-picker-notice-hide-button = 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 = Cuando se activa prefers-reduced-motion, es posible activar un resaltador simplificado en el panel de configuración para evitar que parpadeen los colores.
+
+# 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 ajustes
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/devtools/shared/webconsole-commands.ftl b/thunderbird-l10n/es-ES/localization/es-ES/devtools/shared/webconsole-commands.ftl
new file mode 100644
index 0000000000..f80587d4f5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/devtools/shared/webconsole-commands.ftl
@@ -0,0 +1,34 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# These strings 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'
+
+# Usage string for :block command
+webconsole-commands-usage-block =
+ :block URL_STRING
+
+ Empezar a bloquear solicitudes de red
+
+ Acepta solamente un argumento URLSTRING, una cadena sin comillas que será usada para bloquear todas las solicitudes cuya URL esté incluida en la cadena.
+ Use :unblock o la barra lateral de bloqueo del monitor de red para deshacer esto.
+# Usage string for :unblock command
+webconsole-commands-usage-unblock =
+ :unblock URL_STRING
+
+ Dejar de bloquear solicitudes de red
+
+ Acepta solamente un argumento, la misma cadena exacta que se pasó previamente a :block.
+# Usage string for :trace command
+webconsole-commands-usage-trace =
+ :trace
+
+ Alternar el rastreador de JavaScript
+
+ Admite los siguientes argumentos:
+ --logMethod debe establecerse a ‘console’ para registrar en la consola web (predeterminado), o ‘stdout’ para registrar en la salida estándar,
+ --prefix Cadena opcional que será registrada al principio de todos los registros de rastreo,
+ --help o --usage muestra este mensaje.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/devtools/startup/key-shortcuts.ftl b/thunderbird-l10n/es-ES/localization/es-ES/devtools/startup/key-shortcuts.ftl
new file mode 100644
index 0000000000..bbc2c7ca1e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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/es-ES/localization/es-ES/dom/XMLPrettyPrint.ftl b/thunderbird-l10n/es-ES/localization/es-ES/dom/XMLPrettyPrint.ftl
new file mode 100644
index 0000000000..2666ef9be6
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 fichero XML no parece tener ninguna información de estilo asociada. Se muestra debajo el árbol del documento.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/dom/media.ftl b/thunderbird-l10n/es-ES/localization/es-ES/dom/media.ftl
new file mode 100644
index 0000000000..6c886e7570
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 salida de audio predeterminado
+mediastatus-fallback-title = { -brand-short-name } está reproduciendo contenido multimedia
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/locales-preview/aboutTranslations.ftl b/thunderbird-l10n/es-ES/localization/es-ES/locales-preview/aboutTranslations.ftl
new file mode 100644
index 0000000000..68e9d8aafd
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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/es-ES/localization/es-ES/messenger/about3Pane.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/about3Pane.ftl
new file mode 100644
index 0000000000..d2b7168d7d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/about3Pane.ftl
@@ -0,0 +1,421 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 la barra de filtro rápido
+quick-filter-button-label = Filtro rápido
+thread-pane-header-display-button =
+ .title = Opciones de visualización de la lista de mensajes
+# Variables:
+# $count (Number) - The number of messages in this folder.
+thread-pane-folder-message-count =
+ { $count ->
+ [one] { $count } Mensaje
+ *[other] { $count } Mensajes
+ }
+# Variables:
+# $count (Number) - The number of messages currently selected.
+thread-pane-folder-selected-count =
+ { $count ->
+ [one] { $count } Seleccionado
+ *[other] { $count } Seleccionados
+ }
+thread-pane-header-context-table-view =
+ .label = Vista de tabla
+thread-pane-header-context-cards-view =
+ .label = Vista de tarjetas
+thread-pane-header-context-hide =
+ .label = Ocultar cabecera de lista de mensajes
+
+## 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 = Mantener filtros aplicados al cambiar de carpetas
+# The tooltip for the filter button that replaces the quick filter buttons with
+# a dropdown menu.
+quick-filter-bar-dropdown =
+ .title = Menú de filtro rápido
+quick-filter-bar-dropdown-unread =
+ .label = No leídos
+quick-filter-bar-dropdown-starred =
+ .label = Con estrella
+quick-filter-bar-dropdown-inaddrbook =
+ .label = Contacto
+quick-filter-bar-dropdown-tags =
+ .label = Etiquetas
+quick-filter-bar-dropdown-attachment =
+ .label = Adjunto
+# The tooltip for the filter button that causes us to filter results to only
+# include unread messages.
+quick-filter-bar-unread =
+ .title = Mostrar sólo los mensajes no leídos
+# The label for the filter button that causes us to filter results to only
+# include unread messages.
+quick-filter-bar-unread-label = No leídos
+# 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 sólo los mensajes con estrella
+# 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 = Con estrella
+# 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 sólo los mensajes de personas en su libreta de direcciones
+# 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 sólo los mensajes con etiquetas en ellos
+# 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 sólo los mensajes con adjuntos
+# The label for the filter button that causes us to filter results to only
+# include messages with attachments.
+quick-filter-bar-attachment-label = Adjunto
+# The contents of the results box when there is a filter active but there
+# are no messages matching the filter.
+quick-filter-bar-no-results = No hay 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 } mensaje
+ *[other] { $count } mensajes
+ }
+# Keyboard shortcut for the text search box.
+# This should match quick-filter-bar-show in messenger.ftl.
+quick-filter-bar-textbox-shortcut =
+ { PLATFORM() ->
+ [macos] ⇧ ⌘ K
+ *[other] Ctrl+Mayús+K
+ }
+# This is the empty text for the text search box.
+# The goal is to convey to the user that typing in the box will filter
+# the messages and that there is a hotkey they can press to get to the
+# box faster.
+quick-filter-bar-textbox =
+ .placeholder = Filtrar estos mensajes <{ quick-filter-bar-textbox-shortcut }>
+quick-filter-bar-search =
+ .label = Filtrar mensajes:
+# 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 mensajes… { 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 = Buscar en todas partes
+# Tooltip of the Any-of/All-of tagging mode selector.
+quick-filter-bar-boolean-mode =
+ .title = Modo de filtrado de etiquetas
+# The Any-of tagging mode.
+quick-filter-bar-boolean-mode-any =
+ .label = Cualquiera de ellas
+ .title = Al menos una de las etiquetas seleccionadas debe coincidir
+# The All-of tagging mode.
+quick-filter-bar-boolean-mode-all =
+ .label = Todas ellas
+ .title = Todas las etiquetas seleccionadas deben coincidir
+# 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 mensajes por:
+# The button label that toggles whether the text filter searches the message
+# sender for the string.
+quick-filter-bar-text-filter-sender = Remitente
+# The button label that toggles whether the text filter searches the message
+# recipients (to, cc) for the string.
+quick-filter-bar-text-filter-recipients = Destinatarios
+# The button label that toggles whether the text filter searches the message
+# subject for the string.
+quick-filter-bar-text-filter-subject = Asunto
+# The button label that toggles whether the text filter searches the message
+# body for the string.
+quick-filter-bar-text-filter-body = Cuerpo
+# 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 búsqueda por todas las carpetas
+# 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 = Pulse ‘Enter’ de nuevo para continuar su búsqueda de: { $text }
+
+## Folder pane
+
+folder-pane-get-messages-button =
+ .title = Obtener mensajes
+folder-pane-get-all-messages-menuitem =
+ .label = Recibir todos los mensajes nuevos
+ .accesskey = R
+folder-pane-write-message-button = Nuevo mensaje
+ .title = Redactar un nuevo mensaje
+folder-pane-more-menu-button =
+ .title = Opciones del panel de carpetas
+# Context menu item to show/hide different folder types in the folder pane
+folder-pane-header-folder-modes =
+ .label = Modos de carpeta
+# Context menu item to toggle display of "Get messages" button in folder pane header
+folder-pane-header-context-toggle-get-messages =
+ .label = Mostrar “Obtener mensajes”
+# Context menu item to toggle display of "New Message" button in folder pane header
+folder-pane-header-context-toggle-new-message =
+ .label = Mostrar “Nuevo mensaje”
+folder-pane-header-context-hide =
+ .label = Ocultar cabecera del panel de carpetas
+folder-pane-show-total-toggle =
+ .label = Mostrar el número total de mensajes
+# Context menu item to show or hide folder sizes
+folder-pane-header-toggle-folder-size =
+ .label = Mostrar tamaño de carpeta
+folder-pane-header-hide-local-folders =
+ .label = Ocultar carpetas locales
+folder-pane-mode-context-button =
+ .title = Opciones del modo de carpeta
+folder-pane-mode-context-toggle-compact-mode =
+ .label = Vista compacta
+ .accesskey = C
+folder-pane-mode-move-up =
+ .label = Subir
+folder-pane-mode-move-down =
+ .label = Bajar
+# Variables:
+# $count (Number) - Number of unread messages.
+folder-pane-unread-aria-label =
+ { $count ->
+ [one] 1 mensaje no leído
+ *[other] { $count } mensajes no leídos
+ }
+# Variables:
+# $count (Number) - Number of total messages.
+folder-pane-total-aria-label =
+ { $count ->
+ [one] 1 mensaje en total
+ *[other] { $count } mensajes en total
+ }
+
+## Message thread pane
+
+threadpane-column-header-select =
+ .title = Alternar la selección de todos los mensajes
+threadpane-column-header-select-all =
+ .title = Seleccionar todos los mensajes
+threadpane-column-header-deselect-all =
+ .title = Deseleccionar todos los mensajes
+threadpane-column-label-select =
+ .label = Seleccionar mensajes
+threadpane-cell-select =
+ .aria-label = Seleccionar mensaje
+threadpane-column-header-thread =
+ .title = Activar/desactivar conversaciones de mensajes
+threadpane-column-label-thread =
+ .label = Conversación
+threadpane-cell-thread =
+ .aria-label = Estado de la conversación
+threadpane-column-header-flagged =
+ .title = Ordenar por estrella
+threadpane-column-label-flagged =
+ .label = Con estrella
+threadpane-cell-flagged =
+ .aria-label = Con estrella
+threadpane-flagged-cell-label = Con estrella
+threadpane-column-header-attachments =
+ .title = Ordenar por adjuntos
+threadpane-column-label-attachments =
+ .label = Adjuntos
+threadpane-cell-attachments =
+ .aria-label = Adjuntos
+threadpane-attachments-cell-label = Adjuntos
+threadpane-column-header-spam =
+ .title = Ordenar por estado de mensaje no deseado
+threadpane-column-label-spam =
+ .label = Mensaje no deseado
+threadpane-cell-spam =
+ .aria-label = Estado de mensaje no deseado
+threadpane-spam-cell-label = Mensaje no deseado
+threadpane-column-header-unread-button =
+ .title = Ordenar por estado de lectura
+threadpane-column-label-unread-button =
+ .label = Estado de lectura
+threadpane-cell-read-status =
+ .aria-label = Estado de lectura
+threadpane-read-cell-label = Leído
+threadpane-unread-cell-label = No leído
+threadpane-column-header-sender = Remitente
+ .title = Ordenar por remitente
+threadpane-column-label-sender =
+ .label = Remitente
+threadpane-cell-sender =
+ .aria-label = Remitente
+threadpane-column-header-recipient = Destinatario
+ .title = Ordenar por destinatario
+threadpane-column-label-recipient =
+ .label = Destinatario
+threadpane-cell-recipient =
+ .aria-label = Destinatario
+threadpane-column-header-correspondents = Participantes
+ .title = Ordenar por participantes
+threadpane-column-label-correspondents =
+ .label = Participantes
+threadpane-cell-correspondents =
+ .aria-label = Participantes
+threadpane-column-header-subject = Asunto
+ .title = Ordenar por asunto
+threadpane-column-label-subject =
+ .label = Asunto
+threadpane-cell-subject =
+ .aria-label = Asunto
+threadpane-column-header-date = Fecha
+ .title = Ordenar por fecha
+threadpane-column-label-date =
+ .label = Fecha
+threadpane-cell-date =
+ .aria-label = Fecha
+threadpane-column-header-received = Recibido
+ .title = Ordenar por fecha de recepción
+threadpane-column-label-received =
+ .label = Recibido
+threadpane-cell-received =
+ .aria-label = Fecha de recepción
+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 = Tamaño
+ .title = Ordenar por tamaño
+threadpane-column-label-size =
+ .label = Tamaño
+threadpane-cell-size =
+ .aria-label = Tamaño
+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 = Cuenta
+ .title = Ordenar por cuenta
+threadpane-column-label-account =
+ .label = Cuenta
+threadpane-cell-account =
+ .aria-label = Cuenta
+threadpane-column-header-priority = Prioridad
+ .title = Ordenar por prioridad
+threadpane-column-label-priority =
+ .label = Prioridad
+threadpane-cell-priority =
+ .aria-label = Prioridad
+threadpane-column-header-unread = No leídos
+ .title = Número de mensajes no leídos en una conversación
+threadpane-column-label-unread =
+ .label = No leídos
+threadpane-cell-unread =
+ .aria-label = Número de mensajes no leídos
+threadpane-column-header-total = Total
+ .title = Número total de mensajes en la conversación
+threadpane-column-label-total =
+ .label = Total
+threadpane-cell-total =
+ .aria-label = Número total de mensajes
+threadpane-column-header-location = Ubicación
+ .title = Ordenar por ubicación
+threadpane-column-label-location =
+ .label = Ubicación
+threadpane-cell-location =
+ .aria-label = Ubicación
+threadpane-column-header-id = Orden de recepción
+ .title = Ordenar por orden de recepción
+threadpane-column-label-id =
+ .label = Orden de recepción
+threadpane-cell-id =
+ .aria-label = Orden de recepción
+threadpane-column-header-delete =
+ .title = Eliminar un mensaje
+threadpane-column-label-delete =
+ .label = Eliminar
+threadpane-cell-delete =
+ .aria-label = Eliminar
+
+## Message state variations
+
+threadpane-message-new =
+ .alt = Indicador de mensaje nuevo
+ .title = Mensaje nuevo
+threadpane-message-replied =
+ .alt = Indicador de mensaje respondido
+ .title = Mensaje respondido
+threadpane-message-redirected =
+ .alt = Indicador de mensaje redirigido
+ .title = Mensaje redirigido
+threadpane-message-forwarded =
+ .alt = Indicador de mensaje reenviado
+ .title = Mensaje reenviado
+threadpane-message-replied-forwarded =
+ .alt = Indicador de mensaje respondido y reenviado
+ .title = Mensaje respondido y reenviado
+threadpane-message-replied-redirected =
+ .alt = Indicador de mensaje respondido y redirigido
+ .title = Mensaje respondido y redirigido
+threadpane-message-forwarded-redirected =
+ .alt = Indicador de mensaje reenviado y redirigido
+ .title = Mensaje reenviado y redirigido
+threadpane-message-replied-forwarded-redirected =
+ .alt = Indicador de mensaje respondido, reenviado y redirigido
+ .title = Mensaje respondido, reenviado y redirigido
+apply-columns-to-menu =
+ .label = Aplicar columnas a…
+apply-current-view-to-menu =
+ .label = Aplicar la vista actual a…
+apply-current-view-to-folder =
+ .label = Carpeta…
+apply-current-view-to-folder-children =
+ .label = Carpeta y sus subcarpetas…
+
+## Apply columns confirmation dialog
+
+apply-changes-to-folder-title = ¿Aplicar cambios?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-columns-to-folder-message = ¿Aplicar las columnas de la carpeta actual a { $name }?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-columns-to-folder-with-children-message = ¿Aplicar las columnas de la carpeta actual a { $name } y sus subcarpetas?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-view-to-folder-message = ¿Aplicar la vista de la carpeta actual a { $name }?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-view-to-folder-with-children-message = ¿Aplicar la vista de la carpeta actual a { $name } y sus subcarpetas?
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000..43dc189faf
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutAddonsExtra.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/.
+
+add-on-options-button =
+ .title = Opciones del complemento
+
+add-on-search-alternative-button-label = Buscar un complemento alternativo
+
+atn-addons-heading-search-input =
+ .placeholder = Buscar en addons.thunderbird.net
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutDialog.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutDialog.ftl
new file mode 100644
index 0000000000..b0539e5d01
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutDialog.ftl
@@ -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/.
+
+about-update-whats-new = Novedades
+aboutDialog-title =
+ .title = Acerca de { -brand-full-name }
+about-dialog-title = Acerca de { -brand-full-name }
+release-notes-link = Notas de versión
+update-internal-error = No se pueden buscar actualizaciones por un error interno. Las actualizaciones se encuentran disponibles en <a data-l10n-name="manual-link"/>
+update-check-for-updates-button = Buscar actualizaciones
+ .accesskey = B
+update-update-button = Reinicie para actualizar { -brand-shorter-name }
+ .accesskey = R
+update-checking-for-updates = Buscando actualizaciones…
+update-downloading-message = Descargando actualización — <span data-l10n-name="download-status"></span>
+update-applying = Aplicando actualización…
+update-downloading = <img data-l10n-name="icon"/>Descargando actualización — <span data-l10n-name="download-status"></hspan>
+update-failed = Actualización fallida. <a data-l10n-name="failed-link">Descargar la última versión</a>
+update-admin-disabled = Actualizaciones desactivada por el administrador de su sistema
+update-no-updates-found = { -brand-short-name } está actualizado
+update-other-instance-handling-updates = { -brand-short-name } está siendo actualizado por otra instancia
+update-manual = Actualizaciones disponibles en <a data-l10n-name="manual-link"/>
+update-unsupported = No puede efectuar más actualizaciones en este sistema. <a data-l10n-name="unsupported-link">Saber más</a>
+update-restarting = Reiniciando…
+# Variables:
+# $channel (String): description of the update channel (e.g. "release", "beta", "nightly" etc.)
+channel-description = Está actualmente en el canal de actualizaciones <span data-l10n-name="current-channel">{ $channel }</span> .
+warning-desc-version = { -brand-short-name } es experimental y puede ser inestable.
+warning-desc-telemetry = Envía información automáticamente sobre el rendimiento, hardware, uso y personalizaciones a { -vendor-short-name } para ayudar a mejorar { -brand-short-name }.
+# 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 = Error al buscar actualizaciones.
+community-exp =
+ <a data-l10n-name="community-exp-mozilla-link">
+ { -vendor-short-name }</a>
+ es una <a data-l10n-name="community-exp-credits-link">
+ comunidad global</a>
+ que trabaja unida para mantener la Web abierta, pública y accesible a todos.
+community-2 =
+ { -brand-short-name } está diseñado por <a data-l10n-name="community-mozilla-link">
+ { -vendor-short-name }</a>
+ , una <a data-l10n-name="community-credits-link">
+ comunidad global</a>
+ que trabaja unida para mantener la Web abierta, pública y accesible a todos.
+about-helpus =
+ ¿Quiere ayudar? <a data-l10n-name="helpus-donate-link">
+ ¡Haga una donación</a> or <a data-l10n-name="helpus-get-involved-link">
+ involúcrese!</a>
+community-experimental = <a data-l10n-name="community-exp-mozilla-link">{ -vendor-short-name }</a> es una <a data-l10n-name="community-exp-credits-link">comunidad global</a> que trabaja unida para mantener la Web abierta, pública y accesible a todos.
+community-desc = { -brand-short-name } está diseñado por <a data-l10n-name="community-mozilla-link">{ -vendor-short-name }</a>, una <a data-l10n-name="community-credits-link">comunidad global</a> que trabaja unida para mantener la Web abierta, pública y accesible a todos.
+about-donation = ¿Quiere ayudar? <a data-l10n-name="helpus-donate-link">¡Haga una donación</a> or <a data-l10n-name="helpus-get-involved-link">involúcrese!</a>
+bottom-links-license = Información de licencia
+bottom-links-rights = Derechos del usuario final
+bottom-links-privacy = Política de privacidad
+cmd-close-mac-command-key =
+ .key = w
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutImport.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutImport.ftl
new file mode 100644
index 0000000000..47483e8d00
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutImport.ftl
@@ -0,0 +1,283 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+import-page-title = Importar
+
+export-page-title = Exportar
+
+## Header
+
+import-start = Herramienta de importación
+
+import-start-title = Importar ajustes o datos desde una aplicación o archivo.
+
+import-start-description = Seleccione la fuente desde la que desea importar. Más tarde se le pedirá que elija qué datos deben importarse.
+
+import-from-app = Importar desde la aplicación
+
+import-file = Importar desde un archivo
+
+import-file-title = Seleccione un archivo para importar su contenido.
+
+import-file-description = Seleccione importar un perfil, libretas de direcciones o calendarios previamente respaldados.
+
+import-address-book-title = Importar archivo de libreta de direcciones
+
+import-calendar-title = Importar archivo de calendario
+
+export-profile = Exportar
+
+## Buttons
+
+button-back = Atrás
+
+button-continue = Continuar
+
+button-export = Exportar
+
+button-finish = Terminar
+
+## Import from app steps
+
+app-name-thunderbird = Thunderbird
+
+app-name-seamonkey = SeaMonkey
+
+app-name-outlook = Outlook
+
+app-name-becky = Becky! Internet Mail
+
+app-name-apple-mail = Apple Mail
+
+source-thunderbird = Importar desde otra instalación de { app-name-thunderbird }
+
+source-thunderbird-description = Importar ajustes, filtros, mensajes y otros datos desde un perfil de { app-name-thunderbird }.
+
+source-seamonkey = Importar desde una instalación de { app-name-seamonkey }
+
+source-seamonkey-description = Importar ajustes, filtros, mensajes y otros datos desde un perfil de { app-name-seamonkey }.
+
+source-outlook = Importar desde { app-name-outlook }
+
+source-outlook-description = Importar cuentas, libretas de direcciones y mensajes desde { app-name-outlook }.
+
+source-becky = Importar desde { app-name-becky }
+
+source-becky-description = Importar libretas de direcciones y mensajes de { app-name-becky }.
+
+source-apple-mail = Importar desde { app-name-apple-mail }
+
+source-apple-mail-description = Importar mensajes de { app-name-apple-mail }.
+
+source-file2 = Importar desde un archivo
+
+source-file-description = Seleccionar un archivo para importar libretas de direcciones, calendarios o una copia de seguridad del perfil (archivo ZIP).
+
+## Import from file selections
+
+file-profile2 = Importar perfil respaldado
+
+file-profile-description = Seleccionar un perfil de Thunderbird previamente respaldado (.zip)
+
+file-calendar = Importar calendarios
+
+file-calendar-description = Seleccionar un archivo que contenga calendarios o eventos exportados (.ics)
+
+file-addressbook = Importar libretas de direcciones
+
+file-addressbook-description = Seleccionar un archivo que contenga libretas de direcciones y contactos exportados
+
+## Import from app profile steps
+
+from-app-thunderbird = Importar desde un perfil de { app-name-thunderbird }
+
+from-app-seamonkey = Importar desde un perfil de { app-name-seamonkey }
+
+from-app-outlook = Importar desde { app-name-outlook }
+
+from-app-becky = Importar desde { app-name-becky }
+
+from-app-apple-mail = Importar desde { app-name-apple-mail }
+
+profiles-pane-title-thunderbird = Importar ajustes y datos desde un perfil de { app-name-thunderbird }.
+
+profiles-pane-title-seamonkey = Importar ajustes y datos desde un perfil de { app-name-seamonkey }.
+
+profiles-pane-title-outlook = Importar datos desde { app-name-outlook }.
+
+profiles-pane-title-becky = Importar datos desde { app-name-becky }.
+
+profiles-pane-title-apple-mail = Importar mensajes desde { app-name-apple-mail }.
+
+profile-source = Importar desde perfil
+
+# $profileName (string) - name of the profile
+profile-source-named = Importar desde el perfil <strong>"{ $profileName }"</strong>
+
+profile-file-picker-directory = Seleccionar una carpeta de perfil
+
+profile-file-picker-archive = Seleccionar un archivo <strong>ZIP</strong>
+
+profile-file-picker-archive-description = El tamaño del archivo ZIP debe ser menor de 2 GiB.
+
+profile-file-picker-archive-title = Seleccionar un archivo ZIP (menor de 2 GiB)
+
+items-pane-title2 = Seleccionar qué importar:
+
+items-pane-directory = Directorio:
+
+items-pane-profile-name = Nombre del perfil:
+
+items-pane-checkbox-accounts = Cuentas y configuración
+
+items-pane-checkbox-address-books = Libretas de direcciones
+
+items-pane-checkbox-calendars = Calendarios
+
+items-pane-checkbox-mail-messages = Mensajes de correo
+
+items-pane-override = Cualquier dato existente o idéntico no se sobrescribirá.
+
+## Import from address book file steps
+
+import-from-addr-book-file-description = Seleccionar el formato de archivo que contiene los datos de su libreta de direcciones.
+
+addr-book-csv-file = Archivo separado por comas o tabuladores (.csv, .tsv)
+
+addr-book-ldif-file = Archivo LDIF (.ldif)
+
+addr-book-vcard-file = Archivo vCard (.vcf, .vcard)
+
+addr-book-sqlite-file = Archivo de base de datos SQLite (.sqlite)
+
+addr-book-mab-file = Archivo de base de datos Mork (.mab)
+
+addr-book-file-picker = Seleccione un archivo de libreta de direcciones
+
+addr-book-csv-field-map-title = Hacer coincidir los nombres de campo
+
+addr-book-csv-field-map-desc = Seleccione los campos de la libreta de direcciones correspondientes a los campos de origen. Desmarque los campos que no desea importar.
+
+addr-book-directories-title = Indique dónde importar los datos seleccionados
+
+addr-book-directories-pane-source = Archivo fuente:
+
+# $addressBookName (string) - name of the new address book that would be created.
+addr-book-import-into-new-directory2 = Crear un nuevo directorio llamado <strong>"{ $addressBookName }"</strong>
+
+# $addressBookName (string) - name of the address book to import into
+addr-book-summary-title = Importar los datos seleccionados en el directorio "{ $addressBookName }"
+
+# $addressBookName (string) - name of the address book that will be created.
+addr-book-summary-description = Se creará una nueva libreta de direcciones llamada "{ $addressBookName }".
+
+## Import from calendar file steps
+
+import-from-calendar-file-desc = Seleccione el archivo iCalendar (.ics) que quiere importar.
+
+calendar-items-title = Seleccionar los elementos que se van a importar:
+
+calendar-items-loading = Cargando elementos...
+
+calendar-items-filter-input =
+ .placeholder = Filtrar elementos...
+
+calendar-select-all-items = Seleccionar todo
+
+calendar-deselect-all-items = Deseleccionar todo
+
+calendar-target-title = Indique dónde importar los elementos seleccionados.
+
+# $targetCalendar (string) - name of the new calendar that would be created
+calendar-import-into-new-calendar2 = Crear un nuevo calendario llamado <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 un elemento en el calendario "{ $targetCalendar }"
+ *[other] Importar { $itemCount } elementos en el calendario "{ $targetCalendar }"
+ }
+
+# $targetCalendar (string) - name of the calendar that will be created
+calendar-summary-description = Se creará un nuevo calendario llamado "{ $targetCalendar }".
+
+## Import dialog
+
+# $progressPercent (string) - percent formatted progress (for example "10%")
+progress-pane-importing2 = Importando… { $progressPercent }
+
+# $progressPercent (string) - percent formatted progress (for example "10%")
+progress-pane-exporting2 = Exportando… { $progressPercent }
+
+progress-pane-finished-desc2 = Terminado.
+
+error-pane-title = Error
+
+error-message-zip-file-too-big2 = El archivo ZIP seleccionado tiene más de 2 GiB. Primero extráigalo, luego impórtelo desde la carpeta extraída.
+
+error-message-extract-zip-file-failed2 = No se pudo extraer el archivo ZIP. Extráigalo manualmente, luego impórtelo desde la carpeta extraída.
+
+error-message-failed = La importación ha fallado inesperadamente, puede que haya más información en la consola de errores.
+
+error-failed-to-parse-ics-file = No se han encontrado elementos importables en el archivo.
+
+error-export-failed = La exportación ha fallado inesperadamente, puede que haya más información en la consola de errores.
+
+error-message-no-profile = No se ha encontrado ningún perfil.
+
+## <csv-field-map> element
+
+csv-first-row-contains-headers = La primera fila contiene nombres de campo
+
+csv-source-field = Campo fuente
+
+csv-source-first-record = Primer registro
+
+csv-source-second-record = Segundo registro
+
+csv-target-field = Campo de la libreta de direcciones
+
+## Export tab
+
+export-profile-title = Exportar cuentas, mensajes, libretas de direcciones y ajustes a un archivo ZIP.
+
+export-profile-description = Si el tamaño de su perfil actual es mayor de 2 GiB, le recomendamos que haga usted mismo la copia de seguridad.
+
+export-open-profile-folder = Abrir carpeta de perfil
+
+export-file-picker2 = Exportar a un archivo ZIP
+
+export-brand-name = { -brand-product-name }
+
+## Summary pane
+
+summary-pane-title = Datos a importar
+
+summary-pane-start = Iniciar importación
+
+summary-pane-warning = { -brand-product-name } deberá reiniciarse cuando termine la importación.
+
+summary-pane-start-over = Reiniciar la herramienta de importación
+
+## Footer area
+
+footer-help = ¿Necesita ayuda?
+
+footer-import-documentation = Documentación sobre el proceso de importación
+
+footer-export-documentation = Documentación sobre el proceso de exportación
+
+footer-support-forum = Foro de ayuda
+
+## Step navigation on top of the wizard pages
+
+step-list =
+ .aria-label = Fases de la importación
+
+step-confirm = Confirmar
+
+# Variables:
+# $number (number) - step number
+step-count = { $number }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutProfilesExtra.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutProfilesExtra.ftl
new file mode 100644
index 0000000000..297f5f5874
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Abrir perfil
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutRights.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutRights.ftl
new file mode 100644
index 0000000000..22c18807d4
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutRights.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/.
+
+rights-title = Sobre sus derechos
+rights-intro = { -brand-full-name } es un software gratuito y de código abierto construido por una comunidad de miles de colaboradores de todo el mundo. Hay una serie de cosas que debería conocer:
+rights-intro-point-1 = { -brand-short-name } está disponible para usted bajo los términos de la <a data-l10n-name="mozilla-public-license-link">Mozilla Public License (Licencia Pública de Mozilla)</a>. Esto significa que puede usar, copiar y distribuir { -brand-short-name } a los demás. También puede modificar el código fuente de { -brand-short-name } para adaptarlo a sus necesidades. La Mozilla Public License (Licencia Pública de Mozilla) le otorga el derecho de distribuir sus versiones modificadas.
+rights-intro-point-2 = No se le otorga ningún derecho o licencia sobre las marcas registradas de la Fundación Mozilla o cualquier tercero, incluyendo sin limitación el nombre y logo de Thunderbird. Se puede encontrar información adicional sobre las marcas registradas <a data-l10n-name="mozilla-trademarks-link">here</a>.
+rights-intro-point-3 = Algunas características en { -brand-short-name }, como el agente de informe de fallos, le dan la opción de proporcionar información a { -vendor-short-name }. Al elegir enviar esa información, concede a { -vendor-short-name } permiso para usar la misma para mejorar sus productos, para publicar esa información en sus sitios web y para distribuirla.
+rights-intro-point-4 = La manera en que usamos su información personal y las opiniones enviadas a { -vendor-short-name } a través de { -brand-short-name } se describe en la <a data-l10n-name="mozilla-privacy-policy-link">Política de privacidad de { -brand-short-name }</a>.
+rights-intro-point-4-unbranded = Cualquier política de privacidad aplicable a este producto debe listarse aquí.
+rights-intro-point-5 = Algunas características de { -brand-short-name } hacen uso de servicios de información basados en web; sin embargo, no podemos garantizar que sean 100 % precisos ni libres de errores. Se pueden encontrar más detalles, incluyendo información sobre cómo desactivar las características que usan estos servicios, en la <a data-l10n-name="mozilla-service-terms-link">términos del servicio</a>.
+rights-intro-point-5-unbranded = Si este producto incorpora servicios web, cualesquiera términos del servicio aplicables a los servicios deberían enlazarse en los <a data-l10n-name="mozilla-website-services-link">Servicios de sitios web</a> sección.
+rights-intro-point-6 = Para reproducir ciertos tipos de contenido de víeo, { -brand-short-name } descarga ciertos módulos de descifrado de contenido de terceros.
+rights-webservices-header = Servicios de información de { -brand-full-name } basados en web
+rights-webservices2 = { -brand-full-name } usa servicios de información basados en web ("servicios") para proporcionar algunas de las características ofrecidas para su uso con esta versión binaria de { -brand-short-name } bajo los términos descritos a continuación. Si no quiere usar uno o más de los servicios o los términos que siguen no son aceptables, puede desactivar la característica o servicio(s). Las instrucciones sobre cómo desactivar una característica o servicio concretos pueden encontrarse <a data-l10n-name="mozilla-disable-service-link">aquí</a>. Otras características y servicios pueden desactivarse en los ajustes de la aplicación.
+rights-locationawarebrowsing = <strong>Navegación basada en ubicación: </strong>siempre son a elección del usuario. Nunca se envía información sobre su ubicación sin su permiso. Si desea desactivar la característica por completo, siga esto pasos:
+rights-locationawarebrowsing-term-1 = En la barra de direcciones, escriba <code>about:config</code>
+rights-locationawarebrowsing-term-2 = Escriba geo.enabled
+rights-locationawarebrowsing-term-3 = Haga doble clic en la preferencia geo.enabled
+rights-locationawarebrowsing-term-4 = La navegación basada en ubicación está ahora desactivada
+rights-webservices-unbranded = Aquí debe incluirse un resumen de los servicios de sitios web que el producto incorpora, junto con instrucciones de cómo deshabilitarlas, si se aplica.
+rights-webservices-term-unbranded = Cualquier término de servicio para este producto debe ser listado aquí.
+rights-webservices-term-1 = { -vendor-short-name } y sus colaboradores, licenciatarios y socios trabajan para proporcionar los servicios más precisos y actualizados. Sin embargo, no podemos garantizar que esta información sea completa y esté libre de errores. Por ejemplo, el servicio de navegación segura puede no identificar algunos sitios peligrosos y puede identificar algunos sitios seguros por error y las direcciones devueltas por nuestros proveedores del servicio de navegación basada en la ubicación son sólo estimaciones y ni nosotros ni nuestros proveedores garantizamos la exactitud de las ubicaciones proporcionadas.
+rights-webservices-term-2 = { -vendor-short-name } puede discontinuar o cambiar los servicios a su albedrío.
+rights-webservices-term-3 = Puede usar estos servicios con la versión correspondiente de { -brand-short-name }, y { -vendor-short-name } le otorga derechos para hacerlo. { -vendor-short-name } y sus licenciatarios se reservan el resto de derechos de los servicios. Estos términos no limitan ningún derecho otorgado por las licencias de código abierto aplicables a { -brand-short-name } y las versiones del código fuente correspondiente de { -brand-short-name }.
+rights-webservices-term-4 = <strong>Los servicios son provistos "tal cual". { -vendor-short-name }, sus colaboradores, licenciatarios y distribuidores, rechazan toda garantía, así donde esté expresado o donde esté implícito, incluyendo y sin limitarse, garantías de que el servicio es comerciable y que cumple con su necesidad particular. Usted conlleva el riesgo seleccionado de este servicio para su propósito así como a la calidad y desempeño del servicio. Algunas jurisdicciones no permiten la exclusión o limitación de las garantías implícitas, así que esta denegación puede no aplicarse en su caso.</strong>
+rights-webservices-term-5 = <strong>Excepto donde sea requerido por la ley, { -vendor-short-name }, sus colaboradores, licenciatarios y distribuidores no podrán ser responsables de ningún daño indirecto, especial, imprevisto, resultante, punitivo o ejemplar relacionado con el uso de { -brand-short-name } y los servicios. La responsabilidad colectiva bajo estos términos no podrán exceder los US$500 (quinientos dólares). Algunas jurisdicciones no permiten la exclusión o limitación de ciertos daños, así que esta exclusión y limitación puede no ser aplicable para usted.</strong>
+rights-webservices-term-6 = { -vendor-short-name } puede actualizar estos términos si es necesario de tiempo en tiempo. Estos términos no pueden ser modificados o cancelados sin el consentimiento por escrito de { -vendor-short-name }.
+rights-webservices-term-7 = Estos términos están regidos por las leyes del estado de California, EE.UU., excluyendo sus conflictos con otras estipulaciones de la ley. Si cualquier parte de estos términos es posible que sea inválida o inexigible, las porciones restantes continuarán teniendo su efecto total. En el caso de haber un conflicto entre una versión traducida de estos términos y la versión en idioma Inglés, la versión en Inglés será la que tendrá el control.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000..93b6a99df6
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Configuración del calendario
+calendars-table-heading-property = Nombre
+calendars-table-heading-value = Valor
+calendars-table-name = Nombre
+calendars-table-type = Tipo
+calendars-table-disabled = Desactivado
+calendars-table-username = Nombre de usuario
+calendars-table-uri = URI
+calendars-table-refreshinterval = Intervalo de actualización
+calendars-table-readonly = Sólo lectura
+calendars-table-suppressalarms = Eliminar alarmas
+calendars-table-cache-enabled = Caché activado
+calendars-table-imip-identity = Identidad iMIP
+calendars-table-imip-identity-disabled = iMIP desactivado
+calendars-table-imip-identity-account = Cuenta iMIP
+calendars-table-organizerid = Id del organizador
+calendars-table-forceemailscheduling = Forzar programación de correos
+calendars-table-capabilities-alarms-popup-supported = Avisos emergentes permitidos
+calendars-table-capabilities-alarms-oninviations-supported = Avisos de invitaciones permitidos
+calendars-table-capabilities-alarms-maxcount = Número de avisos máximos por evento
+calendars-table-capabilities-attachments-supported = Adjuntos admitidos
+calendars-table-capabilities-categories-maxcount = Número máximo de categorías
+calendars-table-capabilities-privacy-supported = Estado de privacidad admitido
+calendars-table-capabilities-priority-supported = Prioridad admitida
+calendars-table-capabilities-events-supported = Evento admitido
+calendars-table-capabilities-tasks-supported = Tarea admitida
+calendars-table-capabilities-timezones-floating-supported = Hora local admitida
+calendars-table-capabilities-timezones-utc-supported = UTC/GMT admitido
+calendars-table-capabilities-autoschedule-supported = Programación automática admitida
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutSupportChat.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutSupportChat.ftl
new file mode 100644
index 0000000000..d4d4fc16a7
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Cuentas de chat
+chat-table-heading-account = ID
+chat-table-heading-protocol = Protocolo
+chat-table-heading-name = Nombre
+chat-table-heading-actions = Acciones
+chat-table-copy-debug-log = Copiar registro de depuración
+ .title = Copiar errores y otros registros de esta cuenta de chat al portapapeles. Puede contener información personal como mensajes de chat.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutSupportMail.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutSupportMail.ftl
new file mode 100644
index 0000000000..ae72b34fa1
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/aboutSupportMail.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/.
+
+accounts-title = Cuentas de correo y noticias
+show-private-data-main-text = Incluir nombres de cuenta
+show-private-data-explanation-text = (información potencialmente personal)
+accounts-ID = ID
+accounts-name = Nombre
+accounts-incoming-server = Servidor de entrada
+accounts-outgoing-servers = Servidores de salida
+accounts-server-name = Nombre
+accounts-conn-security = Seguridad de la conexión
+accounts-auth-method = Método de identificación
+accounts-default = ¿Predeterminada?
+identity-name = Identidad
+send-via-email = Enviar por correo
+app-basics-telemetry = Datos de telemetría
+app-basics-cache-use = Uso de caché
+mail-libs-title = Bibliotecas
+libs-table-heading-library = Biblioteca
+libs-table-heading-expected-version = Versión mínima esperada
+libs-table-heading-loaded-version = Versión en uso
+libs-table-heading-path = Ruta
+libs-table-heading-status = Estado
+libs-rnp-status-ok = Aceptar
+libs-rnp-status-load-failed = Imposible cargar. OpenPGP no funcionará.
+libs-rnp-status-incompatible = Versión incompatible. OpenPGP no funcionará.
+libs-rnp-status-unofficial = Versión no oficial. OpenPGP podría no funcionar como se esperaba.
+libs-otr-status-ok = Aceptar
+libs-otr-status-error = Imposible cargar. El cifrado del chat OTR no funcionará.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/accountCentral.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/accountCentral.ftl
new file mode 100644
index 0000000000..063d437ee7
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Bienvenido a { -brand-full-name }
+account-settings = Configuración de la cuenta
+
+# $accounts (Number) - the number of configured accounts
+setup-title = Elija qué configurar
+about-title = Acerca de { -brand-full-name }
+resources-title = Recursos
+
+release-notes =
+ .title = Acerca de { -brand-full-name }
+
+email-label = Correo
+ .aria-label = Conectar con su cuenta de correo existente
+email-description = { -brand-short-name } le permite conectar con su cuenta de correo existente, para leer sus mensajes cómoda y eficientemente desde la aplicación.
+
+calendar-label = Calendario
+ .aria-label = Crear un calendario nuevo
+calendar-description = { -brand-short-name } le permite manejar eventos y le mantiene organizado. Conectar con un calendario remoto hara que todos sus eventos estén sincronizados en todos sus dispositivos.
+
+chat-label = Chat
+ .aria-label = Conectar con su cuenta de chat
+chat-description = { -brand-short-name } le permite conectarse a múltiples cuentas de mensajería instantánea, ofreciendo compatibilidad con varias plataformas.
+
+filelink-label = Filelink
+ .aria-label = Configurar Filelink
+filelink-description = { -brand-short-name } le permite configurar una práctica cuenta de enlace con archivos en la nube para enviar fácilmente adjuntos de gran tamaño.
+
+addressbook-label = Libreta de direcciones
+ .aria-label = Crear una libreta de direcciones nueva
+addressbook-description = { -brand-short-name } le permite organizar todos sus contactos en una libreta de direcciones. También puede conectar con una libreta de direcciones remota para conservar todos sus contactos sincronizados.
+
+feeds-label = Canales
+ .aria-label = Conectar con canales
+feeds-description = { -brand-short-name } le permite conectarse a canales RSS/Atom para obtener noticias y actualizaciones de todo tipo.
+
+newsgroups-label = Grupos de noticias
+ .aria-label = Conectar con grupos de noticias
+newsgroups-description = { -brand-short-name } le permite conectar con todos los grupos de noticias que quiera.
+
+import-title = Importar de otro programa
+import-paragraph2 = { -brand-short-name } le permite importar mensajes de correo, entradas de libretas de direcciones, suscripciones a canales, ajustes y filtros de otros programas de correo y formatos comunes de libretas de direcciones.
+
+import-label = Importar
+ .aria-label = Importar datos de otros programas
+
+about-paragraph = Thunderbird es el cliente líder de código abierto y multiplataforma de correo y calendario, libre tanto para uso personal como profesional. Queremos que siga siendo seguro y cada día mejor. Una donación nos permitirá contratar desarrolladores, pagar infraestructura y continuar mejorando.
+
+about-paragraph-consider-donation = <b>Thunderbird está financiado por usuarios como usted! Si le gusta Thunderbird, considere hacer una donación.</b> La mejor manera de asegurar que Thunderbird continúa disponible es <a data-l10n-name="donation-link">hacer una donación</a>.
+
+explore-link = Explorar características
+support-link = Asistencia
+involved-link = Involucrarse
+developer-link = Documentación para desarrolladores
+
+read = Leer mensajes
+compose = Escribir un mensaje nuevo
+search = Buscar mensajes
+filter = Administrar filtros de mensajes
+nntp-subscription = Administrar suscripciones de grupos de noticias
+rss-subscription = Administrar suscripciones de canales
+e2e = Cifrado de extremo a extremo
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/accountManager.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/accountManager.ftl
new file mode 100644
index 0000000000..5f7f80b31a
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/accountManager.ftl
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+open-preferences-sidebar-button2 = Ajustes de { -brand-short-name }
+
+open-addons-sidebar-button = Complementos y temas
+
+account-action-add-newsgroup-account =
+ .label = Añadir una cuenta de grupo de noticias…
+ .accesskey = n
+
+server-change-restart-required = Debe reiniciar para aplicar el cambio de nombre del servidor o del nombre de usuario.
+
+edit-vcard-dialog-accept-button = Guardar
+ .accesskey = G
+edit-vcard-dialog-cancel-button = Cancelar
+ .accesskey = C
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/accountProvisioner.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/accountProvisioner.ftl
new file mode 100644
index 0000000000..b0ab3d8237
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/accountProvisioner.ftl
@@ -0,0 +1,78 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+account-provisioner-tab-title = Obtener una nueva dirección de correo electrónico de un proveedor de servicios
+
+provisioner-searching-icon =
+ .alt = Buscando…
+
+account-provisioner-title = Crear una nueva dirección de correo electrónico
+
+account-provisioner-description = Utilice los servicios de nuestros socios de confianza para obtener una nueva dirección de correo electrónico privada y segura
+
+account-provisioner-start-help = Los términos de búsqueda utilizados se envían a { -vendor-short-name } (<a data-l10n-name="mozilla-privacy-link">Política de privacidad</a>) y a los proveedores de correo electrónico de terceros <strong>mailfence.com</strong> (<a data-l10n-name="mailfence-privacy-link">Política de privacidad</a>, <a data-l10n-name="mailfence-tou-link">Términos de uso</a>) y <strong>gandi.net</strong> (<a data-l10n-name="gandi-privacy-link">Política de privacidad</a>, <a data-l10n-name="gandi-tou-link">Términos de uso</a>) para encontrar direcciones de correo electrónico disponibles.
+
+account-provisioner-mail-account-title = Comprar una nueva dirección de correo electrónico
+
+account-provisioner-mail-account-description = Thunderbird se ha asociado con <a data-l10n-name="mailfence-home-link">Mailfence</a> para ofrecerle un nuevo correo electrónico privado y seguro. Creemos que todo el mundo debería tener un correo electrónico seguro.
+
+account-provisioner-domain-title = Comprar un correo electrónico y un dominio propio
+
+account-provisioner-domain-description = Thunderbird se ha asociado con <a data-l10n-name="gandi-home-link">Gandi</a> para ofrecerle un dominio personalizado. Esto le permite usar cualquier dirección en ese dominio.
+
+## Forms
+
+account-provisioner-mail-input =
+ .placeholder = Su nombre, apodo u otro término de búsqueda
+
+account-provisioner-domain-input =
+ .placeholder = Su nombre, apodo u otro término de búsqueda
+
+account-provisioner-search-button = Buscar
+
+account-provisioner-button-cancel = Cancelar
+
+account-provisioner-button-existing = Utilizar una cuenta de correo electrónico existente
+
+account-provisioner-button-back = Retroceder
+
+## Notifications
+
+account-provisioner-fetching-provisioners = Obteniendo proveedores…
+
+account-provisioner-connection-issues = No se puede comunicar con nuestros servidores de registro. Compruebe su conexión.
+
+account-provisioner-searching-email = Buscando cuentas de correo electrónico disponibles...
+
+account-provisioner-searching-domain = Buscando dominios disponibles...
+
+account-provisioner-searching-error = No hemos podido encontrar ninguna dirección para sugerirle. Intente cambiar los términos de búsqueda.
+
+## Illustrations
+
+account-provisioner-step1-image =
+ .title = Elija qué cuenta crear
+
+## Search results
+
+# Variables:
+# $count (Number) - The number of domains found during search.
+account-provisioner-results-title =
+ { $count ->
+ [one] Una dirección disponible encontrada para:
+ *[other] { $count } direcciones disponibles encontradas para:
+ }
+
+account-provisioner-mail-results-caption = Puede intentar buscar apodos o algún otro término para encontrar más correos electrónicos.
+
+account-provisioner-domain-results-caption = Puede intentar buscar apodos o algún otro término para encontrar más correos dominios.
+
+account-provisioner-free-account = Gratis
+
+account-provision-price-per-year = { $price } al año
+
+account-provisioner-all-results-button = Mostrar todos los resultados
+
+account-provisioner-open-in-tab-img =
+ .title = Se abre en una nueva pestaña
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/accountcreation/accountHub.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/accountcreation/accountHub.ftl
new file mode 100644
index 0000000000..1365c7b41c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/accountcreation/accountHub.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/.
+
+
+### Account Hub
+### Account hub is where user can setup new accounts in Thunderbird.
+
+
+## Header
+
+account-hub-brand = { -brand-full-name }
+account-hub-welcome-line = Te damos la bienvenida a <span data-l10n-name="brand-name">{ -brand-full-name }</span>
+account-hub-title = Centro de cuentas
+
+## Footer
+
+account-hub-release-notes = Notas de la versión
+account-hub-support = Ayuda
+account-hub-donate = Donar
+
+## Initial setup page
+
+account-hub-email-setup-button = Cuenta de correo electrónico
+ .title = Configurar una cuenta de correo electrónico
+account-hub-calendar-setup-button = Calendario
+ .title = Configurar un calendario local o remoto
+account-hub-address-book-setup-button = Libreta de direcciones
+ .title = Configurar una libreta de direcciones local o remota
+account-hub-chat-setup-button = Chat
+ .title = Configurar una cuenta de chat
+account-hub-feed-setup-button = Canal RSS
+ .title = Configurar una cuenta de canal RSS
+account-hub-newsgroup-setup-button = Grupo de noticias
+ .title = Configurar una cuenta de grupo de noticias
+account-hub-import-setup-button = Importar
+ .title = Importar un perfil respaldado
+# Note: "Sync" represents the Firefox Sync product so it shouldn't be translated.
+account-hub-sync-button = Iniciar sesión en Sync…
+
+## Email page
+
+account-hub-email-title = Configure su cuenta de correo electrónico
+account-hub-add-email-title = Añada su cuenta
+account-hub-manually-configure-email-title = Configuración de la cuenta
+account-hub-email-cancel-button = Cancelar
+account-hub-email-stop-button = Detener
+account-hub-email-back-button = Atrás
+account-hub-email-retest-button = Volver a probar
+account-hub-email-finish-button = Finalizar
+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 entrada
+account-hub-outgoing-server-legend = Servidor de salida
+account-hub-protocol-label = Protocolo
+account-hub-hostname-label = Nombre del servidor
+account-hub-port-label = Puerto
+ .title = Establezca el número de puerto en 0 para la detección automática
+account-hub-auto-description = { -brand-short-name } intentará detectar automáticamente los campos que se dejen en blanco.
+account-hub-ssl-label = Seguridad de la conexión
+
+## Incoming/Outgoing SSL Authentication options
+
+account-hub-ssl-autodetect-option =
+ .label = Detectar automáticamente
+account-hub-ssl-no-authentication-option =
+ .label = Sin autentificación
+account-hub-ssl-cleartext-password-option =
+ .label = Contraseña normal
+account-hub-ssl-encrypted-password-option =
+ .label = Contraseña cifrada
+
+## Incoming/Outgoing SSL options
+
+account-hub-ssl-noencryption-option =
+ .label = Ninguno
+account-hub-auth-label = Método de autentificación
+account-hub-username-label = Nombre de usuario
+account-hub-adding-account-title = Añadiendo cuenta
+account-hub-adding-account-subheader = Volver a probar los ajustes de configuración de la cuenta
+account-hub-account-added-title = Cuenta añadida
+account-hub-find-settings-failed = { -brand-full-name } no ha podido encontrar la configuración de la cuenta de correo electrónico.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000..49b81e81cc
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,426 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+account-setup-tab-title = Configuración de cuenta
+
+## Header
+
+account-setup-title = Configurar su dirección de correo electrónico existente.
+
+account-setup-description = Para utilizar su cuenta de correo electrónico actual, introduzca sus credenciales.
+
+account-setup-secondary-description = { -brand-product-name } buscará automáticamente una configuración de servidor recomendada y que funcione.
+
+account-setup-success-title = Cuenta creada correctamente
+
+account-setup-success-description = Ahora puede usar esta cuenta con { -brand-short-name }.
+
+account-setup-success-secondary-description = Puede mejorar la experiencia conectando servicios relacionados y configurando los ajustes de cuenta avanzados.
+
+## Form fields
+
+account-setup-name-label = Nombre 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 = John Doe
+
+account-setup-name-info-icon =
+ .title = Su nombre, como se mostrará a otros usuarios
+
+
+account-setup-name-warning-icon =
+ .title = Por favor, introduzca su nombre
+
+account-setup-email-label = Dirección de correo electrónico
+ .accesskey = e
+
+account-setup-email-input =
+ .placeholder = john.doe@example.com
+
+account-setup-email-info-icon =
+ .title = Su correo electrónico existente
+
+account-setup-email-warning-icon =
+ .title = Dirección de correo electrónico no válida
+
+account-setup-password-label = Contraseña
+ .accesskey = C
+ .title = Opcional, solo se usará para validar el nombre de usuario
+
+account-provisioner-button = Obtener una nueva dirección de correo electrónico
+ .accesskey = O
+
+account-setup-password-toggle-show =
+ .title = Mostrar contraseña en texto sin cifrar
+
+account-setup-password-toggle-hide =
+ .title = Ocultar contraseña
+
+account-setup-remember-password = Recordar contraseña
+ .accesskey = m
+
+account-setup-exchange-label = Nombre de usuario
+ .accesskey = d
+
+# YOURDOMAIN refers to the Windows domain in ActiveDirectory. yourusername refers to the user's account name in Windows.
+account-setup-exchange-input =
+ .placeholder = DOMINIO\nombredeusuario
+
+# 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 = Inicio de sesión del dominio
+
+## Action buttons
+
+account-setup-button-cancel = Cancelar
+ .accesskey = a
+
+account-setup-button-manual-config = Configurar manualmente
+ .accesskey = m
+
+account-setup-button-stop = Detener
+ .accesskey = D
+
+account-setup-button-retest = Volver a comprobar
+ .accesskey = V
+
+account-setup-button-continue = Continuar
+ .accesskey = C
+
+account-setup-button-done = Hecho
+ .accesskey = H
+
+## Notifications
+
+account-setup-looking-up-settings = Buscando la configuración…
+
+account-setup-looking-up-settings-guess = Buscando configuración: Intentando con nombres de servidor comunes…
+
+account-setup-looking-up-settings-half-manual = Buscando configuración: Probando el servidor…
+
+account-setup-looking-up-disk = Buscando configuración: instalación de { -brand-short-name }…
+
+account-setup-looking-up-isp = Buscando configuración: Proveedor de correo electrónico…
+
+# 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 = Buscando configuración: base de datos ISP de Mozilla…
+
+account-setup-looking-up-mx = Buscando configuración: dominio de correo entrante…
+
+account-setup-looking-up-exchange = Buscando configuración: servidor de Exchange…
+
+account-setup-checking-password = Comprobando la contraseña…
+
+account-setup-installing-addon = Descargando e instalando complemento…
+
+account-setup-success-half-manual = Se encontraron las siguientes configuraciones al sondear el servidor indicado:
+
+account-setup-success-guess = Configuración encontrada probando nombres de servidor comunes.
+
+account-setup-success-guess-offline = Está trabajando sin conexión. Hemos adivinado algunos parámetros pero tendrá que introducir la configuración correcta.
+
+account-setup-success-password = Contraseña correcta
+
+account-setup-success-addon = El complemento se instaló correctamente
+
+# 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 = Configuración encontrada en la base de datos de ISP de Mozilla.
+
+account-setup-success-settings-disk = Configuración encontrada en la instalación de { -brand-short-name }.
+
+account-setup-success-settings-isp = Configuración encontrada en el proveedor de correo electrónico.
+
+# Note: Microsoft Exchange is a product name.
+account-setup-success-settings-exchange = Configuración encontrada para un servidor de Microsoft Exchange.
+
+## Illustrations
+
+account-setup-step1-image =
+ .title = Configuración inicial
+
+account-setup-step2-image =
+ .title = Cargando…
+
+account-setup-step3-image =
+ .title = Configuración encontrada
+
+account-setup-step4-image =
+ .title = Error de conexión
+
+account-setup-step5-image =
+ .title = Cuenta creada
+
+account-setup-privacy-footnote2 = Sus credenciales solo se almacenarán localmente en su ordenador.
+
+account-setup-selection-help = ¿No está seguro de qué seleccionar?
+
+account-setup-selection-error = ¿Necesita ayuda?
+
+account-setup-success-help = ¿No está seguro de cómo continuar?
+
+account-setup-documentation-help = Documentación de configuración
+
+account-setup-forum-help = Foro de asistencia
+
+account-setup-privacy-help = Política de privacidad
+
+account-setup-getting-started = Primeros pasos
+
+## Results area
+
+# Variables:
+# $count (Number) - Number of available protocols.
+account-setup-results-area-title =
+ { $count ->
+ [one] Configuración disponible
+ *[other] Configuraciones disponibles
+ }
+
+account-setup-result-imap-description = Mantener sus carpetas y correos electrónicos sincronizados en su servidor
+
+account-setup-result-pop-description = Mantener sus carpetas y correos electrónicos en su equipo
+
+# Note: Exchange, Office365 are the name of products.
+account-setup-result-exchange2-description = Usar el servidor Microsoft Exchange o los servicios en la nube de Office365
+
+account-setup-incoming-title = Entrante
+
+account-setup-outgoing-title = Saliente
+
+account-setup-username-title = Nombre de usuario
+
+account-setup-exchange-title = Servidor
+
+account-setup-result-no-encryption = Sin cifrar
+
+account-setup-result-ssl = SSL/TLS
+
+account-setup-result-starttls = STARTTLS
+
+account-setup-result-outgoing-existing = Usar el servidor SMTP saliente 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 = Entrante: { $incoming }, Saliente: { $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 = Error en la autenticación. O las credenciales introducidas son incorrectas o se requiere un nombre de usuario distinto para iniciar sesión. Este nombre de usuario suele ser el inicio de sesión en el dominio de Windows con o sin el dominio (p. ej., juanperez o AD\\juanperez)
+
+account-setup-credentials-wrong = Error en la autenticación. Por favor, compruebe el nombre de usuario y la contraseña
+
+account-setup-find-settings-failed = { -brand-short-name } no ha podido encontrar la configuración de la cuenta de correo electrónico
+
+account-setup-exchange-config-unverifiable = No se ha podido comprobar la configuración. Si su nombre de usuario y contraseña son correctos, es probable que el administrador del servidor haya deshabilitado la configuración seleccionada para su cuenta. Intente seleccionar otro protocolo.
+
+account-setup-provisioner-error = Se ha producido un error al configurar la nueva cuenta en { -brand-short-name }. Intente configurar manualmente la cuenta con sus credenciales.
+
+## Manual configuration area
+
+account-setup-manual-config-title = Configuración manual
+
+account-setup-incoming-server-legend = Servidor entrante
+
+account-setup-protocol-label = Protocolo:
+
+account-setup-hostname-label = Nombre del servidor:
+
+account-setup-port-label = Puerto:
+ .title = Establecer el puerto a 0 para la detección automática
+
+account-setup-auto-description = { -brand-short-name } intentará detectar automáticamente los campos que se han dejado en blanco.
+
+account-setup-ssl-label = Seguridad de la conexión:
+
+account-setup-outgoing-server-legend = Servidor saliente
+
+## Incoming/Outgoing SSL Authentication options
+
+ssl-autodetect-option = Detectar automáticamente
+
+ssl-no-authentication-option = Sin autenticación
+
+ssl-cleartext-password-option = Contraseña normal
+
+ssl-encrypted-password-option = Contraseña cifrada
+
+## Incoming/Outgoing SSL options
+
+ssl-noencryption-option = Ninguna
+
+account-setup-auth-label = Método de autenticación:
+
+account-setup-username-label = Nombre de usuario:
+
+account-setup-advanced-setup-button = Configuración avanzada
+ .accesskey = a
+
+## Warning insecure server dialog
+
+account-setup-insecure-title = ¡Advertencia!
+
+account-setup-insecure-incoming-title = Ajustes de entrada:
+
+account-setup-insecure-outgoing-title = Ajustes de salida:
+
+# Variables:
+# $server (String): The name of the hostname of the server the user was trying to connect to.
+account-setup-warning-cleartext = El servidor <b>{ $server }</b> no usa cifrado.
+
+account-setup-warning-cleartext-details = Los servidores de correo inseguros no usan conexiones cifradas para proteger sus contraseñas e información privada. Al conectarse a este servidor podría estar exponiendo su contraseña e información privada.
+
+account-setup-insecure-server-checkbox = Entiendo los riesgos
+ .accesskey = i
+
+account-setup-insecure-description = { -brand-short-name } le permite acceder a su correo utilizando las configuraciones proporcionadas. Sin embargo, debería contactar con su administrador o proveedor de correo electrónico respecto a estas conexiones inapropiadas. Consulte las <a data-l10n-name="thunderbird-faq-link">preguntas frecuentes sobre Thunderbird</a> para obtener más información.
+
+insecure-dialog-cancel-button = Cambiar la configuración
+ .accesskey = o
+
+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 = { -brand-short-name } ha encontrado la información de configuración de su cuenta en { $domain }. ¿Desea continuar y enviar sus credenciales?
+
+exchange-dialog-confirm-button = Iniciar sesión
+
+exchange-dialog-cancel-button = Cancelar
+
+## Dismiss account creation dialog
+
+exit-dialog-title = No se ha configurado ninguna cuenta de correo electrónico
+
+exit-dialog-description = ¿Está seguro de que quiere cancelar el proceso de configuración? Puede usar { -brand-short-name } sin una cuenta de correo electrónico, pero muchas funciones no estarán disponibles.
+
+account-setup-no-account-checkbox = Usar { -brand-short-name } sin una cuenta de correo electrónico
+ .accesskey = U
+
+exit-dialog-cancel-button = Continuar la configuración
+ .accesskey = C
+
+exit-dialog-confirm-button = Salir de la configuración
+ .accesskey = S
+
+## Alert dialogs
+
+account-setup-creation-error-title = Error al crear la cuenta
+
+account-setup-error-server-exists = El servidor de entrada ya existe.
+
+account-setup-confirm-advanced-title = Confirmar configuración avanzada
+
+account-setup-confirm-advanced-description = Este cuadro de diálogo se cerrará y se creará una cuenta con la configuración actual, aunque la configuración sea incorrecta. ¿Quiere continuar?
+
+## Addon installation section
+
+account-setup-addon-install-title = Instalar
+
+account-setup-addon-install-intro = Un complemento de terceros puede permitirle acceder a su cuenta de correo electrónico en este servidor:
+
+account-setup-addon-no-protocol = Desafortunadamente, este servidor de correo no admite protocolos abiertos. { account-setup-addon-install-intro }
+
+## Success view
+
+account-setup-settings-button = Configuración de la cuenta
+
+account-setup-encryption-button = Cifrado de extremo a extremo
+
+account-setup-signature-button = Añadir una firma
+
+account-setup-dictionaries-button = Descargar diccionarios
+
+account-setup-address-book-carddav-button = Conectarse a una libreta de direcciones CardDAV
+
+account-setup-address-book-ldap-button = Conectarse a una libreta de direcciones LDAP
+
+account-setup-calendar-button = Conectarse a un calendario remoto
+
+account-setup-linked-services-title = Conectar sus servicios vinculados
+
+account-setup-linked-services-description = { -brand-short-name } ha detectado otros servicios vinculados a su cuenta de correo electrónico.
+
+account-setup-no-linked-description = Configure otros servicios para aprovechar al máximo su experiencia con { -brand-short-name }.
+
+# Variables:
+# $count (Number) - The number of address books found during autoconfig.
+account-setup-found-address-books-description =
+ { $count ->
+ [one] { -brand-short-name } ha encontrado una libreta de direcciones vinculada a su cuenta de correo electrónico.
+ *[other] { -brand-short-name } ha encontrado { $count } libretas de direcciones vinculadas a su cuenta de correo electrónico.
+ }
+
+# Variables:
+# $count (Number) - The number of calendars found during autoconfig.
+account-setup-found-calendars-description =
+ { $count ->
+ [one] { -brand-short-name } ha encontrado un calendario vinculado a su cuenta de correo electrónico.
+ *[other] { -brand-short-name } ha encontrado { $count } calendarios vinculados a su cuenta de correo electrónico.
+ }
+
+account-setup-button-finish = Finalizar
+ .accesskey = F
+
+account-setup-looking-up-address-books = Buscando libretas de direcciones...
+
+account-setup-looking-up-calendars = Buscando calendarios...
+
+account-setup-address-books-button = Libretas de direcciones
+
+account-setup-calendars-button = Calendarios
+
+account-setup-connect-link = Conectar
+
+account-setup-existing-address-book = Conectada
+ .title = Libreta de direcciones conectada
+
+account-setup-existing-calendar = Conectado
+ .title = Calendario conectado
+
+account-setup-connect-all-calendars = Conectar todos los calendarios
+
+account-setup-connect-all-address-books = Conectar todas las libretas de direcciones
+
+## Calendar synchronization dialog
+
+calendar-dialog-title = Conectar el calendario
+
+calendar-dialog-cancel-button = Cancelar
+ .accesskey = C
+
+calendar-dialog-confirm-button = Conectar
+ .accesskey = n
+
+account-setup-calendar-name-label = Nombre
+
+account-setup-calendar-name-input =
+ .placeholder = Mi calendario
+
+account-setup-calendar-color-label = Color
+
+account-setup-calendar-refresh-label = Actualizar
+
+account-setup-calendar-refresh-manual = Manualmente
+
+account-setup-calendar-refresh-interval =
+ { $count ->
+ [one] Cada minuto
+ *[other] Cada { $count } minutos
+ }
+
+account-setup-calendar-read-only = Sólo lectura
+ .accesskey = r
+
+account-setup-calendar-show-reminders = Mostrar recordatorios
+ .accesskey = s
+
+account-setup-calendar-offline-support = Ayuda sin conexión
+ .accesskey = o
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/addonNotifications.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/addonNotifications.ftl
new file mode 100644
index 0000000000..b0f15b5589
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/addonNotifications.ftl
@@ -0,0 +1,122 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+xpinstall-prompt = { -brand-short-name } ha evitado que este sitio le solicite instalar software en su equipo.
+
+## Variables:
+## $host (String): The hostname of the site the add-on is being installed from.
+
+xpinstall-prompt-header = ¿Permitir a { $host } instalar un complemento?
+xpinstall-prompt-message = Está intentando instalar un complemento desde { $host }. Asegúrese de que confía en este sitio antes de continuar.
+
+##
+
+xpinstall-prompt-header-unknown = ¿Permitir a un sitio desconocido instalar un complemento?
+xpinstall-prompt-message-unknown = Está intentando instalar un complemento desde un sitio desconocido. Asegúrese de que confía en este sitio antes de continuar.
+xpinstall-prompt-dont-allow =
+ .label = No permitir
+ .accesskey = N
+xpinstall-prompt-never-allow =
+ .label = No permitir nunca
+ .accesskey = o
+# 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 = Informar de sitio sospechoso
+ .accesskey = I
+# 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 con la instalación
+ .accesskey = C
+
+# These messages are shown when a website invokes navigator.requestMIDIAccess.
+
+site-permission-install-first-prompt-midi-header = Este sitio solicita acceso a sus dispositivos MIDI (Interfaz Digital de Instrumentos Musicales). El acceso al dispositivo se puede activar instalando un complemento.
+site-permission-install-first-prompt-midi-message = No se garantiza que este acceso sea seguro. Continúe sólo si confía en este sitio.
+
+##
+
+xpinstall-disabled-locked = La instalación de software ha sido desactivada por su administrador de sistema.
+xpinstall-disabled = La instalación de software está actualmente desactivada. Pulse Activar y vuelva a intentarlo.
+xpinstall-disabled-button =
+ .label = Activar
+ .accesskey = A
+# 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 por su administrador del sistema.{ " " }
+# This message is shown when the installation of add-ons from a domain is blocked by enterprise policy.
+addon-domain-blocked-by-policy = El administrador del sistema ha evitado que este sitio solicite permiso para instalar programas en su ordenador.
+addon-install-full-screen-blocked = No se permite la instalación de complementos durante o tras acceder al modo de pantalla completa.
+# Variables:
+# $addonName (String): the localized name of the sideloaded add-on.
+webext-perms-sideload-menu-item = { $addonName } añadido a { -brand-short-name }
+# Variables:
+# $addonName (String): the localized name of the extension which has been updated.
+webext-perms-update-menu-item = { $addonName } requiere nuevos permisos
+
+## Add-on removal warning
+
+# Variables:
+# $name (String): The name of the add-on that will be removed.
+addon-removal-title = ¿Eliminar { $name }?
+# Variables:
+# $name (String): the name of the extension which is about to be removed.
+addon-removal-message = ¿Eliminar { $name } de { -brand-shorter-name }?
+addon-removal-button = Eliminar
+addon-removal-abuse-report-checkbox = Informar de esta extensión a { -vendor-short-name }
+# Variables:
+# $addonCount (Number): the number of add-ons being downloaded
+addon-downloading-and-verifying =
+ { $addonCount ->
+ [one] Descargando y verificando complemento…
+ *[other] Descargando y verificando { $addonCount } complementos…
+ }
+addon-download-verifying = Verificando
+addon-install-cancel-button =
+ .label = Cancelar
+ .accesskey = C
+addon-install-accept-button =
+ .label = Añadir
+ .accesskey = A
+
+## Variables:
+## $addonCount (Number): the number of add-ons being installed
+
+addon-confirm-install-message =
+ { $addonCount ->
+ [one] Este sitio quiere instalar un complemento en { -brand-short-name }:
+ *[other] Este sitio quiere instalar { $addonCount } complementos en { -brand-short-name }:
+ }
+addon-confirm-install-unsigned-message =
+ { $addonCount ->
+ [one] Precaución: este complemento desea instalar un complemento no verificado en { -brand-short-name }. Continúe bajo su responsabilidad.
+ *[other] Precaución: este complemento desea instalar { $addonCount } complementos no verificados en { -brand-short-name }. Continúe bajo su responsabilidad.
+ }
+# Variables:
+# $addonCount (Number): the number of add-ons being installed (at least 2)
+addon-confirm-install-some-unsigned-message = Precaución: este sitio desea instalar { $addonCount } complementos en { -brand-short-name }, algunos de los cuales no están verificados. Continúe bajo su responsabilidad.
+
+## Add-on install errors
+## Variables:
+## $addonName (String): the add-on name.
+
+addon-install-error-network-failure = El complemento no ha podido descargarse por un fallo de conexión.
+addon-install-error-incorrect-hash = Este complemento no se ha podido instalar porque no coincide con el complemento { -brand-short-name } esperado.
+addon-install-error-corrupt-file = El complemento descargado desde este sitio no ha podido instalarse porque parece estar dañado.
+addon-install-error-file-access = { $addonName } no ha podido ser instalado porque { -brand-short-name } no puede modificar el archivo requerido.
+addon-install-error-not-signed = { -brand-short-name } ha evitado que este sitio instale un complemento no verificado.
+addon-install-error-invalid-domain = El complemento { $addonName } no se puede instalar desde esta dirección.
+addon-local-install-error-network-failure = Este complemento no se ha podido instalar por un fallo del sistema de archivos.
+addon-local-install-error-incorrect-hash = Este complemento no se ha podido instalar porque no coincide con el complemento { -brand-short-name } esperado.
+addon-local-install-error-corrupt-file = Este complemento no se ha podido instalar porque parece estar dañado.
+addon-local-install-error-file-access = { $addonName } no ha podido ser instalado porque { -brand-short-name } no puede modificar el archivo requerido.
+addon-local-install-error-not-signed = Este complemento ha podido ser instalado porque no ha sido verificado.
+# Variables:
+# $appVersion (String): the application version.
+addon-install-error-incompatible = { $addonName } no ha podido ser instalado porque no es compatible con { -brand-short-name } { $appVersion }.
+addon-install-error-blocklisted = { $addonName } no ha podido ser instalado porque tiene un alto riesgo de causar problemas de estabilidad o seguridad.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/addressbook/abCardDAVDialog.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/addressbook/abCardDAVDialog.ftl
new file mode 100644
index 0000000000..c66d32fb41
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/addressbook/abCardDAVDialog.ftl
@@ -0,0 +1,26 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+carddav-window-title = Nueva libreta de direcciones CardDAV
+
+carddav-dialog =
+ .buttonlabelaccept = Continuar
+ .buttonaccesskeyaccept = C
+
+carddav-username-label =
+ .value = Nombre de usuario:
+ .accesskey = U
+carddav-location-label =
+ .value = Ubicación:
+ .accesskey = U
+carddav-location =
+ .default-placeholder = URL o nombre del servidor de la libreta de direcciones
+
+carddav-loading = Buscando configuración…
+carddav-known-incompatible = Se sabe que { $url } es incompatible con { -brand-short-name }.
+carddav-connection-error = Fallo al conectar.
+carddav-none-found = No se han encontrado libretas de direcciones que añadir a la cuenta especificada.
+carddav-already-added = Todas las libretas de direcciones de la cuenta especificada ha sido añadida.
+
+carddav-available-books = Libretas de direcciones disponibles:
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000..877d65cfc9
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = URL de 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] cada minuto
+ *[other] cada { $minutes } minutos
+ }
+
+# Variables:
+# $hours (integer) - Number of hours between address book synchronizations
+carddav-refreshinterval-hours-value =
+ .label =
+ { $hours ->
+ [one] cada hora
+ *[other] cada { $hours } horas
+ }
+
+carddav-readonly-label =
+ .label = Sólo lectura
+ .accesskey = r
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000..521352a0d5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,323 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-addressbook-title = Libreta de direcciones
+
+## Toolbar
+
+about-addressbook-toolbar-new-address-book =
+ .label = Nueva libreta de direcciones
+about-addressbook-toolbar-add-carddav-address-book =
+ .label = Añadir libreta de direcciones CardDAV
+about-addressbook-toolbar-add-ldap-address-book =
+ .label = Añadir libreta de direcciones LDAP
+about-addressbook-toolbar-new-contact =
+ .label = Nuevo contacto
+about-addressbook-toolbar-new-list =
+ .label = Nueva lista
+about-addressbook-toolbar-import =
+ .label = Importar
+
+## Books
+
+all-address-books-row =
+ .title = Todas las libretas de direcciones
+all-address-books = Todas las libretas de direcciones
+# 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 en { $name }: { $count }
+# Variables:
+# $count (Number) - The number of contacts in all address books.
+about-addressbook-card-count-all = Total de contactos en todas las libretas de direcciones: { $count }
+about-addressbook-books-context-properties =
+ .label = Propiedades
+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 = Eliminar
+about-addressbook-books-context-remove =
+ .label = Eliminar
+about-addressbook-books-context-startup-default =
+ .label = Directorio de inicio predeterminado
+about-addressbook-confirm-delete-book-title = Eliminar libreta de direcciones
+# Variables:
+# $name (String) - Name of the address book to be deleted.
+about-addressbook-confirm-delete-book = ¿Está seguro de que desea eliminar { $name } y todos sus contactos?
+about-addressbook-confirm-remove-remote-book-title = Eliminar libreta de direcciones
+# Variables:
+# $name (String) - Name of the remote address book to be removed.
+about-addressbook-confirm-remove-remote-book = ¿Está seguro de que desea eliminar { $name }?
+
+## Cards
+
+# Variables:
+# $name (String) - Name of the address book that will be searched.
+about-addressbook-search =
+ .placeholder = Buscar en { $name }
+about-addressbook-search-all =
+ .placeholder = Buscar en todas las libretas de direcciones
+about-addressbook-sort-button2 =
+ .title = Opciones de visualización de la lista
+about-addressbook-name-format-display =
+ .label = Nombre para mostrar
+about-addressbook-name-format-firstlast =
+ .label = Nombre y apellidos
+about-addressbook-name-format-lastfirst =
+ .label = Apellidos, nombre
+about-addressbook-sort-name-ascending =
+ .label = Ordenar por nombre (A > Z)
+about-addressbook-sort-name-descending =
+ .label = Ordenar por nombre (Z > A)
+about-addressbook-sort-email-ascending =
+ .label = Ordenar por dirección de correo electrónico (A > Z)
+about-addressbook-sort-email-descending =
+ .label = Ordenar por dirección de correo electrónico (Z > A)
+about-addressbook-horizontal-layout =
+ .label = Cambiar a disposición horizontal
+about-addressbook-vertical-layout =
+ .label = Cambiar a disposición vertical
+about-addressbook-table-layout =
+ .label = Disposición de la tabla
+
+## Card column headers
+## Each string is listed here twice, and the values should match.
+
+about-addressbook-column-header-generatedname = Nombre
+about-addressbook-column-label-generatedname =
+ .label = { about-addressbook-column-header-generatedname }
+about-addressbook-column-header-emailaddresses = Direcciones de correo electrónico
+about-addressbook-column-label-emailaddresses =
+ .label = { about-addressbook-column-header-emailaddresses }
+about-addressbook-column-header-phonenumbers = Números de teléfono
+about-addressbook-column-label-phonenumbers =
+ .label = { about-addressbook-column-header-phonenumbers }
+about-addressbook-column-header-addresses = Direcciones
+about-addressbook-column-label-addresses =
+ .label = { about-addressbook-column-header-addresses }
+about-addressbook-column-header-title = Cargo
+about-addressbook-column-label-title =
+ .label = { about-addressbook-column-header-title }
+about-addressbook-column-header-department = Departamento
+about-addressbook-column-label-department =
+ .label = { about-addressbook-column-header-department }
+about-addressbook-column-header-organization = Organización
+about-addressbook-column-label-organization =
+ .label = { about-addressbook-column-header-organization }
+about-addressbook-column-header-addrbook = Libreta de direcciones
+about-addressbook-column-label-addrbook =
+ .label = { about-addressbook-column-header-addrbook }
+about-addressbook-column-header-generatedname2 = Nombre
+ .title = Ordenar por nombre
+about-addressbook-column-label-generatedname2 =
+ .label = Nombre
+about-addressbook-column-header-emailaddresses2 = Direcciones de correo electrónico
+ .title = Ordenar por direcciones de correo electrónico
+about-addressbook-column-label-emailaddresses2 =
+ .label = Direcciones de correo electrónico
+about-addressbook-column-header-nickname2 = Apodo
+ .title = Ordenar por apodo
+about-addressbook-column-label-nickname2 =
+ .label = Apodo
+about-addressbook-column-header-phonenumbers2 = Números de teléfono
+ .title = Ordenar por números de teléfono
+about-addressbook-column-label-phonenumbers2 =
+ .label = Números de teléfono
+about-addressbook-column-header-addresses2 = Direcciones
+ .title = Ordenar por direcciones
+about-addressbook-column-label-addresses2 =
+ .label = Direcciones
+about-addressbook-column-header-title2 = Cargo
+ .title = Ordenar por 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 = Organización
+ .title = Ordenar por organización
+about-addressbook-column-label-organization2 =
+ .label = Organización
+about-addressbook-column-header-addrbook2 = Libreta de direcciones
+ .title = Ordenar por libreta de direcciones
+about-addressbook-column-label-addrbook2 =
+ .label = Libreta de direcciones
+about-addressbook-cards-context-write =
+ .label = Escribir
+about-addressbook-confirm-delete-mixed-title = Eliminar contactos y listas
+# Variables:
+# $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
+about-addressbook-confirm-delete-mixed = ¿Está seguro de que desea eliminar estos { $count } contactos y listas?
+# Variables:
+# $count (Number) - The number of lists to be deleted.
+about-addressbook-confirm-delete-lists-title =
+ { $count ->
+ [one] Eliminar lista
+ *[other] Eliminar 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] ¿Está seguro de que desea eliminar la lista { $name }?
+ *[other] ¿Está seguro de que desea eliminar estas { $count } listas?
+ }
+# Variables:
+# $count (Number) - The number of contacts to be removed.
+about-addressbook-confirm-remove-contacts-title =
+ { $count ->
+ [one] Eliminar contacto
+ *[other] Eliminar contactos
+ }
+# Variables:
+# $count (Number) - The number of contacts to be removed.
+# $name (String) - The name of the contact to be removed, if $count is 1.
+# $list (String) - The name of the list that contacts will be removed from.
+about-addressbook-confirm-remove-contacts =
+ { $count ->
+ [one] ¿Está seguro de que desea eliminar a { $name } de { $list }?
+ *[other] ¿Está seguro de que desea eliminar estos { $count } contactos de { $list }?
+ }
+# 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 = ¿Está seguro de que quiere eliminar { $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] ¿Está seguro de que quiere eliminar { $count } contacto de { $list }?
+ *[other] ¿Está seguro de que quiere eliminar { $count } contactos de { $list }?
+ }
+# Variables:
+# $count (Number) - The number of contacts to be deleted.
+about-addressbook-confirm-delete-contacts-title =
+ { $count ->
+ [one] Eliminar contacto
+ *[other] Eliminar contactos
+ }
+# Variables:
+# $count (Number) - The number of contacts to be deleted.
+# $name (String) - The name of the contact to be deleted, if $count is 1.
+about-addressbook-confirm-delete-contacts =
+ { $count ->
+ [one] ¿Está seguro de que desea eliminar el contacto { $name }?
+ *[other] ¿Está seguro de que desea eliminar estos { $count } contactos?
+ }
+# Variables:
+# $name (String) - The name of the contact to be deleted.
+about-addressbook-confirm-delete-contacts-single = ¿Está seguro de que quiere eliminar el contacto { $name }?
+# Variables:
+# $count (Number) - The number of contacts to be deleted.
+about-addressbook-confirm-delete-contacts-multi =
+ { $count ->
+ [one] ¿Está seguro de que quiere eliminar { $count } contacto?
+ *[other] ¿Está seguro de que quiere eliminar { $count } contactos?
+ }
+
+## Card list placeholder
+## Shown when there are no cards in the list
+
+about-addressbook-placeholder-empty-book = No hay contactos disponibles
+about-addressbook-placeholder-new-contact = Nuevo contacto
+about-addressbook-placeholder-search-only = Esta libreta de direcciones sólo muestra los contactos después de una búsqueda
+about-addressbook-placeholder-searching = Buscando…
+about-addressbook-placeholder-no-search-results = No se encontraron contactos
+
+## Details
+
+# Variables:
+# $count (Number) - The number of selected items (will never be fewer than two)
+about-addressbook-selection-mixed-header = { $count } contactos y listas seleccionados
+# Variables:
+# $count (Number) - The number of selected contacts
+about-addressbook-selection-contacts-header = { $count } contactos seleccionados
+# Variables:
+# $count (Number) - The number of selected lists
+about-addressbook-selection-lists-header = { $count } listas seleccionadas
+# Variables:
+# $count (Number) - The number of selected items (will never be fewer than 2).
+about-addressbook-selection-mixed-header2 =
+ { $count ->
+ [one] { $count } entrada seleccionada de la libreta de direcciones
+ *[other] { $count } entradas seleccionadas de la libreta de direcciones
+ }
+# Variables:
+# $count (Number) - The number of selected contacts
+about-addressbook-selection-contacts-header2 =
+ { $count ->
+ [one] { $count } contacto seleccionado
+ *[other] { $count } contactos seleccionados
+ }
+# Variables:
+# $count (Number) - The number of selected lists
+about-addressbook-selection-lists-header2 =
+ { $count ->
+ [one] { $count } lista seleccionada
+ *[other] { $count } listas seleccionadas
+ }
+about-addressbook-details-edit-photo =
+ .title = Editar foto de contacto
+about-addressbook-new-contact-header = Nuevo contacto
+about-addressbook-prefer-display-name = Preferir el nombre mostrado al de la cabecera del mensaje
+about-addressbook-write-action-button = Escribir
+about-addressbook-event-action-button = Evento
+about-addressbook-search-action-button = Buscar
+about-addressbook-new-list-action-button = Nueva lista
+about-addressbook-begin-edit-contact-button = Editar
+about-addressbook-delete-edit-contact-button = Eliminar
+about-addressbook-cancel-edit-contact-button = Cancelar
+about-addressbook-save-edit-contact-button = Guardar
+about-addressbook-add-contact-to = Añadir a:
+about-addressbook-details-email-addresses-header = Direcciones de correo electrónico
+about-addressbook-details-phone-numbers-header = Números de teléfono
+about-addressbook-details-addresses-header = Direcciones
+about-addressbook-details-notes-header = Notas
+about-addressbook-details-impp-header = Mensajería instantánea
+about-addressbook-details-websites-header = Sitios web
+about-addressbook-details-other-info-header = Otra información
+about-addressbook-entry-type-work = Trabajo
+about-addressbook-entry-type-home = Casa
+about-addressbook-entry-type-fax = Fax
+# Or "Mobile"
+about-addressbook-entry-type-cell = Teléfono móvil
+about-addressbook-entry-type-pager = Buscapersonas
+about-addressbook-entry-name-birthday = Cumpleaños
+about-addressbook-entry-name-anniversary = Aniversario
+about-addressbook-entry-name-title = Título
+about-addressbook-entry-name-role = Rol
+about-addressbook-entry-name-organization = Organización
+about-addressbook-entry-name-website = Página web
+about-addressbook-entry-name-time-zone = Zona horaria
+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 = Cambios sin guardar
+about-addressbook-unsaved-changes-prompt = ¿Desea guardar los cambios antes de salir de la vista de edición?
+
+# Photo dialog
+
+about-addressbook-photo-drop-target = Suelte o pegue una foto aquí, o haga clic para seleccionar un archivo.
+about-addressbook-photo-drop-loading = Cargando foto…
+about-addressbook-photo-drop-error = No se ha podido cargar la foto.
+about-addressbook-photo-filepicker-title = Seleccionar un archivo de imagen
+about-addressbook-photo-discard = Descartar la 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/es-ES/localization/es-ES/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000..a7deb9b4cb
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 libreta de direcciones desde un archivo de texto
+
+# $recordNumber (Number) - The current record number of the preview data.
+import-ab-csv-preview-record-number = Vista previa de la importación de datos para el registro { $recordNumber }
+
+import-ab-csv-dialog =
+ .buttonlabelaccept = Importar
+ .buttonaccesskeyaccept = I
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/addressbook/vcard.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/addressbook/vcard.ftl
new file mode 100644
index 0000000000..84bcdf48f7
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Nombre para mostrar
+vcard-displayname-placeholder =
+ .placeholder = { vcard-displayname }
+
+# Type selection
+
+vcard-entry-type-label = Tipo
+vcard-entry-type-home = Casa
+vcard-entry-type-work = Trabajo
+vcard-entry-type-none = Ninguno
+vcard-entry-type-custom = Personalizado
+
+# N vCard field
+
+vcard-name-header = Nombre
+vcard-n-prefix = Prefijo
+vcard-n-add-prefix =
+ .title = Añadir prefijo
+vcard-n-firstname = Nombre
+vcard-n-add-firstname =
+ .title = Añadir nombre
+vcard-n-middlename = Segundo nombre
+vcard-n-add-middlename =
+ .title = Añadir segundo nombre
+vcard-n-lastname = Apellido
+vcard-n-add-lastname =
+ .title = Añadir apellido
+vcard-n-suffix = Sufijo
+vcard-n-add-suffix =
+ .title = Añadir sufijo
+
+# Nickname
+
+vcard-nickname = Apodo
+
+# Email vCard field
+
+vcard-email-header = Direcciones de correo electrónico
+vcard-email-add = Añadir dirección de correo electrónico
+vcard-email-label = Dirección de correo electrónico
+vcard-primary-email-label = Predeterminado
+
+# URL vCard field
+
+vcard-url-header = Páginas web
+vcard-url-add = Añadir página web
+vcard-url-label = Página web
+
+# Tel vCard field
+
+vcard-tel-header = Números de teléfono
+vcard-tel-add = Añadir número de teléfono
+vcard-tel-label = Número de teléfono
+# Or "Mobile"
+vcard-entry-type-cell = Móvil
+vcard-entry-type-fax = Fax
+vcard-entry-type-pager = Buscapersonas
+
+# TZ vCard field
+
+vcard-tz-header = Zona horaria
+vcard-tz-add = Añadir zona horaria
+
+# IMPP vCard field
+
+vcard-impp2-header = Mensajería instantánea
+vcard-impp-add = Añadir cuenta de chat
+vcard-impp-label = Cuenta de chat
+vcard-impp-select = Protocolo
+vcard-impp-option-other = Otros
+vcard-impp-input-label = URI
+vcard-impp-input-title = URI para mensajería instantánea
+
+# BDAY and ANNIVERSARY vCard field
+
+vcard-bday-anniversary-header = Fechas especiales
+vcard-bday-anniversary-add = Añadir fecha especial
+vcard-bday-label = Cumpleaños
+vcard-anniversary-label = Aniversario
+vcard-date-day = Día
+vcard-date-month = Mes
+vcard-date-year = Año
+
+# ADR vCard field
+
+vcard-adr-header = Direcciones
+vcard-adr-add = Añadir dirección
+vcard-adr-label = Dirección
+vcard-adr-delivery-label = Etiqueta de entrega
+vcard-adr-street = Dirección postal
+# Or "Locality"
+vcard-adr-locality = Ciudad
+# Or "Region"
+vcard-adr-region = Provincia/Estado
+# The term "ZIP code" only applies in USA. Most locales should use "Postal code" only.
+vcard-adr-code = Código postal/ZIP
+vcard-adr-country = País
+
+# NOTE vCard field
+
+vcard-note-header = Notas
+vcard-note-add = Añadir nota
+
+# TITLE, ROLE and ORGANIZATION vCard fields
+
+vcard-org-header = Propiedades de la organización
+vcard-org-add = Añadir propiedades de la organización
+vcard-org-title = Cargo
+vcard-org-title-input =
+ .title = Cargo o trabajo
+ .placeholder = Puesto de trabajo
+vcard-org-role = Rol
+vcard-org-role-input =
+ .title = Función o cargo desempeñado en un puesto concreto
+ .placeholder = Rol en un proyecto
+vcard-org-org = Organización
+vcard-org-org-input =
+ .title = Nombre de la organización
+ .placeholder = Nombre de la empresa
+vcard-org-org-unit = Departamento
+vcard-org-org-unit-input =
+ .title = Nombre de la unidad organizativa
+ .placeholder = Departamento
+
+# Custom properties
+
+vcard-custom-header = Propiedades personalizadas
+vcard-custom-add = Añadir propiedades personalizadas
+vcard-remove-button-title =
+ .title = Eliminar
+vcard-remove-button = Eliminar
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/appmenu.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/appmenu.ftl
new file mode 100644
index 0000000000..45d027f918
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/appmenu.ftl
@@ -0,0 +1,210 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Sync
+
+appmenu-sync-panel-title =
+ .title = Sync
+appmenu-signin-panel =
+ .label = Iniciar sesión en Sync
+ .accesskey = I
+appmenu-sync-sync =
+ .value = Sincronización de cuenta
+ .accesskey = a
+appmenu-sync-manage =
+ .value = Administrar cuenta
+ .accesskey = m
+appmenu-sync-account =
+ .value = example@example.com
+appmenu-sync-now =
+ .label = Sincronizar ahora
+ .accesskey = S
+appmenu-sync-settings =
+ .label = Ajustes de sincronización
+ .accesskey = A
+appmenu-sync-sign-out =
+ .label = Cerrar sesión…
+ .accesskey = C
+
+## New Account
+
+appmenu-new-account-panel-title =
+ .title = Nueva cuenta
+appmenu-new-account-panel =
+ .label = Nueva cuenta
+ .accesskey = N
+appmenu-create-new-mail-account =
+ .label = Obtener una nueva dirección de correo electrónico
+ .accesskey = O
+appmenu-new-mail-account =
+ .label = Dirección de correo electrónico existente
+ .accesskey = e
+appmenu-new-calendar =
+ .label = Calendario
+ .accesskey = C
+appmenu-new-chat-account =
+ .label = Chat
+ .accesskey = h
+appmenu-new-feed =
+ .label = Canales web
+ .accesskey = C
+appmenu-new-newsgroup =
+ .label = Grupo de noticias
+ .accesskey = G
+
+## New Account / Address Book
+
+appmenu-newab-panel-title =
+ .title = Nueva libreta de direcciones
+appmenu-newab-panel =
+ .label = Nueva libreta de direcciones
+ .accesskey = l
+appmenu-new-addressbook =
+ .label = Libreta de direcciones local
+ .accesskey = L
+appmenu-new-carddav =
+ .label = Libreta de direcciones CardDav
+ .accesskey = C
+appmenu-new-ldap =
+ .label = Libreta de direcciones LDAP
+ .accesskey = L
+
+## Create
+
+appmenu-create-panel-title =
+ .title = Crear
+appmenu-create-panel =
+ .label = Crear
+ .accesskey = C
+appmenu-create-message =
+ .label = Mensaje
+ .accesskey = M
+appmenu-create-event =
+ .label = Evento
+ .accesskey = E
+appmenu-create-task =
+ .label = Tarea
+ .accesskey = T
+appmenu-create-contact =
+ .label = Contacto
+ .accesskey = C
+
+## Open
+
+appmenu-open-file-panel =
+ .label = Abrir desde archivo
+ .accesskey = A
+appmenu-open-file-panel-title =
+ .title = Abrir desde archivo
+appmenu-open-message =
+ .label = Mensaje…
+ .accesskey = M
+appmenu-open-calendar =
+ .label = Calendario…
+ .accesskey = C
+
+## View / Layout
+
+appmenu-view-panel-title =
+ .title = Ver
+appmenu-view-panel =
+ .label = Ver
+ .accesskey = V
+appmenuitem-toggle-thread-pane-header =
+ .label = Cabecera de lista de mensajes
+appmenu-font-size-value = Tamaño de letra
+appmenu-mail-uidensity-value = Densidad
+appmenu-uidensity-compact =
+ .tooltiptext = Compacto
+appmenu-uidensity-default =
+ .tooltiptext = Predeterminado
+appmenu-uidensity-relaxed =
+ .tooltiptext = Relajado
+appmenuitem-font-size-enlarge =
+ .tooltiptext = Aumentar el tamaño de la letra
+appmenuitem-font-size-reduce =
+ .tooltiptext = Reducir el tamaño de la letra
+# Variables:
+# $size (String) - The current font size.
+appmenuitem-font-size-reset =
+ .label = { $size }px
+ .tooltiptext = Restaurar tamaño de letra
+
+## Tools
+
+appmenu-tools-panel-title =
+ .title = Herramientas
+appmenu-tools-panel =
+ .label = Herramientas
+ .accesskey = H
+appmenu-tools-import =
+ .label = Importar
+ .accesskey = I
+appmenu-tools-export =
+ .label = Exportar
+ .accesskey = E
+appmenu-tools-message-search =
+ .label = Buscar mensajes
+ .accesskey = B
+appmenu-tools-message-filters =
+ .label = Filtros de mensajes
+ .accesskey = F
+appmenu-tools-download-manager =
+ .label = Administrador de descargas
+ .accesskey = A
+appmenu-tools-activity-manager =
+ .label = Administrador de actividad
+ .accesskey = t
+appmenu-tools-dev-tools =
+ .label = Herramientas de desarrollador
+ .accesskey = H
+
+## Help
+
+appmenu-help-panel-title =
+ .title = Ayuda
+appmenu-help-get-help =
+ .label = Obtener ayuda
+ .accesskey = y
+appmenu-help-explore-features =
+ .label = Explorar características
+ .accesskey = c
+appmenu-help-shortcuts =
+ .label = Atajos de teclado
+ .accesskey = j
+appmenu-help-get-involved =
+ .label = Involucrarse
+ .accesskey = I
+appmenu-help-donation =
+ .label = Hacer una donación
+ .accesskey = d
+appmenu-help-share-feedback =
+ .label = Compartir ideas y opiniones
+ .accesskey = C
+appmenu-help-enter-troubleshoot-mode2 =
+ .label = Modo de resolución de problemas…
+ .accesskey = p
+appmenu-help-exit-troubleshoot-mode2 =
+ .label = Desactivar el modo de resolución de problemas
+ .accesskey = D
+appmenu-help-troubleshooting-info =
+ .label = Información sobre la resolución de problemas
+ .accesskey = I
+appmenu-help-about-product =
+ .label = Acerca de { -brand-short-name }
+ .accesskey = A
+
+## Application Update
+
+appmenuitem-banner-update-downloading =
+ .label = Descargando actualización de { -brand-shorter-name }
+appmenuitem-banner-update-available =
+ .label = Actualización disponible — descargar ahora
+appmenuitem-banner-update-manual =
+ .label = Actualización disponible — descargar ahora
+appmenuitem-banner-update-unsupported =
+ .label = No se puede actualizar — sistema incompatible
+appmenuitem-banner-update-restart =
+ .label = Actualización disponible — reiniciar ahora
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/chat-verifySession.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/chat-verifySession.ftl
new file mode 100644
index 0000000000..57f8f4ab80
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/chat-verifySession.ftl
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+verify-window-title = Verificar identidad
+
+# Variables:
+# $subject (String) - a human readable identifier for the other side of the verification flow.
+verify-window-subject-title = Verificar la identidad de { $subject }
+
+verify-dialog =
+ .buttonlabelaccept = Coinciden
+ .buttonaccesskeyaccept = n
+ .buttonlabelextra2 = No coinciden
+ .buttonaccesskeyextra2 = d
+
+challenge-label = Verifique que la cadena mostrada coincide con la que se muestra en el otro extremo.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/chat.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/chat.ftl
new file mode 100644
index 0000000000..594cf37b22
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/chat.ftl
@@ -0,0 +1,47 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+chat-joining-chat-icon2 =
+ .alt = Unirse al chat
+
+chat-left-chat-icon2 =
+ .alt = Salir del chat
+
+chat-participant-owner-role-icon2 =
+ .alt = Propietario
+
+chat-participant-administrator-role-icon2 =
+ .alt = Administrador
+
+chat-participant-moderator-role-icon2 =
+ .alt = Moderador
+
+chat-participant-voiced-role-icon2 =
+ .alt = El participante puede publicar mensajes
+
+chat-verify-identity =
+ .label = Verificar identidad
+ .accesskey = i
+
+chat-identity-verified =
+ .label = Identidad ya verificada
+
+chat-buddy-identity-status = Confianza del cifrado
+chat-buddy-identity-status-verified = Verificada
+chat-buddy-identity-status-unverified = No verificada
+
+## Conversation invite notification box
+
+# This string appears in a notification bar at the top of the Contacts window
+# when someone invited the user to a multi user chat conversation, to request
+# the user to confirm they want to join the chat.
+# Variables:
+# $conversation (String) - Name of the conversation the user is invited to.
+chat-conv-invite-label = Le han invitado a chatear en { $conversation }
+chat-conv-invite-accept =
+ .label = Aceptar
+ .accesskey = A
+chat-conv-invite-deny =
+ .label = Rechazar
+ .accesskey = R
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000..56c8227567
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+compact-dialog-window-title =
+ .title = Compactar carpetas
+compact-folders-dialog-title = Compactar carpetas
+compact-dialog =
+ .buttonlabelaccept = Compactar ahora
+ .buttonaccesskeyaccept = C
+ .buttonlabelcancel = Recordármelo más tarde
+ .buttonaccesskeycancel = R
+ .buttonlabelextra1 = Saber más…
+ .buttonaccesskeyextra1 = S
+# Variables:
+# $data (String): The amount of space to be freed, formatted byte, MB, GB, etc., based on the size.
+compact-dialog-message = { -brand-short-name } debe realizar un mantenimiento regular de los archivos para mejorar el rendimiento de sus carpetas de mensajes. Esta acción recuperará { $data } de espacio en disco sin cambiar sus mensajes. Para permitir que { -brand-short-name } haga esto automáticamente en el futuro sin preguntar, marque la casilla de abajo antes de elegir ‘{ compact-dialog.buttonlabelaccept }’.
+compact-dialog-never-ask-checkbox =
+ .label = Compactar automáticamente las carpetas en el futuro
+ .accesskey = a
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/exportDialog.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/exportDialog.ftl
new file mode 100644
index 0000000000..366fa5d465
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/exportDialog.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+export-dialog-brand-name = { -brand-product-name }
+
+export-dialog-title = Exportar
+
+export-dialog =
+ .buttonlabelaccept = Siguiente
+
+export-dialog-button-finish = Finalizar
+
+export-dialog-file-picker = Exportar a un archivo zip
+
+export-dialog-description1 = Exportar cuentas de correo, mensajes de correo, libretas de direcciones y ajustes a un archivo zip.
+
+export-dialog-desc2 = Cuando sea necesario, puede importar el archivo zip para restaurar su perfil.
+
+export-dialog-exporting = Exportando…
+
+export-dialog-exported = ¡Exportado!
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/extensionPermissions.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/extensionPermissions.ftl
new file mode 100644
index 0000000000..0486244088
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/extensionPermissions.ftl
@@ -0,0 +1,27 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## 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 = Crear, renombrar o eliminar sus carpetas de cuentas de correo
+webext-perms-description-accountsIdentities = Crear, modificar o eliminar sus identidades de cuentas de correo
+webext-perms-description-accountsRead = Ver sus cuentas de correo, sus identidades y sus carpetas
+webext-perms-description-addressBooks = Leer y modificar sus libretas de direcciones y contactos
+webext-perms-description-compose = Leer y modificar sus mensajes de correo mientras los redacta y envía
+webext-perms-description-compose-send = Enviar mensajes de correo electrónico redactados en su nombre
+webext-perms-description-compose-save = Guardar correos redactados como borradores o plantillas
+webext-perms-description-experiment = Tener acceso completo y sin restricciones a { -brand-short-name } y a su equipo.
+webext-perms-description-messagesImport = Importar mensajes en Thunderbird
+webext-perms-description-messagesModify = Leer y modificar los mensajes de correo que se le muestran
+webext-perms-description-messagesMove = Copiar o mover sus mensajes de correo (incluyendo moverlos a la carpeta de la papelera)
+webext-perms-description-messagesDelete = Eliminar permanentemente sus mensajes de correo electrónico
+webext-perms-description-messagesRead = Lea sus mensajes de correo y márquelos o etiquételos
+webext-perms-description-messagesRead2 = Lea sus mensajes de correo electrónico
+webext-perms-description-messagesUpdate = Cambie las propiedades y etiquetas de sus mensajes de correo electrónico
+webext-perms-description-messagesTags = Crear, modificar y eliminar etiquetas de mensajes
+webext-perms-description-messagesTagsList = Lista de etiquetas de mensajes
+webext-perms-description-sensitiveDataUpload = Transferir datos sensibles del usuario (si se ha concedido el acceso) a un servidor remoto para su posterior procesamiento
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/extensions/popup.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/extensions/popup.ftl
new file mode 100644
index 0000000000..cf521cd8b8
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/extensions/popup.ftl
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+close-shortcut =
+ .key = w
+# Variables:
+# $title (String): the title of the popup window
+extension-popup-title =
+ { PLATFORM() ->
+ [macos] { $title }
+ *[other] { $title } - { -brand-full-name }
+ }
+extension-popup-default-title = { -brand-full-name }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/extensionsUI.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/extensionsUI.ftl
new file mode 100644
index 0000000000..1b92411ac5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/extensionsUI.ftl
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+webext-experiment-warning = Los complementos maliciosos pueden robar su información privada o comprometer su equipo. Instale este complemento únicamente si confía en el origen.
+webext-perms-learn-more = Más información
+# Variables:
+# $addonName (String): localized named of the extension that was just installed.
+addon-post-install-message = Se ha añadido { $addonName }.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/firefoxAccounts.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/firefoxAccounts.ftl
new file mode 100644
index 0000000000..8bd94492d8
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/firefoxAccounts.ftl
@@ -0,0 +1,32 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+# “Account” can be localized, “Firefox” must be treated as a brand,
+# and kept in English.
+-fxaccount-brand-name =
+ { $capitalization ->
+ [sentence] Cuenta de Firefox
+ *[title] Cuenta de Firefox
+ }
+
+## These strings are shown in a desktop notification after the user requests we resend a verification email.
+
+fxa-verification-sent-title = Verificación enviada
+# Variables:
+# $userEmail (String) - Email address of user's Firefox Account.
+fxa-verification-sent-body = Se ha enviado un enlace de verificación a { $userEmail }.
+fxa-verification-not-sent-title = No ha sido posible enviar la verificación
+fxa-verification-not-sent-body = No hemos podido enviar un correo de verificación en este momento, vuelva a intentarlo más tarde.
+
+## These strings are shown in a confirmation dialog when the user chooses to sign out.
+
+fxa-signout-dialog-title = ¿Cerrar la sesión de { -fxaccount-brand-name(capitalization: "sentence") }?
+fxa-signout-dialog-body = Los datos sincronizados permanecerán en su cuenta.
+fxa-signout-dialog-button = Cerrar sesión
+
+## These strings are shown in a confirmation dialog when the user chooses to stop syncing.
+
+sync-disconnect-dialog-title = ¿Desconectar?
+sync-disconnect-dialog-body = { -brand-product-name } dejará de sincronizarse pero no eliminará ninguno de sus datos en este dispositivo.
+sync-disconnect-dialog-button = Desconectar
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/flatpak.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/flatpak.ftl
new file mode 100644
index 0000000000..ac1f17e40d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/flatpak.ftl
@@ -0,0 +1,24 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These messages are used by the Thunderbird Linux Flatpak "desktop" file.
+### An end user will see them associated with the application launcher icon
+
+# This is the label on the icon
+flatpak-desktop-name = { -brand-short-name }
+# Appears as a tooltip when hovering over application menu entry
+flatpak-desktop-comment = Enviar y recibir correo con { -brand-product-name }
+# A generic description of Thunderbird
+flatpak-desktop-generic-name = Cliente de correo
+
+## Actions Section
+## These are alternative ways of starting Thunderbird, such as open the compose
+## window to write a message. Visible in a context menu after right clicking a
+## Thunderbird taskbar icon, possibly other places depending on the environment.
+
+flatpak-desktop-action-compose = Redactar nuevo mensaje
+flatpak-desktop-action-addressbook = Abrir la libreta de direcciones
+flatpak-desktop-action-calendar = Abrir el calendario
+flatpak-desktop-action-keymanager = Abrir el administrador de claves OpenPGP
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/folderprops.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/folderprops.ftl
new file mode 100644
index 0000000000..2261a4308e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 }% lleno
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/importDialog.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/importDialog.ftl
new file mode 100644
index 0000000000..d278b460cc
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/importDialog.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Short name of the import module
+thunderbird-import-name = Thunderbird
+
+# Description of the import module
+thunderbird-import-description = Importar correo desde un directorio de perfil de Thunderbird.
+
+import-from-thunderbird-zip =
+ .label = Thunderbird (copia de seguridad del perfil exportada; archivo ZIP de menos de 2 GiB)
+ .accesskey = Z
+
+import-from-thunderbird-dir =
+ .label = Thunderbird (carpeta del perfil)
+ .accesskey = T
+
+import-select-profile-zip = Seleccionar un directorio de perfil comprimido
+
+import-select-profile-dir = Seleccionar un directorio de perfil
+
+zip-file-too-big-title = Archivo ZIP demasiado grande
+
+zip-file-too-big-message = El archivo ZIP seleccionado tiene un tamaño superior a 2 GiB. Descomprima primero el archivo y después impórtelo desde la carpeta descomprimida.
+
+wizardpage-failed =
+ .label = Importación fallida
+
+wizardpage-failed-message = La importación ha fallado inesperadamente, puede que haya más información en la consola de errores.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/mailWidgets.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/mailWidgets.ftl
new file mode 100644
index 0000000000..7bb93f7f8c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/mailWidgets.ftl
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+apply-current-view-to-menu =
+ .label = Aplicar la vista actual a…
+
+threadpane-apply-changes-prompt-title = ¿Aplicar cambios?
+# Variables:
+# $name (String): The name of the folder to apply to.
+threadpane-apply-changes-prompt-no-children-text = ¿Aplicar la vista de la carpeta actual a { $name }?
+# Variables:
+# $name (String): The name of the folder to apply to.
+threadpane-apply-changes-prompt-with-children-text = ¿Aplicar la vista de la carpeta actual a { $name } y sus subcarpetas?
+
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/menubar.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/menubar.ftl
new file mode 100644
index 0000000000..34a7f105c8
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/menubar.ftl
@@ -0,0 +1,144 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+toolbar-context-menu-menu-bar =
+ .toolbarname = Barra de menú
+ .accesskey = m
+
+## Tools Menu
+
+menu-tools-settings =
+ .label = Ajustes
+ .accesskey = e
+menu-addons-and-themes =
+ .label = Complementos y temas
+ .accesskey = a
+
+## Help Menu
+
+menu-help-help-title =
+ .label = Ayuda
+ .accesskey = A
+menu-help-get-help =
+ .label = Obtener ayuda
+ .accesskey = a
+menu-help-explore-features =
+ .label = Explorar características
+ .accesskey = E
+menu-help-shortcuts =
+ .label = Atajos de teclado
+ .accesskey = j
+menu-help-get-involved =
+ .label = Involucrarse
+ .accesskey = I
+menu-help-donation =
+ .label = Hacer una donación
+ .accesskey = d
+menu-help-share-feedback =
+ .label = Compartir ideas y opiniones
+ .accesskey = C
+menu-help-enter-troubleshoot-mode =
+ .label = Modo de resolución de problemas…
+ .accesskey = r
+menu-help-exit-troubleshoot-mode =
+ .label = Desactivar el modo de resolución de problemas
+ .accesskey = o
+menu-help-more-troubleshooting-info =
+ .label = Más información para solucionar problemas
+ .accesskey = M
+menu-help-troubleshooting-info =
+ .label = Información sobre la resolución de problemas
+ .accesskey = I
+menu-help-about-product =
+ .label = Acerca de { -brand-short-name }
+ .accesskey = A
+# These menu-quit strings are only used on Windows and Linux.
+menu-quit =
+ .label =
+ { PLATFORM() ->
+ [windows] Salir
+ *[other] Salir
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] x
+ *[other] Q
+ }
+# This menu-quit-mac string is only used on macOS.
+menu-quit-mac =
+ .label = Salir de { -brand-shorter-name }
+quit-app-shortcut =
+ .key = Q
+
+## Mail Toolbar
+
+toolbar-junk-button =
+ .label = Basura
+ .tooltiptext = Marcar los mensajes seleccionados como basura
+toolbar-not-junk-button =
+ .label = No es basura
+ .tooltiptext = Marcar los mensajes seleccionados como no basura
+toolbar-delete-button =
+ .label = Eliminar
+ .tooltiptext = Eliminar mensajes o carpetas seleccionadas
+toolbar-undelete-button =
+ .label = Recuperar
+ .tooltiptext = Recuperar mensajes seleccionados
+
+## View
+
+menu-view-repair-text-encoding =
+ .label = Reparar la codificación de texto
+ .accesskey = c
+
+## View / Folders
+
+menu-view-folders-toggle-header =
+ .label = Cabecera del panel de carpetas
+ .accesskey = C
+
+## View / Layout
+
+menu-view-toggle-thread-pane-header =
+ .label = Cabecera de lista de mensajes
+ .accesskey = C
+menu-font-size-label =
+ .label = Tamaño de la letra
+ .accesskey = o
+menuitem-font-size-enlarge =
+ .label = Aumentar el tamaño de la letra
+ .accesskey = u
+menuitem-font-size-reduce =
+ .label = Reducir el tamaño de la letra
+ .accesskey = d
+menuitem-font-size-reset =
+ .label = Restablecer el tamaño de la letra
+ .accesskey = R
+mail-uidensity-label =
+ .label = Densidad
+ .accesskey = D
+mail-uidensity-compact =
+ .label = Compacto
+ .accesskey = C
+mail-uidensity-normal =
+ .label = Normal
+ .accesskey = N
+mail-uidensity-touch =
+ .label = Táctil
+ .accesskey = T
+mail-uidensity-default =
+ .label = Predeterminado
+ .accesskey = P
+mail-uidensity-relaxed =
+ .label = Relajado
+ .accesskey = R
+menu-spaces-toolbar-button =
+ .label = Barra de herramientas de espacios
+ .accesskey = s
+
+## File
+
+file-new-newsgroup-account =
+ .label = Cuenta de grupo de noticias…
+ .accesskey = n
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/messageheader/headerFields.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/messageheader/headerFields.ftl
new file mode 100644
index 0000000000..9de62100bd
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/messageheader/headerFields.ftl
@@ -0,0 +1,49 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Header lists
+
+message-header-to-list-name = Para
+message-header-from-list-name = De
+message-header-sender-list-name = Remitente
+message-header-reply-to-list-name = Responder a
+message-header-cc-list-name = Cc
+message-header-bcc-list-name = Cco
+message-header-newsgroups-list-name = Grupos de noticias
+message-header-followup-to-list-name = Dirigir a
+message-header-tags-list-name = Etiquetas
+
+## Other message headers.
+## The field-separator is for screen readers to separate the field name from the field value.
+
+message-header-author-field = Autor<span data-l10n-name="field-separator">:</span>
+message-header-organization-field = Organización<span data-l10n-name="field-separator">:</span>
+message-header-subject-field = Asunto<span data-l10n-name="field-separator">:</span>
+message-header-followup-to-field = Dirigir a<span data-l10n-name="field-separator">:</span>
+message-header-date-field = Fecha<span data-l10n-name="field-separator">:</span>
+message-header-user-agent-field = Agente de usuario<span data-l10n-name="field-separator">:</span>
+message-header-references-field = Referencias<span data-l10n-name="field-separator">:</span>
+message-header-message-id-field = ID del mensaje<span data-l10n-name="field-separator">:</span>
+message-header-in-reply-to-field = En respuesta a<span data-l10n-name="field-separator">:</span>
+message-header-website-field = Sitio web<span data-l10n-name="field-separator">:</span>
+# An additional email header field that the user has chosen to display. Unlike
+# the other headers, the name of this header is not expected to be localised
+# because it is generated from the raw field name found in the email header.
+# $fieldName (String) - The field name.
+message-header-custom-field = { $fieldName }<span data-l10n-name="field-separator">:</span>
+
+##
+
+message-header-address-in-address-book-icon2 =
+ .alt = En la libreta de direcciones
+message-header-address-not-in-address-book-icon2 =
+ .alt = No se encuentra en la libreta de direcciones
+message-header-address-not-in-address-book-button =
+ .title = Guardar esta dirección en la libreta de direcciones
+message-header-address-in-address-book-button =
+ .title = Editar contacto
+message-header-field-show-more = Más
+ .title = Mostrar todos los destinatarios
+message-ids-field-show-all = Mostrar todo
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/messenger.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/messenger.ftl
new file mode 100644
index 0000000000..9e8d7f69cc
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/messenger.ftl
@@ -0,0 +1,411 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Window controls
+
+messenger-window-minimize-button =
+ .tooltiptext = Minimizar
+messenger-window-maximize-button =
+ .tooltiptext = Maximizar
+messenger-window-restore-down-button =
+ .tooltiptext = Restaurar
+messenger-window-close-button =
+ .tooltiptext = Cerrar
+# Variables:
+# $count (Number) - Number of unread messages.
+unread-messages-os-tooltip =
+ { $count ->
+ [one] 1 mensaje no leído
+ *[other] { $count } mensajes no leídos
+ }
+about-rights-notification-text = { -brand-short-name } es software libre y de código abierto, creado por una comunidad de miles de personas en todo el mundo.
+
+## Content tabs
+
+content-tab-page-loading-icon =
+ .alt = La página está cargando
+content-tab-security-high-icon =
+ .alt = La conexión es segura
+content-tab-security-broken-icon =
+ .alt = La conexión no es segura
+
+# Back
+
+# Variables
+# $shortcut (String) - A keyboard shortcut for the Go Back command.
+content-tab-menu-back =
+ .tooltiptext = Ir a la página anterior ({ $shortcut })
+ .aria-label = Anterior
+ .accesskey = A
+# This menuitem is only visible on macOS
+content-tab-menu-back-mac =
+ .label = Atrás
+ .accesskey = A
+
+# Forward
+
+# Variables
+# $shortcut (String) - A keyboard shortcut for the Go Forward command.
+content-tab-menu-forward =
+ .tooltiptext = Ir a la página siguiente ({ $shortcut })
+ .aria-label = Siguiente
+ .accesskey = S
+# This menuitem is only visible on macOS
+content-tab-menu-forward-mac =
+ .label = Siguiente
+ .accesskey = S
+
+# Reload
+
+content-tab-menu-reload =
+ .tooltiptext = Recargar página
+ .aria-label = Recargar
+ .accesskey = R
+# This menuitem is only visible on macOS
+content-tab-menu-reload-mac =
+ .tooltiptext = Recargar página
+ .label = Recargar
+ .accesskey = R
+
+# Stop
+
+content-tab-menu-stop =
+ .tooltiptext = Detener carga de página
+ .aria-label = Detener
+ .accesskey = D
+# This menuitem is only visible on macOS
+content-tab-menu-stop-mac =
+ .tooltiptext = Detener carga de página
+ .label = Detener
+ .accesskey = D
+
+## Toolbar
+
+addons-and-themes-toolbarbutton =
+ .label = Complementos y temas
+ .tooltiptext = Administre sus complementos
+quick-filter-toolbarbutton =
+ .label = Filtro rápido
+ .tooltiptext = Filtrar mensajes
+redirect-msg-button =
+ .label = Redirigir
+ .tooltiptext = Redirige el mensaje seleccionado
+
+## Folder Pane
+
+folder-pane-toolbar =
+ .toolbarname = Barra de herramientas del panel de carpetas
+ .accesskey = p
+folder-pane-toolbar-options-button =
+ .tooltiptext = Opciones del panel de carpetas
+folder-pane-header-label = Carpetas
+
+## Folder Toolbar Header Popup
+
+folder-toolbar-hide-toolbar-toolbarbutton =
+ .label = Ocultar la barra de herramientas
+ .accesskey = O
+show-all-folders-label =
+ .label = Todas las carpetas
+ .accesskey = T
+show-unread-folders-label =
+ .label = Carpetas no leídas
+ .accesskey = n
+show-favorite-folders-label =
+ .label = Carpetas favoritas
+ .accesskey = f
+show-smart-folders-label =
+ .label = Carpetas unificadas
+ .accesskey = u
+show-recent-folders-label =
+ .label = Carpetas recientes
+ .accesskey = r
+show-tags-folders-label =
+ .label = Etiquetas
+ .accesskey = E
+folder-toolbar-toggle-folder-compact-view =
+ .label = Vista compacta
+ .accesskey = c
+
+## File Menu
+
+menu-file-save-as-file =
+ .label = Archivo…
+ .accesskey = A
+
+## Edit Menu
+
+menu-edit-delete-folder =
+ .label = Eliminar carpeta
+ .accesskey = r
+menu-edit-unsubscribe-newsgroup =
+ .label = Darse de baja del grupo de noticias
+ .accesskey = b
+# Variables:
+# $count (Number) - Number of selected messages.
+menu-edit-delete-messages =
+ .label =
+ { $count ->
+ [one] Eliminar mensaje
+ *[other] Eliminar mensajes seleccionados
+ }
+ .accesskey = r
+# Variables:
+# $count (Number) - Number of selected messages.
+menu-edit-undelete-messages =
+ .label =
+ { $count ->
+ [one] Restaurar mensaje
+ *[other] Restaurar mensajes seleccionados
+ }
+ .accesskey = j
+menu-edit-properties =
+ .label = Propiedades
+ .accesskey = o
+menu-edit-folder-properties =
+ .label = Propiedades de carpeta
+ .accesskey = o
+menu-edit-newsgroup-properties =
+ .label = Propiedades del grupo
+ .accesskey = o
+
+## Message Menu
+
+redirect-msg-menuitem =
+ .label = Redirigir
+ .accesskey = R
+
+## AppMenu
+
+appmenu-save-as-file =
+ .label = Archivo…
+appmenu-settings =
+ .label = Ajustes
+appmenu-addons-and-themes =
+ .label = Complementos y temas
+
+## Context menu
+
+context-menu-redirect-msg =
+ .label = Redirigir
+# This menu item is for canceling an NNTP message
+context-menu-cancel-msg =
+ .label = Cancelar mensaje
+# Variables:
+# $count (Number) - Number of selected messages.
+mail-context-delete-messages =
+ .label =
+ { $count ->
+ [one] Eliminar mensaje seleccionado
+ *[other] Eliminar mensajes seleccionados
+ }
+# Variables:
+# $count (Number) - Number of selected messages.
+mail-context-undelete-messages =
+ .label =
+ { $count ->
+ [one] Restaurar mensaje
+ *[other] Restaurar mensajes seleccionados
+ }
+context-menu-decrypt-to-folder2 =
+ .label = Crear copia descifrada en
+ .accesskey = f
+
+## Message header pane
+
+other-action-redirect-msg =
+ .label = Redirigir
+message-header-msg-flagged =
+ .title = Con estrella
+ .aria-label = Con estrella
+# Variables:
+# $address (String) - The email address of the recipient this picture belongs to.
+message-header-recipient-avatar =
+ .alt = Foto de perfil de { $address }.
+
+## Message header cutomize panel
+
+message-header-customize-panel-title = Configuración del encabezado del mensaje
+message-header-customize-button-style =
+ .value = Estilo de botón
+ .accesskey = E
+message-header-button-style-default =
+ .label = Iconos y texto
+message-header-button-style-text =
+ .label = Texto
+message-header-button-style-icons =
+ .label = Iconos
+message-header-show-sender-full-address =
+ .label = Mostrar siempre la dirección completa del remitente
+ .accesskey = i
+message-header-show-sender-full-address-description = La dirección de correo electrónico se mostrará debajo del nombre para mostrar.
+message-header-show-recipient-avatar =
+ .label = Mostrar la foto de perfil del remitente
+ .accesskey = p
+message-header-show-big-avatar =
+ .label = Imagen de perfil más grande
+ .accesskey = g
+message-header-hide-label-column =
+ .label = Ocultar la columna de etiquetas
+ .accesskey = l
+message-header-large-subject =
+ .label = Tema grande
+ .accesskey = T
+message-header-all-headers =
+ .label = Mostrar todos los encabezados
+ .accesskey = t
+
+## Action Button Context Menu
+
+toolbar-context-menu-manage-extension =
+ .label = Gestionar extensión
+ .accesskey = e
+toolbar-context-menu-remove-extension =
+ .label = Eliminar extensión
+ .accesskey = n
+
+## Add-on removal warning
+
+# Variables:
+# $name (String): The name of the add-on that will be removed.
+addon-removal-title = ¿Eliminar { $name }?
+addon-removal-confirmation-button = Eliminar
+# Variables:
+# $name (String): The name of the add-on that will be removed.
+addon-removal-confirmation-message = ¿Eliminar { $name } así como su configuración y datos de { -brand-short-name }?
+caret-browsing-prompt-title = Navegación con cursor
+caret-browsing-prompt-text = Presionando F7 se activa o desactiva la navegación con cursor. Esta característica coloca un cursor móvil dentro de algunos contenidos, lo que le permite seleccionar texto con el teclado. ¿Desea activar la navegación con cursor?
+caret-browsing-prompt-check-text = No volver a preguntar.
+repair-text-encoding-button =
+ .label = Reparar la codificación de texto
+ .tooltiptext = Adivina la codificación correcta del texto desde el contenido del mensaje
+
+## no-reply handling
+
+no-reply-title = Respuesta no admitida
+# Variables:
+# $email (String) - Email address the reply will be sent to. Example: "noreply@example.com"
+no-reply-message = La dirección de respuesta ({ $email }) no parece que sea una dirección supervisada. Es probable que nadie lea los mensajes enviados a esta dirección.
+no-reply-reply-anyway-button = Responder de todas formas
+
+## error messages
+
+# Variables:
+# $failures (Number) - Number of messages that could not be decrypted.
+# $total (Number) - Total number of messages that were attempted to be decrypted.
+decrypt-and-copy-failures-multiple =
+ { $failures ->
+ [one] No se ha podido descifrar { $failures } de { $total } mensajes y no se ha copiado.
+ *[other] No se han podido descifrar { $failures } de { $total } mensajes y no se han copiado.
+ }
+
+## Spaces toolbar
+
+spaces-toolbar-element =
+ .toolbarname = Barra de herramientas de espacios
+ .aria-label = Barra de herramientas de espacios
+ .aria-description = Barra de herramientas vertical para cambiar entre los diferentes espacios. Use las teclas de navegación para ver los botones disponibles.
+spaces-toolbar-button-mail2 =
+ .title = Correo
+spaces-toolbar-button-address-book2 =
+ .title = Libreta de direcciones
+spaces-toolbar-button-calendar2 =
+ .title = Calendario
+spaces-toolbar-button-tasks2 =
+ .title = Tareas
+spaces-toolbar-button-chat2 =
+ .title = Chat
+spaces-toolbar-button-overflow =
+ .title = Más espacios…
+spaces-toolbar-button-settings2 =
+ .title = Ajustes
+spaces-toolbar-button-hide =
+ .title = Ocultar la barra de herramientas de espacios
+spaces-toolbar-button-show =
+ .title = Mostrar la barra de herramientas de espacios
+spaces-context-new-tab-item =
+ .label = Abrir en una pestaña nueva
+spaces-context-new-window-item =
+ .label = Abrir en una ventana nueva
+# Variables:
+# $tabName (String) - The name of the tab this item will switch to.
+spaces-context-switch-tab-item =
+ .label = Cambiar a { $tabName }
+settings-context-open-settings-item2 =
+ .label = Ajustes
+settings-context-open-account-settings-item2 =
+ .label = Configuración de la cuenta
+settings-context-open-addons-item2 =
+ .label = Complementos y temas
+
+## Spaces toolbar pinned tab menupopup
+
+spaces-toolbar-pinned-tab-button =
+ .tooltiptext = Menú de espacios
+spaces-pinned-button-menuitem-mail2 =
+ .label = { spaces-toolbar-button-mail2.title }
+spaces-pinned-button-menuitem-address-book2 =
+ .label = { spaces-toolbar-button-address-book2.title }
+spaces-pinned-button-menuitem-calendar2 =
+ .label = { spaces-toolbar-button-calendar2.title }
+spaces-pinned-button-menuitem-tasks2 =
+ .label = { spaces-toolbar-button-tasks2.title }
+spaces-pinned-button-menuitem-chat2 =
+ .label = { spaces-toolbar-button-chat2.title }
+spaces-pinned-button-menuitem-settings2 =
+ .label = { spaces-toolbar-button-settings2.title }
+spaces-pinned-button-menuitem-show =
+ .label = { spaces-toolbar-button-show.title }
+# Variables:
+# $count (Number) - Number of unread messages.
+chat-button-unread-messages = { $count }
+ .title =
+ { $count ->
+ [one] Un mensaje sin leer
+ *[other] { $count } mensajes sin leer
+ }
+
+## Spaces toolbar customize panel
+
+menuitem-customize-label =
+ .label = Personalizar...
+spaces-customize-panel-title = Ajustes de la barra de herramientas de espacios
+spaces-customize-background-color = Color de fondo
+spaces-customize-icon-color = Color del botón
+# The background color used on the buttons of the spaces toolbar when they are
+# `current`, meaning the related space/tab is active and visible.
+spaces-customize-accent-background-color = Color de fondo del botón seleccionado
+# The icon color used on the buttons of the spaces toolbar when they are
+# `current`, meaning the related space/tab is active and visible.
+spaces-customize-accent-text-color = Color del botón seleccionado
+spaces-customize-button-restore = Restaurar predeterminados
+ .accesskey = R
+customize-panel-button-save = Hecho
+ .accesskey = H
+
+## 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 filtrado rápido
+ .accesskey = f
+# This is the key used to show the quick filter bar.
+# This should match quick-filter-bar-textbox-shortcut in about3Pane.ftl.
+quick-filter-bar-show =
+ .key = k
+
+## OpenPGP
+
+openpgp-forget = Olvidar frases de contraseña de OpenPGP
+
+## Quota panel.
+
+# Variables:
+# $percent (Number) - Usage percentage of the assigned IMAP quota.
+# $usage (String) - Current quota usage (may include unit)
+# $limit (String) - Current quota limit (may include unit)
+quota-panel-percent-used = { $percent }% utilizado
+ .title = Cuota IMAP: { $usage } utilizado de un total de { $limit }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/messengercompose/messengercompose.ftl
new file mode 100644
index 0000000000..8dbdf4a0c4
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/messengercompose/messengercompose.ftl
@@ -0,0 +1,424 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Send Format
+
+compose-send-format-menu =
+ .label = Formato de envío
+ .accesskey = F
+compose-send-auto-menu-item =
+ .label = Automático
+ .accesskey = A
+compose-send-both-menu-item =
+ .label = HTML y texto sin formato
+ .accesskey = T
+compose-send-html-menu-item =
+ .label = Sólo HTML
+ .accesskey = H
+compose-send-plain-menu-item =
+ .label = Sólo texto sin formato
+ .accesskey = f
+
+## Addressing widget
+
+# $type (String) - the type of the addressing row
+remove-address-row-button =
+ .title = Eliminar el campo { $type }
+# $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 } con una dirección, use la tecla Flecha izquierda para situarse en ella.
+ *[other] { $type } con { $count } direcciones, use la tecla Flecha izquierda para situarse en ellas.
+ }
+# $email (String) - the email address
+# $count (Number) - the number of address pills currently present in the addressing row
+pill-aria-label =
+ { $count ->
+ [one] { $email }: pulse Enter para editar, Borrar para eliminar.
+ *[other] { $email }, 1 de { $count }: pulse Enter para editar, Borrar para eliminar.
+ }
+# $email (String) - the email address
+pill-tooltip-invalid-address = { $email } no es una dirección de correo electrónico válida
+# $email (String) - the email address
+pill-tooltip-not-in-address-book = { $email } no está en la libreta de direcciones
+pill-action-edit =
+ .label = Editar dirección
+ .accesskey = e
+# $type (String) - the type of the addressing row, e.g. Cc, Bcc, etc.
+pill-action-select-all-sibling-pills =
+ .label = Seleccionar todas las direcciones en { $type }
+ .accesskey = a
+pill-action-select-all-pills =
+ .label = Seleccionar todas las direcciones
+ .accesskey = S
+pill-action-move-to =
+ .label = Ir al campo Para
+ .accesskey = P
+pill-action-move-cc =
+ .label = Ir al campo Cc
+ .accesskey = c
+pill-action-move-bcc =
+ .label = Ir al campo Bcc
+ .accesskey = b
+pill-action-expand-list =
+ .label = Expandir lista
+ .accesskey = x
+
+## Attachment widget
+
+ctrl-cmd-shift-pretty-prefix =
+ { PLATFORM() ->
+ [macos] ⇧ ⌘{ " " }
+ *[other] Ctrl+Mayús+
+ }
+trigger-attachment-picker-key = A
+toggle-attachment-pane-key = M
+menuitem-toggle-attachment-pane =
+ .label = Panel de adjuntos
+ .accesskey = n
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key }
+toolbar-button-add-attachment =
+ .label = Adjuntar
+ .tooltiptext = Adjuntar un archivo ({ ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key })
+add-attachment-notification-reminder2 =
+ .label = Adjuntar…
+ .accesskey = A
+ .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+menuitem-attach-files =
+ .label = Archivo(s)…
+ .accesskey = A
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key }
+context-menuitem-attach-files =
+ .label = Adjuntar archivo(s)...
+ .accesskey = F
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key }
+# Note: Do not translate the term 'vCard'.
+context-menuitem-attach-vcard =
+ .label = Mi vCard
+ .accesskey = C
+context-menuitem-attach-openpgp-key =
+ .label = Mi clave pública OpenPGP
+ .accesskey = c
+# $count (Number) - the number of attachments in the attachment bucket
+attachment-bucket-count-value =
+ { $count ->
+ [1] { $count } adjunto
+ [one] { $count } adjunto
+ *[other] { $count } adjuntos
+ }
+attachment-area-show =
+ .title = Mostrar el panel de adjuntos ({ ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key })
+attachment-area-hide =
+ .title = Ocultar el panel de adjuntos ({ ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key })
+
+## Variables:
+## $count (Number) - Number of files being dropped onto the composer.
+
+drop-file-label-attachment =
+ { $count ->
+ [one] Añadir como archivo adjunto
+ *[other] Añadir como archivos adjuntos
+ }
+drop-file-label-inline =
+ { $count ->
+ [one] Insertar en línea
+ *[other] Insertar en línea
+ }
+
+## Reorder Attachment Panel
+
+move-attachment-first-panel-button =
+ .label = Mover al inicio
+move-attachment-left-panel-button =
+ .label = Mover a la izquierda
+move-attachment-right-panel-button =
+ .label = Mover a la derecha
+move-attachment-last-panel-button =
+ .label = Mover al final
+button-return-receipt =
+ .label = Recibo
+ .tooltiptext = Solicitar un recibo de respuesta de este mensaje
+
+## Encryption
+
+encryption-menu =
+ .label = Seguridad
+ .accesskey = g
+encryption-toggle =
+ .label = Cifrar
+ .tooltiptext = Usar cifrado de extremo a extremo para este mensaje
+encryption-options-openpgp =
+ .label = OpenPGP
+ .tooltiptext = Ver o cambiar la configuración de cifrado de OpenPGP
+encryption-options-smime =
+ .label = S/MIME
+ .tooltiptext = Ver o cambiar la configuración de cifrado de S/MIME
+signing-toggle =
+ .label = Firma
+ .tooltiptext = Usar firma digital para este mensaje
+menu-openpgp =
+ .label = OpenPGP
+ .accesskey = O
+menu-smime =
+ .label = S/MIME
+ .accesskey = S
+menu-encrypt =
+ .label = Cifrar
+ .accesskey = C
+menu-encrypt-subject =
+ .label = Cifrar asunto
+ .accesskey = a
+menu-sign =
+ .label = Firmar digitalmente
+ .accesskey = i
+menu-manage-keys =
+ .label = Asistente de clave
+ .accesskey = A
+menu-view-certificates =
+ .label = Ver certificados de destinatarios
+ .accesskey = V
+menu-open-key-manager =
+ .label = Gestor de claves
+ .accesskey = G
+openpgp-key-issue-notification-one = El cifrado de extremo a extremo requiere resolver problemas con la clave de { $addr }
+openpgp-key-issue-notification-many = El cifrado de extremo a extremo requiere resolver problemas con las claves de { $count } destinatarios.
+smime-cert-issue-notification-one = El cifrado de extremo a extremo requiere resolver problemas con los certificados de { $addr }.
+smime-cert-issue-notification-many = El cifrado de extremo a extremo requiere resolver problemas con los certificados de { $count } destinatarios.
+# Variables:
+# $addr (String) - Email address (which related to the currently selected
+# from address) which isn't set up to end-to-end encryption.
+openpgp-key-issue-notification-from = No está configurado para enviar mensajes cifrados de extremo a extremo desde { $addr }.
+# Variables:
+# $addr (String) - Email address with key issues.
+openpgp-key-issue-notification-single = Para utilizar el cifrado de extremo a extremo es necesario resolver problemas con la clave de { $addr }.
+# Variables:
+# $count (Number) - Number of recipients with key issues.
+openpgp-key-issue-notification-multi =
+ { $count ->
+ [one] Para utilizar el cifrado de extremo a extremo es necesario resolver problemas con la clave de { $count } destinatario.
+ *[other] Para utilizar el cifrado de extremo a extremo es necesario resolver problemas con la clave de { $count } destinatarios.
+ }
+# Variables:
+# $addr (String) - mail address with certificate issues.
+smime-cert-issue-notification-single = Para utilizar el cifrado de extremo a extremo es necesario resolver problemas con los certificados de { $addr }.
+# Variables:
+# $count (Number) - Number of recipients with certificate issues.
+smime-cert-issue-notification-multi =
+ { $count ->
+ [one] Para utilizar el cifrado de extremo a extremo es necesario resolver problemas con los certificados de { $count } destinatario.
+ *[other] Para utilizar el cifrado de extremo a extremo es necesario resolver problemas con los certificados de { $count } destinatarios.
+ }
+key-notification-disable-encryption =
+ .label = No cifrar
+ .accesskey = N
+ .tooltiptext = Desactivar el cifrado de extremo a extremo
+key-notification-resolve =
+ .label = Resolver…
+ .accesskey = R
+ .tooltiptext = Abrir el asistente de claves de OpenPGP
+can-encrypt-smime-notification = Admite cifrado S/MIME de extremo a extremo.
+can-encrypt-openpgp-notification = Admite cifrado OpenPGP de extremo a extremo.
+can-e2e-encrypt-button =
+ .label = Cifrar
+ .accesskey = f
+
+## Addressing Area
+
+to-address-row-label =
+ .value = Para
+# $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+ .label = Campo para
+ .accesskey = p
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+ .label = Para
+ .accesskey = P
+# $key (String) - the shortcut key for this field
+show-to-row-button = Para
+ .title = Mostrar campo Para ({ ctrl-cmd-shift-pretty-prefix })
+cc-address-row-label =
+ .value = Cc
+# $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+ .label = Campo Cc
+ .accesskey = C
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+ .label = Cc
+ .accesskey = C
+# $key (String) - the shortcut key for this field
+show-cc-row-button = Cc
+ .title = Mostrar campo Cc ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+ .value = Cco
+# $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+ .label = Campo Cco
+ .accesskey = o
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+ .label = Cco
+ .accesskey = o
+# $key (String) - the shortcut key for this field
+show-bcc-row-button = Cco
+ .title = Mostrar el campo Cco ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+ .title = Otros campos de dirección a mostrar
+# $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+ { $count ->
+ [one] Su mensaje tiene un destinatario público. Puede evitar revelar los destinatarios utilizando Cco en su lugar.
+ *[other] Los { $count } destinatarios en Para y Cc verán las direcciones de los demás. Puede evitar revelar los destinatarios utilizando Cco en su lugar.
+ }
+public-recipients-notice-single = El mensaje tiene un destinatario público. Puede evitar revelar el destinatario usando Cco en su lugar.
+# Variables:
+# $count (Number) - the count of addresses in the "To" and "Cc" fields.
+public-recipients-notice-multi =
+ { $count ->
+ [one] { $count } destinatario en Para y Cc podrá ver la dirección de los demás. Utilice el campo Cco para evitar revelar los destinatarios.
+ *[other] { $count } destinatarios en Para y Cc podrán ver la dirección de los demás. Utilice el campo Cco para evitar revelar los destinatarios.
+ }
+many-public-recipients-bcc =
+ .label = Utilice Cco en su lugar
+ .accesskey = U
+many-public-recipients-ignore =
+ .label = Mantener públicos a los destinatarios
+ .accesskey = p
+many-public-recipients-prompt-title = Demasiados destinatarios públicos
+# $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+ { $count ->
+ [one] Su mensaje tiene un destinatario público. Esto puede ser un problema de privacidad. Puede evitarlo moviendo el destinatario de Para/Cc a Cco.
+ *[other] Su mensaje tiene { $count } destinatarios públicos, que podrán ver las direcciones de los demás. Esto puede ser un problema de privacidad. Puede evitar la divulgación de los destinatarios moviendo los destinatarios de Para/Cc a Cco en su lugar.
+ }
+many-public-recipients-prompt-cancel = Cancelar el envío
+many-public-recipients-prompt-send = Enviar de todos modos
+
+## Notifications
+
+# Variables:
+# $identity (string) - The name of the used identity, most likely an email address.
+compose-missing-identity-warning = No se ha encontrado una identidad única que coincida con la dirección del remitente. El mensaje se enviará utilizando el remitente actual y la configuración de la identidad { $identity }.
+encrypted-bcc-warning = Al enviar un mensaje cifrado, los destinatarios en Cco no están totalmente ocultos. Todos los destinatarios pueden ser capaces de identificarlos.
+encrypted-bcc-ignore-button = Entendido
+auto-disable-e2ee-warning = El cifrado de extremo a extremo para este mensaje se ha desactivado automáticamente.
+
+## Editing
+
+
+# Tools
+
+compose-tool-button-remove-text-styling =
+ .tooltiptext = Eliminar estilo de texto
+
+## Filelink
+
+# A text used in a tooltip of Filelink attachments, whose account has been
+# removed or is unknown.
+cloud-file-unknown-account-tooltip = Subido a una cuenta Filelink desconocida.
+
+# Placeholder file
+
+# Title for the html placeholder file.
+# $filename - name of the file
+cloud-file-placeholder-title = { $filename } - Adjunto Filelink
+# A text describing that the file was attached as a Filelink and can be downloaded
+# from the link shown below.
+# $filename - name of the file
+cloud-file-placeholder-intro = El archivo { $filename } se adjuntó como Filelink. Se puede descargar desde el siguiente enlace.
+
+# Template
+
+# A line of text describing how many uploaded files have been appended to this
+# message. Emphasis should be on sharing as opposed to attaching. This item is
+# used as a header to a list, hence the colon.
+# Variables:
+# $count (Number) - Number of files.
+cloud-file-count-header =
+ { $count ->
+ [one] He vinculado { $count } archivo a este correo electrónico:
+ *[other] He vinculado { $count } archivos a este correo electrónico:
+ }
+# A text used in a footer, instructing the reader where to find additional
+# information about the used service provider.
+# $link (string) - html a-tag for a link pointing to the web page of the provider
+cloud-file-service-provider-footer-single = Descubra más sobre { $link }.
+# A text used in a footer, instructing the reader where to find additional
+# information about the used service providers. Links for the used providers are
+# split into a comma separated list of the first n-1 providers and a single entry
+# at the end.
+# $firstLinks (string) - comma separated list of html a-tags pointing to web pages
+# of the first n-1 used providers
+# $lastLink (string) - html a-tag pointing the web page of the n-th used provider
+cloud-file-service-provider-footer-multiple = Saber más sobre { $firstLinks } y { $lastLink }
+# Tooltip for an icon, indicating that the link is protected by a password.
+cloud-file-tooltip-password-protected-link = Enlace protegido por contraseña
+# Used in a list of stats about a specific file
+# Service - the used service provider to host the file (Filelink Service: BOX.com)
+# Size - the size of the file (Size: 4.2 MB)
+# Link - the link to the file (Link: https://some.provider.com)
+# Expiry Date - stating the date the link will expire (Expiry Date: 12.12.2022)
+# Download Limit - stating the maximum allowed downloads, before the link becomes invalid
+# (Download Limit: 6)
+cloud-file-template-service-name = Servicio de Filelink:
+cloud-file-template-size = Tamaño:
+cloud-file-template-link = Enlace:
+cloud-file-template-password-protected-link = Enlace protegido por contraseña:
+cloud-file-template-expiry-date = Fecha de caducidad:
+cloud-file-template-download-limit = Límite de descarga:
+
+# Messages
+
+cloud-file-connection-error-title = Error de conexión
+# Variables:
+# $provider (string) - name of the online storage service that reported the error
+cloud-file-connection-error = { -brand-short-name } está sin conexión. No se puede conectar con { $provider }.
+# Variables:
+# $provider (string) - name of the online storage service that reported the error
+# $filename (string) - name of the file that was uploaded and caused the error
+cloud-file-upload-error-with-custom-message-title = No se pudo subir { $filename } a { $provider }
+cloud-file-rename-error-title = Error al renombrar
+# Variables:
+# $provider (string) - name of the online storage service that reported the error
+# $filename (string) - name of the file that was renamed and caused the error
+cloud-file-rename-error = Ha habido un problema al renombrar { $filename } en { $provider }.
+# Variables:
+# $provider (string) - name of the online storage service that reported the error
+# $filename (string) - name of the file that was renamed and caused the error
+cloud-file-rename-error-with-custom-message-title = No se ha podido renombrar { $filename } en { $provider }
+# Variables:
+# $provider (string) - name of the online storage service that reported the error
+cloud-file-rename-not-supported = { $provider } no admite el cambio de nombre de los archivos ya subidos.
+cloud-file-attachment-error-title = Error al adjuntar un archivo Filelink
+# Variables:
+# $filename (string) - name of the file that was renamed and caused the error
+cloud-file-attachment-error = No se ha podido actualizar el archivo adjunto Filelink { $filename }, porque su archivo local ha sido movido o eliminado.
+cloud-file-account-error-title = Error en la cuenta de Filelink
+# Variables:
+# $filename (string) - name of the file that was renamed and caused the error
+cloud-file-account-error = No se ha podido actualizar el archivo adjunto Filelink { $filename }, porque su cuenta Filelink ha sido eliminada.
+
+## Link Preview
+
+link-preview-title = Vista previa del enlace
+link-preview-description = { -brand-short-name } puede añadir una vista previa integrada al pegar enlaces.
+link-preview-autoadd = Añadir vista previa de enlaces automáticamente cuando sea posible
+link-preview-replace-now = ¿Desea añadir una vista para este enlace?
+link-preview-yes-replace = Sí
+
+## Dictionary selection popup
+
+spell-add-dictionaries =
+ .label = Añadir diccionarios…
+ .accesskey = A
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/migration.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/migration.ftl
new file mode 100644
index 0000000000..30e96a49bd
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/migration.ftl
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+migration-progress-header = Preparando { -brand-short-name }…
+
+## Migration tasks
+
+
+# These strings are displayed to the user if a migration is taking a long time.
+# They should be short (no more than a handful of words) and in the present tense.
+
+migration-task-test-fast = Probando un cambio rápido
+migration-task-test-slow = Probando un cambio lento
+migration-task-test-progress = Probando la barra de progreso
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/multimessageview.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/multimessageview.ftl
new file mode 100644
index 0000000000..4316d26b8d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Resumen del mensaje
+selected-messages-label =
+ .label = Mensajes seleccionados
+multi-message-archive-button =
+ .label = Archivar
+ .tooltiptext = Archivar
+multi-message-delete-button =
+ .label = Eliminar
+ .tooltiptext = Eliminar
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/backupKeyPassword.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/backupKeyPassword.ftl
new file mode 100644
index 0000000000..3b1c34b66e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Elija una contraseña para hacer una copia de seguridad de su clave OpenPGP
+set-password-window-title = Elija una contraseña para hacer una copia de seguridad de su clave OpenPGP
+set-password-legend = Elegir una contraseña
+set-password-message = La contraseña que establezca aquí sirve para proteger el archivo de la copia de seguridad de la clave secreta de OpenPGP que va a generar. Debe establecer esta contraseña para continuar con la copia de seguridad.
+set-password-backup-pw =
+ .value = Contraseña para la copia de seguridad de la clave secreta:
+set-password-repeat-backup-pw =
+ .value = Contraseña para la copia de seguridad de la clave secreta (otra vez):
+set-password-backup-pw-label = Contraseña para la copia de seguridad de la clave secreta:
+set-password-backup-pw2-label = Contraseña para la copia de seguridad de la clave secreta (otra vez):
+set-password-reminder = <b>¡Importante!</b> Si olvida la contraseña de la copia de seguridad de la clave secreta, no podrá restaurar esta copia de seguridad más adelante. Guárdela en un lugar seguro.
+password-quality-meter = Medidor de calidad de la contraseña
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/changeExpiryDlg.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/changeExpiryDlg.ftl
new file mode 100644
index 0000000000..92fd60b7cb
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Cambiar la caducidad de la clave
+openpgp-change-expiry-title = Cambiar la caducidad de la clave
+info-will-expire = Esta clave está actualmente configurada para caducar el { $date }.
+info-already-expired = Esta clave ya ha caducado.
+info-does-not-expire = Esta clave está actualmente configurada para no caducar nunca.
+info-explanation-1 = <b>Cuando una clave caduca</b>, ya no es posible usarla para cifrar contenido o realizar una firma digital.
+info-explanation-2 = Si quiere usar esta clave durante un período de tiempo más largo, cambie su fecha de caducidad y comparta de nuevo la clave pública con sus compañeros de conversación.
+expire-dont-change =
+ .label = No cambiar la fecha de caducidad
+expire-never-label =
+ .label = La clave nunca caducará
+expire-in-label =
+ .label = La clave caducará en:
+expire-in-months = Meses
+expire-no-change-label = No cambiar la fecha de caducidad
+expire-in-time-label = La clave caducará en:
+expire-never-expire-label = La clave nunca caducará
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/composeKeyStatus.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/composeKeyStatus.ftl
new file mode 100644
index 0000000000..94515cce74
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/composeKeyStatus.ftl
@@ -0,0 +1,24 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+openpgp-compose-key-status-intro-need-keys = Para enviar un mensaje cifrado de extremo a extremo, debe obtener y aceptar una clave pública para cada destinatario.
+openpgp-compose-key-status-keys-heading = Disponibilidad de claves OpenPGP:
+openpgp-compose-key-status-title =
+ .title = Seguridad de mensajes OpenPGP
+openpgp-compose-key-status-recipient =
+ .label = Destinatario
+openpgp-compose-key-status-status =
+ .label = Estado
+openpgp-compose-key-status-open-details = Administrar las claves del destinatario seleccionado...
+openpgp-recip-good = aceptar
+openpgp-recip-missing = no hay ninguna clave disponible
+openpgp-recip-none-accepted = no hay ninguna clave aceptada
+openpgp-compose-general-info-alias = { -brand-short-name } normalmente requiere que la clave pública del destinatario contenga un ID de usuario que coincida con la dirección de correo electrónico. Esto se puede anular utilizando las reglas de alias de destinatarios de OpenPGP.
+openpgp-compose-general-info-alias-learn-more = Saber más
+openpgp-compose-alias-status-direct =
+ { $count ->
+ [one] asignado a una clave de alias
+ *[other] asignado a { $count } claves de alias
+ }
+openpgp-compose-alias-status-error = clave de alias inutilizable/no disponible
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/keyAssistant.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/keyAssistant.ftl
new file mode 100644
index 0000000000..8ce452a6e0
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/keyAssistant.ftl
@@ -0,0 +1,123 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+openpgp-key-assistant-title = Asistente de claves OpenPGP
+openpgp-key-assistant-rogue-warning = Evite aceptar una llave falsificada. Para asegurarse de haber obtenido la clave correcta, debe verificarla. <a data-l10n-name="openpgp-link">Saber más...</a>
+
+## Encryption status
+
+openpgp-key-assistant-recipients-issue-header = No se puede cifrar
+# Variables:
+# $count (Number) - The number of recipients that need attention.
+openpgp-key-assistant-recipients-issue-description =
+ { $count ->
+ [one] Para cifrar, debe obtener y aceptar una clave utilizable para un destinatario. <a data-l10n-name="openpgp-link">Saber mas...</a>
+ *[other] Para cifrar, debe obtener y aceptar claves utilizables para { $count } destinatarios. <a data-l10n-name="openpgp-link">Saber más...</a>
+ }
+openpgp-key-assistant-info-alias = { -brand-short-name } normalmente requiere que la clave pública del destinatario contenga un ID de usuario que coincida con la dirección de correo electrónico. Esto se puede anular usando las reglas del alias del destinatario de OpenPGP.<a data-l10n-name="openpgp-link">Saber más…</a>
+# Variables:
+# $count (Number) - The number of recipients that need attention.
+openpgp-key-assistant-recipients-description =
+ { $count ->
+ [one] Ya tiene una clave utilizable y aceptada para un destinatario.
+ *[other] Ya tiene claves utilizables y aceptadas para { $count } destinatarios.
+ }
+openpgp-key-assistant-recipients-description-no-issues = Este mensaje puede estar cifrado. Tiene llaves utilizables y aceptadas para todos los destinatarios.
+
+## Resolve section
+
+# Variables:
+# $recipient (String) - The email address of the recipient needing resolution.
+# $numKeys (Number) - The number of keys.
+openpgp-key-assistant-resolve-title =
+ { $numKeys ->
+ [one] { -brand-short-name } encontró la siguiente clave para { $recipient }.
+ *[other] { -brand-short-name } encontró las siguientes claves para { $recipient }.
+ }
+openpgp-key-assistant-valid-description = Seleccione la clave que quiere aceptar
+# Variables:
+# $numKeys (Number) - The number of available keys.
+openpgp-key-assistant-invalid-title =
+ { $numKeys ->
+ [one] La siguiente clave no se puede usar, a menos que obtenga una actualización.
+ *[other] Las siguientes claves no se pueden utilizar, a menos que obtenga una actualización.
+ }
+openpgp-key-assistant-no-key-available = Ninguna clave disponible.
+openpgp-key-assistant-multiple-keys = Varias claves disponibles.
+# Variables:
+# $count (Number) - The number of unaccepted keys.
+openpgp-key-assistant-key-unaccepted =
+ { $count ->
+ [one] Hay una clave disponible, pero todavía no ha sido aceptada.
+ *[other] Hay varias claves disponibles, pero todavía ninguna de ellas ha sido aceptada.
+ }
+# Variables:
+# $date (String) - The expiration date of the key.
+openpgp-key-assistant-key-accepted-expired = Una clave aceptada caducó el { $date }.
+openpgp-key-assistant-keys-accepted-expired = Varias claves aceptadas han caducado.
+# Variables:
+# $date (String) - The expiration date of the key.
+openpgp-key-assistant-this-key-accepted-expired = Esta clave se aceptó previamente pero caducó el { $date }.
+# Variables:
+# $date (String) - The expiration date of the key.
+openpgp-key-assistant-key-unaccepted-expired-one = La clave caducó el { $date }.
+openpgp-key-assistant-key-unaccepted-expired-many = Varias claves han caducado.
+openpgp-key-assistant-key-fingerprint = Huella digital
+# Variables:
+# $count (Number) - Number of key sources.
+openpgp-key-assistant-key-source =
+ { $count ->
+ [one] Fuente
+ *[other] Fuentes
+ }
+openpgp-key-assistant-key-collected-attachment = archivo adjunto
+# Autocrypt is the name of a standard.
+openpgp-key-assistant-key-collected-autocrypt = Cabecera de cifrado automático
+openpgp-key-assistant-key-collected-keyserver = servidor de claves
+# Web Key Directory (WKD) is a concept.
+openpgp-key-assistant-key-collected-wkd = Directorio Web de Claves (WKD)
+# Do not translate GnuPG, it's a name of other software.
+openpgp-key-assistant-key-collected-gnupg = Llavero GnuPG
+# Variables:
+# $count (Number) - Number of found keys.
+openpgp-key-assistant-keys-has-collected =
+ { $count ->
+ [one] Se ha encontrado una clave, pero todavía no ha sido aceptada.
+ *[other] Se han encontrado varias claves, pero ninguna de ellas han sido aceptadas todavía.
+ }
+openpgp-key-assistant-key-rejected = Esta clave ha sido rechazada previamente.
+openpgp-key-assistant-key-accepted-other = Esta clave ha sido aceptada previamente para una dirección de correo electrónico diferente.
+# Variables:
+# $recipient (String) - The email address of the recipient needing resolution.
+openpgp-key-assistant-resolve-discover-info = Descubra claves adicionales o actualizadas para { $recipient } en línea, o impórtelas desde un archivo.
+
+## Discovery section
+
+openpgp-key-assistant-discover-title = Descubrimiento en línea en marcha.
+# Variables:
+# $recipient (String) - The email address which we're discovering keys.
+openpgp-key-assistant-discover-keys = Descubriendo claves para { $recipient }…
+# Variables:
+# $recipient (String) - The email address which we're discovering keys.
+openpgp-key-assistant-expired-key-update =
+ Se ha encontrado una actualización de una de las claves aceptadas anteriormente para { $recipient }.
+ Ahora se puede utilizar porque ya no está caducada.
+
+## Dialog buttons
+
+openpgp-key-assistant-discover-online-button = Descubrir claves públicas en línea…
+openpgp-key-assistant-import-keys-button = Importar claves públicas desde archivo…
+openpgp-key-assistant-issue-resolve-button = Resolver…
+openpgp-key-assistant-view-key-button = Mostrar clave…
+openpgp-key-assistant-recipients-show-button = Mostrar
+openpgp-key-assistant-recipients-hide-button = Ocultar
+openpgp-key-assistant-cancel-button = Cancelar
+openpgp-key-assistant-back-button = Atrás
+openpgp-key-assistant-accept-button = Aceptar
+openpgp-key-assistant-close-button = Cerrar
+openpgp-key-assistant-disable-button = Desactivar cifrado
+openpgp-key-assistant-confirm-button = Enviar cifrado
+# Variables:
+# $date (String) - The key creation date.
+openpgp-key-assistant-key-created = creado el { $date }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/keyWizard.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/keyWizard.ftl
new file mode 100644
index 0000000000..0f0266a765
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/keyWizard.ftl
@@ -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/.
+
+# $identity (String) - the email address of the currently selected identity
+key-wizard-dialog-window =
+ .title = Añadir una clave OpenPGP personal para { $identity }
+key-wizard-button =
+ .buttonlabelaccept = Continuar
+ .buttonlabelhelp = Atrás
+key-wizard-dialog =
+ .buttonlabelaccept = Continuar
+ .buttonlabelextra1 = Retroceder
+key-wizard-warning = <b>Si ya dispone de una clave personal</b> para esta dirección de correo electrónico, debería importarla. De lo contrario, no podrá acceder a sus archivos de correos electrónicos cifrados ni podrá leer los correos electrónicos cifrados recibidos de personas que aún están utilizando su clave existente.
+key-wizard-learn-more = Saber más
+radio-create-key =
+ .label = Crear una nueva clave OpenPGP
+ .accesskey = C
+radio-import-key =
+ .label = Importar una clave OpenPGP existente
+ .accesskey = I
+radio-gnupg-key =
+ .label = Utilizar su clave externa a través de GnuPG (p. ej., desde una tarjeta inteligente)
+ .accesskey = U
+
+## Generate key section
+
+openpgp-generate-key-title = Generar clave OpenPGP
+openpgp-keygen-secret-protection = Protección de clave secreta
+radio-keygen-no-protection =
+ .label = Sin proteger
+radio-keygen-protect-primary-pass =
+ .label = Proteger con la contraseña principal
+radio-keygen-passphrase-protection =
+ .label = Proteger con una frase de contraseña:
+openpgp-passphrase-repeat = Confirma la frase de contraseña:
+openpgp-generate-key-info = <b>La generación de la clave puede tardar varios minutos en completarse.</b> No salga de la aplicación mientras la generación de la clave esté en proceso. Navegar activamente o realizar operaciones que hagan un uso intensivo de disco repondrá el 'grupo de aleatoriedad' y acelerará el proceso. Se le avisará cuando la generación de la clave se haya completado.
+openpgp-keygen-expiry-title = Caducidad de la clave
+openpgp-keygen-expiry-description = Establezca la fecha de vencimiento de la clave recién generada. Puede cambiar esta fecha para ampliar el tiempo de caducidad si fuera necesario.
+radio-keygen-expiry =
+ .label = La clave caduca en
+ .accesskey = e
+radio-keygen-no-expiry =
+ .label = La clave no caduca
+ .accesskey = c
+openpgp-keygen-days-label =
+ .label = días
+openpgp-keygen-months-label =
+ .label = meses
+openpgp-keygen-years-label =
+ .label = años
+openpgp-keygen-advanced-title = Configuración avanzada
+openpgp-keygen-advanced-description = Gestionar la configuración avanzada de su clave OpenPGP.
+openpgp-keygen-keytype =
+ .value = Tipo de clave:
+ .accesskey = t
+openpgp-keygen-keysize =
+ .value = Tamaño de clave:
+ .accesskey = v
+openpgp-keygen-type-rsa =
+ .label = RSA
+openpgp-keygen-type-ecc =
+ .label = ECC (curva elíptica)
+openpgp-keygen-button = Generar clave
+openpgp-keygen-progress-title = Generando la nueva clave OpenPGP…
+openpgp-keygen-import-progress-title = Importando sus claves OpenPGP…
+openpgp-import-success = ¡Las claves OpenPGP se han importado correctamente!
+openpgp-import-success-title = Completar el proceso de importación
+openpgp-import-success-description = Para empezar a utilizar su clave OpenPGP importada y cifrar los mensajes de correo electrónico, cierre este cuadro de diálogo y acceda a la configuración de su cuenta para seleccionarla.
+openpgp-keygen-confirm =
+ .label = Confirmar
+openpgp-keygen-dismiss =
+ .label = Cancelar
+openpgp-keygen-cancel =
+ .label = Cancelar el proceso…
+openpgp-keygen-import-complete =
+ .label = Cerrar
+ .accesskey = C
+openpgp-keygen-missing-username = No ha especificado un nombre para la cuenta actual. Introduzca un valor en el campo "Su nombre" en la configuración de cuenta.
+openpgp-keygen-long-expiry = No puede crear una clave que caduque en más de 100 años.
+openpgp-keygen-short-expiry = La clave debe tener una validez de al menos un día.
+openpgp-keygen-ongoing = ¡La generación de las claves ya está en marcha!
+openpgp-keygen-error-core = No se puede inicializar el servicio principal de OpenPGP
+openpgp-keygen-error-failed = La generación de la clave OpenPGP ha fallado de manera inesperada
+# $key (String) - the ID of the newly generated OpenPGP key
+openpgp-keygen-error-revocation = La clave OpenPGP se ha creado correctamente, pero no se ha podido obtener la revocación de la clave { $key }
+openpgp-keygen-abort-title = ¿Desea cancelar la generación de la clave?
+openpgp-keygen-abort = La generación de la clave OpenPGP se encuentra actualmente en marcha, ¿está seguro de que desea cancelarla?
+# $identity (String) - the name and email address of the currently selected identity
+openpgp-key-confirm = ¿Generar la clave pública y secreta para { $identity }?
+
+## Import Key section
+
+openpgp-import-key-title = Importar una clave OpenPGP personal existente
+openpgp-import-key-legend = Seleccione un archivo previamente guardado.
+openpgp-import-key-description = Puede importar claves personales que se hayan creado con otro programa OpenPGP.
+openpgp-import-key-info = Otro programa podría describir una clave personal utilizando términos alternativos como su propia clave, clave secreta, clave privada o par de claves.
+# $count (Number) - the number of keys found in the selected files
+openpgp-import-key-list-amount-2 =
+ { $count ->
+ [one] { -brand-short-name } encontró una clave que puede ser importada.
+ *[other] { -brand-short-name } encontró { $count } claves que pueden ser importadas.
+ }
+openpgp-import-key-list-description = Confirme qué claves pueden utilizarse como sus claves personales. Sólo las claves que creó usted mismo y que muestran su propia identidad deberían usarse como claves personales. Puede cambiar esta opción más adelante en el cuadro de diálogo Propiedades de la clave.
+openpgp-import-key-list-caption = Las claves marcadas para ser utilizadas como claves personales se enumerarán en la sección Cifrado de extremo a extremo. Las demás estarán disponibles dentro del Administrador de claves.
+openpgp-import-keep-passphrases =
+ .label = Mantener la protección de frase de contraseña para las claves secretas importadas
+openpgp-passphrase-prompt-title = Se requiere frase de acceso.
+# $identity (String) - the id of the key being imported
+openpgp-passphrase-prompt = Introduzca la frase de acceso para desbloquear la siguiente clave: { $key }
+openpgp-import-key-button =
+ .label = Seleccionar archivo para importar…
+ .accesskey = S
+import-key-file = Importar archivo de clave OpenPGP
+import-key-personal-checkbox =
+ .label = Utilizar esta clave como una clave personal
+gnupg-file = Archivos GnuPG
+import-error-file-size = <b>¡Error!</b> No se admiten archivos de más de 5MB.
+# $error (String) - the reported error from the failed key import method
+import-error-failed = <b>¡Error!</b> No se ha podido importar el archivo. { $error }
+# $error (String) - the reported error from the failed key import method
+openpgp-import-keys-failed = <b>¡Error!</b> No se pudieron importar las claves. { $error }
+openpgp-import-identity-label = Identidad
+openpgp-import-fingerprint-label = Huella digital
+openpgp-import-created-label = Creada
+openpgp-import-bits-label = Bits
+openpgp-import-key-props =
+ .label = Propiedades de la clave
+ .accesskey = v
+
+## External Key section
+
+openpgp-external-key-title = Clave GnuPG externa
+openpgp-external-key-description = Configurar una clave GnuPG externa introduciendo el ID de la clave
+openpgp-external-key-info = Además, debe utilizar el Administrador de claves para importar y aceptar la clave pública correspondiente.
+openpgp-external-key-warning = <b>Puede configurar sólo una clave GnuPG externa.</b> La entrada anterior será reemplazada.
+openpgp-save-external-button = Guardar ID de la clave
+openpgp-external-key-label = ID de la clave secreta:
+openpgp-external-key-input =
+ .placeholder = 123456789341298340
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/msgReadStatus.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/msgReadStatus.ftl
new file mode 100644
index 0000000000..0f94ed2b37
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/msgReadStatus.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/.
+
+
+## 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 seguridad del mensaje (⌃ ⌘ { message-header-show-security-info-key })
+ *[other] Mostrar seguridad del mensaje (Ctrl+Alt+{ message-header-show-security-info-key })
+ }
+openpgp-view-signer-key =
+ .label = Ver la clave del firmante
+openpgp-view-your-encryption-key =
+ .label = Ver su clave de descifrado
+openpgp-openpgp = OpenPGP
+openpgp-no-sig = Sin firma digital
+openpgp-no-sig-info = Este mensaje no contiene la firma digital del remitente. La ausencia de una firma digital significa que el mensaje podría haber sido enviado por alguien que finge tener esta dirección de correo electrónico. También es posible que el mensaje haya sido alterado mientras circulaba por la red.
+openpgp-uncertain-sig = Firma digital incierta
+# Variables:
+# $date (String) - Date with time the signature was made in a short format.
+openpgp-uncertain-sig-with-date = Firma digital incierta - Firmado el { $date }
+openpgp-invalid-sig = Firma digital no válida
+# Variables:
+# $date (String) - Date with time the signature was made in a short format.
+openpgp-invalid-sig-with-date = Firma digital no válida - Firmado el { $date }
+openpgp-bad-date-sig = La fecha de la firma no coincide
+# Variables:
+# $date (String) - Date with time the signature was made in a short format.
+openpgp-bad-date-sig-with-date = La fecha de la firma no coincide Firmado el { $date }
+openpgp-good-sig = Firma digital correcta
+# Variables:
+# $date (String) - Date with time the signature was made in a short format.
+openpgp-good-sig-with-date = Firma digital válida - Firmado el { $date }
+openpgp-sig-uncertain-no-key = Este mensaje contiene una firma digital, pero no está claro si es correcta. Para comprobar la firma, necesita obtener una copia de la clave pública del remitente.
+openpgp-sig-uncertain-uid-mismatch = Este mensaje contiene una firma digital, pero se detectó una discrepancia. El mensaje fue enviado desde una dirección de correo electrónico que no coincide con la clave pública del firmante.
+openpgp-sig-uncertain-not-accepted = Este mensaje contiene una firma digital, pero aún no ha decidido si acepta la clave del firmante.
+openpgp-sig-invalid-rejected = Este mensaje contiene una firma digital, pero previamente decidió rechazar la clave del firmante.
+openpgp-sig-invalid-technical-problem = Este mensaje contiene una firma digital, pero se detectó un error técnico. O el mensaje se ha dañado o alguien más lo ha modificado.
+openpgp-sig-invalid-date-mismatch = Este mensaje contiene una firma digital, pero la firma no se realizó en el mismo momento en que se envió el mensaje de correo electrónico. Esto podría ser un intento de engañarle con contenido de un contexto equivocado: p. ej., contenido escrito en un contexto distinto o destinado a otra persona.
+openpgp-sig-valid-unverified = Este mensaje incluye una firma digital válida de una clave que ya ha aceptado. Sin embargo, aún no ha comprobado que la clave sea propiedad del remitente.
+openpgp-sig-valid-verified = Este mensaje incluye una firma digital válida de una clave verificada.
+openpgp-sig-valid-own-key = Este mensaje incluye una firma digital válida de su clave personal.
+# Variables:
+# $key (String) - The ID of the OpenPGP key used to create the signature.
+openpgp-sig-key-id = ID de la clave del firmante: { $key }
+# Variables:
+# $key (String) - The primary ID of the OpenPGP key used to create the signature.
+# $subkey (String) - A subkey of the primary key was used to create the signature, and this is the ID of that subkey.
+openpgp-sig-key-id-with-subkey-id = ID de la clave del firmante: { $key } (ID de la subclave: { $subkey })
+# Variables:
+# $key (String) - The ID of the user's OpenPGP key used to decrypt the message.
+openpgp-enc-key-id = Su ID de la clave de descifrado: { $key }
+# Variables:
+# $key (String) - The primary ID of the user's OpenPGP key used to decrypt the message.
+# $subkey (String) - A subkey of the primary key was used to decrypt the message, and this is the ID of that subkey.
+openpgp-enc-key-with-subkey-id = Su ID de la clave de descifrado: { $key } (ID de la subclave: { $subkey })
+openpgp-enc-none = El mensaje no está cifrado
+openpgp-enc-none-label = Este mensaje no fue cifrado antes de ser enviado. La información que se manda a Internet sin cifrar puede ser vista por otras personas mientras llega a su destino.
+openpgp-enc-invalid-label = No se puede descifrar el mensaje
+openpgp-enc-invalid = Este mensaje fue cifrado antes de ser enviado, pero no se puede descifrar.
+openpgp-enc-clueless = Hay problemas desconocidos con este mensaje cifrado.
+openpgp-enc-valid-label = El mensaje está cifrado
+openpgp-enc-valid = Este mensaje fue cifrado antes de ser enviado. El cifrado asegura que el mensaje solo pueda ser leído por los destinatarios previstos.
+openpgp-unknown-key-id = Clave desconocida
+openpgp-other-enc-additional-key-ids = Además, el mensaje se cifró para los propietarios de las siguientes claves:
+openpgp-other-enc-all-key-ids = El mensaje fue cifrado para los propietarios de las siguientes claves:
+openpgp-message-header-encrypted-ok-icon =
+ .alt = Descifrado con éxito
+openpgp-message-header-encrypted-notok-icon =
+ .alt = Descifrado fallido
+openpgp-message-header-signed-ok-icon =
+ .alt = Firma correcta
+# Mismatch icon is used for notok state as well
+openpgp-message-header-signed-mismatch-icon =
+ .alt = Firma errónea
+openpgp-message-header-signed-unknown-icon =
+ .alt = Estado de firma desconocido
+openpgp-message-header-signed-verified-icon =
+ .alt = Firma verificada
+openpgp-message-header-signed-unverified-icon =
+ .alt = Firma no verificada
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/oneRecipientStatus.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/oneRecipientStatus.ftl
new file mode 100644
index 0000000000..80683a9b1d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/oneRecipientStatus.ftl
@@ -0,0 +1,50 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+openpgp-one-recipient-status-title =
+ .title = Seguridad de mensajes OpenGPG
+openpgp-one-recipient-status-status =
+ .label = Estado
+openpgp-one-recipient-status-key-id =
+ .label = ID de clave
+openpgp-one-recipient-status-created-date =
+ .label = Creado
+openpgp-one-recipient-status-expires-date =
+ .label = Caduca
+openpgp-one-recipient-status-open-details =
+ .label = Abrir detalles y editar aceptación…
+openpgp-one-recipient-status-discover =
+ .label = Descubrir clave nueva o actualizada
+
+openpgp-one-recipient-status-instruction1 = Para enviar un mensaje cifrado de extremo a extremo a un destinatario, necesita obtener su clave pública OpenPGP y marcarla como aceptada.
+openpgp-one-recipient-status-instruction2 = Para obtener su clave pública, impórtela desde el correo electrónico que le han enviado y que la incluye. También puede intentar descubrir su clave pública en un directorio.
+
+openpgp-key-own = Aceptada (clave personal)
+openpgp-key-secret-not-personal = Inutilizable
+openpgp-key-verified = Aceptada (verificada)
+openpgp-key-unverified = Aceptada (no verificada)
+openpgp-key-undecided = No aceptada (indecisa)
+openpgp-key-rejected = No aceptada (rechazada)
+openpgp-key-expired = Caducada
+
+openpgp-intro = Claves públicas disponibles para { $key }
+
+openpgp-pubkey-import-id = ID: { $kid }
+openpgp-pubkey-import-fpr = Huella digital: { $fpr }
+
+openpgp-pubkey-import-intro =
+ { $num ->
+ [one] El archivo contiene una clave pública que se muestra a continuación:
+ *[other] El archivo contiene { $num } claves públicas que se muestran a continuación:
+ }
+
+openpgp-pubkey-import-accept =
+ { $num ->
+ [one] ¿Acepta esta clave para verificar firmas digitales y cifrar mensajes para todas las direcciones de correo electrónico mostradas?
+ *[other] ¿Acepta estas claves para verificar firmas digitales y cifrar mensajes para todas las direcciones de correo electrónico mostradas?
+ }
+
+pubkey-import-button =
+ .buttonlabelaccept = Importar
+ .buttonaccesskeyaccept = I
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/openpgp-frontend.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/openpgp-frontend.ftl
new file mode 100644
index 0000000000..cf70363508
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/openpgp-frontend.ftl
@@ -0,0 +1,54 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+openpgp-manage-keys-openpgp-cmd =
+ .label = Administrador de claves OpenPGP
+ .accesskey = O
+openpgp-ctx-decrypt-open =
+ .label = Descifrar y abrir
+ .accesskey = D
+openpgp-ctx-decrypt-save =
+ .label = Descifrar y guardar como...
+ .accesskey = c
+openpgp-ctx-import-key =
+ .label = Importar clave OpenGPG
+ .accesskey = I
+openpgp-ctx-verify-att =
+ .label = Verificar firma
+ .accesskey = V
+openpgp-has-sender-key = Este mensaje afirma contener la clave pública OpenPGP del remitente.
+# Variables:
+# $email (String) - Email address with the problematic public key.
+openpgp-be-careful-new-key = Advertencia: La nueva clave pública de OpenPGP de este mensaje difiere de las claves públicas que aceptó anteriormente para { $email }.
+openpgp-import-sender-key =
+ .label = Importar...
+openpgp-search-keys-openpgp =
+ .label = Descubrir clave OpenPGP
+openpgp-missing-signature-key = Este mensaje se firmó con una clave que aún no tiene.
+openpgp-search-signature-key =
+ .label = Descubrir...
+# Don't translate the terms "OpenPGP" and "MS-Exchange"
+openpgp-broken-exchange-opened = Este es un mensaje de OpenPGP que aparentemente fue dañado por MS-Exchange y no se puede reparar porque se abrió desde un archivo local. Copie el mensaje en una carpeta de correo para intentar una reparación automática.
+openpgp-broken-exchange-info = Este es un mensaje de OpenPGP que aparentemente fue dañado por MS-Exchange. Si el contenido del mensaje no se muestra como se esperaba, puede intentar una reparación automática.
+openpgp-broken-exchange-repair =
+ .label = Reparar mensaje
+openpgp-broken-exchange-wait = Espere...
+openpgp-has-nested-encrypted-parts = Este mensaje incluye partes cifradas adicionales.
+openpgp-show-encrypted-parts = Descifrar y mostrar
+openpgp-cannot-decrypt-because-mdc =
+ Este es un mensaje cifrado que utiliza un mecanismo antiguo y vulnerable.
+ Podría haber sido modificado mientras estaba en tránsito, con la intención de robar su contenido.
+ Para evitar este riesgo, no se muestran el contenido.
+openpgp-cannot-decrypt-because-missing-key = La clave secreta necesaria para descifrar este mensaje no está disponible.
+openpgp-partially-signed =
+ Sólo una parte de este mensaje se firmó digitalmente mediante OpenPGP.
+ Si pulsa el botón de comprobación, se ocultarán las partes no protegidas y se mostrará el estado de la firma digital.
+openpgp-partially-encrypted =
+ Solo un subconjunto de este mensaje se cifró con OpenPGP.
+ Las partes legibles del mensaje que ya se muestran no se cifraron.
+ Si pulsa el botón de descifrar, se mostrará el contenido de las partes cifradas.
+openpgp-reminder-partial-display = Recordatorio: El mensaje que se muestra a continuación es sólo una parte del mensaje original.
+openpgp-partial-verify-button = Verificar
+openpgp-partial-decrypt-button = Descifrar
+openpgp-unexpected-key-for-you = Advertencia: este mensaje contiene una clave OpenPGP desconocida que hace referencia a una de sus propias direcciones de correo electrónico. Si esta no es una de sus propias claves, podría tratarse de un intento de engañar a otros usuarios.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/openpgp.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/openpgp.ftl
new file mode 100644
index 0000000000..c84ef0a28e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/openpgp/openpgp.ftl
@@ -0,0 +1,780 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+e2e-intro-description = Para enviar mensajes cifrados o firmados digitalmente, debe configurar una tecnología de cifrado, ya sea OpenPGP o S/MIME.
+e2e-intro-description-more = Seleccione su clave personal para permitir el uso de OpenPGP, o su certificado personal para permitir el uso de S/MIME. Para una clave o certificado personal, usted posee la clave secreta correspondiente.
+e2e-signing-description = Una firma digital permite a los destinatarios verificar que el mensaje fue enviado por usted y que su contenido no ha sido cambiado. Los mensajes cifrados siempre se firman de manera predeterminada.
+e2e-sign-message =
+ .label = Firmar mensajes sin cifrar
+ .accesskey = F
+e2e-disable-enc =
+ .label = Desactivar cifrado para mensajes nuevos
+ .accesskey = D
+e2e-enable-enc =
+ .label = Activar cifrado para mensajes nuevos
+ .accesskey = A
+e2e-enable-description = Podrá desactivar el cifrado de mensajes individuales.
+e2e-advanced-section = Configuración avanzada
+e2e-attach-key =
+ .label = Adjuntar mi clave pública al añadir una firma digital OpenPGP
+ .accesskey = p
+e2e-encrypt-subject =
+ .label = Cifrar el asunto de los mensajes OpenPGP
+ .accesskey = a
+e2e-encrypt-drafts =
+ .label = Almacenar borradores de mensajes en formato cifrado
+ .accesskey = r
+# Do not translate "Autocrypt", it's the name of a standard.
+e2e-autocrypt-headers =
+ .label = Enviar la(s) clave(s) pública(s) OpenPGP en las cabeceras del correo electrónico para mantener la compatibilidad con Autocrypt
+ .accesskey = A
+openpgp-key-created-label =
+ .label = Creado
+openpgp-key-expiry-label =
+ .label = Caducidad
+openpgp-key-id-label =
+ .label = ID de clave
+openpgp-cannot-change-expiry = Esta es una clave con una estructura compleja, no se admite cambiar su fecha de caducidad.
+openpgp-key-man-title =
+ .title = Administrador de claves OpenPGP
+openpgp-key-man-dialog-title = Administrador de claves OpenPGP
+openpgp-key-man-generate =
+ .label = Nuevo par de claves
+ .accesskey = N
+openpgp-key-man-gen-revoke =
+ .label = Certificado de revocación
+ .accesskey = r
+openpgp-key-man-ctx-gen-revoke-label =
+ .label = Generar y guardar certificado de revocación
+openpgp-key-man-file-menu =
+ .label = Archivo
+ .accesskey = A
+openpgp-key-man-edit-menu =
+ .label = Editar
+ .accesskey = E
+openpgp-key-man-view-menu =
+ .label = Ver
+ .accesskey = V
+openpgp-key-man-generate-menu =
+ .label = Generar
+ .accesskey = G
+openpgp-key-man-keyserver-menu =
+ .label = Servidor de claves
+ .accesskey = S
+openpgp-key-man-import-public-from-file =
+ .label = Importar clave(s) pública(s) desde archivo
+ .accesskey = I
+openpgp-key-man-import-secret-from-file =
+ .label = Importar clave(s) secreta(s) desde archivo
+openpgp-key-man-import-sig-from-file =
+ .label = Importar revocación(es) desde archivo
+openpgp-key-man-import-from-clipbrd =
+ .label = Importar clave(s) desde el portapapeles
+ .accesskey = I
+openpgp-key-man-import-from-url =
+ .label = Importar clave(s) desde URL
+ .accesskey = U
+openpgp-key-man-export-to-file =
+ .label = Exportar clave(s) pública(s) a archivo
+ .accesskey = E
+openpgp-key-man-send-keys =
+ .label = Enviar clave(s) pública(s) por correo electrónico
+ .accesskey = E
+openpgp-key-man-backup-secret-keys =
+ .label = Copia de seguridad de las claves secretas en un archivo
+ .accesskey = C
+openpgp-key-man-discover-cmd =
+ .label = Descubrir claves en línea
+ .accesskey = D
+openpgp-key-man-publish-cmd =
+ .label = Publicar
+ .accesskey = P
+openpgp-key-publish = Publicar
+openpgp-key-man-discover-prompt = Para descubrir claves OpenPGP en línea, en servidores de claves o usando el protocolo WKD, escriba una dirección de correo electrónico o un ID de clave.
+openpgp-key-man-discover-progress = Buscando…
+# Variables:
+# $keyserver (String) - The address of a server that contains a directory of OpenPGP public keys
+openpgp-key-publish-ok = Clave pública enviada a "{ $keyserver }".
+# Variables:
+# $keyserver (String) - The address of a server that contains a directory of OpenPGP public keys
+openpgp-key-publish-fail = No se pudo enviar su clave pública a "{ $keyserver }".
+openpgp-key-copy-key =
+ .label = Copiar clave pública
+ .accesskey = C
+openpgp-key-export-key =
+ .label = Exportar clave pública a archivo
+ .accesskey = E
+openpgp-key-backup-key =
+ .label = Copia de seguridad de la clave secreta a archivo
+ .accesskey = C
+openpgp-key-send-key =
+ .label = Enviar clave pública por correo electrónico
+ .accesskey = E
+# Variables:
+# $count (Number) - Number of keys ids to copy.
+openpgp-key-man-copy-key-ids =
+ .label =
+ { $count ->
+ [one] Copiar ID de clave al portapapeles
+ *[other] Copiar IDs de claves al portapapeles
+ }
+ .accesskey = i
+# Variables:
+# $count (Number) - Number of fingerprints to copy.
+openpgp-key-man-copy-fprs =
+ .label =
+ { $count ->
+ [one] Copiar huella digital al portapapeles
+ *[other] Copiar huellas digitales al portapapeles
+ }
+ .accesskey = h
+# Variables:
+# $count (Number) - Number of public keys to copy.
+openpgp-key-man-copy-to-clipboard =
+ .label =
+ { $count ->
+ [one] Copiar clave pública al portapapeles
+ *[other] Copiar claves públicas al portapapeles
+ }
+ .accesskey = p
+openpgp-key-man-ctx-expor-to-file-label =
+ .label = Exportar claves a archivo
+openpgp-key-man-ctx-copy =
+ .label = Copiar
+ .accesskey = C
+# Variables:
+# $count (Number) - Number of fingerprints.
+openpgp-key-man-ctx-copy-fprs =
+ .label =
+ { $count ->
+ [one] Huella digital
+ *[other] Huellas digitales
+ }
+ .accesskey = H
+# Variables:
+# $count (Number) - Number of key ids.
+openpgp-key-man-ctx-copy-key-ids =
+ .label =
+ { $count ->
+ [one] ID de clave
+ *[other] IDs de claves
+ }
+ .accesskey = I
+# Variables:
+# $count (Number) - Number of public keys.
+openpgp-key-man-ctx-copy-public-keys =
+ .label =
+ { $count ->
+ [one] Clave pública
+ *[other] Claves públicas
+ }
+ .accesskey = P
+openpgp-key-man-close =
+ .label = Cerrar
+openpgp-key-man-reload =
+ .label = Recargar caché de claves
+ .accesskey = R
+openpgp-key-man-change-expiry =
+ .label = Cambiar fecha de caducidad
+ .accesskey = e
+openpgp-key-man-refresh-online =
+ .label = Actualizar en línea
+ .accesskey = r
+openpgp-key-man-ignored-ids =
+ .label = Direcciones de correo electrónico
+openpgp-key-man-del-key =
+ .label = Borrar clave(s)
+ .accesskey = B
+openpgp-delete-key =
+ .label = Borrar clave
+ .accesskey = o
+openpgp-key-man-revoke-key =
+ .label = Revocar clave
+ .accesskey = R
+openpgp-key-man-key-props =
+ .label = Propiedades de la clave
+ .accesskey = c
+openpgp-key-man-key-more =
+ .label = Más
+ .accesskey = M
+openpgp-key-man-view-photo =
+ .label = ID de foto
+ .accesskey = P
+openpgp-key-man-ctx-view-photo-label =
+ .label = Ver ID de foto
+openpgp-key-man-show-invalid-keys =
+ .label = Mostrar claves no válidas
+ .accesskey = d
+openpgp-key-man-show-others-keys =
+ .label = Mostrar claves de otras personas
+ .accesskey = o
+openpgp-key-man-user-id-label =
+ .label = Nombre
+openpgp-key-man-fingerprint-label =
+ .label = Huella digital
+openpgp-key-man-select-all =
+ .label = Seleccionar todas las claves
+ .accesskey = a
+openpgp-key-man-empty-tree-tooltip =
+ .label = Introducir los términos de búsqueda en el cuadro de arriba
+openpgp-key-man-nothing-found-tooltip =
+ .label = Ninguna clave coincide con sus términos de búsqueda
+openpgp-key-man-please-wait-tooltip =
+ .label = Espere mientras se cargan las claves...
+openpgp-key-man-filter-label =
+ .placeholder = Buscar claves
+openpgp-key-man-select-all-key =
+ .key = A
+openpgp-key-man-key-details-key =
+ .key = I
+openpgp-ign-addr-intro = Acepta usar esta clave para las siguientes direcciones de correo electrónico seleccionadas:
+openpgp-key-details-doc-title = Propiedades de la clave
+openpgp-key-details-signatures-tab =
+ .label = Certificaciones
+openpgp-key-details-structure-tab =
+ .label = Estructura
+openpgp-key-details-uid-certified-col =
+ .label = ID de usuario / Certificado por
+openpgp-key-details-key-id-label = ID de clave
+openpgp-key-details-user-id3-label = Propietario de la clave reclamada
+openpgp-key-details-id-label =
+ .label = ID
+openpgp-key-details-key-type-label = Tipo
+openpgp-key-details-key-part-label =
+ .label = Parte de la clave
+openpgp-key-details-attr-ignored = Advertencia: es posible que esta clave no funcione como se esperaba porque algunas de sus propiedades son inseguras y podrían ser ignoradas.
+openpgp-key-details-attr-upgrade-sec = Debería actualizar las propiedades inseguras.
+openpgp-key-details-attr-upgrade-pub = Debería pedirle al propietario de esta clave que actualice las propiedades inseguras.
+openpgp-key-details-upgrade-unsafe =
+ .label = Actualizar propiedades inseguras
+ .accesskey = p
+openpgp-key-details-upgrade-ok = La clave se actualizó con éxito. Debería compartir la clave pública actualizada con sus contactos.
+openpgp-key-details-algorithm-label =
+ .label = Algoritmo
+openpgp-key-details-size-label =
+ .label = Tamaño
+openpgp-key-details-created-label =
+ .label = Creado
+openpgp-key-details-created-header = Creado
+openpgp-key-details-expiry-label =
+ .label = Caducidad
+openpgp-key-details-expiry-header = Caducidad
+openpgp-key-details-usage-label =
+ .label = Uso
+openpgp-key-details-fingerprint-label = Huella digital
+openpgp-key-details-legend-secret-missing = Las claves marcadas con (!) no disponen de clave secreta.
+openpgp-key-details-sel-action =
+ .label = Seleccionar acción…
+ .accesskey = S
+openpgp-card-details-close-window-label =
+ .buttonlabelaccept = Cerrar
+openpgp-acceptance-label =
+ .label = Su aceptación
+openpgp-acceptance-rejected-label =
+ .label = No, rechazar esta clave.
+openpgp-acceptance-undecided-label =
+ .label = Todavía no, quizás más tarde.
+openpgp-acceptance-unverified-label =
+ .label = Sí, pero no he verificado que sea la clave correcta.
+openpgp-acceptance-verified-label =
+ .label = Sí, he verificado en persona que esta clave tiene la huella digital correcta.
+key-accept-personal =
+ Para esta clave, tiene tanto la parte pública como la secreta. Puede utilizarla como clave personal.
+ Si otra persona le dio esta clave, no la use como clave personal.
+openpgp-personal-no-label =
+ .label = No, no usar como mi clave personal.
+openpgp-personal-yes-label =
+ .label = Sí, tratar esta clave como una clave personal.
+openpgp-passphrase-protection =
+ .label = Protección de frase de contraseña
+openpgp-passphrase-status-unprotected = Sin proteger
+openpgp-passphrase-status-primary-password = Protegido por la contraseña principal de { -brand-short-name }
+openpgp-passphrase-status-user-passphrase = Protegido por una frase de contraseña
+openpgp-passphrase-instruction-unprotected = Establecer una frase de contraseña para proteger esta clave
+openpgp-passphrase-instruction-primary-password = También puede proteger esta clave con una frase de contraseña separada
+openpgp-passphrase-instruction-user-passphrase = Desbloquear esta clave para cambiar su protección.
+openpgp-passphrase-unlock = Desbloquear
+openpgp-passphrase-unlocked = Clave desbloqueada con éxito.
+openpgp-remove-protection = Eliminar la protección de frase de contraseña
+openpgp-use-primary-password = Eliminar frase de contraseña y proteger con contraseña principal
+openpgp-passphrase-new = Nueva frase de contraseña
+openpgp-passphrase-new-repeat = Confirmar nueva frase de contraseña
+openpgp-passphrase-set = Establecer frase de contraseña
+openpgp-passphrase-change = Cambiar frase de contraseña
+openpgp-copy-cmd-label =
+ .label = Copiar
+
+## e2e encryption settings
+
+# $identity (String) - the email address of the currently selected identity
+openpgp-description-no-key = { -brand-short-name } no tiene una clave personal de OpenPGP para <b>{ $identity }</b>
+# $count (Number) - the number of configured keys associated with the current identity
+# $identity (String) - the email address of the currently selected identity
+openpgp-description-has-keys =
+ { $count ->
+ [one] { -brand-short-name } encontró { $count } clave personal de OpenPGP asociada con <b>{ $identity }</b>
+ *[other] { -brand-short-name } encontró { $count } claves personales de OpenPGP asociadas con <b>{ $identity }</b>
+ }
+# $key (String) - the currently selected OpenPGP key
+openpgp-selection-status-have-key = Su configuración actual usa ID de clave <b>{ $key }</b>
+# $key (String) - the currently selected OpenPGP key
+openpgp-selection-status-error = Su configuración actual utiliza la clave <b>{ $key }</b>, que ha caducado.
+openpgp-add-key-button =
+ .label = Añadir clave…
+ .accesskey = A
+e2e-learn-more = Saber más
+openpgp-keygen-success = ¡Clave OpenPGP creada correctamente!
+openpgp-keygen-import-success = ¡Claves OpenPGP importada correctamente!
+openpgp-keygen-external-success = ¡ID de clave GnuPG externa guardada!
+
+## OpenPGP Key selection area
+
+openpgp-radio-none =
+ .label = Ninguno
+openpgp-radio-none-desc = No usar OpenPGP para esta identidad.
+openpgp-radio-key-not-usable = Esta clave no se puede usar como una clave personal, ¡porque falta la clave secreta!
+openpgp-radio-key-not-accepted = ¡Para usar esta clave debe aprobarla como una clave personal!
+openpgp-radio-key-not-found = ¡No se encontró esta clave! Si quiere usarla, debe importarla a { -brand-short-name }.
+# $date (String) - the future expiration date of when the OpenPGP key will expire
+openpgp-radio-key-expires = Caduca el: { $date }
+# $date (String) - the past expiration date of when the OpenPGP key expired
+openpgp-radio-key-expired = Caducó el: { $date }
+openpgp-key-expires-within-6-months-icon =
+ .title = La clave caduca en menos de 6 meses
+openpgp-key-has-expired-icon =
+ .title = Clave caducada
+openpgp-suggest-publishing-key = Publicar la clave pública en un servidor de claves permite que otros la descubran.
+openpgp-key-expand-section =
+ .tooltiptext = Más información
+openpgp-key-revoke-title = Revocar clave
+openpgp-key-edit-title = Cambiar la clave OpenPGP
+openpgp-key-edit-date-title = Extender la fecha de caducidad
+openpgp-manager-description = Utiliza el Administrador de claves OpenPGP para ver y administrar las claves públicas de sus corresponsales y todas las demás claves no listadas arriba.
+openpgp-manager-button =
+ .label = Administrador de claves OpenPGP
+ .accesskey = G
+openpgp-key-remove-external =
+ .label = Eliminar ID de clave externa
+ .accesskey = E
+key-external-label = Clave GnuPG externa
+
+## Strings in keyDetailsDlg.xhtml
+
+key-type-public = clave pública
+key-type-primary = clave primaria
+key-type-subkey = subclave
+key-type-pair = par de claves (clave secreta y clave pública)
+key-expiry-never = nunca
+key-usage-encrypt = Cifrar
+key-usage-sign = Firmar
+key-usage-certify = Certificar
+key-usage-authentication = Autenticación
+key-does-not-expire = La clave no caduca
+# Variables:
+# $keyExpiry (String) - Date the key expired on.
+key-expired-date = La clave caducó el { $keyExpiry }
+key-expired-simple = La clave ha caducado
+key-revoked-simple = La clave fue revocada
+key-do-you-accept = ¿Acepta esta clave para verificar firmas digitales y para cifrar mensajes?
+# Variables:
+# $addr (String) - Email address the key claims it belongs to.
+key-verification = Verifique la huella digital de la clave utilizando un canal de comunicación seguro que no sea el correo electrónico para asegurarse de que realmente sea la clave de { $addr }.
+
+## Strings enigmailMsgComposeOverlay.js
+
+# Variables:
+# $problem (String) - Error message from key usability check.
+cannot-use-own-key-because = No se puede enviar el mensaje porque hay un problema con su clave personal. { $problem }
+window-locked = La ventana de redacción está bloqueada; envío cancelado
+
+## Strings in keyserver.jsm
+
+keyserver-error-aborted = Abortado
+keyserver-error-unknown = Se produjo un error desconocido
+keyserver-error-server-error = El servidor de claves informó de un error.
+keyserver-error-import-error = No se pudo importar la clave descargada.
+keyserver-error-unavailable = El servidor de claves no está disponible.
+keyserver-error-security-error = El servidor de claves no admite el acceso cifrado.
+keyserver-error-certificate-error = El certificado del servidor de claves no es válido.
+keyserver-error-unsupported = El servidor de claves no es compatible.
+
+## Strings in mimeWkdHandler.jsm
+
+wkd-message-body-req =
+ Su proveedor de correo electrónico procesó su solicitud para cargar su clave pública en el directorio de claves web de OpenPGP.
+ Confirme para completar la publicación de su clave pública.
+wkd-message-body-process =
+ Este es un correo electrónico relacionado con el procesamiento automático para cargar su clave pública en el Directorio de Claves Web de OpenPGP.
+ No es necesario que realice ninguna acción manual en este momento.
+
+## Strings in persistentCrypto.jsm
+
+# Variables:
+# $subject (String) - Subject of the message.
+converter-decrypt-body-failed =
+ No se pudo descifrar el mensaje con el asunto
+ { $subject }.
+ ¿Quiere volver a intentarlo con una frase de contraseña diferente o quiere saltarse el mensaje?
+
+## Strings filters.jsm
+
+filter-folder-required = Debe seleccionar una carpeta de destino.
+filter-decrypt-move-warn-experimental =
+ Advertencia: la acción de filtrado "Descifrar permanentemente" puede provocar la destrucción de mensajes.
+ Le recomendamos encarecidamente que primero pruebe el filtro "Crear copia descifrada", pruebe el resultado con cuidado y comience a usar este filtro solo una vez que esté satisfecho con el resultado.
+filter-term-pgpencrypted-label = OpenPGP cifrado
+filter-key-required = Debe seleccionar una clave de destinatario.
+# Variables:
+# $desc (String) - Email address to look for a key of.
+filter-key-not-found = No se pudo encontrar una clave de cifrado 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 =
+ Advertencia: la acción de filtro "Cifrar en clave" reemplaza a los destinatarios.
+ Si no tiene la clave secreta para '{ $desc }', ya no podrá leer los correos electrónicos.
+
+## Strings filtersWrapper.jsm
+
+filter-decrypt-move-label = Descifrar permanentemente (OpenPGP)
+filter-decrypt-copy-label = Crear copia descifrada (OpenPGP)
+filter-encrypt-label = Cifrar a clave (OpenPGP)
+
+## Strings in enigmailKeyImportInfo.js
+
+import-info-title =
+ .title = ¡Claves importadas correctamente!
+import-info-bits = Bits
+import-info-created = Creado
+import-info-fpr = Huella digital
+import-info-details = Ver detalles y administrar la aceptación de claves
+import-info-no-keys = No se importaron claves.
+
+## Strings in enigmailKeyManager.js
+
+import-from-clip = ¿Quiere importar alguna(s) clave(s) del portapapeles?
+import-from-url = Descarga la clave pública desde esta URL:
+copy-to-clipbrd-failed = No se pudieron copiar las claves seleccionadas al portapapeles.
+copy-to-clipbrd-ok = Clave(s) copiada(s) al portapapeles
+# Variables:
+# $userId (String) - User id of the key.
+delete-secret-key =
+ ADVERTENCIA: ¡Está a punto de eliminar una clave secreta!
+
+ Si elimina su clave secreta, ya no podrá descifrar ningún mensaje cifrado para esa clave, ni podrá revocarla.
+
+ ¿Realmente quiere eliminar AMBAS, la clave secreta y la clave pública de
+ '{ $userId }'?
+delete-mix =
+ ADVERTENCIA: ¡Está a punto de eliminar una clave secreta!
+ Si elimina su clave secreta, ya no podrá descifrar ningún mensaje cifrado para esa clave, ni podrá revocarla.
+ ¿Realmente quiere eliminar AMBAS, la clave secreta y la clave pública?
+# Variables:
+# $userId (String) - User id of the key.
+delete-pub-key =
+ ¿Quiere eliminar la clave pública
+ '{ $userId }'?
+delete-selected-pub-key = ¿Quiere eliminar las claves públicas?
+refresh-all-question = No seleccionó ninguna clave. ¿Le gustaría actualizar TODAS las claves?
+key-man-button-export-sec-key = Exportar claves &secretas
+key-man-button-export-pub-key = Exportar solo claves públicas
+key-man-button-refresh-all = &Actualizar todas las claves
+key-man-loading-keys = Cargando claves, espere ...
+ascii-armor-file = Archivos blindados ASCII (*.asc)
+no-key-selected = Debe seleccionar al menos una tecla para realizar la operación seleccionada
+export-to-file = Exportar clave pública a un archivo
+export-keypair-to-file = Exportar clave secreta y pública a un archivo
+export-secret-key = ¿Quiere incluir la clave secreta en el archivo de claves OpenPGP guardado?
+save-keys-ok = Las claves se guardaron correctamente
+save-keys-failed = No se pudieron guardar las claves
+default-pub-key-filename = Claves-públicas-exportadas
+default-pub-sec-key-filename = Copia de seguridad de claves secretas
+refresh-key-warn = Advertencia: dependiendo de la cantidad de claves y la velocidad de conexión, actualizar todas las claves puede ser un proceso bastante largo.
+preview-failed = No se puede leer el archivo de la clave pública.
+# Variables:
+# $reason (String) - Error description.
+general-error = Error: { $reason }
+dlg-button-delete = &Eliminar
+
+## Account settings export output
+
+openpgp-export-public-success = <b>¡Clave pública exportada correctamente!</b>
+openpgp-export-public-fail = <b>¡No se puede exportar la clave pública seleccionada!</b>
+openpgp-export-secret-success = <b>¡La clave secreta se exportó correctamente!</b>
+openpgp-export-secret-fail = <b>¡No se puede exportar la clave secreta seleccionada!</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 = La clave { $userId } (ID de clave { $keyId }) está revocada.
+key-ring-pub-key-expired = La clave { $userId } (ID de clave { $keyId }) ha caducado.
+key-ring-no-secret-key = No parece tener la clave secreta para { $userId } (ID de clave { $keyId }) en su llavero; no puede utilizar la clave para firmar.
+key-ring-pub-key-not-for-signing = La clave { $userId } (ID de clave { $keyId }) no se puede usar para firmar.
+key-ring-pub-key-not-for-encryption = La clave { $userId } (ID de clave { $keyId }) no se puede usar para cifrado.
+key-ring-sign-sub-keys-revoked = Todas las subclaves de firma de la clave { $userId } (ID de clave { $keyId }) están revocadas.
+key-ring-sign-sub-keys-expired = Todas las subclaves de firma de la clave { $userId } (ID de clave { $keyId }) han caducado.
+key-ring-enc-sub-keys-revoked = Todas las subclaves de cifrado de la clave { $userId } (ID de clave { $keyId }) están revocadas.
+key-ring-enc-sub-keys-expired = Todas las subclaves de cifrado de la clave { $userId } (ID de clave { $keyId }) han caducado.
+
+## Strings in gnupg-keylist.jsm
+
+keyring-photo = Foto
+user-att-photo = Atributo de usuario (imagen JPEG)
+
+## Strings in key.jsm
+
+already-revoked = Esta clave ya ha sido revocada.
+# $identity (String) - the id and associated user identity of the key being revoked
+revoke-key-question =
+ Está a punto de revocar la clave '{ $identity }'.
+ Ya no podrá firmar con esta clave y, una vez distribuida, otras personas ya no podrán cifrar con esa clave. Todavía puede usar la clave para descifrar mensajes antiguos.
+ ¿Quiere proceder?
+# $keyId (String) - the id of the key being revoked
+revoke-key-not-present =
+ ¡No tiene ninguna clave (0x{ $keyId }) que coincida con este certificado de revocación!
+ Si perdió su clave, ¡tiene que importarla (por ejemplo, desde un servidor de claves) antes de importar el certificado de revocación!
+# $keyId (String) - the id of the key being revoked
+revoke-key-already-revoked = La clave 0x{ $keyId } ya ha sido revocada.
+key-man-button-revoke-key = &Revocar clave
+openpgp-key-revoke-success = Clave revocada correctamente.
+after-revoke-info =
+ La clave ha sido revocada.
+ Vuelva a compartir esta clave pública, enviándola por correo electrónico o cargándola en servidores de claves, para que otros sepan que revocó su clave.
+ Tan pronto como el software utilizado por otras personas conozca la revocación, dejará de usar su antigua clave.
+ Si está usando una nueva clave para la misma dirección de correo electrónico y adjunta la nueva clave pública a los correos electrónicos que envía, la información sobre su antigua clave revocada se incluirá automáticamente.
+
+## Strings in keyRing.jsm & decryption.jsm
+
+key-man-button-import = &Importar
+delete-key-title = Eliminar clave OpenPGP
+delete-external-key-title = Eliminar la clave GnuPG externa
+delete-external-key-description = ¿Quiere eliminar esta ID de clave GnuPG externa?
+key-in-use-title = Clave OpenPGP actualmente en uso
+delete-key-in-use-description = ¡No se puede continuar! La clave que seleccionó para eliminar está siendo usada por esta identidad. Seleccione una clave diferente, o no seleccione ninguna, y vuelva a intentarlo.
+revoke-key-in-use-description = ¡No se puede continuar! La clave que seleccionó para revocar está siendo usada por esta identidad. Seleccione una clave diferente, o no seleccione ninguna, y vuelva a intentarlo.
+
+## Strings used in errorHandling.jsm
+
+# Variables:
+# $keySpec (String) - Email address.
+key-error-key-spec-not-found = La dirección de correo electrónico ‘{ $keySpec }’ no puede coincidir con una clave en su llavero.
+# $keySpec (String) - Key id.
+key-error-key-id-not-found = El ID de clave configurada '{ $keySpec }' no se encuentra en su llavero.
+# $keySpec (String) - Key id.
+key-error-not-accepted-as-personal = No ha confirmado que la clave con ID '{ $keySpec }' sea su clave personal.
+
+## Strings used in enigmailKeyManager.js & windows.jsm
+
+need-online = La función que ha seleccionado no está disponible en el modo sin conexión. Conéctese y vuelva a intentarlo.
+
+## Strings used in keyRing.jsm & keyLookupHelper.jsm
+
+no-key-found2 = No hemos podido encontrar ninguna clave utilizable que coincida con los criterios de búsqueda especificados.
+no-update-found = Ya tiene las claves que fueron descubiertas en línea.
+
+## Strings used in keyRing.jsm & GnuPGCryptoAPI.jsm
+
+fail-key-extract = Error - el comando de extracción de clave falló
+
+## Strings used in keyRing.jsm
+
+fail-cancel = Error - La recepción de clave ha sido cancelada por el usuario
+not-first-block = Error - El primer bloque OpenPGP no es un bloque de clave pública
+import-key-confirm = ¿Importar clave(s) pública(s) incrustadas en el mensaje?
+fail-key-import = Error - no se pudo importar la clave
+# Variables:
+# $output (String) - File that writing was attempted to.
+file-write-failed = Error al escribir en el archivo { $output }
+no-pgp-block = Error - no se encontró un bloque de datos OpenPGP blindado válido
+confirm-permissive-import = La importación falló. La clave que está intentando importar puede estar dañada o utilizar atributos desconocidos. ¿Le gustaría intentar importar las partes correctas? Esto puede resultar en la importación de claves incompletas e inutilizables.
+
+## Strings used in trust.jsm
+
+key-valid-unknown = desconocido
+key-valid-invalid = no válido
+key-valid-disabled = desactivado
+key-valid-revoked = revocado
+key-valid-expired = caducado
+key-trust-untrusted = no confiable
+key-trust-marginal = marginal
+key-trust-full = confiable
+key-trust-ultimate = absoluta
+key-trust-group = (grupo)
+
+## Strings used in commonWorkflows.js
+
+import-key-file = Importar archivo de clave OpenPGP
+import-rev-file = Importar archivo de revocación de OpenPGP
+gnupg-file = Archivos GnuPG
+import-keys-failed = Error al importar las claves
+# Variables:
+# $key (String) - Key id to unlock.
+# $date (String) - The date on which the key was created
+# $username_and_email (String) - The user name, and/or the email address which the key owner has set for the key.
+passphrase-prompt2 = Introduzca la frase de contraseña para desbloquear la clave secreta con ID { $key }, creada el { $date }, { $username_and_email }
+# Variables:
+# $subkey (String) - Key id to unlock, which is a subkey.
+# $key (String) - This is the main key, to which the subkey belongs.
+# $date (String) - The date on which the key was created
+# $username_and_email (String) - The user name, and/or the email address which the key owner has set for the key.
+passphrase-prompt2-sub = Introduzca la frase de contraseña para desbloquear la clave secreta con ID { $subkey } que es una subclave del ID de clave { $key }, creada el { $date }, { $username_and_email }
+file-to-big-to-import = Este archivo es demasiado grande. No importe un gran conjunto de claves a la vez.
+
+## Strings used in enigmailKeygen.js
+
+save-revoke-cert-as = Crear y guardar certificado de revocación
+revoke-cert-ok = El certificado de revocación ha sido creado correctamente. Puede usarlo para invalidar su clave pública, por ejemplo en caso que perdiera su clave secreta.
+revoke-cert-failed = No se pudo crear el certificado de revocación.
+gen-going = ¡La generación de claves ya está en proceso!
+keygen-missing-user-name = No hay ningún nombre especificado para la cuenta actual. Escriba un valor el el campo "Su nombre" en la configuración de la cuenta.
+expiry-too-short = La clave debe ser válida durante al menos un día.
+expiry-too-long = No se puede crear una clave que caduque en más de 100 años.
+# Variables:
+# $id (String) - Name and/or email address to generate keys for.
+key-confirm = ¿Generar clave pública y secreta para ‘{ $id }’?
+key-man-button-generate-key = &Generar clave
+key-abort = ¿Abortar la generación de claves?
+key-man-button-generate-key-abort = &Abortar generación de clave
+key-man-button-generate-key-continue = &Continuar con la generación de claves
+
+## Strings used in enigmailMessengerOverlay.js
+
+failed-decrypt = Error - no se pudo descifrar
+fix-broken-exchange-msg-failed = No se puede reparar este mensaje.
+# Variables:
+# $attachment (String) - File name of the signature file.
+attachment-no-match-from-signature = No se pudo hacer coincidir el archivo de firma ‘{ $attachment }’ con un archivo adjunto
+# Variables:
+# $attachment (String) - File name of the attachment.
+attachment-no-match-to-signature = No se pudo hacer coincidir el archivo adjunto ‘{ $attachment }’ con un archivo de firma
+# Variables:
+# $attachment (String) - File name of the attachment
+signature-verified-ok = La firma del archivo adjunto { $attachment } se verificó correctamente
+# Variables:
+# $attachment (String) - File name of the attachment
+signature-verify-failed = No se pudo verificar la firma del archivo adjunto { $attachment }
+decrypt-ok-no-sig =
+ Advertencia
+ El descifrado fue correcto, pero la firma no se pudo verificar correctamente
+msg-ovl-button-cont-anyway = &Continuar de todas formas
+enig-content-note = *Los archivos adjuntos a este mensaje no han sido firmados ni cifrados*
+
+## Strings used in enigmailMsgComposeOverlay.js
+
+msg-compose-button-send = &Enviar mensaje
+msg-compose-details-button-label = Detalles…
+msg-compose-details-button-access-key = D
+send-aborted = Operación de envío abortada.
+# Variables:
+# $key (String) - Key id.
+key-not-trusted = No hay suficiente confianza para la clave '{ $key }'
+# Variables:
+# $key (String) - Key id.
+key-not-found = Clave ‘{ $key }’ no encontrada
+# Variables:
+# $key (String) - Key id.
+key-revoked = Clave ‘{ $key }’ revocada
+# Variables:
+# $key (String) - Key id.
+key-expired = Clave ‘{ $key }’ caducada
+msg-compose-internal-error = Se ha producido un error interno.
+keys-to-export = Seleccione las claves OpenPGP para insertar
+msg-compose-partially-encrypted-inlinePGP =
+ El mensaje al que está respondiendo contenía partes cifradas y no cifradas. Si el remitente no pudo descifrar algunas partes del mensaje, es posible que esté filtrando información confidencial que el remitente no pudo descifrar originalmente.
+ Considere eliminar todo el texto citado de su respuesta a este remitente.
+msg-compose-cannot-save-draft = Error al guardar el borrador
+msg-compose-partially-encrypted-short = Ten cuidado con la filtración de información confidencial - correo electrónico parcialmente cifrado.
+quoted-printable-warn =
+ Activó la codificación 'quoted-printable' para enviar mensajes. Esto puede resultar en un descifrado incorrecto y/o verificación de su mensaje.
+ ¿Quiere desactivar ahora el envío de mensajes 'quoted-printable'?
+# Variables:
+# $width (Number) - Number of characters per line.
+minimal-line-wrapping =
+ Ha configurado el ajuste de línea en { $width } caracteres. Para un correcto cifrado y/o firma correcta, este valor debe ser al menos de 68.
+ ¿Quiere cambiar ahora el ajuste de línea a 68 caracteres?
+sending-news =
+ Se abortó la operación de envío cifrado.
+ Este mensaje no se puede cifrar porque hay destinatarios de grupos de noticias. Vuelva a enviar el mensaje sin cifrar.
+send-to-news-warning =
+ Advertencia: está a punto de enviar un correo electrónico cifrado a un grupo de noticias.
+ Esto se desaconseja porque solo tiene sentido si todos los miembros del grupo pueden descifrar el mensaje, es decir, el mensaje debe cifrarse con las claves de todos los participantes del grupo. Envíe este mensaje solo si sabe exactamente lo que está haciendo.
+ ¿Continuar?
+save-attachment-header = Guardar adjunto descifrado
+possibly-pgp-mime = Posiblemente un mensaje cifrado o firmado PGP/MIME; use la función 'Descifrar/Verificar' para verificar
+# Variables:
+# $key (String) - Sender email address.
+cannot-send-sig-because-no-own-key = No se puede firmar digitalmente este mensaje porque todavía no ha configurado el cifrado extremo a extremo para <{ $key }>
+# Variables:
+# $key (String) - Sender email address.
+cannot-send-enc-because-no-own-key = No se puede enviar este mensaje cifrado, porque todavía no ha configurado cifrado extremo a extremo 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 las siguientes claves?
+ { $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 = Error al importar la clave pública
+unverified-reply = La parte del mensaje indentada (respuesta) fue probablemente modificada
+key-in-message-body = Se encontró una clave en el cuerpo del mensaje. Haga clic en ‘Importar clave’ para importar la clave.
+sig-mismatch = Error - Discrepancia en la firma
+invalid-email = Error - dirección o direcciones de correo no válidas
+# Variables:
+# $name (String) - File name of the attachment.
+attachment-pgp-key =
+ El adjunto '{ $name }' que está abriendo parece ser un archivo de claves OpenPGP.
+ Haga clic en 'Importar' para importar las claves que contiene o 'Ver' para ver los contenidos del archivo en una ventana del navegador
+dlg-button-view = &Ver
+
+## Strings used in enigmailMsgHdrViewOverlay.js
+
+decrypted-msg-with-format-error = Mensaje descifrado (el formato de correo electrónico PGP roto restaurado probablemente causado por un antiguo servidor de Exchange, por lo que el resultado podría no ser perfecto para leer)
+
+## Strings used in encryption.jsm
+
+not-required = Error - no se requiere cifrado
+
+## Strings used in windows.jsm
+
+no-photo-available = No hay foto disponible
+# Variables:
+# $photo (String) - Path of the photo in the key.
+error-photo-path-not-readable = La ruta de la foto ‘{ $photo }’ no es legible
+debug-log-title = Registro de depuración de 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 = Esta alerta se repetirá { $count }
+repeat-suffix-singular = más tiempo.
+repeat-suffix-plural = más veces.
+no-repeat = Esta alerta no se volverá a mostrar.
+dlg-keep-setting = Recordar mi respuesta y no volver a preguntarme
+dlg-button-ok = &Aceptar
+dlg-button-close = &Cerrar
+dlg-button-cancel = &Cancelar
+dlg-no-prompt = No volver a mostrarme esta diálogo.
+enig-prompt = Aviso de OpenPGP
+enig-confirm = Confirmación de OpenPGP
+enig-alert = Alerta de OpenPGP
+enig-info = Información de OpenPGP
+
+## Strings used in persistentCrypto.jsm
+
+dlg-button-retry = &Reintentar
+dlg-button-skip = &Omitir
+
+## Strings used in enigmailMsgBox.js
+
+enig-alert-title =
+ .title = Alerta de OpenPGP
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/add-finger.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/add-finger.ftl
new file mode 100644
index 0000000000..5a055aadea
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/add-finger.ftl
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+otr-add-finger-title = Añadir huella digital de la clave OTR
+
+# Variables:
+# $name (String) - name of a chat contact person
+# Do not translate 'OTR' (name of an encryption protocol)
+otr-add-finger-description = Introduzca la huella de la clave OTR para { $name }.
+
+otr-add-finger-fingerprint = Huella:
+otr-add-finger-tooltip-error = Carácter no válido introducido. Solo se permiten las letras ABCDEF y números
+
+otr-add-finger-input =
+ .placeholder = La huella de 40 caracteres de longitud de la clave OTR
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/am-im-otr.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/am-im-otr.ftl
new file mode 100644
index 0000000000..39303c07e1
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/am-im-otr.ftl
@@ -0,0 +1,27 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+account-encryption =
+ .label = Cifrado extremo-a-extremo
+account-otr-label = Mensajería Off-the-Record (OTR)
+account-otr-description2 = { -brand-short-name } permite cifrado extremo-a-extremo de las conversaciones uno-a-uno basadas en OTR. Esto impide que terceros se infiltren en una conversación. Este tipo de cifrado extremo-a-extremo solo puede usarse cuando la otra persona también usa software que admite OTR.
+otr-encryption-title = Cifrado verificado
+otr-encryption-caption = Para permitir que otros verifiquen su identidad en los chats OTR, compara su propia huella OTR usando un canal de comunicación externo (fuera-de-banda).
+otr-fingerprint-label = Su huella:
+view-fingerprint-button =
+ .label = Administrar huellas de contactos
+ .accesskey = h
+otr-settings-title = Ajustes OTR
+otr-require-encryption =
+ .label = Requerir cifrado de extremo a extremo para conversaciones uno a uno
+otr-require-encryption-info =
+ Al requerir cifrado de extremo a extremo, los mensajes en conversaciones
+ uno a uno no se enviarán a menos que puedan ser cifrados. Los mensajes
+ recibidos no cifrados no se mostrarán como parte de la conversación normal
+ ni tampoco serán registrados.
+otr-verify-nudge =
+ .label = Siempre recordarme verificar un contacto no verificado
+
+otr-not-yet-available = no disponible todavía
+
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/auth.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/auth.ftl
new file mode 100644
index 0000000000..e4a3a6810e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/auth.ftl
@@ -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/.
+
+otr-auth =
+ .title = Verificar identidad del contacto
+ .buttonlabelaccept = Verificar
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+auth-title = Verificar la identidad de { $name }
+
+# Variables:
+# $own_name (String) - the user's own screen name
+auth-your-fp-value = Huella de usted, { $own_name }:
+
+# Variables:
+# $their_name (String) - the screen name of a chat contact
+auth-their-fp-value = Huella de { $their_name }:
+
+auth-help = Verificar la identidad de un contacto ayuda a asegurar que la conversación es verdaderamente privada, haciendo muy difícil que un tercero se infiltre o manipule la conversación.
+auth-help-title = Ayuda para verificación
+
+auth-question-received = Ésta es la pregunta que hace su contacto:
+
+auth-yes =
+ .label = Sí
+
+auth-no =
+ .label = No
+
+auth-verified = He verificado que esta es realmente la huella correcta.
+
+auth-manual-verification = Verificación manual de huella digital
+auth-question-and-answer = Pregunta y respuesta
+auth-shared-secret = Secreto compartido
+
+auth-manual-verification-label =
+ .label = { auth-manual-verification }
+
+auth-question-and-answer-label =
+ .label = { auth-question-and-answer }
+
+auth-shared-secret-label =
+ .label = { auth-shared-secret }
+
+auth-manual-instruction = Póngase en contacto con su interlocutor a través de algún otro canal autenticado, como el correo electrónico firmado OpenPGP o por teléfono. Deben comunicarse mutuamente sus huellas digitales. (Una huella digital es una suma de verificación que identifica una clave de cifrado). Si la huella digital coincide, debe indicar en el cuadro de diálogo a continuación que verificó la huella digital.
+
+auth-how = ¿Cómo le gustaría verificar la identidad de su contacto?
+
+auth-qa-instruction = Piense en una pregunta para la que solo usted y su contacto conozcan la respuesta. Escriba la pregunta y la respuesta, luego espere a que su contacto escriba la respuesta. Si las respuestas no coinciden, el canal de comunicación que está utilizando puede estar bajo vigilancia.
+
+auth-secret-instruction = Piense en un secreto conocido solo por usted y su contacto. No use la misma conexión a Internet para intercambiar el secreto. Escriba el secreto, luego espere a que su contacto lo introduzca. Si los secretos no coinciden, el canal de comunicación que está utilizando puede estar bajo vigilancia.
+
+auth-question = Introduzca una pregunta:
+
+auth-answer = Introduzca la respuesta (se distinguen mayúsculas y minúsculas):
+
+auth-secret = Introduzca el secreto:
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/chat.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/chat.ftl
new file mode 100644
index 0000000000..426a35453f
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 de cifrado:
+
+start-text = Comenzar una conversación cifrada
+
+start-label =
+ .label = { start-text }
+
+start-tooltip =
+ .tooltiptext = { start-text }
+
+end-label =
+ .label = Finalizar la conversación cifrada
+
+auth-label =
+ .label = Verificar la identidad de su contacto
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/finger-sync.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/finger-sync.ftl
new file mode 100644
index 0000000000..7dcc53a6d9
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Verificada
+finger-no = No verificada
+
+finger-subset-title = Eliminar huellas
+finger-subset-message = Al menos una huella no ha podido ser eliminada, porque la clave correspondiente se está usando en una conversación activa.
+
+finger-remove-all-title = Eliminar todas las huellas
+finger-remove-all-message = ¿Está seguro de que quiere eliminar todas las huellas vistas previamente? Todas las verificaciones de identidad OTR previas se perderán.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/finger.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/finger.ftl
new file mode 100644
index 0000000000..7dd0677680
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/finger.ftl
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+otr-finger-title = Huellas digitales OTR vistas previamente
+
+finger-intro = Huellas de claves OTR de conversaciones cifradas extremo-a-extremo anteriores.
+
+finger-screen-name =
+ .label = Contacto
+finger-verified =
+ .label = Estado de verificación
+finger-fingerprint =
+ .label = Huella
+
+finger-remove =
+ .label = Eliminar seleccionadas
+
+finger-remove-all =
+ .label = Eliminar todas
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/otr.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/otr.ftl
new file mode 100644
index 0000000000..74ae17393f
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/otr.ftl
@@ -0,0 +1,97 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-encryption-required-part1 = Ha intentado enviar un mensaje no cifrado a { $name }. Como norma, los mensajes no cifrados no están permitidos.
+
+msgevent-encryption-required-part2 = Intentando iniciar una conversación privada. El mensaje será reenviado cuando la conversación privada se inicie.
+msgevent-encryption-error = Ha ocurrido un error al cifrar el mensaje. El mensaje no ha sido enviado.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-connection-ended = { $name } ya cerró la conexión cifrada con usted. Para evitar que envíe accidentalmente un mensaje sin cifrado, su mensaje no se envió. Por favor finalice su conversación cifrada o reiníciela.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-setup-error = Ha ocurrido un error al configurar una conversación privada con { $name }.
+
+# Do not translate 'OTR' (name of an encryption protocol)
+msgevent-msg-reflected = Está recibiendo sus propios mensajes OTR. Está intentando hablar consigo mismo o alguien le está reenviado sus propios mensajes.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-msg-resent = El último mensaje a { $name } ha sido reenviado.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg-not-private = El mensaje cifrado recibido de { $name } no se puede leer ya que en este momento no se está comunicando de forma privada.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg-unreadable = Ha recibido un mensaje cifrado ilegible de { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg-malformed = Ha recibido un mensaje de datos con formato incorrecto de { $name }.
+
+# A Heartbeat is a technical message used to keep a connection alive.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-log-heartbeat-rcvd = Mensaje Heartbeat recibido de { $name }.
+
+# A Heartbeat is a technical message used to keep a connection alive.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-log-heartbeat-sent = Mensaje Heartbeat enviado a { $name }.
+
+# Do not translate 'OTR' (name of an encryption protocol)
+msgevent-rcvdmsg-general-err = Ha ocurrido un error inesperado al intentar proteger su conversación usando OTR.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+# $msg (string) - the message that was received.
+msgevent-rcvdmsg-unencrypted = El siguiente mensaje recibido de { $name } no estaba cifrado: { $msg }
+
+# Do not translate 'OTR' (name of an encryption protocol)
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg-unrecognized = Ha recibido un mensaje OTR no reconocido de { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg-for-other-instance = { $name } ha enviado un mensaje destinado a una sesión diferente. Si inició sesión varias veces, otra sesión puede haber recibido el mensaje.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+context-gone-secure-private = Se ha iniciado una conversación privada con { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+context-gone-secure-unverified = Se inició una conversación cifrada pero no verificada con { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+context-still-secure = Se ha actualizado correctamente la conversación cifrada con { $name }.
+
+error-enc = Ha sucedido un error al cifrar el mensaje.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+error-not-priv = Ha enviado datos cifrados a { $name }, que no los esperaba.
+
+error-unreadable = Ha transmitido un mensaje cifrado ilegible.
+error-malformed = Ha transmitido un mensaje con datos mal formados.
+
+resent = [reenviado]
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+tlv-disconnected = { $name } ha finalizado su conversación cifrada con usted; debería hacer lo mismo.
+
+# 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 } ha solicitado una conversación cifrada Off-the-Record (OTR). Sin embargo, no tiene un plugin compatible con ella. Vea https://es.wikipedia.org/wiki/Off_the_record_messaging para más información.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/otrUI.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/otrUI.ftl
new file mode 100644
index 0000000000..2e499cb679
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/otr/otrUI.ftl
@@ -0,0 +1,87 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+start-label = Iniciar una conversación cifrada
+refresh-label = Refrescar la conversación cifrada
+auth-label = Verificar la identidad de su contacto
+reauth-label = Verificar de nuevo la identidad de su contacto
+
+auth-cancel = Cancelar
+auth-cancel-access-key = C
+
+auth-error = Ha sucedido un error al verificar la identidad de su contacto.
+auth-success = Se ha completado correctamente la verificación de la identidad de su contacto.
+auth-success-them = Su contacto ha verificado con éxito su identidad. Es posible que también usted desee verificar su identidad haciendo su propia pregunta.
+auth-fail = Ha fallado la verificación de la identidad de su contacto.
+auth-waiting = Esperando que el contacto complete la verificación…
+
+finger-verify = Verificar
+finger-verify-access-key = V
+
+finger-ignore = Ignorar
+finger-ignore-access-key = I
+
+# Do not translate 'OTR' (name of an encryption protocol)
+buddycontextmenu-label = Añadir huella OTR
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+alert-start = Intentando iniciar una conversación cifrada con { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+alert-refresh = Intentando refrescar la conversación cifrada con { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+alert-gone-insecure = La conversación cifrada con { $name } finalizó.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+finger-unseen = La identidad de { $name } no se ha verificado aún. No es posible una infiltración por casualidad, pero con cierto esfuerzo alguien podría estar escuchando. Evite la vigilancia verificando la identidad de su contacto.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+finger-seen = { $name } está contactando con usted desde un equipo no reconocido. No es posible una infiltración por casualidad, pero con cierto esfuerzo alguien podría estar escuchando. Evite la vigilancia verificando la identidad de su contacto.
+
+state-not-private = La conversación actual no es privada.
+state-generic-not-private = La conversación actual no es privada.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+state-unverified = La conversación actual está cifrada pero no es privada, dado que la identidad de { $name } aún no ha sido verificada.
+
+state-generic-unverified = La conversación actual está cifrada pero no es privada, ya que algunas identidades aún no han sido verificadas.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+state-private = La identidad de { $name } ha sido verificada. La conversación actual está cifrada y es privada.
+
+state-generic-private = La conversación actual está cifrada y es privada.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+state-finished = { $name } ha finalizado su conversación privada con usted; debería hacer lo mismo.
+
+state-not-private-label = Insegura
+state-unverified-label = No verificada
+state-private-label = Privada
+state-finished-label = Finalizada
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+verify-request = { $name } ha solicitado la verificación de su identidad.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+afterauth-private = Ha verificado la identidad de { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+afterauth-unverified = La identidad de { $name } no ha sido verificada.
+
+# 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 = Ha fallado la generación de la clave privada OTR: { $error }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/policies/aboutPolicies.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/policies/aboutPolicies.ftl
new file mode 100644
index 0000000000..561184e632
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 empresariales
+
+# 'Active' is used to describe the policies that are currently active
+active-policies-tab = Activa
+errors-tab = Errores
+documentation-tab = Documentación
+
+no-specified-policies-message = El servicio de políticas empresariales está activo pero no hay políticas habilitadas.
+inactive-message = El servicio de políticas empresariales está inactivo.
+
+policy-name = Nombre de la política
+policy-value = Valor de la política
+policy-errors = Errores de la política
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/policies/policies-descriptions.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/policies/policies-descriptions.ftl
new file mode 100644
index 0000000000..d632b20a86
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Establecer políticas a las que WebExtensions puedan acceder a través de chrome.storage.managed.
+policy-AppAutoUpdate = Activar o desactivar la actualización automática de la aplicación.
+policy-AppUpdatePin = Impedir que { -brand-short-name } se actualice más allá de la versión especificada.
+policy-AppUpdateURL = Establecer una URL de actualización personalizada.
+policy-Authentication = Configurar identificación integrada en los sitios web que la admitan.
+policy-BackgroundAppUpdate2 = Activar o desactivar la actualización en segundo plano.
+policy-BlockAboutAddons = Bloquear el acceso al administrador de complementos (about:addons).
+policy-BlockAboutConfig = Bloquear el acceso a la página about:config.
+policy-BlockAboutProfiles = Bloquear el acceso a la página about:profiles.
+policy-BlockAboutSupport = Bloquear el acceso a la página about:support.
+policy-CaptivePortal = Activar o desactivar la compatibilidad con un portal cautivo.
+policy-CertificatesDescription = Añadir certificados o usar certificados incluidos de serie.
+policy-Cookies = Permitir o denegar a los sitios web enviar cookies.
+policy-DisableBuiltinPDFViewer = Desactivar PDF.js, el visor de PDF integrado en { -brand-short-name }.
+policy-DisabledCiphers = Desactivar cifrados.
+policy-DefaultDownloadDirectory = Establecer el directorio de descargas predeterminado.
+policy-DisableAppUpdate = Impedir que { -brand-short-name } se actualice.
+policy-DisableDefaultClientAgent = Impedir que el agente de cliente por omisión lleve a cabo ninguna acción. Solo es aplicable a Windows; otras plataformas no tienen el agente.
+policy-DisableDeveloperTools = Bloquear el acceso a las herramientas de desarrollo.
+policy-DisableFeedbackCommands = Desactivar las opciones para enviar información desde el menú Ayuda (Enviar opiniones e Informar de sitio fraudulento).
+policy-DisableForgetButton = Impedir el acceso al botón Olvidar.
+policy-DisableFormHistory = No recordar el historial de búsquedas y formularios.
+policy-DisableMasterPasswordCreation = Si Verdadero, no se puede crear una contraseña maestra.
+policy-DisablePasswordReveal = No permitir que se revelen las contraseñas en las credenciales guardadas.
+policy-DisableProfileImport = Desactivar la opción de menú para importar datos desde otra aplicación.
+policy-DisableSafeMode = Desactivar la funcionalidad para reiniciar en modo seguro. Nota: la tecla Mayúsculas para entrar en modo seguro solo puede desactivarse en Windows usando políticas de grupo.
+policy-DisableSecurityBypass = Impedir que el usuario se salte ciertas advertencias de seguridad.
+policy-DisableSystemAddonUpdate = Impedir que { -brand-short-name } instale y actualice complementos de sistema.
+policy-DisableTelemetry = Desactivar Telemetry.
+policy-DisplayMenuBar = Mostrar la barra de menú por defecto.
+policy-DNSOverHTTPS = Configurar DNS sobre HTTPS.
+policy-DontCheckDefaultClient = Desactivar la comprobación de cliente predeterminado al iniciar.
+policy-DownloadDirectory = Establecer y bloquear el directorio de descargas.
+# “lock” means that the user won’t be able to change this setting
+policy-EnableTrackingProtection = Activar o desactivar el bloqueo de contenido e impedir su modificación.
+# “lock” means that the user won’t be able to change this setting
+policy-EncryptedMediaExtensions = Activar o desactivar las extensiones cifradas de medios y opcionalmente bloquearlos.
+# 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 o bloquear exensiones. La opción Instalar admite URL o rutas como parámetros. Las opciones Desinstalar y Bloquear admiten ID de extensiones.
+policy-ExtensionSettings = Administrar todos los aspectos de la instalación de extensiones.
+policy-ExtensionUpdate = Activar o desactivar actualizaciones automáticas de extensiones.
+policy-Handlers = Configurar gestores de aplicación predeterminados.
+policy-HardwareAcceleration = Si el valor es falso, desactivar la aceleración hardware.
+policy-InstallAddonsPermission = Permitir a ciertos sitios web instalar complementos.
+policy-LegacyProfiles = Disable the feature enforcing a separate profile for each installation.
+
+## Do not translate "SameSite", it's the name of a cookie attribute.
+
+policy-LegacySameSiteCookieBehaviorEnabled = Activar el ajuste de comportamiento de la cookie SameSite por omisión anterior.
+policy-LegacySameSiteCookieBehaviorEnabledForDomainList = Revertir al comportamiento anterior de SameSite para las cookies de sitios específicos.
+
+##
+
+policy-LocalFileLinks = Permitir a sitios web específicos enlazar a archivos locales.
+policy-ManualAppUpdateOnly = Permitir solo actualizaciones manuales y no notificar al usuario acerca de actualizaciones.
+policy-NetworkPrediction = Activar o desactivar la predicción de red (precarga DNS).
+policy-OfferToSaveLogins = Forzar el ajuste para permitir a { -brand-short-name } ofrecer recordar los inicios de sesión y contraseñas guardadas. Se aceptan valores Verdadero y Falso.
+policy-OfferToSaveLoginsDefault = Configurar el valor por omisión para permitir a { -brand-short-name } ofrecer recordar las credenciales y contraseñas guardadas. Se aceptan valores Verdadero y Falso.
+policy-OverrideFirstRunPage = Reemplazar la página de primera ejecución. Establezca esta política en blanco si quiere desactivar la página de primera ejecución.
+policy-OverridePostUpdatePage = Reemplazar la página "Novedades" tras una actualización. Establezca esta política en blanco si quiere desactivar la página tras una actualización.
+policy-PasswordManagerEnabled = Activar el guardado de contraseñas en el administrador de contraseñas.
+# PDF.js and PDF should not be translated
+policy-PDFjs = Desactivar o configurar PDF.js, el visor PDF incorporado en { -brand-short-name }.
+policy-Permissions2 = Configurar permisos de la cámara, micrófono, ubicación, notificaciones y autorreproducción.
+policy-Preferences = Establecer y bloquear el valor de un subconjunto de preferencias.
+policy-PrimaryPassword = Requerir o evitar el uso de una contraseña maestra.
+policy-PromptForDownloadLocation = Preguntar dónde guardar los archivos al guardar.
+policy-Proxy = Configurar los ajustes de proxy.
+policy-RequestedLocales = Configurar la lista de idiomas solicitados para la aplicación en orden de preferencia.
+policy-SanitizeOnShutdown2 = Limpiar los datos de navegación al cerrar.
+policy-SearchEngines = Configurar los ajustes de buscadores. Esta política solo está disponible en la versión de asistencia extendida (ESR).
+policy-SearchSuggestEnabled = Activar o desactivar sugerencias de búsqueda.
+# For more information, see https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/PKCS11/Module_Installation
+policy-SecurityDevices = Instalar módulos PKCS #11.
+policy-SSLVersionMax = Establecer la versión SSL máxima.
+policy-SSLVersionMin = Establecer la versión SSL mínima.
+policy-SupportMenu = Añadir una opción de menú personalizada en el menú Ayuda.
+policy-UserMessaging = No mstrar ciertos mensajes al usuario.
+# “format” refers to the format used for the value of this policy.
+policy-WebsiteFilter = Bloquear la visita de sitios web. Vea la documentación para más detalles sobre el formato.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/am-copies.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000..7958a9b85d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/am-copies.ftl
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+account-prefs-show-address-row-description = Deje el campo de dirección en blanco para que siempre aparezca la fila de dirección al iniciar un nuevo mensaje.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/am-im.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/am-im.ftl
new file mode 100644
index 0000000000..1bb612bfe8
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/am-im.ftl
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+account-settings-title = Configuración de autenticación
+account-channel-title = Canales predeterminados
+
+chat-autologin =
+ .label = Iniciar sesión al inicio
+
+chat-encryption-generic = Genérico
+chat-encryption-log =
+ .label = Incluir mensajes cifrados de extremo a extremo en los registros de conversaciones
+chat-encryption-label = Cifrado de extremo a extremo nativo
+chat-encryption-description = { $protocol } proporciona cifrado de extremo a extremo para mensajes de chat. Esto evita que terceros espíen la conversación. Es posible que se necesite una configuración adicional a continuación para que el cifrado sea operativo.
+chat-encryption-status = Estado del cifrado
+chat-encryption-placeholder = Cifrado no inicializado.
+chat-encryption-sessions = Sesiones
+chat-encryption-sessions-description = Para que el cifrado de extremo a extremo funcione correctamente, tiene que confiar en las otras sesiones conectadas actualmente a su cuenta. Se requiere interacción con el otro cliente para verificar una sesión. Verificar una sesión puede dar lugar a que todas las sesiones en las que confía también sean de confianza para { -brand-short-name }.
+chat-encryption-session-verify = verificar
+ .title = Verificar la identidad de esta sesión
+chat-encryption-session-trusted = confiable
+ .title = La identidad de esta sesión está comprobada
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/application-manager.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/application-manager.ftl
new file mode 100644
index 0000000000..db0f10e020
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/application-manager.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+app-manager-window-dialog2 =
+ .title = Detalles de la aplicación
+app-manager-dialog-title = Detalles de la aplicación
+remove-app-button =
+ .label = Eliminar
+ .accesskey = E
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/attachment-reminder.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/attachment-reminder.ftl
new file mode 100644
index 0000000000..11dcf89589
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Palabras clave para el recordatorio de adjuntos
+attachment-reminder-dialog-title = Palabras clave para el recordatorio de adjuntos
+attachment-reminder-label = { -brand-short-name } le advertirá sobre adjuntos olvidados si va a enviar un mensaje de correo electrónico que contenga alguna de estas palabras.
+keyword-new-button =
+ .label = Nuevo…
+ .accesskey = N
+keyword-edit-button =
+ .label = Editar…
+ .accesskey = E
+keyword-remove-button =
+ .label = Eliminar
+ .accesskey = m
+new-keyword-title = Nueva palabra clave
+new-keyword-label = Palabra clave:
+edit-keyword-title = Editar palabra clave
+edit-keyword-label = Palabra clave:
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/colors.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/colors.ftl
new file mode 100644
index 0000000000..857450a790
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Colores
+colors-dialog-title = Colores
+colors-dialog-legend = Texto y fondo
+text-color-label =
+ .value = Texto:
+ .accesskey = T
+background-color-label =
+ .value = Fondo:
+ .accesskey = F
+use-system-colors =
+ .label = Usar los colores del sistema
+ .accesskey = U
+colors-link-legend = Color de los enlaces
+link-color-label =
+ .value = Enlaces sin visitar:
+ .accesskey = E
+visited-link-color-label =
+ .value = Enlaces visitados:
+ .accesskey = a
+underline-link-checkbox =
+ .label = Subrayar enlaces
+ .accesskey = S
+override-color-label =
+ .value = Reemplazar los colores especificados por el contenido con mis selecciones de arriba:
+ .accesskey = R
+override-color-always =
+ .label = Siempre
+override-color-auto =
+ .label = Solo con temas de alto contraste
+override-color-never =
+ .label = Nunca
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/connection.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/connection.ftl
new file mode 100644
index 0000000000..78035277e3
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Usar proveedor
+ .accesskey = r
+# Variables:
+# $name (String) - Display name or URL for the DNS over HTTPS provider
+connection-dns-over-https-url-item-default =
+ .label = { $name } (predeterminado)
+ .tooltiptext = Usar la URL predeterminada para resolver DNS sobre HTTPS
+connection-dns-over-https-url-custom =
+ .label = Personalizado
+ .accesskey = P
+ .tooltiptext = Introducir su URL preferida para resolver DNS sobre HTTPS
+connection-dns-over-https-custom-label = Personalizado
+connection-dialog-window2 =
+ .title = Configuración de conexión
+connection-dialog-title = Configuración de conexión
+disable-extension-button = Desactivar extensión
+# 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 = Una extensión, <img data-l10n-name="extension-icon" alt="" /> { $name }, está controlando cómo se conecta { -brand-short-name } a Internet.
+connection-proxy-legend = Configurar proxies para el acceso a Internet
+proxy-type-no =
+ .label = Sin proxy
+ .accesskey = i
+proxy-type-wpad =
+ .label = Autodetectar configuración del proxy para esta red
+ .accesskey = t
+proxy-type-system =
+ .label = Usar configuración de proxy del sistema
+ .accesskey = U
+proxy-type-manual =
+ .label = Configuración manual del proxy:
+ .accesskey = m
+proxy-http-label =
+ .value = Proxy HTTP:
+ .accesskey = h
+http-port-label =
+ .value = Puerto:
+ .accesskey = p
+proxy-http-sharing =
+ .label = Usar también este proxy para HTTPS
+ .accesskey = x
+proxy-https-label =
+ .value = Proxy HTTPS:
+ .accesskey = S
+ssl-port-label =
+ .value = Puerto:
+ .accesskey = o
+proxy-socks-label =
+ .value = Servidor SOCKS:
+ .accesskey = c
+socks-port-label =
+ .value = Puerto:
+ .accesskey = e
+proxy-socks4-label =
+ .label = SOCKS v4
+ .accesskey = k
+proxy-socks5-label =
+ .label = SOCKS v5
+ .accesskey = v
+proxy-type-auto =
+ .label = URL para la configuración automática del proxy:
+ .accesskey = A
+proxy-reload-label =
+ .label = Recargar
+ .accesskey = R
+no-proxy-label =
+ .value = No usar proxy para:
+ .accesskey = n
+no-proxy-example = Ejemplo: .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 = Las conexiones a localhost, 127.0.0.1/8 y ::1 nunca pasan por proxy.
+proxy-password-prompt =
+ .label = No solicitar identificación si la contraseña está guardada
+ .accesskey = d
+ .tooltiptext = Esta opción le identifica sin ningún mensaje ante los proxis cuando ha guardado credenciales para ellos. Se le preguntará en caso de que falle el inicio de sesión.
+proxy-remote-dns =
+ .label = DNS proxy al usar SOCKS v5
+ .accesskey = 5
+proxy-enable-doh =
+ .label = Activar DNS sobre HTTPS
+ .accesskey = v
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/cookies.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/cookies.ftl
new file mode 100644
index 0000000000..4005f7d84b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/cookies.ftl
@@ -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/.
+
+cookies-window-dialog2 =
+ .title = Cookies
+cookies-dialog-title = Cookies
+window-close-key =
+ .key = w
+window-focus-search-key =
+ .key = f
+window-focus-search-alt-key =
+ .key = k
+filter-search-label =
+ .value = Buscar:
+ .accesskey = B
+cookies-on-system-label = Están guardadas en su ordenador las siguientes cookies:
+treecol-site-header =
+ .label = Sitio
+treecol-name-header =
+ .label = Nombre de la cookie
+props-name-label =
+ .value = Nombre:
+props-value-label =
+ .value = Contenido:
+props-domain-label =
+ .value = Servidor:
+props-path-label =
+ .value = Ruta:
+props-secure-label =
+ .value = Enviar para:
+props-expires-label =
+ .value = Caduca:
+props-container-label =
+ .value = Contenedor:
+remove-cookie-button =
+ .label = Eliminar cookie
+ .accesskey = E
+remove-all-cookies-button =
+ .label = Eliminar todas las cookies
+ .accesskey = a
+cookie-close-button =
+ .label = Cerrar
+ .accesskey = C
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/dock-options.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/dock-options.ftl
new file mode 100644
index 0000000000..a12908667c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/dock-options.ftl
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+dock-options-window-dialog2 =
+ .title = Opciones del icono de la aplicación
+dock-options-dialog-title = Opciones del icono de la aplicación
+dock-options-show-badge =
+ .label = Mostrar icono de insignia
+ .accesskey = M
+bounce-system-dock-icon =
+ .label = Animar el icono de la aplicación cuando llegue un mensaje nuevo
+ .accesskey = A
+dock-icon-legend = Insignia del icono de la aplicación
+dock-icon-show-label =
+ .value = Icono insignia de aplicación con:
+count-unread-messages-radio =
+ .label = Cuenta de mensajes no leídos
+ .accesskey = u
+count-new-messages-radio =
+ .label = Cuenta de mensajes nuevos
+ .accesskey = C
+notification-settings-info2 = Puede desactivar la insignia en el panel Notificaciones de los ajustes del sistema.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/fonts.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/fonts.ftl
new file mode 100644
index 0000000000..b4e40fed6d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = ({ $name }) por omisión
+fonts-label-default-unnamed =
+ .label = Por omisión
+fonts-encoding-dialog-title =
+ .title = Tipografías y codificación
+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 = Latin
+font-language-group-japanese =
+ .label = Japonés
+font-language-group-trad-chinese =
+ .label = Chino tradicional (Taiwan)
+font-language-group-simpl-chinese =
+ .label = Chino simplificado
+font-language-group-trad-chinese-hk =
+ .label = Chino tradicional (Hong Kong)
+font-language-group-korean =
+ .label = Coreano
+font-language-group-cyrillic =
+ .label = Cirílico
+font-language-group-el =
+ .label = Griego
+font-language-group-other =
+ .label = Otros sistemas de escritura
+font-language-group-thai =
+ .label = Tailandés
+font-language-group-hebrew =
+ .label = Hebreo
+font-language-group-arabic =
+ .label = Árabe
+font-language-group-devanagari =
+ .label = Devanagari
+font-language-group-tamil =
+ .label = Tamil
+font-language-group-armenian =
+ .label = Armenio
+font-language-group-bengali =
+ .label = Bengalí
+font-language-group-canadian =
+ .label = Silabario unificado canadiense
+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 = Khmer
+font-language-group-malayalam =
+ .label = Malayo
+font-language-group-math =
+ .label = Matemáticas
+font-language-group-odia =
+ .label = Odia
+font-language-group-telugu =
+ .label = Telugu
+font-language-group-kannada =
+ .label = Kannada
+font-language-group-sinhala =
+ .label = Sinhala
+font-language-group-tibetan =
+ .label = Tibetano
+
+## Default font type
+
+default-font-serif =
+ .label = Serif
+default-font-sans-serif =
+ .label = Sans Serif
+font-size-proportional-label =
+ .value = Tamaño:
+ .accesskey = m
+font-size-monospace-label =
+ .value = Tamaño:
+ .accesskey = m
+font-serif-label =
+ .value = Serif:
+ .accesskey = S
+font-sans-serif-label =
+ .value = Sans-serif:
+ .accesskey = n
+font-monospace-label =
+ .value = Tipo fijo:
+ .accesskey = M
+font-min-size-label =
+ .value = Tamaño de letra mínimo:
+ .accesskey = z
+min-size-none =
+ .label = Ninguno
+
+## Fonts in message
+
+font-control-legend = Control de tipografía
+use-document-fonts-checkbox =
+ .label = Permitir a los mensajes usar otros tipos
+ .accesskey = o
+use-fixed-width-plain-checkbox =
+ .label = Usar tipografías de ancho fijo para mensajes de texto sin formato
+ .accesskey = x
+
+## Language settings
+
+text-encoding-legend = Codificación de texto
+text-encoding-description = Fijar la codificación por omisión para enviar y recibir mensajes
+font-outgoing-email-label =
+ .value = Correo saliente:
+ .accesskey = s
+font-incoming-email-label =
+ .value = Correo entrante:
+ .accesskey = e
+default-font-reply-checkbox =
+ .label = Cuando sea posible, usar la codificación por omisión en las respuestas
+ .accesskey = u
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/languages.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/languages.ftl
new file mode 100644
index 0000000000..dfd8a3e9ef
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Subir
+ .accesskey = u
+languages-customize-movedown =
+ .label = Bajar
+ .accesskey = B
+languages-customize-remove =
+ .label = Eliminar
+ .accesskey = R
+languages-customize-select-language =
+ .placeholder = Seleccione qué idioma añadir…
+languages-customize-add =
+ .label = Añadir
+ .accesskey = A
+messenger-languages-window2 =
+ .title = Ajustes de idioma de { -brand-short-name }
+messenger-languages-dialog-title = Ajustes de idioma de { -brand-short-name }
+messenger-languages-description = { -brand-short-name } mostrará el primer idioma como predeterminado y mostrará idiomas alternativos si es necesario en el orden en que aparecen.
+messenger-languages-search = Buscar más idiomas…
+messenger-languages-searching =
+ .label = Buscando idiomas…
+messenger-languages-downloading =
+ .label = Descargando…
+messenger-languages-select-language =
+ .label = Seleccione qué idioma añadir…
+ .placeholder = Select a language to add…
+messenger-languages-installed-label = Idiomas instalados
+messenger-languages-available-label = Idiomas disponibles
+messenger-languages-error = { -brand-short-name } no puede actualizar sus idiomas ahora. Compruebe que está conectado a Internet o vuelva a intentarlo.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/new-tag.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/new-tag.ftl
new file mode 100644
index 0000000000..6aa47be9d0
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Nueva etiqueta
+tag-dialog-title = Nueva etiqueta
+tag-name-label =
+ .value = Nombre de etiqueta:
+ .accesskey = t
+tag-color-label =
+ .value = Color:
+ .accesskey = C
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/notifications.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/notifications.ftl
new file mode 100644
index 0000000000..e7bb75145e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 nuevo correo
+notifications-dialog-title = Personalizar alerta de nuevo correo
+customize-alert-description = Escoja qué campos mostrar en la notificación de alerta:
+preview-text-checkbox =
+ .label = Texto de previsualización de mensaje
+ .accesskey = T
+subject-checkbox =
+ .label = Asunto
+ .accesskey = A
+sender-checkbox =
+ .label = Remitente
+ .accesskey = R
+
+## 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 alertas de nuevo correo durante
+ .accesskey = M
+open-time-label-after =
+ .value = segundos
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/offline.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/offline.ftl
new file mode 100644
index 0000000000..62e0d91db3
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Configuración sin conexión
+offline-dialog-title = Configuración sin conexión
+autodetect-online-label =
+ .label = Seguir automáticamente el estado de conexión detectado
+ .accesskey = d
+offline-preference-startup-label = Indicar manualmente el estado al iniciar:
+status-radio-remember =
+ .label = Recordar el estado de conexión anterior
+ .accesskey = R
+status-radio-ask =
+ .label = Preguntarme el estado de conexión
+ .accesskey = d
+status-radio-always-online =
+ .label = Con conexión
+ .accesskey = x
+status-radio-always-offline =
+ .label = Sin conexión
+ .accesskey = o
+going-online-label = ¿Enviar mensajes pendientes al pasar a modo con conexión?
+going-online-auto =
+ .label = Sí
+ .accesskey = S
+going-online-not =
+ .label = No
+ .accesskey = N
+going-online-ask =
+ .label = Preguntarme
+ .accesskey = P
+going-offline-label = ¿Descargar mensajes para su uso desconectado al pasar a modo sin conexión?
+going-offline-auto =
+ .label = Siempre
+ .accesskey = m
+going-offline-not =
+ .label = Nunca
+ .accesskey = c
+going-offline-ask =
+ .label = Preguntarme
+ .accesskey = e
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/passwordManager.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/passwordManager.ftl
new file mode 100644
index 0000000000..d3b82bf970
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Credenciales guardadas
+saved-logins-title = Inicios de sesión guardados
+window-close =
+ .key = w
+focus-search-primary-shortcut =
+ .key = f
+focus-search-alt-shortcut =
+ .key = k
+copy-provider-url-cmd =
+ .label = Copiar URL
+ .accesskey = y
+copy-username-cmd =
+ .label = Copiar nombre de usuario
+ .accesskey = U
+edit-username-cmd =
+ .label = Editar nombre de usuario
+ .accesskey = d
+copy-password-cmd =
+ .label = Copiar contraseña
+ .accesskey = C
+edit-password-cmd =
+ .label = Editar contraseña
+ .accesskey = E
+search-filter =
+ .accesskey = S
+ .placeholder = Buscar
+column-heading-provider =
+ .label = Proveedor
+column-heading-username =
+ .label = Nombre de usuario
+column-heading-password =
+ .label = Contraseña
+column-heading-time-created =
+ .label = Usada por primera vez
+column-heading-time-last-used =
+ .label = Usada por última vez
+column-heading-time-password-changed =
+ .label = Modificada por última vez
+column-heading-times-used =
+ .label = Veces usada
+remove =
+ .label = Eliminar
+ .accesskey = R
+import =
+ .label = Importar…
+ .accesskey = I
+password-close-button =
+ .label = Cerrar
+ .accesskey = C
+show-passwords =
+ .label = Mostrar contraseñas
+ .accesskey = P
+hide-passwords =
+ .label = Ocultar contraseñas
+ .accesskey = P
+logins-description-all = En este equipo se guardan credenciales de los siguientes proveedores
+logins-description-filtered = Las siguientes credenciales coinciden con su búsqueda:
+remove-all =
+ .label = Eliminar todo
+ .accesskey = A
+remove-all-shown =
+ .label = Eliminar todo lo mostrado
+ .accesskey = A
+remove-all-passwords-prompt = ¿Está seguro de eliminar todas las contraseñas?
+remove-all-passwords-title = Eliminar todas las contraseñas
+no-master-password-prompt = ¿Está seguro de que desea mostrar todas las contraseñas?
+
+## OS Authentication dialog
+
+# This message can be seen by trying to show or copy the passwords.
+password-os-auth-dialog-message = Verique su identidad para mostrar las contraseñas 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 = mostrar las contraseñas guardadas
+# Don't change this label.
+password-os-auth-dialog-caption = { -brand-full-name }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/permissions.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/permissions.ftl
new file mode 100644
index 0000000000..50f07cad58
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Excepciones
+permissions-dialog-title = Excepciones
+permission-preferences-close-window =
+ .key = w
+website-address-label =
+ .value = Dirección del sitio web:
+ .accesskey = D
+block-button =
+ .label = Bloquear
+ .accesskey = B
+allow-session-button =
+ .label = Permitir durante la sesión
+ .accesskey = P
+allow-button =
+ .label = Permitir
+ .accesskey = m
+treehead-sitename-label =
+ .label = Sitio
+treehead-status-label =
+ .label = Estado
+remove-site-button =
+ .label = Eliminar sitio
+ .accesskey = E
+remove-all-site-button =
+ .label = Eliminar todos los sitios
+ .accesskey = a
+cancel-button =
+ .label = Cancelar
+ .accesskey = C
+save-button =
+ .label = Guardar cambios
+ .accesskey = G
+permission-can-label = Permitir
+permission-can-access-first-party-label = Permitir solo primeras partes
+permission-can-session-label = Permitir durante la sesión
+permission-cannot-label = Bloquear
+invalid-uri-message = Introduzca un nombre de servidor válido
+invalid-uri-title = Introducido un nombre de servidor no válido
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/preferences.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/preferences.ftl
new file mode 100644
index 0000000000..e55f99b4f5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/preferences.ftl
@@ -0,0 +1,785 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = Cerrar
+preferences-doc-title2 = Ajustes
+category-list =
+ .aria-label = Categorías
+pane-general-title = General
+category-general =
+ .tooltiptext = { pane-general-title }
+pane-compose-title = Redacción
+category-compose =
+ .tooltiptext = Redacción
+pane-privacy-title = Privacidad y seguridad
+category-privacy =
+ .tooltiptext = Privacidad y seguridad
+pane-chat-title = Chat
+category-chat =
+ .tooltiptext = Chat
+pane-calendar-title = Calendario
+category-calendar =
+ .tooltiptext = Calendario
+pane-sync-title = Sincronizar
+category-sync =
+ .tooltiptext = Sincronizar
+general-language-and-appearance-header = Idioma y apariencia
+general-incoming-mail-header = Mensajes entrantes
+general-files-and-attachment-header = Archivos y adjuntos
+general-tags-header = Etiquetas
+general-reading-and-display-header = Lectura y visualización
+general-updates-header = Actualizaciones
+general-network-and-diskspace-header = Red y espacio en disco
+general-indexing-label = Indexado
+composition-category-header = Redacción
+composition-attachments-header = Adjuntos
+composition-spelling-title = Ortografía
+compose-html-style-title = Estilo HTML
+composition-addressing-header = Direcciones
+privacy-main-header = Privacidad
+privacy-passwords-header = Contraseña
+privacy-junk-header = Correo basura
+collection-header = Recopilación y uso de datos de { -brand-short-name }
+collection-description = Nos esforzamos en proporcionarle opciones y recopilar solo lo necesario para proporcionarle { -brand-short-name } y mejorarlo para todos. Siempre solicitamos permiso antes de recibir información personal.
+collection-privacy-notice = Aviso de privacidad
+collection-health-report-telemetry-disabled = Ha dejado de permitir a { -vendor-short-name } capturar datos técnicos y de interacción. Todos los datos pasados se eliminarán en 30 días.
+collection-health-report-telemetry-disabled-link = Más información
+collection-health-report =
+ .label = Permitir a { -brand-short-name } enviar datos técnicos y de interacción a { -vendor-short-name }
+ .accesskey = r
+collection-health-report-link = Más información
+# This message is displayed above disabled data sharing options in developer builds
+# or builds with no Telemetry support available.
+collection-health-report-disabled = El envío de datos está desactivado en la configuración de este binario
+collection-backlogged-crash-reports =
+ .label = Permitir a { -brand-short-name } enviar informes de fallo registrados en su nombre
+ .accesskey = c
+collection-backlogged-crash-reports-link = Más información
+privacy-security-header = Seguridad
+privacy-scam-detection-title = Detección de fraude
+privacy-anti-virus-title = Antivirus
+privacy-certificates-title = Certificados
+chat-pane-header = Chat
+chat-status-title = Estado
+chat-notifications-title = Notificaciones
+chat-pane-styling-header = Estilo
+choose-messenger-language-description = Elija los idiomas usados para mostrar los menús, mensajes y notificaciones de { -brand-short-name }.
+manage-messenger-languages-button =
+ .label = Configurar alternativas…
+ .accesskey = u
+confirm-messenger-language-change-description = Reinicie { -brand-short-name } para aplicar los cambios
+confirm-messenger-language-change-button = Aplicar y reiniciar
+update-setting-write-failure-title = Error al guardar las preferencias de actualización
+# Variables:
+# $path (String) - Path to the configuration file
+# The newlines between the main text and the line containing the path is
+# intentional so the path is easier to identify.
+update-setting-write-failure-message =
+ { -brand-short-name } ha encontrado un error y no ha grabado este cambio. Tenga en cuenta que cambiar esta preferencia de actualización requiere permisos para escribir en el archivo de debajo. Usted o un administrador de sistemas pueden resolver el error concediendo al grupo Usuarios control completo sobre este archivo.
+
+ No se puede escribir en el archivo: { $path }
+update-in-progress-title = Actualización en progreso
+update-in-progress-message = ¿Quiere que { -brand-short-name } continúe con esta actualización?
+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 = Configuración de la cuenta
+open-addons-sidebar-button = Complementos y temas
+
+## OS Authentication dialog
+
+# This message can be seen by trying to add a Primary Password.
+primary-password-os-auth-dialog-message-win = Para crear una contraseña principal, introduzca sus credenciales de inicio de sesión en Windows. Esto ayuda a proteger la seguridad de sus cuentas.
+# 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 = crear una contraseña 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 de inicio de { -brand-short-name }
+start-page-label =
+ .label = Al iniciarse { -brand-short-name }, mostrar la página de inicio en el área de mensajes
+ .accesskey = i
+location-label =
+ .value = Dirección:
+ .accesskey = D
+restore-default-label =
+ .label = Rest. valores predet.
+ .accesskey = R
+default-search-engine = Buscador predeterminado
+add-web-search-engine =
+ .label = Agregar…
+ .accesskey = A
+remove-search-engine =
+ .label = Eliminar
+ .accesskey = l
+add-opensearch-provider-title = Añadir proveedor OpenSearch
+add-opensearch-provider-text = Introduzca la URL del proveedor de OpenSearch a añadir. Utilice la URL directa del archivo de descripción de OpenSearch o una URL donde se pueda descubrir automáticamente.
+adding-opensearch-provider-failed-title = No se ha podido añadir el proveedor OpenSearch
+# Variables:
+# $url (String) - URL an OpenSearch provider was requested for.
+adding-opensearch-provider-failed-text = No se ha podido añadir el proveedor OpenSearch para { $url }.
+minimize-to-tray-label =
+ .label = Cuando se minimiza { -brand-short-name }, moverlo a la bandeja del sistema
+ .accesskey = m
+new-message-arrival = Cuando lleguen mensajes nuevos:
+mail-play-sound-label =
+ .label =
+ { PLATFORM() ->
+ [macos] Reproducir el siguiente archivo de sonido:
+ *[other] Reproducir un sonido
+ }
+ .accesskey = o
+mail-play-button =
+ .label = Reproducir
+ .accesskey = r
+change-dock-icon = Cambiar preferencias del icono de la aplicación
+app-icon-options =
+ .label = Opciones del icono de la aplicación…
+ .accesskey = c
+notification-settings2 = Las alertas y el sonido predeterminado se pueden desactivar en el panel de notificaciones de los ajustes del sistema.
+animated-alert-label =
+ .label = Mostrar una alerta
+ .accesskey = M
+customize-alert-label =
+ .label = Personalizar…
+ .accesskey = P
+biff-use-system-alert =
+ .label = Usar la notificación del sistema
+tray-icon-unread-label =
+ .label = Mostrar un icono en la barra de tareas para mensajes no leídos
+ .accesskey = t
+tray-icon-unread-description = Recomendado cuando se utilizan botones pequeños en la barra de tareas
+mail-system-sound-label =
+ .label = Sonido del sistema predeterminado para correo nuevo
+ .accesskey = S
+mail-custom-sound-label =
+ .label = Usar el siguiente archivo de sonido
+ .accesskey = U
+mail-browse-sound-button =
+ .label = Examinar…
+ .accesskey = x
+enable-gloda-search-label =
+ .label = Activar indexador y búsqueda global
+ .accesskey = A
+datetime-formatting-legend = Formato de fecha y hora
+language-selector-legend = Idioma
+allow-hw-accel =
+ .label = Usar aceleración hardware cuando esté disponible
+ .accesskey = h
+store-type-label =
+ .value = Tipo de almacenamiento de mensajes para las nuevas cuentas:
+ .accesskey = T
+mbox-store-label =
+ .label = Archivo por carpeta (mbox)
+maildir-store-label =
+ .label = Archivo por mensaje (maildir)
+scrolling-legend = Desplazamiento
+autoscroll-label =
+ .label = Usar desplazamiento automático
+ .accesskey = U
+smooth-scrolling-label =
+ .label = Usar desplazamiento suave
+ .accesskey = d
+browsing-gtk-use-non-overlay-scrollbars =
+ .label = Mostrar siempre las barras de desplazamiento
+ .accesskey = z
+window-layout-legend = Disposición de ventana
+draw-in-titlebar-label =
+ .label = Ocultar la barra de título de la ventana del sistema
+ .accesskey = O
+auto-hide-tabbar-label =
+ .label = Ocultar automáticamente la barra de pestañas
+ .accesskey = a
+auto-hide-tabbar-description = Ocultar la barra de pestañas cuando sólo hay una pestaña abierta
+system-integration-legend = Integración con el sistema
+always-check-default =
+ .label = Comprobar siempre al iniciar si { -brand-short-name } es el cliente de correo por omisión
+ .accesskey = C
+check-default-button =
+ .label = Comprobar ahora…
+ .accesskey = b
+# Note: This is the search engine name for all the different platforms.
+# Platforms that don't support it should be left blank.
+search-engine-name =
+ { PLATFORM() ->
+ [macos] Spotlight
+ [windows] Windows Search
+ *[other] { "" }
+ }
+search-integration-label =
+ .label = Permitir que { search-engine-name } busque en los mensajes
+ .accesskey = P
+config-editor-button =
+ .label = Editor de configuración…
+ .accesskey = E
+return-receipts-description = Determinar cómo gestiona { -brand-short-name } los acuses de recibo
+return-receipts-button =
+ .label = Acuses de recibo…
+ .accesskey = r
+update-app-legend = Actualizaciones de { -brand-short-name }
+# Variables:
+# $version (String): version of Thunderbird, e.g. 68.0.1
+update-app-version = Versión { $version }
+allow-description = Permitir a { -brand-short-name }
+automatic-updates-label =
+ .label = Instalar actualizaciones automáticamente (recomendado: mejora la seguridad)
+ .accesskey = I
+check-updates-label =
+ .label = Buscar actualizaciones, pero permitirme elegir si las instalo
+ .accesskey = B
+update-history-button =
+ .label = Mostrar historial de actualizaciones
+ .accesskey = M
+use-service =
+ .label = Usar un servicio en segundo plano para instalar actualizaciones
+ .accesskey = v
+cross-user-udpate-warning = Este ajuste se aplicará a todas las cuentas de Windows y a todos los perfiles de { -brand-short-name } que usen esta instalación de { -brand-short-name }.
+networking-legend = Conexión
+proxy-config-description = Configurar cómo se conecta { -brand-short-name } a Internet
+network-settings-button =
+ .label = Configuración…
+ .accesskey = C
+offline-legend = Sin conexión
+offline-settings = Configurar modo sin conexión
+offline-settings-button =
+ .label = Sin conexión…
+ .accesskey = S
+diskspace-legend = Espacio en disco
+offline-compact-folder =
+ .label = Compactar todas las carpetas cuando se ahorren más de
+ .accesskey = C
+offline-compact-folder-automatically =
+ .label = Preguntar siempre vez antes de compactar
+ .accesskey = P
+compact-folder-size =
+ .value = MB en 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 = Usar hasta
+ .accesskey = U
+use-cache-after = MB de espacio para la caché
+
+##
+
+smart-cache-label =
+ .label = Desactivar administración automática de caché
+ .accesskey = D
+clear-cache-button =
+ .label = Limpiar ahora
+ .accesskey = L
+clear-cache-shutdown-label =
+ .label = Borrar la caché al apagar
+ .accesskey = a
+fonts-legend = Tipografías y colores
+default-font-label =
+ .value = Tipo de letra predeterminado:
+ .accesskey = i
+default-size-label =
+ .value = Tamaño:
+ .accesskey = T
+font-options-button =
+ .label = Avanzadas…
+ .accesskey = v
+color-options-button =
+ .label = Colores…
+ .accesskey = C
+display-width-legend = Mensajes de texto sin formato
+# Note : convert-emoticons-label 'Emoticons' are also known as 'Smileys', e.g. :-)
+convert-emoticons-label =
+ .label = Mostrar emoticones como gráficos
+ .accesskey = M
+display-text-label = Al mostrar mensajes citados de texto sin formato:
+style-label =
+ .value = Estilo:
+ .accesskey = E
+regular-style-item =
+ .label = Normal
+bold-style-item =
+ .label = Negrita
+italic-style-item =
+ .label = Cursiva
+bold-italic-style-item =
+ .label = Negrita cursiva
+size-label =
+ .value = Tamaño:
+ .accesskey = a
+regular-size-item =
+ .label = Normal
+bigger-size-item =
+ .label = Mayor
+smaller-size-item =
+ .label = Menor
+quoted-text-color =
+ .label = Color:
+ .accesskey = o
+search-handler-table =
+ .placeholder = Filtrar tipos de contenido y acciones
+type-column-header = Tipo de contenido
+action-column-header = Acción
+save-to-label =
+ .label = Guardar archivos en
+ .accesskey = G
+choose-folder-label =
+ .label =
+ { PLATFORM() ->
+ [macos] Elegir…
+ *[other] Examinar…
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] E
+ *[other] x
+ }
+always-ask-label =
+ .label = Preguntarme siempre dónde guardar archivos
+ .accesskey = P
+display-tags-text = Las etiquetas pueden usarse para categorizar y priorizar sus mensajes.
+new-tag-button =
+ .label = Nuevo…
+ .accesskey = N
+edit-tag-button =
+ .label = Editar…
+ .accesskey = E
+delete-tag-button =
+ .label = Eliminar
+ .accesskey = r
+auto-mark-as-read =
+ .label = Marcar automáticamente mensajes como leídos
+ .accesskey = A
+mark-read-no-delay =
+ .label = Inmediatamente tras mostrarlo
+ .accesskey = n
+view-attachments-inline =
+ .label = Ver archivos adjuntos en línea
+ .accesskey = V
+
+## Note: This will concatenate to "After displaying for [___] seconds",
+## using (mark-read-delay) and a number (seconds-label).
+
+mark-read-delay =
+ .label = Tras mostrarlo durante
+ .accesskey = d
+seconds-label = segundos
+
+##
+
+open-msg-label =
+ .value = Abrir mensajes en:
+open-msg-tab =
+ .label = Una pestaña nueva
+ .accesskey = U
+open-msg-window =
+ .label = Una ventana mens. nueva
+ .accesskey = v
+open-msg-ex-window =
+ .label = Una ventana mens. existente
+ .accesskey = s
+close-move-delete =
+ .label = Cerrar ventana/pestaña del mensaje al moverlo o eliminarlo
+ .accesskey = C
+display-name-label =
+ .value = Nombre mostrado:
+condensed-addresses-label =
+ .label = Mostrar sólo el atributo 'nombre mostrado' para las personas de mi libreta de direcciones
+ .accesskey = b
+
+## Compose Tab
+
+forward-label =
+ .value = Reenviar mensajes:
+ .accesskey = m
+inline-label =
+ .label = Incorporados
+as-attachment-label =
+ .label = Como adjuntos
+extension-label =
+ .label = Añadir extensión al nombre de archivo
+ .accesskey = A
+
+## Note: This will concatenate to "Auto Save every [___] minutes",
+## using (auto-save-label) and a number (auto-save-end).
+
+auto-save-label =
+ .label = Guardar automáticamente cada
+ .accesskey = G
+auto-save-end = minutos
+
+##
+
+warn-on-send-accel-key =
+ .label = Confirmar al usar el atajo de teclado para envío de mensajes
+ .accesskey = n
+add-link-previews =
+ .label = Añadir vistas previas de enlaces al pegar direcciones URL
+ .accesskey = i
+spellcheck-label =
+ .label = Comprobar la ortografía antes de enviar
+ .accesskey = C
+spellcheck-inline-label =
+ .label = Activar corrección ortográfica al escribir
+ .accesskey = v
+language-popup-label =
+ .value = Idioma:
+ .accesskey = I
+download-dictionaries-link = Descargar más diccionarios
+font-label =
+ .value = Tipo de letra:
+ .accesskey = T
+font-size-label =
+ .value = Tamaño:
+ .accesskey = m
+default-colors-label =
+ .label = Usar los colores predeterminados del lector
+ .accesskey = d
+font-color-label =
+ .value = Color del texto:
+ .accesskey = x
+bg-color-label =
+ .value = Color de fondo:
+ .accesskey = C
+restore-html-label =
+ .label = Restaurar valores predeterminados
+ .accesskey = R
+default-format-label =
+ .label = Usar formato de párrafo en lugar de cuerpo de texto por omisión
+ .accesskey = P
+compose-send-format-title = Formato de envío
+compose-send-automatic-option =
+ .label = Automático
+compose-send-automatic-description = Si no se utiliza ningún estilo en el mensaje, enviar texto sin formato. De lo contrario, enviar con formato HTML con respaldo de texto sin formato.
+compose-send-both-option =
+ .label = HTML y texto sin formato
+compose-send-both-description = La aplicación de correo electrónico del destinatario determinará qué versión mostrar.
+compose-send-html-option =
+ .label = Solo HTML
+compose-send-html-description = Es posible que algunos destinatarios no puedan leer el mensaje sin un respaldo de texto sin formato.
+compose-send-plain-option =
+ .label = Solo texto sin formato
+compose-send-plain-description = Algunos estilos se convertirán en una alternativa simple y se desactivarán otras funciones de composición.
+autocomplete-description = Al enviar mensajes, buscar entradas coincidentes en:
+ab-label =
+ .label = Libretas de direcciones locales
+ .accesskey = L
+directories-label =
+ .label = Servidor de directorio:
+ .accesskey = S
+directories-none-label =
+ .none = Ninguno
+edit-directories-label =
+ .label = Editar directorios…
+ .accesskey = E
+email-picker-label =
+ .label = Añadir automáticamente las direcciones de correo saliente a mi(s):
+ .accesskey = A
+default-directory-label =
+ .value = Directorio de inicio por omisión en la ventana de la libreta de direcciones:
+ .accesskey = D
+default-last-label =
+ .none = Último directorio usado
+attachment-label =
+ .label = Comprobar adjuntos olvidados
+ .accesskey = b
+attachment-options-label =
+ .label = Palabras clave…
+ .accesskey = P
+enable-cloud-share =
+ .label = Ofrecerlo para compartir archivos mayores de
+cloud-share-size =
+ .value = MB
+add-cloud-account =
+ .label = Añadir…
+ .accesskey = d
+ .defaultlabel = Añadir…
+remove-cloud-account =
+ .label = Eliminar
+ .accesskey = m
+find-cloud-providers =
+ .value = Buscar más proveedores…
+cloud-account-description = Añadir un nuevo servicio de almacenamiento Filelink
+
+## Privacy Tab
+
+mail-content = Contenido de correo
+remote-content-label =
+ .label = Permitir contenido remoto en los mensajes
+ .accesskey = P
+exceptions-button =
+ .label = Excepciones…
+ .accesskey = n
+remote-content-info =
+ .value = Saber más sobre los problemas de privacidad del contenido remoto
+web-content = Contenido web
+history-label =
+ .label = Recordar sitios web y enlaces que he visitado
+ .accesskey = R
+cookies-label =
+ .label = Aceptar cookies de los sitios
+ .accesskey = A
+third-party-label =
+ .value = Aceptar cookies de terceros:
+ .accesskey = d
+third-party-always =
+ .label = Siempre
+third-party-never =
+ .label = Nunca
+third-party-visited =
+ .label = De sitios visitados
+keep-label =
+ .value = Conservar hasta que:
+ .accesskey = C
+keep-expire =
+ .label = caduquen
+keep-close =
+ .label = cierre { -brand-short-name }
+keep-ask =
+ .label = preguntarme cada vez
+cookies-button =
+ .label = Mostrar cookies…
+ .accesskey = M
+do-not-track-label =
+ .label = Enviar a los sitios web una señal "No rastrear" de que no quiere ser rastreado
+ .accesskey = n
+learn-button =
+ .label = Saber más
+dnt-learn-more-button =
+ .value = Saber más
+passwords-description = { -brand-short-name } puede recordar las contraseñas de todas sus cuentas.
+passwords-button =
+ .label = Contraseñas guardadas…
+ .accesskey = C
+primary-password-description = Una contraseña principal protege todas sus contraseñas, pero debe introducirla una vez por sesión.
+primary-password-label =
+ .label = Usar una contraseña principal
+ .accesskey = U
+primary-password-button =
+ .label = Cambiar contraseña principal…
+ .accesskey = C
+forms-primary-pw-fips-title = En este momento está en modo FIPS. FIPS exige una contraseña principal no vacía.
+forms-master-pw-fips-desc = Cambio de contraseña fallido
+junk-description = Establezca su configuración predeterminada para el correo no deseado. La configuración específica de cada cuenta puede realizarse en Configuración de las cuentas.
+junk-label =
+ .label = Cuando marco los mensajes como no deseados:
+ .accesskey = C
+junk-move-label =
+ .label = Moverlos a la carpeta "Correo no deseado" de la cuenta
+ .accesskey = o
+junk-delete-label =
+ .label = Eliminarlos
+ .accesskey = E
+junk-read-label =
+ .label = Marcar como leídos los mensajes calificados como no deseados
+ .accesskey = M
+junk-log-label =
+ .label = Activar el registro del filtro adaptativo de correo basura
+ .accesskey = A
+junk-log-button =
+ .label = Mostrar el registro
+ .accesskey = s
+reset-junk-button =
+ .label = Reiniciar datos de entrenamiento
+ .accesskey = R
+phishing-description = { -brand-short-name } puede analizar mensajes para identificar los que sean fraudulentos buscando técnicas comunes usadas para engañarle.
+phishing-label =
+ .label = Decirme si el mensaje que estoy leyendo parece un mensaje fraudulento
+ .accesskey = D
+antivirus-description = { -brand-short-name } puede hacer fácilmente que el software antivirus analice el correo entrante en busca de virus antes de que se guarde localmente.
+antivirus-label =
+ .label = Permitir a los antivirus poner en cuarentena mensajes individuales
+ .accesskey = P
+certificate-description = Cuando un servidor solicite mi certificado personal:
+certificate-auto =
+ .label = Seleccionar uno automáticamente
+ .accesskey = S
+certificate-ask =
+ .label = Preguntarme cada vez
+ .accesskey = P
+ocsp-label =
+ .label = Preguntar a los servidores respondedores de OCSP para confirmar la validez actual de los certificados
+ .accesskey = u
+certificate-button =
+ .label = Administrar certificados…
+ .accesskey = M
+security-devices-button =
+ .label = Dispositivos de seguridad…
+ .accesskey = D
+email-e2ee-header = Cifrado de extremo a extremo del correo electrónico
+account-settings = Configuración de la cuenta
+email-e2ee-enable-info = Configurar cuentas de correo electrónico e identidades para el cifrado de extremo a extremo en la configuración de la cuenta.
+email-e2ee-automatism = Uso automático de cifrado
+email-e2ee-automatism-pre =
+ { -brand-short-name } puede ayudar activando o desactivando automáticamente el cifrado al redactar un correo electrónico.
+ La activación / desactivación automática se basa en la disponibilidad de claves o certificados de corresponsales válidos y aceptados.
+email-e2ee-auto-on =
+ .label = Activar el cifrado automáticamente cuando sea posible
+email-e2ee-auto-off =
+ .label = Desactivar automáticamente el cifrado cuando los destinatarios cambien y el cifrado ya no sea posible
+email-e2ee-auto-off-notify =
+ .label = Mostrar una notificación cuando el cifrado se desactive automáticamente
+email-e2ee-automatism-post =
+ Las decisiones automáticas se pueden anular activando o desactivando manualmente el cifrado al redactar un mensaje.
+ Nota: el cifrado siempre se activa automáticamente al responder a un mensaje cifrado.
+
+## Chat Tab
+
+startup-label =
+ .value = Al iniciar { -brand-short-name }:
+ .accesskey = A
+offline-label =
+ .label = Mantener mis cuentas de chat no conectadas
+auto-connect-label =
+ .label = Conectar a mis cuentas automáticamente
+
+## 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 = Permitir a mis contactos saber que estoy inactivo tras
+ .accesskey = P
+idle-time-label = minutos de inactividad
+
+##
+
+away-message-label =
+ .label = y establecer mi estado en Ausente con este mensaje de estado:
+ .accesskey = b
+send-typing-label =
+ .label = Enviar notificaciones de escritura en conversaciones
+ .accesskey = E
+notification-label = Cuando lleguen mensajes dirigidos a usted:
+show-notification-label =
+ .label = Mostrar una notificación:
+ .accesskey = M
+notification-all =
+ .label = con el nombre del remitente y una vista preliminar del mensaje
+notification-name =
+ .label = con el nombre del remitente únicamente
+notification-empty =
+ .label = sin ninguna información
+notification-type-label =
+ .label =
+ { PLATFORM() ->
+ [macos] Animar icono del dock
+ *[other] Hacer parpadear el elemento de la barra de tareas
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] d
+ *[other] H
+ }
+chat-play-sound-label =
+ .label = Reproducir un sonido
+ .accesskey = R
+chat-play-button =
+ .label = Reproducir
+ .accesskey = c
+chat-system-sound-label =
+ .label = Sonido predeterminado del sistema para nuevo correo
+ .accesskey = S
+chat-custom-sound-label =
+ .label = Usar el siguiente archivo de sonido
+ .accesskey = U
+chat-browse-sound-button =
+ .label = Examinar…
+ .accesskey = x
+theme-label =
+ .value = Tema:
+ .accesskey = T
+style-mail =
+ .label = { -brand-short-name }
+style-bubbles =
+ .label = Burbujas
+style-dark =
+ .label = Oscuro
+style-paper =
+ .label = Hojas de papel
+style-simple =
+ .label = Simple
+preview-label = Vista preliminar:
+no-preview-label = No está disponible la vista preliminar
+no-preview-description = Este tema no es válido o no está actualmente disponible (complemento desactivado, modo seguro…).
+chat-variant-label =
+ .value = Variante:
+ .accesskey = V
+# This is used to determine the width of the search field in about:preferences,
+# in order to make the entire placeholder string visible
+#
+# Please keep the placeholder string short to avoid truncation.
+#
+# Notice: The value of the `.style` attribute is a CSS string, and the `width`
+# is the name of the CSS property. It is intended only to adjust the element's width.
+# Do not translate.
+search-preferences-input2 =
+ .style = width: 15.4em
+ .placeholder = Buscar en ajustes
+
+## Settings UI Search Results
+
+search-results-header = Resultados de la búsqueda
+# `<span data-l10n-name="query"></span>` will be replaced by the search term.
+search-results-empty-message2 =
+ { PLATFORM() ->
+ [windows] ¡Lo sentimos! No hay resultados para "<span data-l10n-name="query"></span>" en los ajustes.
+ *[other] ¡Lo sentimos! No hay resultados para "<span data-l10n-name="query"></span>" en los ajustes.
+ }
+search-results-help-link = ¿Necesita ayuda? Visite la ayuda de <a data-l10n-name="url">{ -brand-short-name }</a>
+
+## Sync Tab
+
+sync-signedout-caption = Llévese la web con usted
+sync-signedout-description = Sincronice sus cuentas, libretas de direcciones, calendarios, complementos y ajustes en todos sus dispositivos.
+# Note: "Sync" represents the Firefox Sync product so it shouldn't be translated.
+sync-signedout-account-signin-btn = Iniciar sesión en Sync…
+sync-pane-header = Sincronizar
+# Variables:
+# $userEmail (String) - The email logged into Sync.
+sync-pane-email-not-verified = “{ $userEmail }” no está verificado.
+# Variables:
+# $userEmail (String) - The email logged into Sync.
+sync-signedin-login-failure = Inicie sesión para volver a conectarse con “{ $userEmail }”
+sync-pane-resend-verification = Volver a enviar la verificación
+sync-pane-sign-in = Iniciar sesión
+sync-pane-remove-account = Eliminar la cuenta
+sync-pane-edit-photo =
+ .title = Cambiar la imagen del perfil
+sync-pane-manage-account = Administrar la cuenta
+sync-pane-sign-out = Cerrar la sesión…
+sync-pane-device-name-title = Nombre del dispositivo
+sync-pane-change-device-name = Cambiar el nombre del dispositivo
+sync-pane-cancel = Cancelar
+sync-pane-save = Guardar
+sync-pane-show-synced-header-on = Sincronización ACTIVADA
+sync-pane-show-synced-header-off = Sincronización DESACTIVADA
+sync-pane-sync-now = Sincronizar ahora
+sync-panel-sync-now-syncing = Sincronizando…
+show-synced-list-heading = En este momento está sincronizando estos elementos:
+show-synced-learn-more = Saber más…
+show-synced-item-account = Cuentas de correo electrónico
+show-synced-item-address = Libretas de direcciones
+show-synced-item-calendar = Calendarios
+show-synced-item-identity = Identidades
+show-synced-item-passwords = Contraseñas
+show-synced-change = Cambiar…
+synced-acount-item-server-config = Configuración del servidor
+synced-acount-item-filters = Filtros
+synced-acount-item-keys = OpenPGP - S/MIME
+sync-disconnected-text = Sincronice sus cuentas de correo electrónico, libretas de direcciones, calendarios e identidades en todos sus dispositivos.
+sync-disconnected-turn-on-sync = Activar la sincronización…
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/receipts.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/receipts.ftl
new file mode 100644
index 0000000000..c37a0c5c74
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/receipts.ftl
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+receipts-dialog-window =
+ .title = Acuses de recibo
+receipts-dialog-title = Acuses de recibo
+return-receipt-checkbox-control =
+ .label = Al enviar mensajes, solicitar siempre un acuse de recibo
+ .accesskey = v
+receipt-arrive-label = Cuando llegue un acuse de recibo:
+receipt-leave-radio-control =
+ .label = Dejarlo en mi bandeja de entrada
+ .accesskey = D
+receipt-move-radio-control =
+ .label = Moverlo a mi carpeta “Enviados”
+ .accesskey = M
+receipt-request-label = Cuando reciba una solicitud de acuse de recibo:
+receipt-return-never-radio-control =
+ .label = Nunca enviar acuse de recibo
+ .accesskey = n
+receipt-return-some-radio-control =
+ .label = Permitir acuse de recibo para algunos mensajes
+ .accesskey = r
+receipt-not-to-cc-label =
+ .value = Si no estoy en el Para: o Cc: del mensaje:
+ .accesskey = i
+receipt-send-never-label =
+ .label = No enviar nunca
+receipt-send-always-label =
+ .label = Enviar siempre
+receipt-send-ask-label =
+ .label = Preguntarme
+sender-outside-domain-label =
+ .value = Si el remitente no está en mi dominio:
+ .accesskey = t
+other-cases-text-label =
+ .value = En los demás casos:
+ .accesskey = a
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/sync-dialog.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/sync-dialog.ftl
new file mode 100644
index 0000000000..ecd5da54f6
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/sync-dialog.ftl
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+config-sync-dailog-title =
+ .title = Elija lo que quiere sincronizar
+sync-dialog =
+ .buttonlabelaccept = Guardar cambios
+ .buttonaccesskeyaccept = G
+ .buttonlabelextra2 = Desconectar...
+ .buttonaccesskeyextra2 = D
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/system-integration.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/preferences/system-integration.ftl
new file mode 100644
index 0000000000..05ed0ffe33
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Integración con el sistema
+system-integration-dialog-title = Integración con el sistema
+system-integration-dialog =
+ .buttonlabelaccept = Definir como predet.
+ .buttonlabelcancel = Omitir integración
+ .buttonlabelcancel2 = Cancelar
+default-client-intro = Usar { -brand-short-name } como cliente predeterminado para:
+unset-default-tooltip = No es posible eliminar { -brand-short-name } como cliente predeterminado desde el propio { -brand-short-name }. Para que otra aplicación sea la predeterminada debe usar su diálogo 'Establecer como predeterminada'.
+checkbox-email-label =
+ .label = Correo-e
+ .tooltiptext = { unset-default-tooltip }
+checkbox-newsgroups-label =
+ .label = Grupos de noticias
+ .tooltiptext = { unset-default-tooltip }
+checkbox-feeds-label =
+ .label = Canales
+ .tooltiptext = { unset-default-tooltip }
+checkbox-calendar-label =
+ .label = Calendario
+ .tooltiptext = { unset-default-tooltip }
+# Note: This is the search engine name for all the different platforms.
+# Platforms that don't support it should be left blank.
+system-search-engine-name =
+ { PLATFORM() ->
+ [macos] Spotlight
+ [windows] Windows Search
+ *[other] { "" }
+ }
+system-search-integration-label =
+ .label = Permitir que { system-search-engine-name } busque en los mensajes
+ .accesskey = P
+check-on-startup-label =
+ .label = Hacer siempre esta comprobación al iniciar { -brand-short-name }
+ .accesskey = H
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/shortcuts.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/shortcuts.ftl
new file mode 100644
index 0000000000..672a161a05
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/shortcuts.ftl
@@ -0,0 +1,113 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Shortcuts
+
+# Variables:
+# $key (String) - The shortcut key.
+shortcut-key = { $key }
+
+meta-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌘ { $key }
+ *[other] Meta+{ $key }
+ }
+
+ctrl-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ { $key }
+ *[other] Ctrl+{ $key }
+ }
+
+shift-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⇧ { $key }
+ *[other] Shift+{ $key }
+ }
+
+alt-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌥ { $key }
+ *[other] Alt+{ $key }
+ }
+
+meta-ctrl-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ ⌘ { $key }
+ *[other] Meta+Ctrl+{ $key }
+ }
+
+meta-alt-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌥ ⌘ { $key }
+ *[other] Meta+Alt+{ $key }
+ }
+
+ctrl-alt-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ ⌥ { $key }
+ *[other] Ctrl+Alt+{ $key }
+ }
+
+meta-ctrl-alt-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ ⌥ ⌘ { $key }
+ *[other] Meta+Ctrl+Alt+{ $key }
+ }
+
+meta-shift-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⇧ ⌘ { $key }
+ *[other] Meta+Shift+{ $key }
+ }
+
+ctrl-shift-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ ⇧ { $key }
+ *[other] Ctrl+Shift+{ $key }
+ }
+
+meta-ctrl-shift-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ ⇧ ⌘ { $key }
+ *[other] Meta+Ctrl+Shift+{ $key }
+ }
+
+alt-shift-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌥ ⇧ { $key }
+ *[other] Alt+Shift+{ $key }
+ }
+
+meta-shift-alt-shortcut-key2 =
+ { PLATFORM() ->
+ [macos] ⌥ ⇧ ⌘ { $key }
+ *[other] Meta+Alt+Shift+{ $key }
+ }
+
+ctrl-shift-alt-shortcut-key2 =
+ { PLATFORM() ->
+ [macos] ⌃ ⌥ ⇧ { $key }
+ *[other] Ctrl+Alt+Shift+{ $key }
+ }
+
+meta-ctrl-shift-alt-shortcut-key2 =
+ { PLATFORM() ->
+ [macos] ⌃ ⌥ ⇧ ⌘ { $key }
+ *[other] Meta+Ctrl+Alt+Shift+{ $key }
+ }
+
+# Variables:
+# $title (String): The title coming from the original element.
+# $shortcut (String): The shortcut generated from the keystroke combination.
+button-shortcut-string =
+ .title = { $title } ({ $shortcut })
+
+# Variables:
+# $label (String): The text label coming from the original element.
+# $shortcut (String): The shortcut generated from the keystroke combination.
+menuitem-shortcut-string =
+ .label = { $label }
+ .acceltext = { $shortcut }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/syncAccounts.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/syncAccounts.ftl
new file mode 100644
index 0000000000..1d07e5bf26
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/syncAccounts.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 strings in this file relate to the configuration of Mozilla accounts for sync.
+
+
+## These strings are shown in a desktop notification after the user requests we resend a verification email.
+
+sync-verification-sent-title = Verificación enviada
+# Variables:
+# $userEmail (String) - Email address of the account used for sync.
+sync-verification-sent-body = Se ha enviado un enlace de verificación a { $userEmail }.
+sync-verification-not-sent-title = No ha sido posible enviar la verificación
+sync-verification-not-sent-body = No hemos podido enviar un correo de verificación en este momento, vuelva a intentarlo más tarde.
+
+## These strings are shown in a confirmation dialog when the user chooses to sign out.
+
+sync-signout-dialog-title = ¿Cerrar sesión de la cuenta?
+sync-signout-dialog-body = Los datos sincronizados permanecerán en su cuenta.
+sync-signout-dialog-button = Cerrar sesión
+
+## These strings are shown in a confirmation dialog when the user chooses to stop syncing.
+
+sync-disconnect-dialog-title = ¿Desconectar?
+sync-disconnect-dialog-body = { -brand-product-name } dejará de sincronizarse pero no eliminará ninguno de sus datos en este dispositivo.
+sync-disconnect-dialog-button = Desconectar
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/treeView.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/treeView.ftl
new file mode 100644
index 0000000000..5276fe72b1
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/treeView.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/.
+
+
+## Table
+
+tree-list-view-row-select =
+ .alt = Casilla de verificación para seleccionar la fila actual
+ .title = Seleccionar la fila actual
+tree-list-view-row-deselect =
+ .alt = Casilla de verificación para deseleccionar la fila actual
+ .title = Deseleccionar la fila actual
+tree-list-view-row-delete =
+ .title = Eliminar la fila actual
+tree-list-view-row-restore =
+ .title = Restaurar la fila actual
+tree-list-view-column-picker =
+ .title = Seleccione las columnas que desea mostrar
+tree-list-view-column-picker-restore =
+ .label = Restaurar el orden de la columnas
+tree-list-view-row-thread-icon =
+ .alt = Indicador de mensaje de conversación
+ .title = Este mensaje forma parte de una conversación
+tree-list-view-row-thread-button =
+ .title = Este mensaje forma parte de una conversación
+tree-list-view-row-ignored-thread = Conversación ignorada
+tree-list-view-row-ignored-thread-icon =
+ .alt = Indicador de mensaje de conversación
+ .title = Se ha ignorado este mensaje de conversación
+tree-list-view-row-ignored-thread-button =
+ .title = Se ha ignorado este mensaje de conversación
+tree-list-view-row-ignored-subthread = Sub-conversación ignorada
+tree-list-view-row-ignored-subthread-icon =
+ .alt = Indicador de mensaje de conversación
+ .title = Se ha ignorado esta sub-conversación
+tree-list-view-row-ignored-subthread-button =
+ .title = Se ha ignorado esta sub-conversación
+tree-list-view-row-watched-thread = Conversación observada
+tree-list-view-row-watched-thread-icon =
+ .alt = Indicador de mensaje de conversación
+ .title = Se está observando este mensaje de conversación
+tree-list-view-row-watched-thread-button =
+ .title = Se está observando este mensaje de conversación
+tree-list-view-row-flagged =
+ .alt = Indicador de mensaje con estrella
+ .title = Mensaje con estrella
+tree-list-view-row-flag =
+ .alt = Indicador de mensaje con estrella
+ .title = Mensaje sin estrella
+tree-list-view-row-attach =
+ .alt = Indicador de adjuntos
+ .title = El mensaje contiene adjuntos
+tree-list-view-row-spam =
+ .alt = Indicador de mensaje no deseado
+ .title = Mensaje marcado como no deseado
+tree-list-view-row-not-spam =
+ .alt = Indicador de mensaje no deseado
+ .title = Mensaje sin marca de no deseado
+tree-list-view-row-read =
+ .alt = Indicador de estado de leídos
+ .title = Estado de mensajes leídos
+tree-list-view-row-not-read =
+ .alt = Indicador de estado de no leídos
+ .title = Estado de mensajes no leídos
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/troubleshootMode.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000..943cd30cf9
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 resolución de problemas de { -brand-short-name }
+ .style = width: 37em;
+troubleshoot-mode-dialog-title = Modo de resolución de problemas de { -brand-short-name }
+troubleshoot-mode-description = Use el modo de resolución de problemas de { -brand-short-name } para diagnosticar problemas. Sus complementos y personalizaciones se desactivarán temporalmente.
+troubleshoot-mode-description2 = Puede hacer permanentes todos o algunos de estos cambios:
+troubleshoot-mode-disable-addons =
+ .label = Desactivar todos los complementos
+ .accesskey = D
+troubleshoot-mode-reset-toolbars =
+ .label = Restablecer barras de herramientas y controles
+ .accesskey = R
+troubleshoot-mode-change-and-restart =
+ .label = Hacer cambios y reiniciar
+ .accesskey = m
+troubleshoot-mode-continue =
+ .label = Continuar en el modo de resolución de problemas
+ .accesskey = C
+troubleshoot-mode-quit =
+ .label =
+ { PLATFORM() ->
+ [windows] Cerrar
+ *[other] Salir
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] C
+ *[other] S
+ }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/unifiedToolbar.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/unifiedToolbar.ftl
new file mode 100644
index 0000000000..ac75c33183
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/unifiedToolbar.ftl
@@ -0,0 +1,100 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Unified Toolbar strings
+
+
+## Search bar
+
+search-bar-button =
+ .alt = Buscar
+search-bar-item =
+ .label = Buscar:
+search-bar-placeholder = Buscar…
+# Search bar placeholder with formatted key shortcut hint (platform dependent).
+# The key after the control modifier should match the key from quickSearchCmd.key
+# in messenger.dtd.
+search-bar-placeholder-with-key2 =
+ { PLATFORM() ->
+ [macos] { search-bar-placeholder } <kbd>⌘</kbd> <kbd>K</kbd>
+ *[other] { search-bar-placeholder } <kbd>Ctrl</kbd> + <kbd>K</kbd>
+ }
+
+## Unified toolbar context menu
+
+customize-menu-customize =
+ .label = Personalizar…
+
+# Unified toolbar get messages button context menu
+
+toolbar-get-all-messages-menuitem =
+ .label = Recibir todos los mensajes nuevos
+ .accesskey = R
+
+## Unified Toolbar customization
+
+customize-title = Personalizar las barras de tareas
+customize-space-tab-mail = Correo
+ .title = Correo
+customize-space-tab-addressbook = Libreta de direcciones
+ .title = Libreta de direcciones
+customize-space-tab-calendar = Calendario
+ .title = Calendario
+customize-space-tab-tasks = Tareas
+ .title = Tareas
+customize-space-tab-chat = Chat
+ .title = Chat
+customize-space-tab-settings = Ajustes
+ .title = Ajustes
+customize-restore-default = Restaurar valores predeterminados
+customize-change-appearance = Cambiar apariencia...
+customize-button-style-label = Estilo de botones:
+customize-button-style-icons-beside-text-option = Iconos junto al texto
+customize-button-style-icons-above-text-option = Iconos sobre el texto
+customize-button-style-icons-only-option = Sólo iconos
+customize-button-style-text-only-option = Solo texto
+customize-cancel = Cancelar
+customize-save = Guardar
+customize-unsaved-changes = Cambios sin guardar en otros espacios
+customize-search-bar =
+ .label = Botones de la barra de herramientas de búsqueda...
+customize-spaces-tabs =
+ .aria-label = Espacios
+customize-main-toolbar-target =
+ .aria-label = Barra de herramientas principal
+customize-palette-generic-title = Disponible en todos los espacios
+customize-palette-mail-specific-title = Disponible sólo en el espacio de correo
+customize-palette-addressbook-specific-title = Disponible solo en el espacio de libreta de direcciones
+customize-palette-calendar-specific-title = Disponible solo en el espacio de calendario
+customize-palette-tasks-specific-title = Disponible solo en el espacio de tareas
+customize-palette-chat-specific-title = Disponible solo en el espacio de chat
+customize-palette-settings-specific-title = Disponible solo en el espacio de ajustes
+customize-palette-extension-specific-title = Disponible sólo para este espacio
+
+## Unified toolbar customization palette context menu
+
+# Variables:
+# $target (String) - Name of the target the item should be added to.
+customize-palette-add-to =
+ .label = Añadir a { $target }
+customize-palette-add-everywhere =
+ .label = Añadir a todas las barras de herramientas
+
+## Unified toolbar customization target context menu
+
+customize-target-forward =
+ .label = Mover hacia adelante
+customize-target-backward =
+ .label = Mover hacia atrás
+customize-target-remove =
+ .label = Eliminar
+customize-target-remove-everywhere =
+ .label = Eliminar de todas las barras de herramientas
+customize-target-add-everywhere =
+ .label = Añadir a todas las barras de herramientas
+customize-target-start =
+ .label = Mover al inicio
+customize-target-end =
+ .label = Mover al final
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/unifiedToolbarItems.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/unifiedToolbarItems.ftl
new file mode 100644
index 0000000000..0d243716af
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/unifiedToolbarItems.ftl
@@ -0,0 +1,165 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Unified Toolbar Item Label strings
+
+spacer-label = Espacio flexible
+search-bar-label = Buscar
+toolbar-write-message-label = Redactar
+toolbar-write-message =
+ .title = Crear nuevo mensaje
+toolbar-move-to-label = Mover a
+toolbar-move-to =
+ .title = Mover el mensaje seleccionado
+toolbar-unifinder-label = Buscar eventos
+toolbar-unifinder =
+ .title = Alternar el panel de búsqueda de eventos
+toolbar-folder-location-label = Ubicación de la carpeta
+toolbar-folder-location =
+ .title = Cambiar a carpeta
+toolbar-edit-event-label = Editar
+toolbar-edit-event =
+ .title = Editar tarea o evento seleccionado
+toolbar-get-messages-label = Recibir mensajes
+toolbar-get-messages =
+ .title = Buscar nuevos mensajes en todas las cuentas
+toolbar-reply-label = Responder
+toolbar-reply =
+ .title = Responder al mensaje
+toolbar-reply-all-label = Resp. a todos
+toolbar-reply-all =
+ .title = Responder al remitente y a todos los destinatarios
+toolbar-reply-to-list-label = Responder a la lista
+toolbar-reply-to-list =
+ .title = Responder a la lista de correo
+toolbar-redirect-label = Redirigir
+toolbar-redirect =
+ .title = Redirige el mensaje seleccionado
+toolbar-archive-label = Archivar
+toolbar-archive =
+ .title = Archivar mensajes seleccionados
+toolbar-conversation-label = Conversación
+toolbar-conversation =
+ .title = Mostrar conversación del mensaje seleccionado
+toolbar-previous-unread-label = Anterior no leído
+toolbar-previous-unread =
+ .title = Ir al anterior mensaje no leído
+toolbar-previous-label = Anterior
+toolbar-previous =
+ .title = Moverse al mensaje anterior
+toolbar-next-unread-label = Siguiente no leído
+toolbar-next-unread =
+ .title = Ir al siguiente mensaje no leído
+toolbar-next-label = Siguiente
+toolbar-next =
+ .title = Moverse al mensaje siguiente
+toolbar-junk-label = Basura
+toolbar-junk =
+ .title = Marcar los mensajes seleccionados como basura
+toolbar-delete-label = Eliminar
+toolbar-delete-title =
+ .title = Eliminar los mensajes seleccionados
+toolbar-undelete-label = Recuperar
+toolbar-undelete =
+ .title = Recuperar los mensajes seleccionados
+toolbar-compact-label = Compactar
+toolbar-compact =
+ .title = Eliminar mensajes borrados de la carpeta seleccionada
+toolbar-add-as-event-label = Añadir como evento
+toolbar-add-as-event =
+ .title = Extraer información de calendario del mensaje y añadirla a su calendario como un evento
+toolbar-add-as-task-label = Añadir como tarea
+toolbar-add-as-task =
+ .title = Extraer información de calendario del mensaje y añadirla a su calendario como una tarea
+toolbar-tag-message-label = Etiqueta
+toolbar-tag-message =
+ .title = Etiquetar mensajes
+toolbar-forward-inline-label = Reenviar
+toolbar-forward-inline =
+ .title = Reenviar el mensaje seleccionado como texto en el cuerpo
+toolbar-forward-attachment-label = Reenviar como adjunto
+toolbar-forward-attachment =
+ .title = Reenviar el mensaje seleccionado como un adjunto
+toolbar-mark-as-label = Marcar
+toolbar-mark-as =
+ .title = Marcar mensajes
+toolbar-view-picker-label = Vista
+toolbar-view-picker =
+ .title = Personalizar la vista de la carpeta actual
+toolbar-address-book-label = Libreta de direcciones
+toolbar-address-book =
+ .title = Ir a la libreta de direcciones
+toolbar-chat-label = Charlar
+toolbar-chat =
+ .title = Mostrar la pestaña de chat
+toolbar-add-ons-and-themes-label = Complementos y temas
+toolbar-add-ons-and-themes =
+ .title = Administre sus complementos
+toolbar-calendar-label = Calendario
+toolbar-calendar =
+ .title = Pasar a la pestaña del calendario
+toolbar-tasks-label = Tareas
+toolbar-tasks =
+ .title = Pasar a la barra de herramientas de tareas
+toolbar-mail-label = Correo
+toolbar-mail =
+ .title = Cambiar a la pestaña de correo
+toolbar-print-label = Imprimir
+toolbar-print =
+ .title = Imprimir este mensaje
+toolbar-quick-filter-bar-label = Filtro rápido
+toolbar-quick-filter-bar =
+ .title = Filtrar mensajes
+toolbar-synchronize-label = Sincronizar
+toolbar-synchronize =
+ .title = Recargar calendarios y sincronizar cambios
+toolbar-delete-event-label = Eliminar
+toolbar-delete-event =
+ .title = Eliminar eventos o tareas seleccionados
+toolbar-go-to-today-label = Ir a hoy
+toolbar-go-to-today =
+ .title = Ir a hoy
+toolbar-print-event-label = Imprimir
+toolbar-print-event =
+ .title = Imprimir eventos o tareas
+toolbar-new-event-label = Evento
+toolbar-new-event =
+ .title = Crear un nuevo evento
+toolbar-new-task-label = Tarea
+toolbar-new-task =
+ .title = Crear una tarea nueva
+toolbar-go-back-label = Retroceder
+toolbar-go-back =
+ .title = Ir al mensaje anterior
+toolbar-go-forward-label = Avanzar
+toolbar-go-forward =
+ .title = Ir al mensaje siguiente
+toolbar-stop-label = Detener
+toolbar-stop =
+ .title = Detener la transferencia actual
+toolbar-throbber-label = Indicador de actividad
+toolbar-throbber =
+ .title = Indicador de actividad
+toolbar-create-contact-label = Nuevo contacto
+toolbar-create-contact =
+ .title = Crear un nuevo contacto
+toolbar-create-address-book-label = Nueva libreta de direcciones
+toolbar-create-address-book =
+ .title = Crear una nueva libreta de direcciones
+toolbar-create-list-label = Nueva lista
+toolbar-create-list =
+ .title = Crear una nueva lista de correo
+toolbar-import-contacts-label = Importar
+toolbar-import-contacts =
+ .title = Importar contactos desde un archivo
+
+## New Address Book popup items
+
+toolbar-new-address-book-popup-add-js-address-book =
+ .label = Añadir libreta de direcciones local
+toolbar-new-address-book-popup-add-carddav-address-book =
+ .label = Añadir libreta de direcciones CardDAV
+toolbar-new-address-book-popup-add-ldap-address-book =
+ .label = Añadir libreta de direcciones LDAP
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/messenger/viewSource.ftl b/thunderbird-l10n/es-ES/localization/es-ES/messenger/viewSource.ftl
new file mode 100644
index 0000000000..640ac39f75
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/messenger/viewSource.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/.
+
+context-text-action-find =
+ .label = Buscar
+ .accesskey = B
+context-text-action-find-again =
+ .label = Repetir la búsqueda
+ .accesskey = R
+text-action-find =
+ .label = Buscar
+ .accesskey = B
+text-action-find-again =
+ .label = Repetir la búsqueda
+ .accesskey = R
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/security/certificates/certManager.ftl b/thunderbird-l10n/es-ES/localization/es-ES/security/certificates/certManager.ftl
new file mode 100644
index 0000000000..c6c9e27d77
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Administrador de certificados
+
+certmgr-tab-mine =
+ .label = Sus certificados
+
+certmgr-tab-remembered =
+ .label = Decisiones de autenticación
+
+certmgr-tab-people =
+ .label = Personas
+
+certmgr-tab-servers =
+ .label = Servidores
+
+certmgr-tab-ca =
+ .label = Autoridades
+
+certmgr-mine = Tiene certificados de estas organizaciones que le identifican
+certmgr-remembered = Estos certificados se utilizan para identificarle en los sitios web.
+certmgr-people = Tiene certificados guardados que identifican estas personas
+certmgr-server = Estas entradas identifican las excepciones de error del certificado del servidor
+certmgr-ca = Tiene certificados guardados que identifican estas autoridades de certificación
+
+certmgr-edit-ca-cert2 =
+ .title = Editar configuración de confianza de la CA
+ .style = min-width: 48em;
+
+certmgr-edit-cert-edit-trust = Editar configuraciones de confianza:
+
+certmgr-edit-cert-trust-ssl =
+ .label = Este certificado puede identificar sitios web.
+
+certmgr-edit-cert-trust-email =
+ .label = Este certificado puede identificar a los usuarios de correo.
+
+certmgr-delete-cert2 =
+ .title = Eliminar certificado
+ .style = min-width: 48em; min-height: 24em;
+
+certmgr-cert-host =
+ .label = Servidor
+
+certmgr-cert-name =
+ .label = Nombre del certificado
+
+certmgr-cert-server =
+ .label = Servidor
+
+certmgr-token-name =
+ .label = Dispositivo de seguridad
+
+certmgr-begins-label =
+ .label = Comienza el
+
+certmgr-expires-label =
+ .label = Caduca el
+
+certmgr-email =
+ .label = Dirección de correo electr.
+
+certmgr-serial =
+ .label = Número de serie
+
+certmgr-fingerprint-sha-256 =
+ .label = Huella digital SHA-256
+
+certmgr-view =
+ .label = Ver…
+ .accesskey = V
+
+certmgr-edit =
+ .label = Editar confianza…
+ .accesskey = E
+
+certmgr-export =
+ .label = Exportar…
+ .accesskey = x
+
+certmgr-delete =
+ .label = Eliminar…
+ .accesskey = r
+
+certmgr-delete-builtin =
+ .label = Eliminar o dejar de confiar…
+ .accesskey = n
+
+certmgr-backup =
+ .label = Hacer copia…
+ .accesskey = H
+
+certmgr-backup-all =
+ .label = Hacer copia de todo…
+ .accesskey = t
+
+certmgr-restore =
+ .label = Importar…
+ .accesskey = m
+
+certmgr-add-exception =
+ .label = Añadir excepción…
+ .accesskey = x
+
+exception-mgr =
+ .title = Añadir excepción de seguridad
+
+exception-mgr-extra-button =
+ .label = Confirmar excepción de seguridad
+ .accesskey = C
+
+exception-mgr-supplemental-warning = Los bancos, tiendas y otros sitios públicos legítimos no le pedirán hacer esto.
+
+exception-mgr-cert-location-url =
+ .value = Dirección:
+
+exception-mgr-cert-location-download =
+ .label = Obtener certificado
+ .accesskey = O
+
+exception-mgr-cert-status-view-cert =
+ .label = Ver…
+ .accesskey = V
+
+exception-mgr-permanent =
+ .label = Guardar esta excepción de manera permanente
+ .accesskey = P
+
+pk11-bad-password = La contraseña introducida era incorrecta.
+pkcs12-decode-err = Fallo al decodificar el archivo. O no está en formato PKCS #12, o está corrupto, o la contraseña suministrada es incorrecta.
+pkcs12-unknown-err-restore = Fallo en la recuperación del archivo PKCS #12 por motivos desconocidos.
+pkcs12-unknown-err-backup = Se produjo un fallo por motivos desconocidos al guardar la copia de seguridad del archivo PKCS #12.
+pkcs12-unknown-err = La operación PKCS #12 falló por razones desconocidas.
+pkcs12-info-no-smartcard-backup = No es posible hacer copias de seguridad de certificados procedentes de dispositivos de seguridad hardware tales como tarjetas inteligentes.
+pkcs12-dup-data = El certificado y la clave privada ya existen en el dispositivo de seguridad.
+
+## PKCS#12 file dialogs
+
+choose-p12-backup-file-dialog = Nombre del archivo a salvaguardar
+file-browse-pkcs12-spec = Archivos PKCS12
+choose-p12-restore-file-dialog = Archivo de certificado para importar
+
+## Import certificate(s) file dialog
+
+file-browse-certificate-spec = Archivos de certificados
+import-ca-certs-prompt = Seleccione el archivo que contiene el/los certificado(s) CA a importar
+import-email-cert-prompt = Seleccione el archivo que contiene el certificado de correo electrónico de otra persona a importar
+
+## For editing certificates trust
+
+# Variables:
+# $certName: the name of certificate
+edit-trust-ca = El certificado “{ $certName }” representa a una autoridad certificadora.
+
+## For Deleting Certificates
+
+delete-user-cert-title =
+ .title = Eliminar sus certificados
+delete-user-cert-confirm = ¿Seguro que quiere eliminar estos certificados?
+delete-user-cert-impact = Si elimina uno de sus propios certificados, no podrá utilizarlo para identificarse a sí mismo.
+
+
+delete-ssl-override-title =
+ .title = Eliminar la excepción del certificado del servidor
+delete-ssl-override-confirm = ¿Seguro que quiere eliminar esta excepción de servidor?
+delete-ssl-override-impact = Si elimina una excepción de servidor, restaurará los controles de seguridad habituales para ese servidor y se requerirá que use un certificado válido.
+
+delete-ca-cert-title =
+ .title = Eliminar o dejar de confiar certificados CA
+delete-ca-cert-confirm = Ha solicitado eliminar estos certificados de CA. En el caso de los incluidos de serie, en lugar de borrarlos se les retira la confianza, lo que tiene el mismo efecto. ¿Seguro que quiere hacer esto?
+delete-ca-cert-impact = Si elimina, o deja de confiar en, un certificado de autoridad certificadora (CA), esta aplicación dejará de confiar en cualquier certificado emitido por esta CA.
+
+
+delete-email-cert-title =
+ .title = Eliminar certificados de correo electrónico
+delete-email-cert-confirm = ¿Seguro que quiere eliminar los certificados de correo electrónico de estas personas?
+delete-email-cert-impact = Si borra el certificado de correo electrónico de una persona, ya no podrá enviar mensajes cifrados a esa persona.
+
+# 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 con número de serie: { $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 = No enviar el certificado del cliente
+
+# Used when no cert is stored for an override
+no-cert-stored-for-override = (No guardado)
+
+# When a certificate is unavailable (for example, it has been deleted or the token it exists on has been removed).
+certificate-not-available = (No disponible)
+
+## Used to show whether an override is temporary or permanent
+
+permanent-override = Permanente
+temporary-override = Temporal
+
+## Add Security Exception dialog
+
+add-exception-branded-warning = Está a punto de alterar cómo identifica { -brand-short-name } este sitio.
+add-exception-invalid-header = Este sitio intenta identificarse a sí mismo con información no válida.
+add-exception-domain-mismatch-short = Sitio erróneo
+add-exception-domain-mismatch-long = El certificado pertenece a un sitio diferente, lo que podría significar que alquien está intentando hacer pasar por este sitio.
+add-exception-expired-short = Información obsoleta
+add-exception-expired-long = El certificado no es actualmente válido. Puede haber sido robado o perdido, y podría estar siendo usado por alquien para hacerse pasar por este sitio.
+add-exception-unverified-or-bad-signature-short = Identidad desconocida
+add-exception-unverified-or-bad-signature-long = No se confía en el certificado porque no ha sido verificado como emitido por una autoridad confiable usando una firma segura.
+add-exception-valid-short = Certificado válido
+add-exception-valid-long = Este sitio proporciona identificación válida y verificada. No hay necesidad de añadir una excepción.
+add-exception-checking-short = Comprobando información
+add-exception-checking-long = Intentando identificar este sitio…
+add-exception-no-cert-short = No hay información disponible
+add-exception-no-cert-long = No es posible obtener el estado de identificación de este sitio.
+
+## Certificate export "Save as" and error dialogs
+
+save-cert-as = Guardar certificado en archivo
+cert-format-base64 = Certificado X.509 (PEM)
+cert-format-base64-chain = Certificado X.509 con cadena (PEM)
+cert-format-der = Certificado X.509 (DER)
+cert-format-pkcs7 = Certificado X.509 (PKCS#7)
+cert-format-pkcs7-chain = Certificado X.509 con cadena (PKCX#7)
+write-file-failure = Error de archivo
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/security/certificates/deviceManager.ftl b/thunderbird-l10n/es-ES/localization/es-ES/security/certificates/deviceManager.ftl
new file mode 100644
index 0000000000..fe25bd962d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Administrador de dispositivos
+ .style = min-width: 67em; min-height: 32em;
+
+devmgr-devlist =
+ .label = Módulos de seguridad y dispositivos
+
+devmgr-header-details =
+ .label = Detalles
+
+devmgr-header-value =
+ .label = Valor
+
+devmgr-button-login =
+ .label = Iniciar sesión
+ .accesskey = n
+
+devmgr-button-logout =
+ .label = Terminar sesión
+ .accesskey = T
+
+devmgr-button-changepw =
+ .label = Cambiar contraseña
+ .accesskey = C
+
+devmgr-button-load =
+ .label = Cargar
+ .accesskey = C
+
+devmgr-button-unload =
+ .label = Descargar
+ .accesskey = D
+
+devmgr-button-enable-fips =
+ .label = Habilitar FIPS
+ .accesskey = F
+
+devmgr-button-disable-fips =
+ .label = Deshabilitar FIPS
+ .accesskey = F
+
+## Strings used for load device
+
+load-device =
+ .title = Cargar controlador de dispositivo PKCS#11
+
+load-device-info = Introduzca la información para el módulo que quiere añadir.
+
+load-device-modname =
+ .value = Nombre del módulo
+ .accesskey = m
+
+load-device-modname-default =
+ .value = Nuevo módulo PKCS#11
+
+load-device-filename =
+ .value = Nombre del archivo del módulo
+ .accesskey = a
+
+load-device-browse =
+ .label = Examinar…
+ .accesskey = x
+
+## Token Manager
+
+devinfo-status =
+ .label = Estado
+
+devinfo-status-disabled =
+ .label = Deshabilitado
+
+devinfo-status-not-present =
+ .label = No presente
+
+devinfo-status-uninitialized =
+ .label = Sin inicializar
+
+devinfo-status-not-logged-in =
+ .label = No ha iniciado la sesión
+
+devinfo-status-logged-in =
+ .label = Sesión iniciada
+
+devinfo-status-ready =
+ .label = Listo
+
+devinfo-desc =
+ .label = Descripción
+
+devinfo-man-id =
+ .label = Fabricante
+
+devinfo-hwversion =
+ .label = Versión HW
+devinfo-fwversion =
+ .label = Versión FW
+
+devinfo-modname =
+ .label = Módulo
+
+devinfo-modpath =
+ .label = Ruta
+
+login-failed = Falló el inicio de sesión
+
+devinfo-label =
+ .label = Etiqueta
+
+devinfo-serialnum =
+ .label = Número de serie
+
+fips-nonempty-primary-password-required = El modo FIPS requiere que tenga una contraseña maestra establecida para cada dispositivo de seguridad. Establezca la contraseña antes de tratar de activar el modo FIPS.
+unable-to-toggle-fips = No se puede cambiar el modo FIPS para el dispositivo de seguridad. Se recomienda que salga y reinicie esta aplicación.
+load-pk11-module-file-picker-title = Elija un controlador de dispositivo PKCS#11 para cargar
+
+# Load Module Dialog
+load-module-help-empty-module-name =
+ .value = El nombre del módulo no puede estar vacío.
+
+# Do not translate 'Root Certs'
+load-module-help-root-certs-module-name =
+ .value = 'Root Certs' está reservado y no puede usarse como nombre del módulo.
+
+add-module-failure = No es posible añadir el módulo
+del-module-warning = ¿Seguro que quiere eliminar este módulo de seguridad?
+del-module-error = No es posible eliminar el módulo
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/security/pippki/pippki.ftl b/thunderbird-l10n/es-ES/localization/es-ES/security/pippki/pippki.ftl
new file mode 100644
index 0000000000..8d6c2fffe0
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Medidor de calidad de la contraseña
+
+## Change Password dialog
+
+change-device-password-window =
+ .title = Cambiar contraseña
+# Variables:
+# $tokenName (String) - Security device of the change password dialog
+change-password-token = Dispositivo de seguridad: { $tokenName }
+change-password-old = Contraseña actual:
+change-password-new = Nueva contraseña:
+change-password-reenter = Nueva contraseña (confirmar):
+pippki-failed-pw-change = No se puede cambiar la contraseña.
+pippki-incorrect-pw = No ha introducido la actual contraseña maestra correctamente. Vuelva a intentarlo.
+pippki-pw-change-ok = Contraseña cambiada correctamente.
+pippki-pw-empty-warning = Sus contraseñas almacenadas y claves privadas no estarán protegidas.
+pippki-pw-erased-ok = Ha eliminado su contraseña. { pippki-pw-empty-warning }
+pippki-pw-not-wanted = ¡Atención! Ha decidido no utilizar una contraseña. { pippki-pw-empty-warning }
+pippki-pw-change2empty-in-fips-mode = En este momento está en modo FIPS. FIPS requiere una contraseña no vacía.
+
+## Reset Primary Password dialog
+
+reset-primary-password-window2 =
+ .title = Restablecer la contraseña maestra
+ .style = min-width: 40em
+reset-password-button-label =
+ .label = Restablecer
+reset-primary-password-text = Si restablece su contraseña maestra, se olvidarán todas las contraseñas de webs, correo electrónico, certificados personales y llaves privadas almacenadas. ¿Está seguro de que quiere restablecer su contraseña maestra?
+pippki-reset-password-confirmation-title = Restablecer la contraseña maestra
+pippki-reset-password-confirmation-message = Se ha restablecido su contraseña maestra.
+
+## Downloading cert dialog
+
+download-cert-window2 =
+ .title = Descargando certificado
+ .style = min-width: 46em
+download-cert-message = Se le ha pedido que confíe en una nueva Autoridad Certificadora (CA).
+download-cert-trust-ssl =
+ .label = Confiar en esta CA para identificar sitios web.
+download-cert-trust-email =
+ .label = Confiar en esta CA para identificar usuarios de correo.
+download-cert-message-desc = Antes de confiar en esta CA para cualquier propósito, debe examinar el certificado, política y procedimientos de la CA (si están disponibles).
+download-cert-view-cert =
+ .label = Ver
+download-cert-view-text = Examinar certificado de CA
+
+## Client Authorization Ask dialog
+
+
+## Client Authentication Ask dialog
+
+client-auth-window =
+ .title = Petición de identificación de usuario
+client-auth-site-description = El siguiente sitio ha pedido que usted se identifique con un certificado:
+client-auth-choose-cert = Elija un certificado para presentarlo como identificación:
+client-auth-send-no-certificate =
+ .label = No enviar un certificado
+# Variables:
+# $hostname (String) - The domain name of the site requesting the client authentication certificate
+client-auth-site-identification = “{ $hostname }” ha pedido que se identifique con un certificado:
+client-auth-cert-details = Detalles del certificado seleccionado:
+# 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 serie: { $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 = Usos de la clave: { $keyUsages }
+# Variables:
+# $emailAddresses (String) - A list of email addresses present in the certificate
+client-auth-cert-details-email-addresses = Direcciones de correo: { $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 = Guardado en: { $storedOn }
+client-auth-cert-remember-box =
+ .label = Recordar esta decisión
+
+## Set password (p12) dialog
+
+set-password-window =
+ .title = Elegir una contraseña de respaldo para el certificado
+set-password-message = La contraseña del certificado de respaldo que ponga aquí protegerá el archivo de respaldo que está a punto de crear. Debe poner esta contraseña para proceder con la copia de respaldo.
+set-password-backup-pw =
+ .value = Contraseña de respaldo del certificado:
+set-password-repeat-backup-pw =
+ .value = Contraseña de respaldo del certificado (confirmar):
+set-password-reminder = Importante: si olvida la contraseña de respaldo de su certificado, no podrá restaurar esta copia de respaldo más tarde. Guárdela en un lugar seguro.
+
+## Protected authentication alert
+
+# Variables:
+# $tokenName (String) - The name of the token to authenticate to (for example, "OS Client Cert Token (Modern)")
+protected-auth-alert = Autentíquese utilizando el token “{ $tokenName }”. Cómo hacerlo depende del token (por ejemplo, usando un lector de huellas dactilares o introducoiendo un código con un teclado).
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/services/accounts.ftl b/thunderbird-l10n/es-ES/localization/es-ES/services/accounts.ftl
new file mode 100644
index 0000000000..7c3e15ef93
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = { -brand-short-name } de { $user } en { $system }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutAbout.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutAbout.ftl
new file mode 100644
index 0000000000..1a09412ac1
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 es una lista de páginas “about” para su comodidad.<br/>
+ Algunas de ellas podrían resultar confusas. Otras son sólo para propósitos de diagnóstico.<br/>
+ Y algunas se omiten porque requieren parámetros de consulta.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutAddons.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutAddons.ftl
new file mode 100644
index 0000000000..a4beb5f9a6
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutAddons.ftl
@@ -0,0 +1,495 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = Administrador de complementos
+search-header =
+ .placeholder = Buscar en addons.mozilla.org
+ .searchbuttonlabel = Buscar
+
+## Variables
+## $domain - Domain name where add-ons are available (e.g. addons.mozilla.org)
+
+list-empty-get-extensions-message = Obtenga extensiones y temas en <a data-l10n-name="get-extensions">{ $domain }</a>
+list-empty-get-dictionaries-message = Obtenga diccionarios en <a data-l10n-name="get-extensions">{ $domain }</a>
+list-empty-get-language-packs-message = Obtenga paquetes de idiomas en <a data-l10n-name="get-extensions">{ $domain }</a>
+
+##
+
+list-empty-installed =
+ .value = No tiene instalado ningún complemento de este tipo
+list-empty-available-updates =
+ .value = No se han encontrado actualizaciones
+list-empty-recent-updates =
+ .value = No ha actualizado recientemente ningún complemento
+list-empty-find-updates =
+ .label = Buscar actualizaciones
+list-empty-button =
+ .label = Aprender más sobre los complementos
+help-button = Soporte para complementos
+sidebar-help-button-title =
+ .title = Soporte para complementos
+addons-settings-button = Ajustes de { -brand-short-name }
+sidebar-settings-button-title =
+ .title = Ajustes de { -brand-short-name }
+show-unsigned-extensions-button =
+ .label = Algunas extensiones no han podido ser verificadas
+show-all-extensions-button =
+ .label = Mostrar todas las extensiones
+detail-version =
+ .label = Versión
+detail-last-updated =
+ .label = Última actualización
+addon-detail-description-expand = Mostrar más
+addon-detail-description-collapse = Mostrar menos
+detail-contributions-description = El desarrollador de este complemento solicita que ayudes a continuar su desarrollo haciendo una pequeña contribución.
+detail-contributions-button = Colaborar
+ .title = Colaborar con el desarrollo de este complemento
+ .accesskey = C
+detail-update-type =
+ .value = Actualizaciones automáticas
+detail-update-default =
+ .label = Por omisión
+ .tooltiptext = Instalar actualizaciones automáticamente sólo si ése es el valor predeterminado
+detail-update-automatic =
+ .label = Sí
+ .tooltiptext = Instalar actualizaciones automáticamente
+detail-update-manual =
+ .label = No
+ .tooltiptext = No instalar automáticamente las actualizaciones
+# Used as a description for the option to allow or block an add-on in private windows.
+detail-private-browsing-label = Ejecutar en ventana privada
+# 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 = No se permite en ventanas privadas
+detail-private-disallowed-description2 = Esta extensión no se ejecuta mientras esté en navegación privada. <a data-l10n-name="learn-more">Saber más</a>
+# Some special add-ons are privileged, run in private windows automatically, and this permission can't be revoked
+detail-private-required-label = Necesita acceder a ventanas privadas
+detail-private-required-description2 = Esta extensión tiene acceso a su actividad en línea mientras navega de forma privada. <a data-l10n-name="learn-more">Saber más</a>
+detail-private-browsing-on =
+ .label = Permitir
+ .tooltiptext = Activar en navegación privada
+detail-private-browsing-off =
+ .label = No permitir
+ .tooltiptext = Desactivar en navegación privada
+detail-home =
+ .label = Página de inicio
+detail-home-value =
+ .value = { detail-home.label }
+detail-repository =
+ .label = Perfil del complemento
+detail-repository-value =
+ .value = { detail-repository.label }
+detail-check-for-updates =
+ .label = Buscar actualizaciones
+ .accesskey = B
+ .tooltiptext = Buscar actualizaciones de este complemento
+detail-show-preferences =
+ .label =
+ { PLATFORM() ->
+ [windows] Opciones
+ *[other] Preferencias
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] O
+ *[other] P
+ }
+ .tooltiptext =
+ { PLATFORM() ->
+ [windows] Cambiar las opciones de este complemento
+ *[other] Cambiar las preferencias de este complemento
+ }
+detail-rating =
+ .value = Calificación
+addon-restart-now =
+ .label = Reiniciar ahora
+disabled-unsigned-heading =
+ .value = Algunos complementos han sido desactivados
+disabled-unsigned-description = Los siguientes complementos no han sido verificados para su uso en { -brand-short-name }. Puede <label data-l10n-name="find-addons">encontrar reemplazos</label> o pedir al desarrollador que consiga que sean verificados.
+disabled-unsigned-learn-more = Conozca más sobre nuestros esfuerzos para ayudarle a mantenerse seguro en Internet.
+disabled-unsigned-devinfo = Los desarrolladores interesados en conseguir que sus complementos sean verificados pueden continuar leyendo nuestro <label data-l10n-name="learn-more">manual</label>.
+plugin-deprecation-description = ¿Echa algo en falta? Algunos plugins ya no están admitidos por { -brand-short-name }. <label data-l10n-name="learn-more">Saber más.</label>
+legacy-warning-show-legacy = Mostrar extensiones clásicas
+legacy-extensions =
+ .value = Extensiones clásicas
+legacy-extensions-description = Estas extensiones no cumplen los estándares actuales de { -brand-short-name } por lo que han sido desactivadas. <label data-l10n-name="legacy-learn-more">Conozca sobre los cambios a los complementos</label>
+private-browsing-description2 =
+ { -brand-short-name } está cambiando la forma en que funcionan las extensiones en la navegación privada. Cualquier nueva extensión que agregues a
+ { -brand-short-name } no se ejecutará de forma predeterminada en las ventanas privadas. A menos que lo permitas en los Ajustes, la
+ la extensión no funcionará durante la navegación privada, y no tendrá acceso a tus actividades en línea
+ ahí. Hemos realizado este cambio para mantener privada tu navegación privada.
+ <label data-l10n-name = "private-browsing-learn-more">Descubre cómo administrar la configuración de las extensiones.</label>
+addon-category-discover = Recomendaciones
+addon-category-discover-title =
+ .title = Recomendaciones
+addon-category-extension = Extensiones
+addon-category-extension-title =
+ .title = Extensiones
+addon-category-theme = Temas
+addon-category-theme-title =
+ .title = Temas
+addon-category-plugin = Plugins
+addon-category-plugin-title =
+ .title = Plugins
+addon-category-dictionary = Diccionarios
+addon-category-dictionary-title =
+ .title = Diccionarios
+addon-category-locale = Idiomas
+addon-category-locale-title =
+ .title = Idiomas
+addon-category-available-updates = Actualizaciones disponibles
+addon-category-available-updates-title =
+ .title = Actualizaciones disponibles
+addon-category-recent-updates = Actualizaciones recientes
+addon-category-recent-updates-title =
+ .title = Actualizaciones recientes
+addon-category-sitepermission = Permisos del sitio
+addon-category-sitepermission-title =
+ .title = Permisos del sitio
+# 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 = Permisos del sitio para { $host }
+
+## These are global warnings
+
+extensions-warning-safe-mode = Todos los complementos han sido desactivados por el modo seguro.
+extensions-warning-check-compatibility = La comprobación de compatibilidad de complementos está desactivada. Puede tener algunos incompatibles.
+extensions-warning-safe-mode2 =
+ .message = Todos los complementos han sido desactivados por el modo seguro.
+extensions-warning-check-compatibility2 =
+ .message = La comprobación de compatibilidad de complementos está desactivada. Puede tener algunos incompatibles.
+extensions-warning-check-compatibility-button = Activar
+ .title = Activar comprobación de compatibilidad de complementos
+extensions-warning-update-security = La comprobación de seguridad de los complementos está desactivada. Puede ver su seguridad comprometida durante las actualizaciones.
+extensions-warning-update-security2 =
+ .message = La comprobación de seguridad de los complementos está desactivada. Puede ver su seguridad comprometida durante las actualizaciones.
+extensions-warning-update-security-button = Activar
+ .title = Activar comprobación de seguridad de complementos
+extensions-warning-imported-addons2 =
+ .message = Finalice la instalación de las extensiones que se importaron a { -brand-short-name }.
+extensions-warning-imported-addons-button = Instalar extensiones
+
+## Strings connected to add-on updates
+
+addon-updates-check-for-updates = Buscar actualizaciones
+ .accesskey = B
+addon-updates-view-updates = Ver actualizaciones recientes
+ .accesskey = V
+
+# This menu item is a checkbox that toggles the default global behavior for
+# add-on update checking.
+
+addon-updates-update-addons-automatically = Actualizar complementos automáticamente
+ .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 = Configurar todos los complementos para que se actualicen automáticamente
+ .accesskey = R
+addon-updates-reset-updates-to-manual = Configurar todos los complementos para que se actualicen manualmente
+ .accesskey = R
+
+## Status messages displayed when updating add-ons
+
+addon-updates-updating = Actualizando complementos
+addon-updates-installed = Se han actualizado sus complementos.
+addon-updates-none-found = No se han encontrado actualizaciones
+addon-updates-manual-updates-found = Ver actualizaciones disponibles
+
+## Add-on install/debug strings for page options menu
+
+addon-install-from-file = Instalar complemento desde archivo…
+ .accesskey = I
+addon-install-from-file-dialog-title = Seleccione el complemento para instalar
+addon-install-from-file-filter-name = Complementos
+addon-open-about-debugging = Depurar complementos
+ .accesskey = u
+
+## Extension shortcut management
+
+# This is displayed in the page options menu
+addon-manage-extensions-shortcuts = Administrar atajos de extensiones
+ .accesskey = s
+shortcuts-no-addons = No tiene ninguna extensión habilitada.
+shortcuts-no-commands = Las siguientes extensiones no tienen atajos:
+shortcuts-input =
+ .placeholder = Escriba un atajo
+shortcuts-browserAction2 = Activar botón de la barra de herramientas
+shortcuts-pageAction = Activar acción de página
+shortcuts-sidebarAction = Alternar la barra lateral
+shortcuts-modifier-mac = Incluir Ctrl, Alt o ⌘
+shortcuts-modifier-other = Incluir Ctrl o Alt
+shortcuts-invalid = Combinación no válida
+shortcuts-letter = Escriba una letra
+shortcuts-system = No se puede sobrescribir un acceso directo de { -brand-short-name }.
+# String displayed in warning label when there is a duplicate shortcut
+shortcuts-duplicate = Duplicar acceso directo
+# 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 } se está usando como atajo en más de un caso. Los accesos directos duplicados pueden causar un comportamiento inesperado.
+# 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 } se está usando como atajo en más de un caso. Los accesos directos duplicados pueden causar un comportamiento inesperado.
+# String displayed when a keyboard shortcut is already used by another add-on
+# Variables:
+# $addon (string) - Name of the add-on
+shortcuts-exists = Ya lo está usando { $addon }
+# Variables:
+# $numberToShow (number) - Number of other elements available to show
+shortcuts-card-expand-button =
+ { $numberToShow ->
+ [one] Mostrar { $numberToShow } más
+ *[other] Mostrar { $numberToShow } más
+ }
+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 =
+ Las extensiones y temas son como aplicaciones para el navegador y le permiten
+ proteger sus contraseñas, descargar vídeos, encontrar ofertas, bloquear publicidad,
+ cambiar la apariencia del navegador y mucho más. Suelen ser terceros los que desarrollan
+ estos pequeños programas de software. Te ofrecemos una selección de { -brand-product-name }
+ <a data-l10n-name="learn-more-trigger">recomendados</a> en seguridad, rendimiento
+ y funcionalidad excepcionales.
+# Notice to make user aware that the recommendations are personalized.
+discopane-notice-recommendations = Algunas de estas recomendaciones son personalizadas. Se basan en otras extensiones que tiene instaladas, preferencias de su perfil y estadísticas de uso.
+# Notice to make user aware that the recommendations are personalized.
+discopane-notice-recommendations2 =
+ .message = Algunas de estas recomendaciones son personalizadas. Se basan en otras extensiones que tiene instaladas, preferencias de su perfil y estadísticas de uso.
+discopane-notice-learn-more = Saber más
+privacy-policy = Política de privacidad
+# 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 = Usuarios: { $dailyUsers }
+install-extension-button = Agregar a { -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 = Administrar
+find-more-addons = Buscar más complementos
+find-more-themes = Encontrar más 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 = Más opciones
+
+## Add-on actions
+
+report-addon-button = Informe
+remove-addon-button = Eliminar
+# The link will always be shown after the other text.
+remove-addon-disabled-button = No se puede eliminar <a data-l10n-name="link">¿Por qué?</a>
+disable-addon-button = Desactivar
+enable-addon-button = Activar
+# 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 = Activar
+preferences-addon-button =
+ { PLATFORM() ->
+ [windows] Opciones
+ *[other] Preferencias
+ }
+details-addon-button = Detalles
+release-notes-addon-button = Notas de la versión
+permissions-addon-button = Permisos
+extension-enabled-heading = Habilitado
+extension-disabled-heading = Deshabilitado
+theme-enabled-heading = Habilitado
+theme-disabled-heading2 = Temas guardados
+plugin-enabled-heading = Habilitado
+plugin-disabled-heading = Deshabilitado
+dictionary-enabled-heading = Habilitado
+dictionary-disabled-heading = Deshabilitado
+locale-enabled-heading = Habilitado
+locale-disabled-heading = Deshabilitado
+sitepermission-enabled-heading = Activado
+sitepermission-disabled-heading = Desactivado
+always-activate-button = Activar siempre
+never-activate-button = No activar nunca
+addon-detail-author-label = Autor
+addon-detail-version-label = Versión
+addon-detail-last-updated-label = Últ. actualización
+addon-detail-homepage-label = Página de inicio
+addon-detail-rating-label = Calificación
+# Message for add-ons with a staged pending update.
+install-postponed-message = Esta extensión se actualizará cuando se reinicie { -brand-short-name }.
+# Message for add-ons with a staged pending update.
+install-postponed-message2 =
+ .message = Esta extensión se actualizará cuando se reinicie { -brand-short-name }.
+install-postponed-button = Actualizar ahora
+# 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 = Calificación de { NUMBER($rating, maximumFractionDigits: 1) } sobre 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 } (deshabilitado)
+# 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 } revisión
+ *[other] { $numberOfReviews } revisiones
+ }
+
+## Pending uninstall message bar
+
+# Variables:
+# $addon (string) - Name of the add-on
+pending-uninstall-description = Se ha eliminado <span data-l10n-name="addon-name">{ $addon }</span>.
+# Variables:
+# $addon (string) - Name of the add-on
+pending-uninstall-description2 =
+ .message = Se ha eliminado { $addon }.
+pending-uninstall-undo-button = Deshacer
+addon-detail-updates-label = Permitir actualizaciones automáticas
+addon-detail-updates-radio-default = Predeterminado
+addon-detail-updates-radio-on = Activado
+addon-detail-updates-radio-off = Desactivar
+addon-detail-update-check-label = Comprobar si hay actualizaciones
+install-update-button = Actualizar
+# 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 en ventanas privadas
+ .aria-label = { addon-badge-private-browsing-allowed2.title }
+addon-detail-private-browsing-help = Cuando está activada, la extensión tendrá acceso a todo lo que haces mientras navegas de forma privada. <a data-l10n-name="learn-more">Descubre más</a>
+addon-detail-private-browsing-allow = Permitir
+addon-detail-private-browsing-disallow = No 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 = Ejecutar en sitios con restricciones
+# Used as help text part of the quarantined domains UI controls row.
+addon-detail-quarantined-domains-help = Cuando esté permitido, la extensión tendrá acceso a sitios restringidos por { -vendor-short-name }. Permitir solo si confía en esta extensión.
+# 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 = No 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 = { -brand-product-name } solo recomienda extensiones que cumplan con nuestros estándares de seguridad y rendimiento
+ .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 = Extensión oficial hecha por Mozilla. Cumple con los estándares de seguridad y rendimiento
+ .aria-label = { addon-badge-line3.title }
+addon-badge-verified2 =
+ .title = Esta extensión ha sido revisada para cumplir con nuestros estándares de seguridad y rendimiento.
+ .aria-label = { addon-badge-verified2.title }
+
+##
+
+available-updates-heading = Actualizaciones disponibles
+recent-updates-heading = Actualizaciones recientes
+release-notes-loading = Cargando…
+release-notes-error = Lo sentimos, pero ha sucedido un error al cargar las notas de versión.
+addon-permissions-empty = Esta extensión no requiere ningún permiso.
+addon-permissions-required = Permisos requeridos para la funcionalidad principal:
+addon-permissions-optional = Permisos opcionales para funcionalidades adicionales:
+addon-permissions-learnmore = Saber más sobre los permisos
+recommended-extensions-heading = Extensiones recomendadas
+recommended-themes-heading = Temas recomendados
+# Variables:
+# $hostname (string) - Host where the permissions are granted
+addon-sitepermissions-required = Concede los siguientes permisos 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 = ¿Se siente creativo? <a data-l10n-name="link">Cree su propio tema con Firefox Color.</a>
+
+## Page headings
+
+extension-heading = Administre sus extensiones
+theme-heading = Administre sus temas
+plugin-heading = Administre sus plugins
+dictionary-heading = Administre sus diccionarios
+locale-heading = Administre sus idiomas
+updates-heading = Administrar sus actualizaciones
+sitepermission-heading = Administrar permisos del sitio
+discover-heading = Personalice su { -brand-short-name }
+shortcuts-heading = Administrar los atajos a las extensiones
+default-heading-search-label = Buscar más complementos
+addons-heading-search-input =
+ .placeholder = Buscar en addons.mozilla.org
+addon-page-options-button =
+ .title = Herramientas para todos los complementos
+
+## Detail notifications
+## Variables:
+## $name (string) - Name of the add-on.
+
+# Variables:
+# $version (string) - Application version.
+details-notification-incompatible = { $name } es incompatible con { -brand-short-name } { $version }.
+# Variables:
+# $version (string) - Application version.
+details-notification-incompatible2 =
+ .message = { $name } es incompatible con { -brand-short-name } { $version }.
+details-notification-incompatible-link = Más información
+details-notification-unsigned-and-disabled = { $name } no ha podido ser verificado para su uso en { -brand-short-name } y ha sido desactivado.
+details-notification-unsigned-and-disabled2 =
+ .message = { $name } no ha podido ser verificado para su uso en { -brand-short-name } y ha sido desactivado.
+details-notification-unsigned-and-disabled-link = Más información
+details-notification-unsigned = { $name } no se ha podido verificar para su uso en { -brand-short-name }. Proceda con precaución.
+details-notification-unsigned2 =
+ .message = { $name } no se ha podido verificar para su uso en { -brand-short-name }. Proceda con precaución.
+details-notification-unsigned-link = Más información
+details-notification-blocked = { $name } ha sido desactivado debido a problemas de seguridad o estabilidad.
+details-notification-blocked2 =
+ .message = { $name } ha sido desactivado debido a problemas de seguridad o estabilidad.
+details-notification-blocked-link = Más información
+details-notification-softblocked = Se sabe que { $name } es causa de problemas de seguridad o estabilidad.
+details-notification-softblocked2 =
+ .message = Se sabe que { $name } es causa de problemas de seguridad o estabilidad.
+details-notification-softblocked-link = Más información
+details-notification-gmp-pending = { $name } se instalará en breves momentos.
+details-notification-gmp-pending2 =
+ .message = { $name } se instalará en breves momentos.
+
+## Gecko Media Plugins (GMPs)
+
+plugins-gmp-license-info = Información de licencia
+plugins-gmp-privacy-info = Información de privacidad
+plugins-openh264-name = OpenH264 Video Codec proporcionado por Cisco Systems, Inc.
+plugins-openh264-description = Este plugin se ha instalado automáticamente por Mozilla para cumplir con la especificación WebRTC y para permitir llamadas WebRTC con dispositivos que requieren el códec de vídeo H.264. Visite http://www.openh264.org/ para ver el código fuente del códec y saber más sobre la implementación.
+plugins-widevine-name = Módulo de descifrado de contenido Widevine proporcionado por Google Inc.
+plugins-widevine-description = Este complemento permite la reproducción de medios cifrados de acuerdo con la especificación Encrypted Media Extensions. Los sitios suelen utilizar medios cifrados para protegerse contra la copia de contenido multimedia premium. Visite https://www.w3.org/TR/encrypted-media/ para obtener más información sobre Encrypted Media Extensions.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutCompat.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutCompat.ftl
new file mode 100644
index 0000000000..2b303e47d1
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Deshabilitar
+label-enable = Habilitar
+label-interventions = Intervenciones
+label-more-information = Más información: error { $bug }
+label-overrides = Modificar agente de usuario
+text-disabled-in-about-config = Se ha deshabilitado esta función en about:config
+text-no-interventions = No se están utilizando intervenciones
+text-no-overrides = No se están modificando el agente de usuario
+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 = Correcciones a SmartBlock
+text-no-smartblock = No se están utilizando correcciones de SmartBlock
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutGlean.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutGlean.ftl
new file mode 100644
index 0000000000..696360cb21
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutGlean.ftl
@@ -0,0 +1,107 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = Visor de ping para la depuración de { -glean-brand-name }
+about-glean-page-title2 = Acerca de { -glean-brand-name }
+about-glean-header = Acerca de { -glean-brand-name }
+about-glean-interface-description =
+ El <a data-l10n-name="glean-sdk-doc-link">{ glean-sdk-brand-name }</a>
+ es una biblioteca de recopilación de datos utilizada en proyectos de { -vendor-short-name }.
+ Esta interfaz está diseñada para que los desarrolladores y probadores
+ <a data-l10n-name="fog-link">prueben manualmente la instrumentación</a>.
+about-glean-upload-enabled = La carga de datos está activada.
+about-glean-upload-disabled = La carga de datos está desactivada.
+about-glean-upload-enabled-local = La carga de datos está activada solo para enviar a un servidor local.
+about-glean-upload-fake-enabled =
+ La carga de datos está desactivada,
+ pero le decimos a { glean-sdk-brand-name } que está activado
+ para que los datos se sigan registrando localmente.
+ Nota: si establece una etiqueta de depuración, los pings se cargarán en el
+ <a data-l10n-name="glean-debug-ping-viewer">{ glean-debug-ping-viewer-brand-name }</a> independientemente de la configuración.
+# This message is followed by a bulleted list.
+about-glean-prefs-and-defines = Las <a data-l10n-name="fog-prefs-and-defines-doc-link">preferencias y definiciones</a> relevantes incluyen:
+# 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 = Acerca de las pruebas
+# This message is followed by a numbered list.
+about-glean-manual-testing =
+ Las instrucciones completas están documentadas en los
+ <a data-l10n-name="fog-instrumentation-test-doc-link">documentos de pruebas de instrumentación de { -fog-brand-name }</a>
+ y en la <a data-l10n-name="glean-sdk-doc-link">documentación de { glean-sdk-brand-name }</a>,
+ pero, en resumen, para probar manualmente que su instrumentación funciona, debe:
+# This message is an option in a dropdown filled with untranslated names of pings.
+about-glean-no-ping-label = (no enviar ningún ping)
+# An in-line text input field precedes this string.
+about-glean-label-for-tag-pings = En el campo anterior, asegúrese de que haya una etiqueta de depuración fácil de recordar para que pueda reconocer sus pings más adelante.
+# An in-line text input field precedes this string.
+about-glean-label-for-tag-pings-with-requirements = Establezca una etiqueta de depuración fácil de recordar <span>(20 caracteres o menos, alfanuméricos y - solamente)</span> para que pueda reconocer sus pings más tarde.
+# An in-line drop down list precedes this string.
+# Do not translate strings between <code> </code> tags.
+about-glean-label-for-ping-names =
+ Seleccionar en la lista anterior el ping en el que se encuentra su instrumentación.
+ Si está en un <a data-l10n-name="custom-ping-link">ping personalizado</a>, elija ése.
+ De lo contrario, el valor predeterminado para las métricas de tipo <code>event</code> es
+ el ping <code>events</code>
+ y el valor predeterminado para todas las demás métricas es
+ el ping <code>metrics</code>.
+# An in-line check box precedes this string.
+about-glean-label-for-log-pings =
+ (Opcional. Marque la casilla anterior si desea que los ping también se registren cuando se envíen.
+ Además, deberá <a data-l10n-name="enable-logging-link">activar el registro</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 =
+ Presione el botón anterior para etiquetar todos los pings de { -glean-brand-name } con su etiqueta y enviar el ping seleccionado.
+ (Todos los ping enviados desde entonces hasta que reinicie la aplicación se etiquetarán con
+ <code>{ $debug-tag }</code>.)
+about-glean-li-for-visit-gdpv =
+ <a data-l10n-name="gdpv-tagged-pings-link">Visite la página { glean-debug-ping-viewer-brand-name } para ver los ping con su etiqueta</a>.
+ No debería llevar más de unos pocos segundos desde que se presiona el botón hasta que llega su ping.
+ Pero a veces puede tardar algunos minutos.
+# Do not translate strings between <code> </code> tags.
+about-glean-adhoc-explanation =
+ Para más pruebas <i>ad hoc</i>,
+ también puede determinar el valor actual de una pieza de instrumentación particular
+ abriendo una consola de herramientas de desarrollo aquí en <code>about:glean</code>
+ y usando la API <code>testGetValue()</code> como
+ <code>Glean.metricCategory.metricName.testGetValue()</code>.
+# Do not translate strings between <code> </code> tags.
+about-glean-adhoc-explanation2 =
+ Para más pruebas <i>ad hoc</i>,
+ también puede determinar el valor actual de una pieza particular de instrumentación
+ abriendo una consola de herramientas de desarrollo aquí en <code>about:glean</code>
+ y usando la API <code>testGetValue()</code> como
+ <code>Glean.metricCategory.metricName.testGetValue()</code>
+ para una métrica llamada <code>metric.category.metric_name</code>.
+# Do not translate strings between <code> </code> tags.
+about-glean-adhoc-note =
+ Tenga en cuenta que está utilizando la API Glean JS mediante la consola devtools.
+ Esto significa que la categoría de métrica y el nombre de la métrica tienen el formato
+ <code>camelCase</code> a diferencia de las APIs de Rust y C++.
+controls-button-label-verbose = Aplicar ajustes y enviar ping
+about-glean-about-data-header = Acerca de los datos
+about-glean-about-data-explanation =
+ Para navegar por la lista de datos recopilados, consulte el
+ <a data-l10n-name="glean-dictionary-link">diccionario { -glean-brand-name }</a>.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutHttpsOnlyError.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutHttpsOnlyError.ftl
new file mode 100644
index 0000000000..7e1887a418
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutHttpsOnlyError.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/.
+
+about-httpsonly-title-alert = Alerta de modo solo HTTPS
+about-httpsonly-title-site-not-available = Sitio seguro no disponible
+
+# Variables:
+# $websiteUrl (String) - Url of the website that failed to load. Example: www.example.com
+about-httpsonly-explanation-unavailable2 = Ha activado el modo solo HTTPS para mejorar la seguridad pero no está disponible una versión HTTPS de <em>{ $websiteUrl }</em>.
+about-httpsonly-explanation-question = ¿Qué podría estar causando esto?
+about-httpsonly-explanation-nosupport = Lo más probable es que el sitio web simplemente no sea compatible con HTTPS.
+about-httpsonly-explanation-risk = También es posible que un atacante esté involucrado. Si decide visitar el sitio web, no debe ingresar información confidencial como contraseñas, correos electrónicos o detalles de tarjetas de crédito.
+about-httpsonly-explanation-continue = Si continúa, el modo solo HTTPS se desactivará temporalmente para este sitio.
+
+about-httpsonly-button-continue-to-site = Continuar al sitio HTTP
+about-httpsonly-button-go-back = Retroceder
+about-httpsonly-link-learn-more = Saber más…
+
+## 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 = Posible alternativa
+about-httpsonly-suggestion-box-www-text = Hay una versión segura de <em>www.{ $websiteUrl }</em>. Puede visitar esta página en lugar de <em>{ $websiteUrl }</em>.
+about-httpsonly-suggestion-box-www-button = Ir a www.{ $websiteUrl }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutLogging.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutLogging.ftl
new file mode 100644
index 0000000000..325737054f
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutLogging.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 is the title of the page
+about-logging-title = Acerca del registro
+about-logging-page-title = Administrador de registros
+about-logging-current-log-file = Archivo actual de registro:
+about-logging-new-log-file = Nuevo archivo de registro:
+about-logging-currently-enabled-log-modules = Módulos de registro activados actualmente:
+about-logging-log-tutorial = Vea <a data-l10n-name="logging">Registro HTTP</a> para más instrucciones sobre cómo usar esta herramienta.
+# This message is used as a button label, "Open" indicates an action.
+about-logging-open-log-file-dir = Abrir directorio
+about-logging-set-log-file = Establecer archivo de registro
+about-logging-set-log-modules = Establecer módulos de registro
+about-logging-start-logging = Comenzar a registrar
+about-logging-stop-logging = Terminar de registrar
+about-logging-buttons-disabled = Registro configurado a través de variables de entorno, configuración dinámica no disponible.
+about-logging-some-elements-disabled = Registro configurado a través de URL, algunas opciones de configuración no están disponibles
+about-logging-info = Info:
+about-logging-log-modules-selection = Selección de módulos de registro
+about-logging-new-log-modules = Nuevos módulos de registro:
+about-logging-logging-output-selection = Salida de registro
+about-logging-logging-to-file = Registrar a un archivo
+about-logging-logging-to-profiler = Registrar en el { -profiler-brand-name }
+about-logging-no-log-modules = Ninguno
+about-logging-no-log-file = Ninguno
+about-logging-logging-preset-selector-text = Registro preestablecido:
+about-logging-with-profiler-stacks-checkbox = Activar análisis de la pila para mensajes de registro
+
+## Logging presets
+
+about-logging-preset-networking-label = Red
+about-logging-preset-networking-description = Módulos de registro para diagnosticar problemas de red
+about-logging-preset-networking-cookie-label = Cookies
+about-logging-preset-networking-cookie-description = Módulos de registro para diagnosticar problemas de cookies
+about-logging-preset-networking-websocket-label = WebSockets
+about-logging-preset-networking-websocket-description = Módulos de registro para diagnosticar problemas de WebSocket
+about-logging-preset-networking-http3-label = HTTP/3
+about-logging-preset-networking-http3-description = Módulos de registro para diagnosticar problemas de HTTP/3 y QUIC
+about-logging-preset-networking-http3-upload-speed-label = Velocidad de subida de HTTP/3
+about-logging-preset-networking-http3-upload-speed-description = Módulos de registro para diagnosticar problemas de la velocidad de subida de HTTP/3
+about-logging-preset-media-playback-label = Reproducción multimedia
+about-logging-preset-media-playback-description = Módulos de registro para diagnosticar problemas de reproducción de medios (no problemas de videoconferencia)
+about-logging-preset-webrtc-label = WebRTC
+about-logging-preset-webrtc-description = Módulos de registro para diagnosticar problemas de WebRTC
+about-logging-preset-webgpu-label = WebGPU
+about-logging-preset-webgpu-description = Módulos de registro para diagnosticar problemas de WebGPU
+about-logging-preset-gfx-label = Gráficos
+about-logging-preset-gfx-description = Módulos de registro 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 registro para diagnosticar problemas específicos de Microsoft Windows
+about-logging-preset-custom-label = Personalizado
+about-logging-preset-custom-description = Módulos de registro seleccionados manualmente
+# Error handling
+about-logging-error = Error:
+
+## Variables:
+## $k (String) - Variable name
+## $v (String) - Variable value
+
+about-logging-invalid-output = Valor no válido “{ $v }“ para la clave “{ $k }“
+about-logging-unknown-logging-preset = Valor preestablecido de registro desconocido “{ $v }“
+about-logging-unknown-profiler-preset = Analizador predeterminado desconocido “{ $v }“
+about-logging-unknown-option = Opción about:logging desconocida “{ $k }“
+about-logging-configuration-url-ignored = URL de configuración ignorada
+about-logging-file-and-profiler-override = No se puede forzar la salida a un archivo y anular las opciones del analizador al mismo tiempo
+about-logging-configured-via-url = Opción configurada a través de URL
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutMozilla.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutMozilla.ftl
new file mode 100644
index 0000000000..ebf7dba9ff
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutMozilla.ftl
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-mozilla-title-6-27 = El Libro de Mozilla, 6:27
+about-mozilla-quote-6-27 =
+ La Bestia continuó sus estudios con un renovado <em>Enfoque</em>, construyendo grandes trabajos de <em>Referencia</em>
+ y contemplando nuevas <em>Realidades</em>. La Bestia guió a sus seguidores y
+ acólitos para crear una forma renovada más pequeña de sí misma y, a través de medios <em>Maliciosos</em>,
+ la envió a todo el mundo.
+about-mozilla-from-6-27 = de <strong>El libro de Mozilla,</strong> 6:27
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutNetworking.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutNetworking.ftl
new file mode 100644
index 0000000000..8a6313953f
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 del tráfico de red
+about-networking-http = HTTP
+about-networking-sockets = Sockets
+about-networking-dns = DNS
+about-networking-dns-clear-cache-button = Borrar caché de DNS
+about-networking-dns-trr-url = URL DoH
+about-networking-dns-trr-mode = Modo DoH
+about-networking-dns-suffix = Sufijo DNS
+about-networking-websockets = WebSockets
+about-networking-refresh = Refrescar
+about-networking-auto-refresh = Referescar automáticamente cada 3 segundos
+about-networking-hostname = Nombre del servidor
+about-networking-port = Puerto
+about-networking-http-version = Versión HTTP
+about-networking-ssl = SSL
+about-networking-active = Activado
+about-networking-idle = Inactivo
+about-networking-host = Servidor
+about-networking-type = Tipo
+about-networking-sent = Enviado
+about-networking-received = Recibido
+about-networking-family = Familia
+about-networking-trr = TRR
+about-networking-addresses = Direcciones
+about-networking-expires = Expira (segundos)
+about-networking-originAttributesSuffix = Clave de aislamiento
+about-networking-flags = Flags extra
+about-networking-messages-sent = Mensajes enviados
+about-networking-messages-received = Mensajes recibidos
+about-networking-bytes-sent = Bytes enviados
+about-networking-bytes-received = Bytes recibidos
+about-networking-logging = Registro
+about-networking-dns-lookup = Búsqueda DNS
+about-networking-dns-lookup-button = Resolver
+about-networking-dns-domain = Dominio:
+about-networking-dns-lookup-table-column = IPs
+about-networking-dns-https-rr-lookup-table-column = HTTP RRs
+about-networking-rcwn = Estadísticas RCWN
+about-networking-rcwn-status = Estado RCWN
+about-networking-rcwn-cache-won-count = Cantidad de éxitos de caché
+about-networking-rcwn-net-won-count = Cantidad de éxitos de red
+about-networking-total-network-requests = Cantidad total de solicitudes de red
+about-networking-rcwn-operation = Operación de caché
+about-networking-rcwn-perf-open = Abierta
+about-networking-rcwn-perf-read = Lecturas
+about-networking-rcwn-perf-write = Escrituras
+about-networking-rcwn-perf-entry-open = Entrada abierta
+about-networking-rcwn-avg-short = Media de cortas
+about-networking-rcwn-avg-long = Media de largas
+about-networking-rcwn-std-dev-long = Desviación estándar de largas
+about-networking-rcwn-cache-slow = Cuenta de caché lenta
+about-networking-rcwn-cache-not-slow = Cuenta de caché no lenta
+about-networking-networkid = ID de red
+about-networking-networkid-id = ID de red
+# Note: do not translate about:logging, as it is a URL.
+about-networking-moved-about-logging = Esta página se ha movido a <a data-l10n-name="about-logging-url">about:logging</a>.
+
+## Link is intended as "network link"
+
+about-networking-networkid-is-up = La conexión está activa
+about-networking-networkid-status-known = Se conoce el estado del enlace
+
+##
+
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutPerformance.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutPerformance.ftl
new file mode 100644
index 0000000000..a4bbb63148
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutPerformance.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/.
+
+# Page title
+about-performance-title = Administrador de tareas
+
+## Column headers
+
+column-name = Nombre
+column-type = Tipo
+column-energy-impact = Impacto energético
+column-memory = Memoria
+
+## Special values for the Name column
+
+ghost-windows = Pestañas cerradas recientemente
+# Variables:
+# $title (String) - the title of the preloaded page, typically 'New Tab'
+preloaded-tab = Precargado: { $title }
+
+## Values for the Type column
+
+type-tab = Pestaña
+type-subframe = Subframe
+type-tracker = Rastreador
+type-addon = Complemento
+type-browser = Navegador
+type-worker = Worker
+type-other = Otro
+
+## 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 = Elevado ({ $value })
+energy-impact-medium = Medio ({ $value })
+energy-impact-low = Bajo ({ $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 = Cerrar pestaña
+show-addon =
+ .title = Mostrar en el administrador de complementos
+
+# Tooltip when hovering an item of the about:performance table
+# Variables:
+# $totalDispatches (Number) - how many dispatches occured for this page since it loaded
+# $totalDuration (Number) - how much CPU time was used by this page since it loaded
+# $dispatchesSincePrevious (Number) - how many dispatches occured in the last 2 seconds
+# $durationSincePrevious (Number) - how much CPU time was used in the last 2 seconds
+item =
+ .title = Envíos desde la carga: { $totalDispatches } ({ $totalDuration }ms) Envíos en los últimos segundos: { $dispatchesSincePrevious } ({ $durationSincePrevious }ms)
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutPlugins.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutPlugins.ftl
new file mode 100644
index 0000000000..08f84c3464
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 de los plugins
+installed-plugins-label = Plugins instalados
+no-plugins-are-installed-label = No se han encontrado plugins instalados
+deprecation-description = ¿Echa algo en falta? Algunos plugins ya no están admitidos. <a data-l10n-name="deprecation-link">Saber más.</a>
+deprecation-description2 =
+ .message = ¿Echa algo en falta? Algunos plugins ya no están admitidos.
+
+## 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">Archivo:</span> { $pluginLibraries }
+path-dd = <span data-l10n-name="path">Ruta:</span> { $pluginFullPath }
+version-dd = <span data-l10n-name="version">Versión:</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> Habilitado
+state-dd-enabled-block-list-state = <span data-l10n-name="state">Estado:</span> Habilitado ({ $blockListState })
+state-dd-Disabled = <span data-l10n-name="state">Estado:</span> Deshabilitado
+state-dd-Disabled-block-list-state = <span data-l10n-name="state">Estado:</span> Deshabilitado ({ $blockListState })
+mime-type-label = Tipo MIME
+description-label = Descripción
+suffixes-label = Sufijos
+
+## Gecko Media Plugins (GMPs)
+
+plugins-gmp-license-info = Información de licencia
+plugins-gmp-privacy-info = Información de privacidad
+plugins-openh264-name = OpenH264 Video Codec proporcionado por Cisco Systems, Inc.
+plugins-openh264-description = Este plugin se ha instalado automáticamente por Mozilla para cumplir con la especificación WebRTC y para permitir llamadas WebRTC con dispositivos que requieren el códec de vídeo H.264. Visite http://www.openh264.org/ para ver el código fuente del códec y saber más sobre la implementación.
+plugins-widevine-name = Módulo de descifrado de contenido Widevine proporcionado por Google Inc.
+plugins-widevine-description = Este complemento permite la reproducción de medios cifrados de acuerdo con la especificación Encrypted Media Extensions. Los sitios suelen utilizar medios cifrados para protegerse contra la copia de contenido multimedia premium. Visite https://www.w3.org/TR/encrypted-media/ para obtener más información sobre Encrypted Media Extensions.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutProcesses.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutProcesses.ftl
new file mode 100644
index 0000000000..f7bcf07a77
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutProcesses.ftl
@@ -0,0 +1,189 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Page title
+about-processes-title = Administrador de procesos
+# The Actions column
+about-processes-column-action =
+ .title = Acciones
+
+## Tooltips
+
+about-processes-shutdown-process =
+ .title = Descargar pestañas y matar el proceso
+about-processes-shutdown-tab =
+ .title = Cerrar pestaña
+# 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] Crear un perfil de todos los hilos de este proceso durante { $duration } segundo
+ *[other] Crear un perfil de todos los hilos de este proceso durante { $duration } segundos
+ }
+
+## Column headers
+
+about-processes-column-name = Nombre
+about-processes-column-memory-resident = Memoria
+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 = Proceso web compartido ({ $pid })
+about-processes-file-process = Archivos ({ $pid })
+about-processes-extension-process = Extensiones ({ $pid })
+about-processes-privilegedabout-process = Páginas "about" ({ $pid })
+about-processes-plugin-process = Plugins ({ $pid })
+about-processes-privilegedmozilla-process = Sitios { -vendor-short-name } ({ $pid })
+about-processes-gmp-plugin-process = Plugins de medios de Gecko ({ $pid })
+about-processes-gpu-process = GPU ({ $pid })
+about-processes-vr-process = Realidad Virtual ({ $pid })
+about-processes-rdd-process = Decodificador de datos ({ $pid })
+about-processes-socket-process = Red ({ $pid })
+about-processes-remote-sandbox-broker-process = Remote Sandbox Broker ({ $pid })
+about-processes-fork-server-process = Fork Server ({ $pid })
+about-processes-preallocated-process = Preasignado ({ $pid })
+about-processes-utility-process = Utilidad ({ $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 = Otro: { $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 }, origen cruzado aislado)
+about-processes-web-isolated-process-private = { $origin } — Privado ({ $pid })
+about-processes-with-coop-coep-process-private = { $origin } — Privado ({ $pid }, origen cruzado aislado)
+
+## 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 } hilo activo de { $number }: { $list }
+ *[other] { $active } hilos activos 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 } hilo inactivo
+ *[other] { $number } hilos inactivos
+ }
+# 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 del hilo: { $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 = Pestaña: { $name }
+about-processes-preloaded-tab = Pestaña nueva precargada
+# Single subframe
+# Variables:
+# $url (String) The full url of this subframe.
+about-processes-frame-name-one = Submarco: { $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 = Submarcos ({ $number }): { $shortUrl }
+
+## Utility process actor names
+
+about-processes-utility-actor-unknown = Actor desconocido
+about-processes-utility-actor-audio-decoder-generic = Decodificador de audio genérico
+about-processes-utility-actor-audio-decoder-applemedia = Decodificador de audio de Apple Media
+about-processes-utility-actor-audio-decoder-wmf = Decodificador de audio de Windows Media Framework
+about-processes-utility-actor-mf-media-engine = Windows Media Foundation Media Engine CDM
+# "Oracle" refers to an internal Firefox process and should be kept in English
+about-processes-utility-actor-js-oracle = JavaScript Oracle
+about-processes-utility-actor-windows-utils = Utilidades de Windows
+about-processes-utility-actor-windows-file-dialog = Diálogo de archivos de 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 = Tiempo total de CPU: { NUMBER($total, maximumFractionDigits: 0) }{ $unit }
+# Special case: data is not available yet.
+about-processes-cpu-user-and-kernel-not-ready = (medición en curso)
+# 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 = Tiempo total de CPU: { NUMBER($total, maximumFractionDigits: 0) }{ $unit }
+# Special case: process or thread is currently idle.
+about-processes-cpu-fully-idle = inactivo
+ .title = Tiempo 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 = Evolución: { $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/es-ES/localization/es-ES/toolkit/about/aboutProfiles.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutProfiles.ftl
new file mode 100644
index 0000000000..0c2ee59f8e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 de los perfiles
+profiles-subtitle = Esta página le ayuda a administrar sus perfiles. Cada perfil es un mundo separado que contiene historial, marcadores, configuración y complementos separados.
+profiles-create = Crear un perfil nuevo
+profiles-restart-title = Reiniciar
+profiles-restart-in-safe-mode = Reiniciar con complementos desactivados…
+profiles-restart-normal = Reiniciar normalmente…
+profiles-conflict = Otra copia de { -brand-product-name } ha hecho cambios a los perfiles. Debe reiniciar { -brand-short-name } antes de hacer más cambios.
+profiles-flush-fail-title = Cambios no guardados
+profiles-flush-conflict = { profiles-conflict }
+profiles-flush-failed = Un error inesperado ha evitado que se guarden sus cambios.
+profiles-flush-restart-button = Reiniciar { -brand-short-name }
+
+# Variables:
+# $name (String) - Name of the profile
+profiles-name = Perfil: { $name }
+profiles-is-default = Perfil predeterminado
+profiles-rootdir = Directorio raíz
+
+# 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 = Directorio local
+profiles-current-profile = Este es el perfil en uso y no puede ser eliminado.
+profiles-in-use-profile = Este perfil está en uso en otra aplicación y no puede ser borrado.
+
+profiles-rename = Renombrar
+profiles-remove = Eliminar
+profiles-set-as-default = Establecer como perfil predeterminado
+profiles-launch-profile = Abrir perfil en nuevo navegador
+
+profiles-cannot-set-as-default-title = No se puede establecer el valor predeterminado
+profiles-cannot-set-as-default-message = No se puede cambiar el perfil predeterminado para { -brand-short-name }.
+
+profiles-yes = sí
+profiles-no = no
+
+profiles-rename-profile-title = Renombrar perfil
+# Variables:
+# $name (String) - Name of the profile
+profiles-rename-profile = Renombrar perfil { $name }
+
+profiles-invalid-profile-name-title = Nombre de perfil no válido
+# Variables:
+# $name (String) - Name of the profile
+profiles-invalid-profile-name = El nombre de perfil "{ $name }" no está permitido.
+
+profiles-delete-profile-title = Eliminar perfil
+# Variables:
+# $dir (String) - Path to be displayed
+profiles-delete-profile-confirm =
+ Eliminar un perfil suprimirá el perfil de la lista de perfiles disponibles y no se puede deshacer.
+ Puede elegir además eliminar los archivos de datos del perfil, incluyendo su configuración, certificados y otros datos relativos al usuario. Esta opción eliminará la carpeta "{ $dir }" y no se puede deshacer.
+ ¿Desea eliminar los archivos de datos del perfil?
+profiles-delete-files = Eliminar archivos
+profiles-dont-delete-files = No eliminar archivos
+
+profiles-delete-profile-failed-title = Error
+profiles-delete-profile-failed-message = Hubo un error mientras se intentaba borrar este perfil.
+
+
+profiles-opendir =
+ { PLATFORM() ->
+ [macos] Mostrar en Finder
+ [windows] Abrir carpeta
+ *[other] Abrir directorio
+ }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutReader.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutReader.ftl
new file mode 100644
index 0000000000..e6c14ee812
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Cargando…
+about-reader-load-error = Fallo al cargar el artículo de la página
+
+about-reader-color-scheme-light = Claro
+ .title = Esquema de color claro
+about-reader-color-scheme-dark = Oscuro
+ .title = Esquema de color oscuro
+about-reader-color-scheme-sepia = Sepia
+ .title = Esquema de color sepia
+about-reader-color-scheme-auto = Auto
+ .title = Esquema de color 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 = Disminuir tamaño de fuente
+about-reader-toolbar-plus =
+ .title = Aumentar tamaño de fuente
+about-reader-toolbar-contentwidthminus =
+ .title = Disminuir anchura del contenido
+about-reader-toolbar-contentwidthplus =
+ .title = Aumentar anchura del contenido
+about-reader-toolbar-lineheightminus =
+ .title = Disminuir longitud de línea
+about-reader-toolbar-lineheightplus =
+ .title = Aumentar longitud de línea
+
+## These are the styles of typeface that are options in the reader view controls.
+
+about-reader-font-type-serif = Serif
+about-reader-font-type-sans-serif = Sans-serif
+
+## Reader View toolbar buttons
+
+about-reader-toolbar-close = Cerrar vista de lectura
+about-reader-toolbar-type-controls = Controles de tipografía
+about-reader-toolbar-savetopocket = Guardar en { -pocket-brand-name }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutRights.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutRights.ftl
new file mode 100644
index 0000000000..ff9176f1b2
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutRights.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+rights-title = Sobre sus derechos
+rights-intro = { -brand-full-name } es un software gratuito y de código abierto construido por una comunidad de miles de colaboradores de todo el mundo. Hay una serie de cosas que debería conocer:
+rights-intro-point-1 = { -brand-short-name } está disponible para usted bajo los términos de la <a data-l10n-name="mozilla-public-license-link">Mozilla Public License (Licencia Pública de Mozilla)</a>. Esto significa que puede usar, copiar y distribuir { -brand-short-name } a los demás. También puede modificar el código fuente de { -brand-short-name } para adaptarlo a sus necesidades. La Mozilla Public License (Licencia Pública de Mozilla) le otorga el derecho de distribuir sus versiones modificadas.
+rights-intro-point-2 = No se le concede ningún derecho ni licencia sobre las marcas comerciales de Mozilla Foundation o sus filiales, incluyendo sin limitación el nombre y logo de Firefox. Puede encontrarse información adicional sobre las marcas comerciales <a data-l10n-name="mozilla-trademarks-link">aquí</a>.
+rights-intro-point-3 = Algunas características en { -brand-short-name }, como el agente de informe de fallos, le dan la opción de proporcionar información a { -vendor-short-name }. Al elegir enviar esa información, concede a { -vendor-short-name } permiso para usar la misma para mejorar sus productos, para publicar esa información en sus sitios web y para distribuirla.
+rights-intro-point-4 = La manera en que usamos su información personal y las opiniones enviadas a { -vendor-short-name } a través de { -brand-short-name } se describe en la <a data-l10n-name="mozilla-privacy-policy-link">Política de privacidad de { -brand-short-name }</a>.
+rights-intro-point-4-unbranded = Cualquier política de privacidad aplicable a este producto se debe listar aquí.
+rights-intro-point-5 = Algunas características de { -brand-short-name } hacen uso de servicios de información basados en web; sin embargo, no podemos garantizar que sean 100 % precisos ni libres de errores. Se pueden encontrar más detalles, incluyendo información sobre cómo desactivar las características que usan estos servicios, en la <a data-l10n-name="mozilla-service-terms-link">términos del servicio</a>.
+rights-intro-point-5-unbranded = Si este producto incorpora servicios web, cualesquiera términos del servicio aplicables a los servicios deberían enlazarse en los <a data-l10n-name="mozilla-website-services-link">Servicios de sitios web</a> sección.
+rights-intro-point-6 = Para reproducir ciertos tipos de contenido de víeo, { -brand-short-name } descarga ciertos módulos de descifrado de contenido de terceros.
+rights-webservices-header = Servicios de información de { -brand-full-name } basados en web
+rights-webservices = { -brand-full-name } usa servicios de información basados en web ("servicios") para proporcionar algunas de las características ofrecidas para su uso con esta versión binaria de { -brand-short-name } bajo los términos descritos a continuación. Si no quiere usar uno o más de los servicios o los términos que siguen no son aceptables, puede desactivar la característica o servicio(s). Las instrucciones sobre cómo desactivar una característica o servicio concretos pueden encontrarse <a data-l10n-name="mozilla-disable-service-link">aquí</a>. Otras características y servicios pueden desactivarse en las preferencias de la aplicación.
+rights-safebrowsing = <strong>Navegación segura: </strong>Desactivar la característica de navegación segura no se recomienda porque puede dar como resultado que visite sitios no seguros. Si desea desactivar la característica completamente, siga estos pasos:
+rights-safebrowsing-term-1 = Abra las preferencias de la aplicación
+rights-safebrowsing-term-2 = Seleccione el panel Seguridad
+rights-safebrowsing-term-3 = Desmarque la opción para "{ enableSafeBrowsing-label }"
+enableSafeBrowsing-label = Bloquear contenido peligroso y engañoso
+rights-safebrowsing-term-4 = La navegación segura está ahora desactivada
+rights-locationawarebrowsing = <strong>Navegación basada en ubicación: </strong>siempre son a elección del usuario. Nunca se envía información sobre su ubicación sin su permiso. Si desea desactivar la característica por completo, siga esto pasos:
+rights-locationawarebrowsing-term-1 = En la barra de direcciones, escriba <code>about:config</code>
+rights-locationawarebrowsing-term-2 = Escriba geo.enabled
+rights-locationawarebrowsing-term-3 = Haga doble clic en la preferencia geo.enabled
+rights-locationawarebrowsing-term-4 = La navegación basada en ubicación está ahora desactivada
+rights-webservices-unbranded = Aquí debe incluirse un resumen de los servicios de sitios web que el producto incorpora, junto con instrucciones de cómo deshabilitarlas, si se aplica.
+rights-webservices-term-unbranded = Cualquier término de servicio para este producto debe ser listado aquí.
+rights-webservices-term-1 = { -vendor-short-name } y sus colaboradores, licenciatarios y socios trabajan para proporcionar los servicios más precisos y actualizados. Sin embargo, no podemos garantizar que esta información sea completa y esté libre de errores. Por ejemplo, el servicio de navegación segura puede no identificar algunos sitios peligrosos y puede identificar algunos sitios seguros por error y las direcciones devueltas por nuestros proveedores del servicio de navegación basada en la ubicación son sólo estimaciones y ni nosotros ni nuestros proveedores garantizamos la exactitud de las ubicaciones proporcionadas.
+rights-webservices-term-2 = { -vendor-short-name } puede discontinuar o cambiar los servicios a su albedrío.
+rights-webservices-term-3 = Puede usar estos servicios con la versión correspondiente de { -brand-short-name }, y { -vendor-short-name } le otorga derechos para hacerlo. { -vendor-short-name } y sus licenciatarios se reservan el resto de derechos de los servicios. Estos términos no limitan ningún derecho otorgado por las licencias de código abierto aplicables a { -brand-short-name } y las versiones del código fuente correspondiente de { -brand-short-name }.
+rights-webservices-term-4 = <strong>Los servicios son provistos "tal cual". { -vendor-short-name }, sus colaboradores, licenciatarios y distribuidores, rechazan toda garantía, así donde esté expresado o donde esté implícito, incluyendo y sin limitarse, garantías de que el servicio es comerciable y que cumple con su necesidad particular. Usted conlleva el riesgo seleccionado de este servicio para su propósito así como a la calidad y desempeño del servicio. Algunas jurisdicciones no permiten la exclusión o limitación de las garantías implícitas, así que esta denegación puede no aplicarse en su caso.</strong>
+rights-webservices-term-5 = <strong>Excepto donde sea requerido por la ley, { -vendor-short-name }, sus colaboradores, licenciatarios y distribuidores no podrán ser responsables de ningún daño indirecto, especial, imprevisto, resultante, punitivo o ejemplar relacionado con el uso de { -brand-short-name } y los servicios. La responsabilidad colectiva bajo estos términos no podrán exceder los US$500 (quinientos dólares). Algunas jurisdicciones no permiten la exclusión o limitación de ciertos daños, así que esta exclusión y limitación puede no ser aplicable para usted.</strong>
+rights-webservices-term-6 = { -vendor-short-name } puede actualizar estos términos si es necesario de tiempo en tiempo. Estos términos no pueden ser modificados o cancelados sin el consentimiento por escrito de { -vendor-short-name }.
+rights-webservices-term-7 = Estos términos están regidos por las leyes del estado de California, EE.UU., excluyendo sus conflictos con otras estipulaciones de la ley. Si cualquier parte de estos términos es posible que sea inválida o inexigible, las porciones restantes continuarán teniendo su efecto total. En el caso de haber un conflicto entre una versión traducida de estos términos y la versión en idioma Inglés, la versión en Inglés será la que tendrá el control.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutServiceWorkers.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutServiceWorkers.ftl
new file mode 100644
index 0000000000..2810d491bf
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 de los Service Workers
+about-service-workers-main-title = Service Workers registrados
+about-service-workers-warning-not-enabled = Los Service Workers no están activados.
+about-service-workers-warning-no-service-workers = No hay Service Workers registrados.
+
+# The original title of service workers' information
+#
+# Variables:
+# $originTitle: original title
+origin-title = Origen: { $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>Especif. script:</strong> <a data-l10n-name="link">{ $url }</a>
+current-worker-url = <strong>URL del worker actual:</strong> <a data-l10n-name="link">{ $url }</a>
+active-cache-name = <strong>Nombre del caché activo:</strong> { $name }
+waiting-cache-name = <strong>Nombre del caché de espera:</strong> { $name }
+push-end-point-waiting = <strong>Lado que envía (push):</strong> { waiting }
+push-end-point-result = <strong>Lado que envía (push):</strong> { $name }
+
+# This term is used as a button label (verb, not noun).
+update-button = Actualizar
+
+unregister-button = Deregistrar
+
+unregister-error = No se ha podido deregistrar este Service Worker.
+
+waiting = Esperando…
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutSupport.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutSupport.ftl
new file mode 100644
index 0000000000..366d2ca291
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutSupport.ftl
@@ -0,0 +1,426 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+page-title = Información para solucionar problemas
+page-subtitle = Esta página contiene información técnica que puede ser útil cuando intente solucionar un problema. Si está buscando respuestas a preguntas frecuentes sobre { -brand-short-name }, visite nuestro <a data-l10n-name="support-link">sitio de asistencia</a>.
+crashes-title = Informes de fallos
+crashes-id = ID del informe
+crashes-send-date = Enviado
+crashes-all-reports = Todos los informes de fallo
+crashes-no-config = Esta aplicación no ha sido configurada para mostrar informes de fallos.
+support-addons-title = Complementos
+support-addons-name = Nombre
+support-addons-type = Tipo
+support-addons-enabled = Activado
+support-addons-version = Versión
+support-addons-id = ID
+legacy-user-stylesheets-title = Hojas de estilo de usuario heredadas
+legacy-user-stylesheets-enabled = Activo
+legacy-user-stylesheets-stylesheet-types = Hojas de estilo
+legacy-user-stylesheets-no-stylesheets-found = No se han encontrado hojas de estilo
+security-software-title = Software de seguridad
+security-software-type = Tipo
+security-software-name = Nombre
+security-software-antivirus = Antivirus
+security-software-antispyware = Antispyware
+security-software-firewall = Cortafuegos
+features-title = Características de { -brand-short-name }
+features-name = Nombre
+features-version = Versión
+features-id = ID
+processes-title = Procesos remotos
+processes-type = Tipo
+processes-count = Número
+app-basics-title = Configuración básica de la aplicación
+app-basics-name = Nombre
+app-basics-version = Versión
+app-basics-build-id = ID de compilación
+app-basics-distribution-id = ID de distribución
+app-basics-update-channel = Canal de actualización
+# 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] Actualizar directorio
+ *[other] Actualizar carpeta
+ }
+app-basics-update-history = Historial de actualizaciones
+app-basics-show-update-history = Mostrar el historial de actualizaciones
+# Represents the path to the binary used to start the application.
+app-basics-binary = Binario de la aplicación
+app-basics-profile-dir =
+ { PLATFORM() ->
+ [linux] Directorio de perfil
+ *[other] Carpeta del perfil
+ }
+app-basics-enabled-plugins = Plugins activados
+app-basics-build-config = Configuración de compilación
+app-basics-user-agent = Agente de usuario
+app-basics-os = OS
+app-basics-os-theme = Tema del 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 = Traducido por Rosetta
+app-basics-memory-use = Uso de memoria
+app-basics-performance = Rendimiento
+app-basics-service-workers = Service Workers registrados
+app-basics-third-party = Módulos de terceros
+app-basics-profiles = Perfiles
+app-basics-launcher-process-status = Proceso lanzador
+app-basics-multi-process-support = Ventanas multiproceso
+app-basics-fission-support = Ventanas de Fission
+app-basics-remote-processes-count = Procesos remotos
+app-basics-enterprise-policies = Políticas empresariales
+app-basics-location-service-key-google = Clave del servicio de localización de Google
+app-basics-safebrowsing-key-google = Clave del servicio Google Safebrowsing
+app-basics-key-mozilla = Clave del servicio de ubicación de Mozilla
+app-basics-safe-mode = Modo seguro
+app-basics-memory-size = Tamaño de memoria (RAM)
+app-basics-disk-available = Espacio disponible en disco
+app-basics-pointing-devices = Dispositivos señaladores
+# 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 en Finder
+ [windows] Abrir carpeta
+ *[other] Abrir directorio
+ }
+environment-variables-title = Variables de entorno
+environment-variables-name = Nombre
+environment-variables-value = Valor
+experimental-features-title = Características experimentales
+experimental-features-name = Nombre
+experimental-features-value = Valor
+modified-key-prefs-title = Preferencias importantes modificadas
+modified-prefs-name = Nombre
+modified-prefs-value = Valor
+user-js-title = Preferencias en user.js
+user-js-description = Su carpeta del perfil contiene un <a data-l10n-name="user-js-link">archivo user.js</a>, que incluye preferencias que no han sido creadas por { -brand-short-name }.
+locked-key-prefs-title = Preferencias importantes bloqueadas
+locked-prefs-name = Nombre
+locked-prefs-value = Valor
+graphics-title = Gráficos
+graphics-features-title = Características
+graphics-diagnostics-title = Diagnósticos
+graphics-failure-log-title = Registro de fallos
+graphics-gpu1-title = GPU #1
+graphics-gpu2-title = GPU #2
+graphics-decision-log-title = Registro de decisiones
+graphics-crash-guards-title = Características desactivadas de Crash Guard
+graphics-workarounds-title = Alternativas
+graphics-device-pixel-ratios = Proporción de píxeles de la ventana del dispositivo
+# Windowing system in use on Linux (e.g. X11, Wayland).
+graphics-window-protocol = Protocolo de ventana
+# Desktop environment in use on Linux (e.g. GNOME, KDE, XFCE, etc).
+graphics-desktop-environment = Entorno de escritorio
+place-database-title = Base de datos de sitios
+place-database-stats = Estadísticas
+place-database-stats-show = Mostrar estadísticas
+place-database-stats-hide = Ocultar estadísticas
+place-database-stats-entity = Entidad
+place-database-stats-count = Número
+place-database-stats-size-kib = Tamaño (KB)
+place-database-stats-size-perc = Tamaño (%)
+place-database-stats-efficiency-perc = Eficiencia (%)
+place-database-stats-sequentiality-perc = Secuencialidad (%)
+place-database-integrity = Integridad
+place-database-verify-integrity = Verificar integridad
+a11y-title = Accesibilidad
+a11y-activated = Activado
+a11y-force-disabled = Impedir accesibilidad
+a11y-handler-used = Se usó un controlador accesible
+a11y-instantiator = Instanciador de accesibilidad
+library-version-title = Versiones de bibliotecas
+copy-text-to-clipboard-label = Copiar el texto al portapapeles
+copy-raw-data-to-clipboard-label = Copiar datos sin procesar al portapapeles
+sandbox-title = Entorno de pruebas
+sandbox-sys-call-log-title = Llamadas de sistema rechazadas
+sandbox-sys-call-index = #
+sandbox-sys-call-age = Hace segundos
+sandbox-sys-call-pid = PID
+sandbox-sys-call-tid = TID
+sandbox-sys-call-proc-type = Tipo de proceso
+sandbox-sys-call-number = Syscall
+sandbox-sys-call-args = Argumentos
+troubleshoot-mode-title = Diagnosticar problemas
+restart-in-troubleshoot-mode-label = Modo de resolución de problemas…
+clear-startup-cache-title = Intentar limpiar la caché de inicio
+clear-startup-cache-label = Limpiar caché de inicio…
+startup-cache-dialog-title2 = ¿Reiniciar { -brand-short-name } para limpiar la caché de inicio?
+startup-cache-dialog-body2 = Esto no cambiará su configuración ni eliminará extensiones.
+restart-button-label = Reiniciar
+
+## Media titles
+
+audio-backend = Sistema de audio
+max-audio-channels = Canales máximos
+sample-rate = Tasa de muestreo preferida
+roundtrip-latency = Latencia de ida y vuelta (desviación estándar)
+media-title = Medios
+media-output-devices-title = Dispositivos de salida
+media-input-devices-title = Dispositivos de entrada
+media-device-name = Nombre
+media-device-group = Grupo
+media-device-vendor = Fabricante
+media-device-state = Estado
+media-device-preferred = Preferido
+media-device-format = Formato
+media-device-channels = Canales
+media-device-rate = Tasa
+media-device-latency = Latencia
+media-capabilities-title = Capacidades del contenido multimedia
+media-codec-support-info = Información de compatibilidad de códecs
+# List all the entries of the database.
+media-capabilities-enumerate = Enumerar base de datos
+
+## Codec support table
+
+media-codec-support-sw-decoding = Decodificación por software
+media-codec-support-hw-decoding = Decodificación por hardware
+media-codec-support-codec-name = Nombre del códec
+media-codec-support-supported = Admitido
+media-codec-support-unsupported = No admitido
+media-codec-support-error = La información de compatibilidad del códec no está disponible. Vuelva a intentarlo después de reproducir de nuevo un archivo de medios
+media-codec-support-lack-of-extension = Instalar extensión
+
+## Media Content Decryption Modules (CDM)
+## See EME Spec for more explanation for following technical terms
+## https://w3c.github.io/encrypted-media/
+
+media-content-decryption-modules-title = Información de los módulos de descifrado de contenido (CDM)
+media-key-system-name = Nombre del sistema de claves
+media-video-robustness = Robustez del vídeo
+media-audio-robustness = Robustez del audio
+media-cdm-capabilities = Funcionalidades
+# Clear Lead isn't defined in the spec, which means the the first few seconds
+# are not encrypted. It allows playback to start without having to wait for
+# license response, improving video start time and user experience.
+media-cdm-clear-lead = Inicio en claro (Clear Lead)
+
+##
+
+intl-title = Internacionalización y localización
+intl-app-title = Configuración de la aplicación
+intl-locales-requested = Idiomas solicitados
+intl-locales-available = Idiomas disponibles
+intl-locales-supported = Idiomas de la aplicación
+intl-locales-default = Idioma preterminado
+intl-os-title = Sistema operativo
+intl-os-prefs-system-locales = Idiomas del sistema
+intl-regional-prefs = Preferencias regionales
+
+## 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 = Depuración remota (protocolo de Chromium )
+remote-debugging-accepting-connections = Aceptando conexiones
+remote-debugging-url = URL
+
+##
+
+# Variables
+# $days (Integer) - Number of days of crashes to log
+report-crash-for-days =
+ { $days ->
+ [one] Informes de fallos del último día
+ *[other] Informes de fallos de los últimos { $days } días
+ }
+# Variables
+# $minutes (integer) - Number of minutes since crash
+crashes-time-minutes =
+ { $minutes ->
+ [one] hace { $minutes } minuto
+ *[other] hace { $minutes } minutos
+ }
+# Variables
+# $hours (integer) - Number of hours since crash
+crashes-time-hours =
+ { $hours ->
+ [one] hace { $hours } hora
+ *[other] hace { $hours } horas
+ }
+# Variables
+# $days (integer) - Number of days since crash
+crashes-time-days =
+ { $days ->
+ [one] hace { $days } día
+ *[other] hace { $days } días
+ }
+# Variables
+# $reports (integer) - Number of pending reports
+pending-reports =
+ { $reports ->
+ [one] Todos los informes de fallos (incluyendo { $reports } fallo pendiente en el intervalo de tiempo indicado)
+ *[other] Todos los informes de fallos (incluyendo { $reports } fallos pendientes en el intervalo de tiempo indicado)
+ }
+raw-data-copied = Datos sin procesar copiados al portapapeles
+text-copied = Texto copiado al portapapeles
+
+## The verb "blocked" here refers to a graphics feature such as "Direct2D" or "OpenGL layers".
+
+blocked-driver = Bloqueado para la versión de su controlador gráfico.
+blocked-gfx-card = Bloqueado para su tarjeta gráfica debido a problemas no resueltos del controlador.
+blocked-os-version = Bloqueado para la versión de su sistema operativo.
+blocked-mismatched-version = Bloqueado por la diferencia e versión de su controlador gráfico entre el registro y la DLL.
+# Variables
+# $driverVersion - The graphics driver version string
+try-newer-driver = Bloqueado para la versión de su controlador gráfico. Pruebe a actualizar su controlador gráfico a la versión { $driverVersion } o más moderna.
+# "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 de ClearType
+compositing = Composición
+hardware-h264 = Decodificación H264 por hardware
+main-thread-no-omtc = hilo principal, sin OMTC
+yes = Sí
+no = No
+unknown = Desconocido
+virtual-monitor-disp = Pantalla de monitor 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 = Encontrado
+missing = Ausente
+gpu-process-pid = GPUProcessPid
+gpu-process = GPUProcess
+gpu-description = Descripción
+gpu-vendor-id = ID del fabricante
+gpu-device-id = ID del dispositivo
+gpu-subsys-id = ID del subsistema
+gpu-drivers = Controladores
+gpu-ram = RAM
+gpu-driver-vendor = Fabricante del driver
+gpu-driver-version = Versión del controlador
+gpu-driver-date = Fecha del controlador
+gpu-active = Activa
+webgl1-wsiinfo = Información WSI del controlador WebGL 1
+webgl1-renderer = Renderizador del controlador WebGL 1
+webgl1-version = Versión del controlador WebGL 1
+webgl1-driver-extensions = Extensiones del controlador WebGL 1
+webgl1-extensions = Extensiones WebGL 1
+webgl2-wsiinfo = Información WSI del controlador WebGL 2
+webgl2-renderer = Renderizador del controlador WebGL 2
+webgl2-version = Versión del controlador WebGL 2
+webgl2-driver-extensions = Extensiones del controlador WebGL 2
+webgl2-extensions = Extensiones WebGL 2
+webgpu-default-adapter = Adaptador predeterminado de WebGPU
+webgpu-fallback-adapter = Adaptador alternativo WebGPU
+# Variables
+# $bugNumber (string) - Bug number on Bugzilla
+support-blocklisted-bug = Lista bloqueada debido a problemas conocidos: <a data-l10n-name="bug-link">bug { $bugNumber }</a>
+# Variables
+# $failureCode (string) - String that can be searched in the source tree.
+unknown-failure = Incluido en lista de bloqueo; código de error { $failureCode }
+d3d11layers-crash-guard = Compositor D3D11
+glcontext-crash-guard = OpenGL
+wmfvpxvideo-crash-guard = Decodificador de vídeo WMF VPX
+reset-on-next-restart = Restablecer en el próximo reinicio
+gpu-process-kill-button = Terminar proceso GPU
+gpu-device-reset = Reiniciar dispositivo
+gpu-device-reset-button = Provocar reinicio del dispositivo
+uses-tiling = Usa mosaicos
+content-uses-tiling = Usa mosaicos (contenido)
+off-main-thread-paint-enabled = Dibujado fuera del hilo principal de ejecución activado
+off-main-thread-paint-worker-count = Contador de workers de dibujado ajenos al hilo principal de ejecución
+target-frame-rate = Frecuencia de imágenes objetivo
+min-lib-versions = Versión mínima esperada
+loaded-lib-versions = Versión en uso
+has-seccomp-bpf = Seccomp-BPF (filtrado de llamadas de sistema)
+has-seccomp-tsync = Sincronización de hilos seccomp
+has-user-namespaces = Espacios de nombres de usuario
+has-privileged-user-namespaces = Espacios de nombres de usuarios para procesos privilegiados
+can-sandbox-content = Aislamiento del proceso de contenido
+can-sandbox-media = Aislamiento de plugins de medios
+content-sandbox-level = Nivel de aislamiento del proceso de contenido
+effective-content-sandbox-level = Nivel efectivo de aislamiento (sandboxing) para los procesos de contenido
+content-win32k-lockdown-state = Estado de bloqueo Win32k del proceso para los contenidos
+support-sandbox-gpu-level = Nivel de aislamiento de procesos de GPU
+sandbox-proc-type-content = contenido
+sandbox-proc-type-file = contenido del archivo
+sandbox-proc-type-media-plugin = plugin de medios
+sandbox-proc-type-data-decoder = decodificador de datos
+startup-cache-title = Caché de inicio
+startup-cache-disk-cache-path = Ruta de caché de disco
+startup-cache-ignore-disk-cache = Ignorar caché de disco
+startup-cache-found-disk-cache-on-init = Caché de disco encontrada durante la inicialización
+startup-cache-wrote-to-disk-cache = Se escribió a la caché de disco
+launcher-process-status-0 = Activado
+launcher-process-status-1 = Desactivado por fallo
+launcher-process-status-2 = Desactivado forzosamente
+launcher-process-status-unknown = Estado desconocido
+# 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 = Desactivado por el experimento
+fission-status-experiment-treatment = Activado por el experimento
+fission-status-disabled-by-e10s-env = Desactivado por el entorno
+fission-status-enabled-by-env = Activado por el entorno
+fission-status-disabled-by-env = Desactivado por el entorno
+fission-status-enabled-by-default = Activado de forma predeterminada
+fission-status-disabled-by-default = Desactivado de forma predeterminada
+fission-status-enabled-by-user-pref = Activado por el usuario
+fission-status-disabled-by-user-pref = Desactivado por el usuario
+fission-status-disabled-by-e10s-other = E10s desactivado
+fission-status-enabled-by-rollout = Habilitado por el lanzamiento por fases
+async-pan-zoom = Encuadre/zoom asíncrono
+apz-none = ninguno
+wheel-enabled = entrada de rueda de ratón activada
+touch-enabled = entrada táctil activada
+drag-enabled = arrastre de la barra de desplazamiento activado
+keyboard-enabled = teclado habilitado
+autoscroll-enabled = desplazamiento automático activado
+zooming-enabled = zoom de pellizco suave activado
+
+## Variables
+## $preferenceKey (string) - String ID of preference
+
+wheel-warning = entrada de rueda de ratón desactivada debido a una preferencia no admitida: { $preferenceKey }
+touch-warning = entrada táctil asíncrona desactivada debido a una preferencia no admitida: { $preferenceKey }
+
+## Strings representing the status of the Enterprise Policies engine.
+
+policies-inactive = Inactivo
+policies-active = Activo
+policies-error = Error
+
+## Printing section
+
+support-printing-title = Imprimiendo
+support-printing-troubleshoot = Solución de problemas
+support-printing-clear-settings-button = Eliminar los ajustes de impresión guardados
+support-printing-modified-settings = Ajustes de impresión modificados
+support-printing-prefs-name = Nombre
+support-printing-prefs-value = Valor
+
+## Normandy sections
+
+support-remote-experiments-title = Experimentos remotos
+support-remote-experiments-name = Nombre
+support-remote-experiments-branch = Rama de experimentos
+support-remote-experiments-see-about-studies = Ver <a data-l10n-name="support-about-studies-link">about:studies</a> para más información, incluyendo como desactivar experimentos individuales o desactivar que { -brand-short-name } ejecute este tipo de experimentos en el futuro.
+support-remote-features-title = Funciones remotas
+support-remote-features-name = Nombre
+support-remote-features-status = Estado
+
+## Pointing devices
+
+pointing-device-mouse = Ratón
+pointing-device-touchscreen = Pantalla táctil
+pointing-device-pen-digitizer = Lápiz digitalizador
+pointing-device-none = Sin dispositivos señaladores
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutTelemetry.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutTelemetry.ftl
new file mode 100644
index 0000000000..f3362ede33
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Origen de los datos de ping:
+about-telemetry-show-current-data = Datos actuales
+about-telemetry-show-archived-ping-data = Datos archivados de ping
+about-telemetry-show-subsession-data = Mostrar datos de subsesión
+about-telemetry-choose-ping = Elija ping:
+about-telemetry-archive-ping-type = Tipo de ping
+about-telemetry-archive-ping-header = Ping
+about-telemetry-option-group-today = Hoy
+about-telemetry-option-group-yesterday = Ayer
+about-telemetry-option-group-older = Más antiguo
+about-telemetry-previous-ping = <<
+about-telemetry-next-ping = >>
+about-telemetry-page-title = Datos de Telemetry
+about-telemetry-current-store = Almacenamiento actual:
+about-telemetry-more-information = ¿Busca más información?
+about-telemetry-firefox-data-doc = La <a data-l10n-name="data-doc-link">Documentación de datos de Firefox</a> contiene guías sobre cómo trabajar con nuestras herramientas de datos.
+about-telemetry-telemetry-client-doc = La <a data-l10n-name="client-doc-link">documentación del cliente Telemetry de Firefox</a> incluye definiciones de conceptos, documentación de la API y referencias de datos.
+about-telemetry-telemetry-dashboard = Los <a data-l10n-name="dashboard-link">paneles de Telemetry</a> le permiten visualizar los datos que Mozilla recibe a través de Telemetry.
+about-telemetry-telemetry-probe-dictionary = <a data-l10n-name="probe-dictionary-link">Probe Dictionary</a> proporciona detalles y descripciones de las muestras recogidas por Telemetry.
+about-telemetry-show-in-Firefox-json-viewer = Abrir en el visor JSON
+about-telemetry-home-section = Inicio
+about-telemetry-general-data-section = Datos generales
+about-telemetry-environment-data-section = Datos del entorno
+about-telemetry-session-info-section = Información de sesión
+about-telemetry-scalar-section = Escalares
+about-telemetry-keyed-scalar-section = Escalares con nombre
+about-telemetry-histograms-section = Histogramas
+about-telemetry-keyed-histogram-section = Histogramas con leyendas
+about-telemetry-events-section = Eventos
+about-telemetry-simple-measurements-section = Medidas simples
+about-telemetry-slow-sql-section = Sentencias SQL lentas
+about-telemetry-addon-details-section = Detalles del complemento
+about-telemetry-late-writes-section = Escrituras demoradas
+about-telemetry-raw-payload-section = Contenido sin procesar
+about-telemetry-raw = JSON sin procesar
+about-telemetry-full-sql-warning = NOTA: la depuración SQL lenta está activada. Pueden mostrarse cadenas completas de SQL debajo, pero no se enviarán a Telemetry.
+about-telemetry-fetch-stack-symbols = Recuperar nombres de funciones para las pilas
+about-telemetry-hide-stack-symbols = Mostrar datos de la pila sin procesarlos
+# Selects the correct release version
+# Variables:
+# $channel (String): represents the corresponding release data string
+about-telemetry-data-type =
+ { $channel ->
+ [release] datos de la versión
+ *[prerelease] datos de la versión preliminar
+ }
+# Selects the correct upload string
+# Variables:
+# $uploadcase (String): represents a corresponding upload string
+about-telemetry-upload-type =
+ { $uploadcase ->
+ [enabled] habilitada
+ *[disabled] deshabilitada
+ }
+# 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 } muestra, media = { $prettyAverage }, suma = { $sum }
+ *[other] { $sampleCount } muestras, media = { $prettyAverage }, suma = { $sum }
+ }
+# Variables:
+# $telemetryServerOwner (String): the value of the toolkit.telemetry.server_owner preference. Typically "Mozilla"
+about-telemetry-page-subtitle = Esta página muestra la información de rendimiento, hardware, uso y personalizaciones recopilada por Telemetry. Esta información se envía a { $telemetryServerOwner } para ayudar a mejorar { -brand-full-name }.
+about-telemetry-settings-explanation = Telemetry está recopilando { about-telemetry-data-type } y la subida 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 parte de información se envía empaquetada en "<a data-l10n-name="ping-link">pings</a>". Está viendo el ping { $name }, { $timestamp }.
+about-telemetry-data-details-current = Cada parte de información se envía agrupada en "<a data-l10n-name="ping-link">pings</a>". Está viendo los datos actuales.
+# 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 = Encontrar en { $selectedTitle }
+about-telemetry-filter-all-placeholder =
+ .placeholder = Buscar en todas las secciones
+# 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 = ¡Lo sentimos! No hay resultados en { $sectionName } de "{ $currentSearchText }"
+# Variables:
+# $searchTerms (String): the searched terms
+about-telemetry-no-search-results-all = ¡Lo sentimos! No hay resultados para "{ $searchTerms }" en ningun sección
+# This message is displayed when a section is empty.
+# Variables:
+# $sectionName (String): is replaced by the section name.
+about-telemetry-no-data-to-display = ¡Lo sentimos! En este momento no hay datos disponibles en "{ $sectionName }"
+# used as a tooltip for the “current” ping title in the sidebar
+about-telemetry-current-data-sidebar = datos actuales
+# used in the “Ping Type” select
+about-telemetry-telemetry-ping-type-all = todo
+# 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 = Sentencias SQL lentas en el hilo principal
+about-telemetry-slow-sql-other = Sentencias SQL lentas en hilos auxiliares
+about-telemetry-slow-sql-hits = Aciertos
+about-telemetry-slow-sql-average = Tiempo medio (ms)
+about-telemetry-slow-sql-statement = Sentencia
+# these strings are used in the “Add-on Details” section
+about-telemetry-addon-table-id = ID del complemento
+about-telemetry-addon-table-details = Detalles
+# Variables:
+# $addonProvider (String): the name of an Add-on Provider (e.g. “XPI”, “Plugin”)
+about-telemetry-addon-provider = Proveedor { $addonProvider }
+about-telemetry-keys-header = Propiedad
+about-telemetry-names-header = Nombre
+about-telemetry-values-header = Valor
+# Variables:
+# $lateWriteCount (Integer): the number of the late writes
+about-telemetry-late-writes-title = Escritura demorada #{ $lateWriteCount }
+about-telemetry-stack-title = Pila:
+about-telemetry-memory-map-title = Mapa de memoria:
+about-telemetry-error-fetching-symbols = Ha sucedido un error al recuperar los símbolos. Compruebe que está conectado a Internet y vuelva a intentarlo.
+about-telemetry-time-stamp-header = fecha y hora
+about-telemetry-category-header = categoría
+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 } proceso
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutThirdParty.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutThirdParty.ftl
new file mode 100644
index 0000000000..6adb1ea2d2
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Información de módulos de terceros
+third-party-section-title = Lista de módulos de terceros en { -brand-short-name }
+third-party-intro =
+ Esta página muestra los módulos de terceros que se descargaron en su
+ { -brand-short-name }. Cualquier módulo que no esté firmado por Microsoft o
+ { -vendor-short-name } se considera un módulo de terceros.
+third-party-message-empty = No se detectaron módulos de terceros.
+third-party-message-no-duration = No registrado
+third-party-detail-version = Versión del archivo
+third-party-detail-vendor = Información del fabricante
+third-party-detail-occurrences = Ocurrencias
+ .title = Cuántas veces fue cargado este módulo.
+third-party-detail-duration = Tiempo medio de bloqueo (ms)
+ .title = Cuánto tiempo bloqueó este módulo la aplicación.
+third-party-detail-app = Aplicación
+third-party-detail-publisher = Editor
+third-party-th-process = Proceso
+third-party-th-duration = Duración de la carga (ms)
+third-party-th-status = Estado
+third-party-tag-ime = IME
+ .title = Este tipo de módulo se carga cuando usa un IME de terceros.
+third-party-tag-shellex = Extensión de la consola
+ .title = Este tipo de módulo se carga cuando se abre el diálogo de archivos del sistema.
+third-party-tag-background = Segundo plano
+ .title =
+ Este tipo de módulo no bloqueó la aplicación porque se cargó
+ en segundo plano.
+third-party-icon-unsigned =
+ .title = Este módulo no está firmado
+ .alt = Este módulo no está firmado
+third-party-icon-warning =
+ .title = { -brand-short-name } ha fallado en el código de este módulo
+ .alt = { -brand-short-name } ha fallado en el código de este módulo
+third-party-status-loaded = Cargado
+third-party-status-blocked = Bloqueado
+third-party-status-redirected = Redirigido
+third-party-button-copy-to-clipboard = Copiar datos sin procesar al portapapeles
+third-party-loading-data =
+ .alt = Cargando información del sistema…
+ .title = Cargando información del sistema…
+third-party-button-reload = Recargar con información del sistema
+ .title = Recargar con información del sistema
+third-party-button-open =
+ .title = Abrir ubicación del archivo...
+third-party-button-to-block =
+ .title = Bloquear este módulo
+ .aria-label = Bloquear este módulo
+third-party-button-to-unblock =
+ .title = Actualmente bloqueado. Haga clic para desbloquearlo.
+ .aria-label = Actualmente bloqueado. Haga clic para desbloquearlo.
+third-party-button-to-unblock-disabled =
+ .title =
+ Actualmente marcado como bloqueado, aunque la lista de bloqueo está desactivada para esta ejecución
+ de { -brand-short-name }. Haga clic para desbloquearlo.
+ .aria-label =
+ Actualmente marcado como bloqueado, aunque la lista de bloqueo está desactivada para esta ejecución
+ de { -brand-short-name }. Haga clic para desbloquearlo.
+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 = Actualmente bloqueado. Clic para desbloquearlo.
+ .aria-label = Actualmente bloqueado. Clic para desbloquearlo.
+third-party-button-to-unblock-module-disabled = Desbloquear este módulo (lista de bloqueo actualmente deshabilitada)
+ .title =
+ Actualmente marcado como bloqueado, aunque la lista de bloqueo está desactivada para esta ejecución
+ de { -brand-short-name }. Clic para desbloquearlo.
+ .aria-label =
+ Actualmente marcado como bloqueado, aunque la lista de bloqueo está desactivada para esta ejecución
+ de { -brand-short-name }. Clic para desbloquearlo.
+third-party-button-expand =
+ .title = Mostrar información detallada
+third-party-button-collapse =
+ .title = Ocultar información detallada
+third-party-blocking-requires-restart = Para bloquear un módulo de terceros, { -brand-short-name } debe reiniciarse.
+third-party-should-restart-title = Reiniciar { -brand-short-name }
+third-party-restart-now = Reiniciar ahora
+third-party-restart-later = Reiniciar más tarde
+third-party-blocked-by-builtin =
+ .title = Bloqueado por { -brand-short-name }
+ .alt = Bloqueado por { -brand-short-name }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutWebauthn.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutWebauthn.ftl
new file mode 100644
index 0000000000..409c8608de
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutWebauthn.ftl
@@ -0,0 +1,130 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. 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:webauthn, a security token management page
+
+# Page title
+# 'WebAuthn' is a protocol name and should not be translated
+about-webauthn-page-title = Acerca de WebAuthn
+
+## Section titles
+
+about-webauthn-info-section-title = Información del dispositivo
+about-webauthn-info-subsection-title = Información del autenticador
+about-webauthn-options-subsection-title = Opciones del autenticador
+about-webauthn-pin-section-title = Administrador de PIN
+about-webauthn-credential-management-section-title = Administrar credenciales
+about-webauthn-pin-required-section-title = PIN requerido
+about-webauthn-confirm-deletion-section-title = Confirmar eliminación
+
+## Info field texts
+
+about-webauthn-text-connect-device = Por favor, conecta un token de seguridad.
+# If multiple devices are plugged in, they will blink and we are asking the user to select one by touching the device they want.
+about-webauthn-text-select-device = Seleccione el token de seguridad que desee tocando el dispositivo.
+# CTAP2 refers to Client to Authenticator Protocol version 2
+about-webauthn-text-non-ctap2-device = No se pueden administrar las opciones porque el token de seguridad no es compatible con CTAP2.
+about-webauthn-text-not-available = No disponible en esta plataforma.
+
+## Results label
+
+about-webauthn-results-success = ¡Todo correcto!
+about-webauthn-results-general-error = ¡Error!
+# Variables:
+# $retriesLeft (Number): number of tries left
+about-webauthn-results-pin-invalid-error =
+ { $retriesLeft ->
+ [0] Error: PIN incorrecto. Inténtelo de nuevo.
+ [one] Error: PIN incorrecto. Inténtelo de nuevo. Le queda un intento.
+ *[other] Error: PIN incorrecto. Inténtelo de nuevo. Le quedan { $retriesLeft } intentos.
+ }
+about-webauthn-results-pin-blocked-error = Error: No quedan más intentos y el dispositivo se ha bloqueado porque se ha proporcionado un PIN incorrecto demasiadas veces. El dispositivo necesita un reinicio.
+about-webauthn-results-pin-too-short-error = Error: el PIN proporcionado es demasiado corto.
+about-webauthn-results-pin-too-long-error = Error: el PIN proporcionado es demasiado largo.
+about-webauthn-results-pin-auth-blocked-error = Error: Ha habido demasiados intentos fallidos seguidos y la autenticación con PIN se ha bloqueado temporalmente. Su dispositivo necesita ser desenchufado e insertado de nuevo.
+about-webauthn-results-cancelled-by-user-error = Error: La operación ha sido cancelada por el usuario.
+
+## Labels
+
+about-webauthn-new-pin-label = Nuevo PIN:
+about-webauthn-repeat-pin-label = Repetir nuevo PIN:
+about-webauthn-current-pin-label = PIN actual:
+about-webauthn-pin-required-label = Por favor, escriba su PIN:
+about-webauthn-credential-list-subsection-title = Credenciales:
+about-webauthn-credential-list-empty = No se han encontrado credenciales en el dispositivo.
+about-webauthn-confirm-deletion-label = Está a punto de eliminar:
+
+## Buttons
+
+about-webauthn-current-set-pin-button = Establecer PIN
+about-webauthn-current-change-pin-button = Cambiar PIN
+# List is a verb, as in "Show list of credentials"
+about-webauthn-list-credentials-button = Listar credenciales
+about-webauthn-cancel-button = Cancelar
+about-webauthn-send-pin-button = Aceptar
+about-webauthn-delete-button = Eliminar
+
+## Authenticator options fields
+## Option fields correspond to the CTAP2 option IDs and definitions found in https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-20210615.html#option-id
+
+about-webauthn-auth-option-uv = Verificación de usuario
+about-webauthn-auth-option-up = Presencia de usuario
+about-webauthn-auth-option-clientpin = PIN de cliente
+about-webauthn-auth-option-rk = Clave residente
+about-webauthn-auth-option-plat = Dispositivo de plataforma
+# pinUvAuthToken should not be translated.
+about-webauthn-auth-option-pinuvauthtoken = Permisos de comando (pinUvAuthToken)
+# MakeCredential and GetAssertion should not be translated.
+about-webauthn-auth-option-nomcgapermissionswithclientpin = Sin permisos MakeCredential/GetAssertion con PIN de cliente
+about-webauthn-auth-option-largeblobs = Blobs grandes
+about-webauthn-auth-option-ep = Certificación empresarial
+about-webauthn-auth-option-bioenroll = Registro biométrico
+# FIDO_2_1_PRE should not be translated.
+about-webauthn-auth-option-userverificationmgmtpreview = Prototipo de registro biométrico (FIDO_2_1_PRE)
+about-webauthn-auth-option-uvbioenroll = Permiso de registro biométrico
+about-webauthn-auth-option-authnrcfg = Ajustes del autenticador
+about-webauthn-auth-option-uvacfg = Permiso de ajustes del autenticador
+about-webauthn-auth-option-credmgmt = Administrador de credenciales
+about-webauthn-auth-option-credentialmgmtpreview = Administrador de credenciales de prototipo
+about-webauthn-auth-option-setminpinlength = Establecer la longitud mínima del PIN
+# MakeCredential should not be translated.
+about-webauthn-auth-option-makecreduvnotrqd = MakeCredential sin verificación de usuario
+about-webauthn-auth-option-alwaysuv = Pedir siempre verificación de usuario
+# Shows when boolean value for an option is True. True should not be translated.
+about-webauthn-auth-option-true = Verdadero
+# Shows when boolean value of an option is False. False should not be translated.
+about-webauthn-auth-option-false = Falso
+# If the value is missing (null), it means a certain feature is not supported.
+about-webauthn-auth-option-null = No admitido
+
+## Authenticator info fields
+## Info fields correspond to the CTAP2 authenticatorGetInfo field member name and definitions found in https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-20210615.html#authenticatorGetInfo
+
+about-webauthn-auth-info-vendor-prototype-config-commands = Comandos de configuración del prototipo del proveedor
+about-webauthn-auth-info-remaining-discoverable-credentials = Credenciales detectables restantes
+about-webauthn-auth-info-certifications = Certificaciones
+about-webauthn-auth-info-uv-modality = Modalidad de verificación de usuario
+about-webauthn-auth-info-preferred-platform-uv-attempts = Plataforma preferida para los intentos de verificación de usuario
+about-webauthn-auth-info-max-rpids-for-set-min-pin-length = Máximo de Relying Party IDs para establecer el tamaño mínimo de PIN
+about-webauthn-auth-info-max-cred-blob-length = Tamaño máximo de blob de credenciales
+about-webauthn-auth-info-firmware-version = Versión de firmware
+about-webauthn-auth-info-min-pin-length = Longitud mínima del PIN
+about-webauthn-auth-info-force-pin-change = Forzar cambio de PIN
+about-webauthn-auth-info-max-ser-large-blob-array = Tamaño máximo de array de blobs grandes
+about-webauthn-auth-info-algorithms = Algoritmos
+about-webauthn-auth-info-transports = Transportes
+about-webauthn-auth-info-max-credential-id-length = Tamaño máximo del ID de credencial
+about-webauthn-auth-info-max-credential-count-in-list = Número máximo de credenciales en la lista
+about-webauthn-auth-info-pin-protocols = Protocolos de PIN
+about-webauthn-auth-info-max-msg-size = Tamaño máximo del mensaje
+# AAGUID should not be translated.
+about-webauthn-auth-info-aaguid = AAGUID
+about-webauthn-auth-info-extensions = Extensiones
+about-webauthn-auth-info-versions = Versiones
+# Shows when boolean value for an info field is True. True should not be translated.
+about-webauthn-auth-info-true = Verdadero
+# Shows when boolean value for an info field is False. False should not be translated.
+about-webauthn-auth-info-false = Falso
+about-webauthn-auth-info-null = No admitido
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutWebrtc.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutWebrtc.ftl
new file mode 100644
index 0000000000..bbe7304afb
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutWebrtc.ftl
@@ -0,0 +1,327 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. 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 = Datos internos de 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 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 cerradas
+about-webrtc-closed-peerconnection-disclosure-hide-msg = Ocultar PeerConnections cerradas
+
+## AEC is an abbreviation for Acoustic Echo Cancellation.
+
+about-webrtc-aec-logging-msg-label = Registro AEC
+about-webrtc-aec-logging-off-state-label = Iniciar registro AEC
+about-webrtc-aec-logging-on-state-label = Detener registro AEC
+about-webrtc-aec-logging-on-state-msg = Registro AEC activo (hable con el interlocutor durante unos minutos y luego detenga la captura)
+about-webrtc-aec-logging-toggled-on-state-msg = Registro AEC activo (hable con el interlocutor durante unos minutos y luego detenga la captura)
+about-webrtc-aec-logging-unavailable-sandbox = Se requiere la variable de entorno MOZ_DISABLE_CONTENT_SANDBOX=1 para exportar registros AEC. Establezca esta variable solo si comprende los posibles riesgos.
+# Variables:
+# $path (String) - The path to which the aec log file is saved.
+about-webrtc-aec-logging-toggled-off-state-msg = Los archivos de registro se pueden encontrar en: { $path }
+
+##
+
+# The autorefresh checkbox causes a stats section to autorefresh its content when checked
+about-webrtc-auto-refresh-label = Recargar automáticamente
+# Determines the default state of the Auto Refresh check boxes
+about-webrtc-auto-refresh-default-label = Actualización automática de forma predeterminada
+# A button which forces a refresh of displayed statistics
+about-webrtc-force-refresh-button = Refrescar
+# "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 de PeerConnection:
+# The number of DataChannels that a PeerConnection has opened
+about-webrtc-data-channels-opened-label = Canales de datos abiertos:
+# The number of once open DataChannels that a PeerConnection has closed
+about-webrtc-data-channels-closed-label = Canales de datos cerrados:
+
+## "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 (Respuesta)
+about-webrtc-remote-sdp-heading = SDP remoto
+about-webrtc-remote-sdp-heading-offer = SDP remoto (Oferta)
+about-webrtc-remote-sdp-heading-answer = SDP remoto (Respuesta)
+about-webrtc-sdp-history-heading = Historial SDP
+about-webrtc-sdp-parsing-errors-heading = Errores de análisis de 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 = Estadísticas RDP
+
+## "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 = Estadísticas ICE
+about-webrtc-ice-restart-count-label = Reinicios de ICE:
+about-webrtc-ice-rollback-count-label = Vueltas atrás de ICE:
+about-webrtc-ice-pair-bytes-sent = Bytes enviados:
+about-webrtc-ice-pair-bytes-received = Bytes recibidos:
+about-webrtc-ice-component-id = ID del 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 = Nominado
+# 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 = Seleccionado
+about-webrtc-save-page-label = Guardar página
+about-webrtc-debug-mode-msg-label = Modo de depuración
+about-webrtc-debug-mode-off-state-label = Iniciar modo de depuración
+about-webrtc-debug-mode-on-state-label = Detener el modo de depuración
+about-webrtc-enable-logging-label = Activar el registro preestablecido de WebRTC
+about-webrtc-stats-heading = Estadísticas de la sesión
+about-webrtc-peerconnections-section-heading = Estadísticas de RTCPeerConnection
+about-webrtc-peerconnections-section-show-msg = Mostrar estadísticas de RTCPeerConnection
+about-webrtc-peerconnections-section-hide-msg = Ocultar estadísticas de RTCPeerConnection
+about-webrtc-stats-clear = Limpiar historial
+about-webrtc-log-heading = Registro de conexión
+about-webrtc-log-clear = Limpiar registro
+about-webrtc-log-show-msg = mostrar registro
+ .title = pulse para expandir esta sección
+about-webrtc-log-hide-msg = ocultar registro
+ .title = pulse para contraer esta sección
+about-webrtc-log-section-show-msg = Mostrar registro
+ .title = Pulse para expandir esta sección
+about-webrtc-log-section-hide-msg = Ocultar registro
+ .title = Pulse para contraer esta sección
+about-webrtc-copy-report-button = Copiar informe
+about-webrtc-copy-report-history-button = Copiar historial de informes
+
+## 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 } (cerrado) { $now }
+
+## These are used to indicate what direction media is flowing.
+## Variables:
+## $codecs - a list of media codecs
+
+about-webrtc-short-send-receive-direction = Envío/recepción: { $codecs }
+about-webrtc-short-send-direction = Envío: { $codecs }
+about-webrtc-short-receive-direction = Recepción: { $codecs }
+
+##
+
+about-webrtc-local-candidate = Candidato local
+about-webrtc-remote-candidate = Candidato remoto
+about-webrtc-raw-candidates-heading = Todos los candidatos no procesados
+about-webrtc-raw-local-candidate = Candidato local no procesados
+about-webrtc-raw-remote-candidate = Candidato remoto no procesados
+about-webrtc-raw-cand-show-msg = mostrar candidatos no procesados
+ .title = pulse para expandir esta sección
+about-webrtc-raw-cand-hide-msg = ocultar candidatos no procesados
+ .title = pulse para contraer esta sección
+about-webrtc-raw-cand-section-show-msg = Mostrar candidatos no procesados
+ .title = Pulse para expandir esta sección
+about-webrtc-raw-cand-section-hide-msg = Ocultar candidatos no procesados
+ .title = Pulse para contraer esta sección
+about-webrtc-priority = Prioridad
+about-webrtc-fold-show-msg = mostrar detalles
+ .title = pulse para expandir esta sección
+about-webrtc-fold-hide-msg = ocultar detalles
+ .title = pulse para contraer esta sección
+about-webrtc-fold-default-show-msg = Mostrar detalles
+ .title = Pulse para expandir esta sección
+about-webrtc-fold-default-hide-msg = Ocultar detalles
+ .title = Pulse para contraer esta sección
+about-webrtc-dropped-frames-label = Fotogramas descartados:
+about-webrtc-discarded-packets-label = Paquetes descartados:
+about-webrtc-decoder-label = Decodificador
+about-webrtc-encoder-label = Codificador
+about-webrtc-show-tab-label = Mostrar pestaña
+about-webrtc-current-framerate-label = Fotogramas por segundo
+about-webrtc-width-px = Ancho (px)
+about-webrtc-height-px = Altura (px)
+about-webrtc-consecutive-frames = Fotogramas consecutivos
+about-webrtc-time-elapsed = Tiempo transcurrido (s)
+about-webrtc-estimated-framerate = Velocidad de fotogramas estimada
+about-webrtc-rotation-degrees = Rotación (grados)
+about-webrtc-first-frame-timestamp = Marca de tiempo de recepción del primer fotograma
+about-webrtc-last-frame-timestamp = Marca de tiempo de última recepción de fotograma
+
+## 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 = Receptor local SSRC
+# This is an SSRC on the remote side of the connection that is sending RTP
+about-webrtc-remote-send-ssrc = Envío remoto SSRC
+
+## These are displayed on the button that shows or hides the
+## PeerConnection configuration disclosure
+
+about-webrtc-pc-configuration-show-msg = Mostrar configuración
+about-webrtc-pc-configuration-hide-msg = Ocultar configuración
+
+##
+
+# An option whose value will not be displayed but instead noted as having been
+# provided
+about-webrtc-configuration-element-provided = Proporcionado
+# An option whose value will not be displayed but instead noted as having not
+# been provided
+about-webrtc-configuration-element-not-provided = No porporcionado
+# The options set by the user in about:config that could impact a WebRTC call
+about-webrtc-custom-webrtc-configuration-heading = Preferencias de WebRTC establecidas por el usuario
+# The options set by the user in about:config that could impact a WebRTC call
+about-webrtc-user-modified-configuration-heading = Configuración WebRTC modificada por el usuario
+
+## These are displayed on the button that shows or hides the
+## user modified configuration disclosure
+
+about-webrtc-user-modified-configuration-show-msg = Mostrar configuración modificada por el usuario
+about-webrtc-user-modified-configuration-hide-msg = Ocultar configuración modificada por el usuario
+
+##
+
+# Section header for estimated bandwidths of WebRTC media flows
+about-webrtc-bandwidth-stats-heading = Ancho de banda estimado
+# The ID of the MediaStreamTrack
+about-webrtc-track-identifier = Identificador de rastreo
+# The estimated bandwidth available for sending WebRTC media in bytes per second
+about-webrtc-send-bandwidth-bytes-sec = Ancho de banda de envío (bytes/seg)
+# The estimated bandwidth available for receiving WebRTC media in bytes per second
+about-webrtc-receive-bandwidth-bytes-sec = Ancho de banda de recepción (bytes/seg)
+# Maximum number of bytes per second that will be padding zeros at the ends of packets
+about-webrtc-max-padding-bytes-sec = Padding máximo (bytes/seg)
+# The amount of time inserted between packets to keep them spaced out
+about-webrtc-pacer-delay-ms = Intervalo entre paquetes (ms)
+# The amount of time it takes for a packet to travel from the local machine to the remote machine,
+# and then have a packet return
+about-webrtc-round-trip-time-ms = Tiempo de ida y vuelta (RTT) (ms)
+# This is a section heading for video frame statistics for a MediaStreamTrack.
+# see https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.
+# Variables:
+# $track-identifier (String) - The unique identifier for the MediaStreamTrack.
+about-webrtc-frame-stats-heading = Estadísticas de fotogramas de vídeo: ID de 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 como: { $path }
+about-webrtc-debug-mode-off-state-msg = el registro de traza se puede encontrar en: { $path }
+about-webrtc-debug-mode-on-state-msg = modo de depuración activo, registro de traza en: { $path }
+about-webrtc-aec-logging-off-state-msg = los archivos de registro se pueden encontrar en: { $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 como: { $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 } fotograma
+ *[other] { $frames } fotogramas
+ }
+# 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 } canales
+ }
+# 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 } paquete recibido
+ *[other] { $packets } paquetes recibidos
+ }
+# 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 } paquete perdido
+ *[other] { $packets } paquetes 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 } paquete enviado
+ *[other] { $packets } paquetes 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 entrantes (llegando tras la respuesta) son destacados en 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 = Establecer SDP local con timestamp { NUMBER($timestamp, useGrouping: "false") }
+# This is used as a header for remote SDP.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+about-webrtc-sdp-set-at-timestamp-remote = Establecer SDP remoto con timestamp { NUMBER($timestamp, useGrouping: "false") }
+# This is used as a header for an SDP section contained in two columns allowing for side-by-side comparisons.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+# $relative-timestamp (Number) - The timestamp relative to the timestamp of the earliest received SDP.
+about-webrtc-sdp-set-timestamp = Marca de tiempo { 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 = Ocultar 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 medios
+about-webrtc-media-context-hide-msg = Ocultar contexto de medios
+about-webrtc-media-context-heading = Contexto de medios
+
+##
+
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutWindowsMessages.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/aboutWindowsMessages.ftl
new file mode 100644
index 0000000000..0602b1513b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Información de mensajes de Windows
+windows-messages-intro =
+ Esta página muestra los mensajes más recientes enviados por Windows
+ a las ventanas del navegador { -brand-short-name }. La
+ entrada en negrita representa esta ventana. Tenga en cuenta que esta página muestra
+ los mensajes más recientes en el momento en que se cargó la página;
+ deberá actualizar la página para ver los mensajes actuales.
+windows-messages-copy-to-clipboard = Copiar al portapapeles
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/abuseReports.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/abuseReports.ftl
new file mode 100644
index 0000000000..9b62b94cdb
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/abuseReports.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/.
+
+# 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 = Informe para { $addon-name }
+abuse-report-title-extension = Informar de esta extensión a { -vendor-short-name }
+abuse-report-title-sitepermission = Informar sobre este complemento para permisos del sitio a { -vendor-short-name }
+abuse-report-title-theme = Informar de este tema a { -vendor-short-name }
+abuse-report-subtitle = ¿Cuál es el 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 = ¿No sabe qué problema seleccionar? <a data-l10n-name="learnmore-link">Descubre más sobre cómo informar de extensiones y temas</a>
+abuse-report-learnmore-intro = ¿No sabe qué problema seleccionar?
+abuse-report-learnmore-link = Descubre más sobre cómo informar de extensiones y temas
+abuse-report-submit-description = Describir el problema (opcional)
+abuse-report-textarea =
+ .placeholder = Para nosotros es más fácil solucionar un problema si tenemos detalles específicos. Describa su problema. Gracias por ayudarnos a que Internet siga siendo saludable.
+abuse-report-submit-note = Nota: no incluya información personal (como nombres, dirección de correo, número de teléfono, dirección postal). { -vendor-short-name } guarda un registro de estos informes.
+
+## Panel buttons.
+
+abuse-report-cancel-button = Cancelar
+abuse-report-next-button = Siguiente
+abuse-report-goback-button = Volver atrás
+abuse-report-submit-button = Enviar
+
+## Message bars descriptions.
+##
+## Variables:
+## $addon-name (string) - Name of the add-on
+
+abuse-report-messagebar-aborted = Se canceló el informe sobre <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-submitting = Enviando informe sobre <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-submitted = Gracias por enviar el informe. ¿Quiere eliminar <span data-l10n-name="addon-name">{ $addon-name }</span>?
+abuse-report-messagebar-submitted-noremove = Gracias por enviar el informe.
+abuse-report-messagebar-removed-extension = Gracias por enviar el informe. Ha eliminado la extensión <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-removed-sitepermission = Gracias por enviar el informe. Ha eliminado el complemento para permisos del sitio <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-removed-theme = Gracias por enviar el informe. Ha eliminado el tema <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-error = Hubo un error al enviar el informe sobre <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-error-recent-submit = No se envió el informe sobre <span data-l10n-name="addon-name">{ $addon-name }</span> porque otro informe se envió recientemente.
+abuse-report-messagebar-aborted2 =
+ .message = Se canceló el informe sobre { $addon-name }.
+abuse-report-messagebar-submitting2 =
+ .message = Enviando informe sobre { $addon-name }.
+abuse-report-messagebar-submitted2 =
+ .message = Gracias por enviar el informe. ¿Quiere eliminar { $addon-name }?
+abuse-report-messagebar-submitted-noremove2 =
+ .message = Gracias por enviar el informe.
+abuse-report-messagebar-removed-extension2 =
+ .message = Gracias por enviar el informe. Ha eliminado la extensión { $addon-name }.
+abuse-report-messagebar-removed-sitepermission2 =
+ .message = Gracias por enviar el informe. Ha eliminado el complemento para permisos del sitio { $addon-name }.
+abuse-report-messagebar-removed-theme2 =
+ .message = Gracias por enviar el informe. Ha eliminado el tema { $addon-name }.
+abuse-report-messagebar-error2 =
+ .message = Hubo un error al enviar el informe sobre { $addon-name }.
+abuse-report-messagebar-error-recent-submit2 =
+ .message = No se envió el informe sobre { $addon-name } porque otro informe se envió recientemente.
+
+## Message bars actions.
+
+abuse-report-messagebar-action-remove-extension = Sí, eliminarlo
+abuse-report-messagebar-action-keep-extension = No, guardarlo
+abuse-report-messagebar-action-remove-sitepermission = Sí, eliminarlo
+abuse-report-messagebar-action-keep-sitepermission = No, conservarlo
+abuse-report-messagebar-action-remove-theme = Sí, eliminarlo
+abuse-report-messagebar-action-keep-theme = No, guardarlo
+abuse-report-messagebar-action-retry = Reintentar
+abuse-report-messagebar-action-cancel = Cancelar
+
+## Abuse report reasons (optionally paired with related examples and/or suggestions)
+
+abuse-report-damage-reason-v2 = Ha dañado mi ordenador o mis datos se han visto comprometidos
+abuse-report-damage-example = Ejemplo: instaló malware o robó información
+abuse-report-spam-reason-v2 = Contiene spam o inserta publicidad no deseada
+abuse-report-spam-example = Ejemplo: inserta publicidad en páginas web
+abuse-report-settings-reason-v2 = Ha cambiado mi buscador, página de inicio o nueva pestaña sin informarme ni preguntarme
+abuse-report-settings-suggestions = Antes de informar sobre la extensión, pruebe a cambiar la configuración:
+abuse-report-settings-suggestions-search = Cambie la configuración predeterminada de las búsquedas
+abuse-report-settings-suggestions-homepage = Cambie la página de inicio y de nueva pestaña
+abuse-report-deceptive-reason-v2 = Simula ser algo que no es
+abuse-report-deceptive-example = Ejemplo: descripción o imágenes erróneas
+abuse-report-broken-reason-extension-v2 = No funciona, provoca errores en sitios o ralentiza { -brand-product-name }
+abuse-report-broken-reason-sitepermission-v2 = No funciona, provoca errores en sitios o ralentiza { -brand-product-name }
+abuse-report-broken-reason-theme-v2 = No funciona o estropea lo que muestra el navegador
+abuse-report-broken-example = Ejemplo: la función es lenta, difícil de usar o no funciona; ciertas partes de los sitios web no se cargan o se muestran de forma incorrecta
+abuse-report-broken-suggestions-extension = Parece que ha identificado un problema. Además de enviar un informe por aquí, lo mejor para conseguir que se resuelva un problema de funcionalidad es contactar con el desarrollador de la extensión. <a data-l10n-name="support-link">Acceda al sitio web de la extensión</a> para conseguir los datos de contacto del desarrollador.
+abuse-report-broken-suggestions-sitepermission =
+ Parece que ha identificado un problema. Además de enviar un informe por aquí, lo mejor
+ para conseguir que se resuelva un problema de funcionalidad es contactar con el desarrollador del sitio web.
+ <a data-l10n-name="support-link">Acceda al sitio web</a> para conseguir los datos de contacto del desarrollador.
+abuse-report-broken-suggestions-theme = Parece que ha identificado un problema. Además de enviar un informe por aquí, lo mejor para conseguir que se resuelva un problema de funcionalidad es contactar con el desarrollador del tema. <a data-l10n-name="support-link">Acceda al sitio web del tema</a> para conseguir los datos de contacto del desarrollador.
+abuse-report-policy-reason-v2 = Tiene contenido de odio, violento o ilegal
+abuse-report-policy-suggestions =
+ Nota: Los problemas relacionados con derechos de autor y marcas registradas deben informarse en un proceso separado.
+ <a data-l10n-name="report-infringement-link">Utilice estas instrucciones</a> para
+ informar del problema
+abuse-report-unwanted-reason-v2 = Nunca lo quise y no sé cómo deshacerme de él
+abuse-report-unwanted-example = Ejemplo: una aplicación la instaló sin mi permiso
+abuse-report-other-reason = Otra cosa
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/certviewer.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/certviewer.ftl
new file mode 100644
index 0000000000..cba92a993d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = No pudimos encontrar la información del certificado o puede que el certificado esté dañado. Inténtelo de nuevo.
+certificate-viewer-error-title = Hubo un problema.
+
+## Certificate information labels
+
+certificate-viewer-algorithm = Algoritmo
+certificate-viewer-certificate-authority = Autoridad de certificación
+certificate-viewer-cipher-suite = Suite de cifrado
+certificate-viewer-common-name = Nombre común
+certificate-viewer-email-address = Dirección de correo electrónico
+# 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
+certificate-viewer-country = País
+certificate-viewer-curve = Curva
+certificate-viewer-distribution-point = Punto de distribución
+certificate-viewer-dns-name = Nombre de la DNS
+certificate-viewer-ip-address = Dirección IP
+certificate-viewer-other-name = Otro nombre
+certificate-viewer-exponent = Exponente
+certificate-viewer-id = ID
+certificate-viewer-key-exchange-group = Grupo de intercambio de claves
+certificate-viewer-key-id = ID de clave
+certificate-viewer-key-size = Tamaño de la clave
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-locality = Localidad de la empresa
+certificate-viewer-locality = Localidad
+certificate-viewer-location = Ubicación
+certificate-viewer-logid = ID de registro
+certificate-viewer-method = Método
+certificate-viewer-modulus = Módulo
+certificate-viewer-name = Nombre
+certificate-viewer-not-after = No después
+certificate-viewer-not-before = No antes
+certificate-viewer-organization = Organización
+certificate-viewer-organizational-unit = Unidad organizativa
+certificate-viewer-policy = Política
+certificate-viewer-protocol = Protocolo
+certificate-viewer-public-value = Valor público
+certificate-viewer-purposes = Propósitos
+certificate-viewer-qualifier = Clasificatorio
+certificate-viewer-qualifiers = Clasificatorios
+certificate-viewer-required = Requerido
+certificate-viewer-unsupported = &lt;no compatible&gt;
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-state-province = Incluir Estado/Provincia
+certificate-viewer-state-province = Estado/Provincia
+certificate-viewer-sha-1 = SHA-1
+certificate-viewer-sha-256 = SHA-256
+certificate-viewer-serial-number = Número de serie
+certificate-viewer-signature-algorithm = Algoritmo de firmas
+certificate-viewer-signature-scheme = Esquema de firma
+certificate-viewer-timestamp = Marca de tiempo
+certificate-viewer-value = Valor
+certificate-viewer-version = Versión
+certificate-viewer-business-category = Categoría de negocio
+certificate-viewer-subject-name = Nombre del asunto
+certificate-viewer-issuer-name = Nombre del emisor
+certificate-viewer-validity = Validez
+certificate-viewer-subject-alt-names = Nombres alternativos del sujeto
+certificate-viewer-public-key-info = Información de clave pública
+certificate-viewer-miscellaneous = Misceláneo
+certificate-viewer-fingerprints = Huellas digitales
+certificate-viewer-basic-constraints = Restricciones básicas
+certificate-viewer-key-usages = Usos de la clave
+certificate-viewer-extended-key-usages = Usos extendidos de la clave
+certificate-viewer-ocsp-stapling = Sello de tiempo OCSP
+certificate-viewer-subject-key-id = ID de clave de asunto
+certificate-viewer-authority-key-id = ID de clave de la autoridad
+certificate-viewer-authority-info-aia = Información de la autoridad (AIA)
+certificate-viewer-certificate-policies = Políticas de certificado
+certificate-viewer-embedded-scts = SCT integrados
+certificate-viewer-crl-endpoints = Extremos 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 = Descargar
+# 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] Sí
+ *[false] No
+ }
+
+## Variables:
+## $fileName (String) - The file name to save the PEM data in, derived from the common name from the certificate being displayed.
+
+certificate-viewer-download-pem = PEM (cert)
+ .download = { $fileName }.pem
+certificate-viewer-download-pem-chain = PEM (cadena)
+ .download = { $fileName }-chain.pem
+
+# The title attribute for Critical Extension icon
+certificate-viewer-critical-extension =
+ .title = Esta extensión ha sido marcada como crítica, lo que significa que los clientes deben rechazar el certificado si no lo entienden.
+certificate-viewer-export = Exportar
+ .download = { $fileName }.pem
+
+##
+
+# Label for a tab where we haven't found a better label:
+certificate-viewer-unknown-group-label = (desconocido)
+
+## Labels for tabs displayed in stand-alone about:certificate page
+
+certificate-viewer-tab-mine = Sus certificados
+certificate-viewer-tab-people = Personas
+certificate-viewer-tab-servers = Servidores
+certificate-viewer-tab-ca = Autoridades
+certificate-viewer-tab-unkonwn = Desconocido
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/config.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/config.ftl
new file mode 100644
index 0000000000..3613d07729
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Continuar con precaución
+about-config-intro-warning-text = Cambiar las preferencias de configuración avanzada puede afectar el rendimiento o la seguridad de { -brand-short-name }.
+about-config-intro-warning-checkbox = Avisarme cuando intento acceder a estas preferencias
+about-config-intro-warning-button = Aceptar el riesgo y continuar
+
+##
+
+# This is shown on the page before searching but after the warning is accepted.
+about-config-caution-text = Cambiar estas preferencias puede afectar el rendimiento o la seguridad de { -brand-short-name }.
+
+about-config-page-title = Preferencias avanzadas
+
+about-config-search-input1 =
+ .placeholder = Nombre de preferencia de búsqueda
+about-config-show-all = Mostrar todo
+
+about-config-show-only-modified = Mostrar solo las preferencias modificadas
+
+about-config-pref-add-button =
+ .title = Añadir
+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 = Restablecer
+about-config-pref-delete-button =
+ .title = Eliminar
+
+## 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 = Cadena
+
+## 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 } (predeterminado)
+about-config-pref-accessible-value-custom =
+ .aria-label = { $value } (personalizado)
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/url-classifier.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/about/url-classifier.ftl
new file mode 100644
index 0000000000..3698291bdd
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Información del clasificador de URL
+url-classifier-search-title = Buscar
+url-classifier-search-result-title = Resultados
+url-classifier-search-result-uri = URI: { $uri }
+url-classifier-search-result-list = Lista de tablas: { $list }
+url-classifier-search-input = URL
+url-classifier-search-error-invalid-url = URL no válida
+url-classifier-search-error-no-features = No se ha seleccionado ninguna característica
+url-classifier-search-btn = Comenzar la búsqueda
+url-classifier-search-features = Características
+url-classifier-search-listType = Tipo de lista
+url-classifier-provider-title = Proveedor
+url-classifier-provider = Proveedor
+url-classifier-provider-last-update-time = Fecha y hora de última actualización
+url-classifier-provider-next-update-time = Fecha y hora de próxima actualización
+url-classifier-provider-back-off-time = Tiempo atrás
+url-classifier-provider-last-update-status = Estado de última actualización
+url-classifier-provider-update-btn = Actualizar
+url-classifier-cache-title = Caché
+url-classifier-cache-refresh-btn = Refrescar
+url-classifier-cache-clear-btn = Limpiar
+url-classifier-cache-table-name = Nombre de tabla
+url-classifier-cache-ncache-entries = Número de entradas de caché fallidas
+url-classifier-cache-pcache-entries = Número de entradas de caché acertadas
+url-classifier-cache-show-entries = Mostrar entradas
+url-classifier-cache-entries = Entradas de caché
+url-classifier-cache-prefix = Prefijo
+url-classifier-cache-ncache-expiry = Caducidad de caché fallido
+url-classifier-cache-fullhash = Valor resumen completo
+url-classifier-cache-pcache-expiry = Caducidad de caché positivo
+url-classifier-debug-title = Depurar
+url-classifier-debug-module-btn = Establecer módulos de registro
+url-classifier-debug-file-btn = Establecer archivo de registro
+url-classifier-debug-js-log-chk = Establecer registro JS
+url-classifier-debug-sb-modules = Módulos de registro de navegación segura
+url-classifier-debug-modules = Módulos actuales de registro
+url-classifier-debug-sbjs-modules = Registro JS de navegación segura
+url-classifier-debug-file = Archivo actual de registro
+
+url-classifier-trigger-update = Disparar actualización
+url-classifier-not-available = N/D
+url-classifier-disable-sbjs-log = Desactivar registro JS de navegación segura
+url-classifier-enable-sbjs-log = Activar registro JS de navegación segura
+url-classifier-enabled = Activado
+url-classifier-disabled = Desactivado
+url-classifier-updating = actualizando
+url-classifier-cannot-update = no se puede actualizar
+url-classifier-success = éxito
+
+## Variables
+## $error (string) - Error message
+
+url-classifier-update-error = error de actualización ({ $error })
+url-classifier-download-error = error de descarga ({ $error })
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/branding/accounts.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/branding/accounts.ftl
new file mode 100644
index 0000000000..980dcec24c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Cuenta de Firefox
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/branding/brandings.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/branding/brandings.ftl
new file mode 100644
index 0000000000..a3b2aadc47
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 por 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 = Página de inicio de Firefox
+# View" can be localized, “Firefox” must be treated as a brand
+# and kept in English.
+-firefoxview-brand-name = Firefox View
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/contentanalysis/contentanalysis.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/contentanalysis/contentanalysis.ftl
new file mode 100644
index 0000000000..ea7503be95
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/contentanalysis/contentanalysis.ftl
@@ -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/.
+
+contentanalysis-alert-title = Análisis de contenido
+# Variables:
+# $content - Description of the content being warned about, such as "clipboard" or "aFile.txt"
+contentanalysis-slow-agent-notification = La herramienta de análisis de contenido está tardando demasiado tiempo en responder al recurso “{ $content }”
+contentanalysis-slow-agent-dialog-title = Análisis de contenido en curso
+# Variables:
+# $content - Description of the content being warned about, such as "clipboard" or "aFile.txt"
+contentanalysis-slow-agent-dialog-body = El análisis de contenido está analizando el recurso “{ $content }”
+contentanalysis-operationtype-clipboard = portapapeles
+contentanalysis-operationtype-dropped-text = texto soltado
+contentanalysis-notification-title = Análisis de contenido
+# Variables:
+# $content - Description of the content being reported, such as "clipboard" or "aFile.txt"
+# $response - The response received from the content analysis agent, such as "REPORT_ONLY"
+contentanalysis-genericresponse-message = El análisis de contenido ha respondido con { $response } para el recurso: { $content }
+# Variables:
+# $content - Description of the content being blocked, such as "clipboard" or "aFile.txt"
+contentanalysis-block-message = Su organización utiliza software de prevención de pérdida de datos que ha bloqueado este contenido: { $content }.
+# Variables:
+# $content - Description of the content being blocked, such as "clipboard" or "aFile.txt"
+contentanalysis-error-message = Ha ocurrido un error al comunicarse con el software de prevención de pérdida de datos. Transferencia denegada para el recurso: { $content }.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/downloads/downloadUI.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/downloads/downloadUI.ftl
new file mode 100644
index 0000000000..db4d68c4a3
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 las descargas?
+
+## Variables:
+## $downloadsCount (Number): The current downloads count.
+
+download-ui-confirm-quit-cancel-downloads =
+ { $downloadsCount ->
+ [1] Si sale ahora, se cancelará una descarga. ¿Seguro que quiere salir?
+ *[other] Si sale ahora, se cancelarán { $downloadsCount } descargas. ¿Seguro que quiere salir?
+ }
+download-ui-confirm-quit-cancel-downloads-mac =
+ { $downloadsCount ->
+ [1] Si cierra ahora, se cancelará una descarga. ¿Seguro que quiere salir?
+ *[other] Si cierra ahora, se cancelarán { $downloadsCount } descargas. ¿Seguro que quiere salir?
+ }
+download-ui-dont-quit-button =
+ { PLATFORM() ->
+ [mac] No cerrar
+ *[other] No salir
+ }
+
+download-ui-confirm-offline-cancel-downloads =
+ { $downloadsCount ->
+ [1] Si pasa al modo sin conexión ahora, se cancelará una descarga. ¿Seguro que quiere pasar al modo sin conexión?
+ *[other] Si pasa al modo sin conexión ahora, se cancelarán { $downloadsCount } descargas. ¿Seguro que quiere pasar al modo sin conexión?
+ }
+download-ui-dont-go-offline-button = Permanecer conectado
+
+download-ui-confirm-leave-private-browsing-windows-cancel-downloads =
+ { $downloadsCount ->
+ [1] Si cierra todas las ventanas de navegación privada ahora, se cancelará una descarga. ¿Está seguro de que quiere abandonar la navegación privada?
+ *[other] Si cierra todas las ventanas de navegación privada ahora, se cancelarán { $downloadsCount } descargas. ¿Está seguro de que quiere abandonar la navegación privada?
+ }
+download-ui-dont-leave-private-browsing-button = Seguir en navegación privada
+
+download-ui-cancel-downloads-ok =
+ { $downloadsCount ->
+ [1] Cancelar una descarga
+ *[other] Cancelar { $downloadsCount } descargas
+ }
+
+##
+
+download-ui-file-executable-security-warning-title = ¿Abrir archivos ejecutables?
+# Variables:
+# $executable (String): The executable file to be opened.
+download-ui-file-executable-security-warning = "{ $executable }" es un archivo ejecutable. Los archivos ejecutables pueden contener virus u otros códigos maliciosos que podrían dañar su equipo. Sea cauteloso al abrir este archivo. ¿Seguro que quiere ejecutar "{ $executable }"?
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/downloads/downloadUtils.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/downloads/downloadUtils.ftl
new file mode 100644
index 0000000000..15a1c4b086
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 } (Muy, muy rápido)
+# — 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 = { $time } restantes
+# examples: 11h 2m left; 1d 22h left
+# Variables:
+# $time1 (String): time left, including a unit
+# $time2 (String): smaller measure of time left, including a unit
+download-utils-time-left-double = { $time1 } { $time2 } restantes
+download-utils-time-few-seconds = Quedan pocos segundos
+download-utils-time-unknown = Tiempo restante desconocido
+
+# 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 = archivo local
+
+# Displayed time for files finished yesterday
+download-utils-yesterday = Ayer
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/featuregates/features.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/featuregates/features.ftl
new file mode 100644
index 0000000000..c1e058bba7
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/featuregates/features.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/.
+
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-css-masonry2 =
+ .label = CSS: Masonry Layout
+experimental-features-css-masonry-description = Habilita la compatibilidad con la característica CSS Masonry Layout experimental. Consulte <a data-l10n-name="explainer">más detalles</a> para obtener una descripción general de la función. Para enviar comentarios, comente en <a data-l10n-name="w3c-issue">este issue de GitHub </a> o <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 = Web API: WebGPU
+experimental-features-web-gpu-description3 = La <a data-l10n-name="wikipedia-webgpu">API WebGPU</a> proporciona soporte de bajo nivel para realizar cálculos y renderizado de gráficos usando la <a data-l10n-name="wikipedia-gpu">unidad de procesamiento de gráficos (GPU)</a> del ordenador o dispositivo del usuario. La primera versión de la <a data-l10n-name="spec">especificación</a> está cerca de finalizar. Consulte el <a data-l10n-name="bugzilla">bug 1616739</a> para obtener más detalles.
+
+# 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 = Multimedia : JPEG XL
+experimental-features-media-jxl-description = Con esta función activada, { -brand-short-name } admite el formato JPEG XL (JXL). Éste es un formato mejorado de archivo de imagen que permite la transición sin pérdida desde archivos JPEG tradicionales. Para más detalles, consulte <a data-l10n-name="bugzilla">bug 1539075</a>.
+
+experimental-features-devtools-compatibility-panel =
+ .label = Herramientas de desarrolladores: Panel de compatibilidad
+experimental-features-devtools-compatibility-panel-description = Un panel lateral para el Inspector de página que muestra información que detalla el estado de compatibilidad entre navegadores de su aplicación. Consulte <a data-l10n-name="bugzilla">bug 1584464</a> para obtener más detalles.
+
+
+# Do not translate 'SameSite', 'Lax' and 'None'.
+experimental-features-cookie-samesite-none-requires-secure2 =
+ .label = Cookies: SameSite=None requiere un atributo seguro
+experimental-features-cookie-samesite-none-requires-secure2-description = Las cookies con el atributo "SameSite=None" requieren el atributo seguro. Esta función requiere "Cookies: SameSite=Lax" por defecto.
+
+# 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 = caché de inicio de about:home
+experimental-features-abouthome-startup-cache-description = Caché para el documento inicial about:home que se carga de manera predeterminada al inicio. El propósito del caché es mejorar el rendimiento de inicio.
+
+# "Service Worker" is an API name and is usually not translated.
+experimental-features-devtools-serviceworker-debugger-support =
+ .label = Herramientas de desarrolladores: Depuración de Service Worker
+# "Service Worker" is an API name and is usually not translated.
+experimental-features-devtools-serviceworker-debugger-support-description = Activa el soporte experimental para Service Workers en el panel del Depurador. Esta función puede ralentizar las Herramientas de desarrolladores y aumentar el consumo de memoria.
+
+# WebRTC global mute toggle controls
+experimental-features-webrtc-global-mute-toggles =
+ .label = Activar/desactivar WebRTC globalmente
+experimental-features-webrtc-global-mute-toggles-description = Agregar controles al indicador de intercambio global WebRTC que permita a los usuarios interrumpir globalmente la compartición de su micrófono y cámara.
+
+# JS JIT Warp project
+experimental-features-js-warp =
+ .label = JavaScript JIT: Warp
+experimental-features-js-warp-description = Activar Warp, un proyecto para mejorar el rendimiento y el uso de la memoria de JavaScript.
+
+# Search during IME
+experimental-features-ime-search =
+ .label = Barra de direcciones: mostrar resultados durante la composición IME
+experimental-features-ime-search-description = Una IME (Input Method Editor) es una herramienta que le permite escribir símbolos complejos, como los que se usan en los idiomas escritos del índico o Asia oriental, utilizando un teclado estándar. Activar este experimento mantendrá abierto el panel de la barra de direcciones, mostrando resultados de búsqueda y sugerencias, mientras se usa IME para escribir texto. Tenga en cuenta que el IME puede mostrar un panel que cubre los resultados de la barra de direcciones, por lo que se recomienda el uso de esta preferencia solo si el IME no usa este tipo de panel.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/formautofill/formAutofill.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/formautofill/formAutofill.ftl
new file mode 100644
index 0000000000..004d64eee4
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Opciones de autocompletado de formularios
+autofill-options-link-osx = Preferencias de autocompletado de formularios
+
+## The credit card capture doorhanger
+
+
+# Used on the doorhanger when an credit card change is detected.
+
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/alert.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/alert.ftl
new file mode 100644
index 0000000000..37214768fd
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Cerrar esta notificación
+alert-settings-title =
+ .tooltiptext = Configuración
+
+## Reminder Notifications
+
+notification-default-dismiss = Descartar
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/appPicker.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/appPicker.ftl
new file mode 100644
index 0000000000..675d74c785
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Examinar…
+app-picker-send-msg =
+ .value = Enviar este elemento a:
+app-picker-no-app-found =
+ .value = No se han encontrado aplicaciones para este tipo de archivo.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/browser-utils.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/browser-utils.ftl
new file mode 100644
index 0000000000..a227fd4093
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = (datos)
+
+# Used for extension URLs
+# Variables:
+# $extension (string) - Name of the extension that generated the URL
+browser-utils-url-extension = Extensión ({ $extension })
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/commonDialog.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/commonDialog.ftl
new file mode 100644
index 0000000000..27fea881fe
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/commonDialog.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/.
+
+common-dialog-title-null = Esta página dice
+common-dialog-title-system = { -brand-short-name }
+# Title displayed when the origin of a web dialog is unknown.
+common-dialog-title-unknown = Desconocido
+# An indicator showing that Firefox is waiting for an operation to finish
+common-dialog-spinner =
+ .alt = Ocupado
+common-dialog-username =
+ .value = Nombre de usuario
+common-dialog-password =
+ .value = Contraseña
+common-dialog-copy-cmd =
+ .label = Copiar
+ .accesskey = C
+common-dialog-select-all-cmd =
+ .label = Seleccionar todo
+ .accesskey = S
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/contextual-identity.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/contextual-identity.ftl
new file mode 100644
index 0000000000..c2bc75bb63
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/contextual-identity.ftl
@@ -0,0 +1,29 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Names of the default containers in Firefox.
+## See https://support.mozilla.org/kb/how-use-firefox-containers
+
+user-context-personal =
+ .label = Personal
+ .accesskey = P
+user-context-work =
+ .label = Trabajo
+ .accesskey = T
+user-context-banking =
+ .label = Banca
+ .accesskey = B
+user-context-shopping =
+ .label = Compras
+ .accesskey = C
+
+##
+
+user-context-none =
+ .label = No hay contenedor
+ .accesskey = N
+user-context-manage-containers =
+ .label = Gestionar contenedores
+ .accesskey = O
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/cookieBannerHandling.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/cookieBannerHandling.ftl
new file mode 100644
index 0000000000..4e13cc8aec
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/cookieBannerHandling.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/.
+
+cookie-banner-handled-webconsole = { -brand-shorter-name } manejó un aviso de cookies en nombre del usuario.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/createProfileWizard.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/createProfileWizard.ftl
new file mode 100644
index 0000000000..c12e82c3ad
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Asistente de creación de perfiles
+ .style = min-width: 45em; min-height: 32em;
+
+## First wizard page
+
+create-profile-first-page-header2 =
+ { PLATFORM() ->
+ [macos] Introducción
+ *[other] Bienvenido a { create-profile-window2.title }
+ }
+
+profile-creation-explanation-1 = { -brand-short-name } guarda información sobre su configuración y preferencias en su perfil personal.
+
+profile-creation-explanation-2 = Si comparte esta copia de { -brand-short-name } con otros usuarios, puede usar perfiles para mantener separada la información de cada usuario. Para ello, cada usuario debe crear su propio perfil.
+
+profile-creation-explanation-3 = Si es la única persona que usa esta copia de { -brand-short-name }, debe tener al menos un perfil. Si lo desea, puede crear múltiples perfiles con el fin de guardar diferentes conjuntos de configuraciones y preferencias. Por ejemplo, puede querer tener perfiles separados para uso personal y uso profesional.
+
+profile-creation-explanation-4 =
+ { PLATFORM() ->
+ [macos] Para comenzar a crear su perfil, haga clic en Continuar.
+ *[other] Para comenzar a crear su perfil, haga clic en Siguiente.
+ }
+
+## Second wizard page
+
+create-profile-last-page-header2 =
+ { PLATFORM() ->
+ [macos] Conclusión
+ *[other] Completar { create-profile-window2.title }
+ }
+
+profile-creation-intro = Si crea distintos perfiles puede distinguirlos por sus nombres. Puede usar el nombre proporcionado aquí o escoger uno usted mismo.
+
+profile-prompt = Introduzca nombre del nuevo perfil:
+ .accesskey = E
+
+profile-default-name =
+ .value = Usuario predeterminado
+
+profile-directory-explanation = Su configuración de usuario, preferencias y otros datos relativos al usuario se guardarán en:
+
+create-profile-choose-folder =
+ .label = Elegir carpeta…
+ .accesskey = C
+
+create-profile-use-default =
+ .label = Usar carpeta predeterminada
+ .accesskey = U
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/cspErrors.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/cspErrors.ftl
new file mode 100644
index 0000000000..e5f530e6c4
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = La política carece de una directiva '{ $directive }' necesaria
+
+# 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 = la directiva '{ $directive }' contiene una palabra clave { $keyword } prohibida
+
+# 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 = la directiva '{ $directive }' contiene un origen con protocolo { $scheme }: prohibido
+
+# 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 = el protocolo { $scheme }: requiere un servidor en las directivas '{ $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 }' debe incluir el origen { $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 }: los orígenes con comodines en las directivas '{ $directive }' deben incluir al menos un subdominio no genérico (p.e., *.example.com en lugar de *.com)
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/datepicker.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/datepicker.ftl
new file mode 100644
index 0000000000..62bb832a66
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Seleccione una fecha
+date-spinner-label =
+ .aria-label = Seleccione un mes y año
+
+## Text of the clear button
+
+date-picker-clear-button = Limpiar
+
+## 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 = Mes anterior
+date-picker-next =
+ .aria-label = Mes siguiente
+
+## 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 = Mes
+date-spinner-year =
+ .aria-label = Año
+
+## 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 = Mes anterior
+date-spinner-month-next =
+ .aria-label = Mes siguiente
+date-spinner-year-previous =
+ .aria-label = Año anterior
+date-spinner-year-next =
+ .aria-label = Año siguiente
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/datetimebox.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/datetimebox.ftl
new file mode 100644
index 0000000000..1a170e9ec9
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Año
+datetime-month =
+ .aria-label = Mes
+datetime-day =
+ .aria-label = Día
+
+## 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 = Milisegundos
+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 = Calendario
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/extensionPermissions.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/extensionPermissions.ftl
new file mode 100644
index 0000000000..8b57649f9f
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Leer y modificar marcadores
+webext-perms-description-browserSettings = Leer y modificar configuración del navegador
+webext-perms-description-browsingData = Limpiar historial de navegación, cookies y datos relacionados recientes
+webext-perms-description-clipboardRead = Obtener datos del portapapeles
+webext-perms-description-clipboardWrite = Introducir datos en el portapapeles
+webext-perms-description-declarativeNetRequest = Bloquear contenido en cualquier página
+webext-perms-description-declarativeNetRequestFeedback = Leer historial de navegación
+webext-perms-description-devtools = Extienda las herramientas de desarrolladores para acceder a sus datos en pestañas abiertas
+webext-perms-description-downloads = Descargar archivos y leer y modificar el historial de descargas del navegador
+webext-perms-description-downloads-open = Abrir archivos descargados a su equipo
+webext-perms-description-find = Leer el texto de las páginas web de todas las pestañas abiertas
+webext-perms-description-geolocation = Acceder a su ubicación
+webext-perms-description-history = Acceder al historial de navegación
+webext-perms-description-management = Monitorizar el uso de extensiones y administrar temas
+webext-perms-description-nativeMessaging = Intercambiar mensajes con otros programas distintos de { -brand-short-name }
+webext-perms-description-notifications = Mostrarle notificaciones
+webext-perms-description-pkcs11 = Proporcionar servicios de autenticación criptográfica
+webext-perms-description-privacy = Leer y modificar configuración de privacidad
+webext-perms-description-proxy = Controlar configuración proxy del navegador
+webext-perms-description-sessions = Acceder a las pestañas recientemente cerradas
+webext-perms-description-tabs = Acceder a las pestañas del navegador
+webext-perms-description-tabHide = Ocultar y mostrar pestañas del navegador
+webext-perms-description-topSites = Acceder al historial de navegación
+webext-perms-description-webNavigation = Acceder a la actividad del navegador durante la navegación
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/extensions.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/extensions.ftl
new file mode 100644
index 0000000000..218621782d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = ¿Añadir { $extension }?
+webext-perms-header-with-perms = ¿Añadir { $extension }? Esta extensión tendrá permiso para:
+webext-perms-header-unsigned = ¿Añadir { $extension }? Esta extensión no está verificada. Las extensiones maliciosas pueden robar su información privada o comprometer su ordenador. Instale esta extensión solo si confía en la fuente.
+webext-perms-header-unsigned-with-perms = ¿Añadir { $extension }? Esta extensión no está verificada. Las extensiones maliciosas pueden robar su información privada o comprometer su ordenador. Instale esta extensión solo si confía en la fuente. Esta extensión tendrá permiso para:
+webext-perms-sideload-header = { $extension } añadido
+webext-perms-optional-perms-header = { $extension } solicita permisos adicionales.
+
+##
+
+webext-perms-add =
+ .label = Añadir
+ .accesskey = A
+webext-perms-cancel =
+ .label = Cancelar
+ .accesskey = C
+
+webext-perms-sideload-text = Otro programa en su equipo ha instalado un complemento que puede afectar a su navegador. Revise los permisos que solicita este complemento y elija Activar o Cancelar (para dejarlo desactivado).
+webext-perms-sideload-text-no-perms = Otro programa en su equipo ha instalado un complemento que puede afectar a su navegador. Elija Activar o Cancelar (para dejarlo desactivado).
+webext-perms-sideload-enable =
+ .label = Activar
+ .accesskey = v
+webext-perms-sideload-cancel =
+ .label = Cancelar
+ .accesskey = C
+
+# Variables:
+# $extension (String): replaced with the localized name of the extension.
+webext-perms-update-text = Se ha actualizado { $extension }. Tiene que aprobar nuevos permisos antes de poder instalar la nueva versión. Si seleccionas “Cancelar”, seguirá con la versión actual de la extensión. Esta extensión tendrá permiso para:
+webext-perms-update-accept =
+ .label = Actualizar
+ .accesskey = U
+
+webext-perms-optional-perms-list-intro = Quiere:
+webext-perms-optional-perms-allow =
+ .label = Permitir
+ .accesskey = P
+webext-perms-optional-perms-deny =
+ .label = Denegar
+ .accesskey = D
+
+webext-perms-host-description-all-urls = Acceder a sus datos de todos los sitios web
+
+# 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 = Acceder a sus datos de sitios en el dominio { $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] Acceder a sus datos en otro dominio
+ *[other] Acceder a sus datos en { $domainCount } otros dominios
+ }
+# 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 = Acceder a sus datos de { $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] Acceder a sus datos en otro sitio
+ *[other] Acceder a sus datos en { $domainCount } otros sitios
+ }
+
+## 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 complemento le da a { $hostname } acceso a sus dispositivos MIDI.
+webext-site-perms-header-with-gated-perms-midi-sysex = Este complemento le da a { $hostname } acceso a sus dispositivos MIDI (con soporte SysEx).
+
+##
+
+# 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 =
+ Por lo general, se trata de dispositivos como sintetizadores de audio, pero también pueden estar integrados en su ordenador.
+
+ Normalmente, los sitios web no pueden acceder a dispositivos MIDI. El uso inadecuado podría causar daños o comprometer la seguridad.
+
+## 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 = ¿Añadir { $extension }? Esta extensión concede los siguientes permisos a { $hostname }:
+webext-site-perms-header-unsigned-with-perms = ¿Añadir { $extension }? Esta extensión no está verificada. Las extensiones maliciosas pueden robar su información privada o comprometer su ordenador. Añádala únicamente si confía en la fuente. Esta extensión concede los siguientes permisos a { $hostname }:
+
+## These should remain in sync with permissions.NAME.label in sitePermissions.properties
+
+webext-site-perms-midi = Acceder a dispositivos midi
+webext-site-perms-midi-sysex = Acceder a dispositivos MIDI con soporte para SysEx
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/handlerDialog.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/handlerDialog.ftl
new file mode 100644
index 0000000000..ffbe5e008c
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/handlerDialog.ftl
@@ -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/.
+
+
+## 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 sitio abra el enlace { $scheme }?
+permission-dialog-description-file = ¿Permitir que este archivo abra el enlace { $scheme }?
+permission-dialog-description-host = ¿Permitir que { $host } abra el enlace { $scheme }?
+permission-dialog-description-extension = ¿Permitir que la extensión { $extension } abra el enlace { $scheme }?
+permission-dialog-description-app = ¿Permitir que este sitio abra el enlace { $scheme } con { $appName }?
+permission-dialog-description-host-app = ¿Permitir que { $host } abra el enlace { $scheme } con { $appName }?
+permission-dialog-description-file-app = ¿Permitir que este archivo abra el enlace { $scheme } con { $appName }?
+permission-dialog-description-extension-app = ¿Permitir que la extensión { $extension } abra el enlace { $scheme } con { $appName }?
+permission-dialog-description-system-app = ¿Abrir el enlace { $scheme } con { $appName }?
+permission-dialog-description-system-noapp = ¿Abrir el enlace { $scheme }?
+
+## 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 = Siempre permitir a <strong>{ $host }</strong> abrir enlaces <strong>{ $scheme }</strong>
+permission-dialog-remember-file = Siempre permitir que este archivo abra enlaces <strong>{ $scheme }</strong>
+permission-dialog-remember-extension = Siempre permitir que esta extensión abra enlaces <strong>{ $scheme }</strong>
+
+##
+
+permission-dialog-btn-open-link =
+ .label = Abrir enlace
+ .accessKey = A
+permission-dialog-btn-choose-app =
+ .label = Elegir aplicación
+ .accessKey = E
+permission-dialog-unset-description = Tendrá que elegir una aplicación.
+permission-dialog-set-change-app-link = Elija una aplicación diferente.
+
+## Chooser dialog
+## Variables:
+## $scheme (string) - The type of link that's being opened.
+
+chooser-window =
+ .title = Elegir aplicación
+ .style = min-width: 26em; min-height: 26em;
+chooser-dialog =
+ .buttonlabelaccept = Abrir enlace
+ .buttonaccesskeyaccept = A
+chooser-dialog-description = Elija una aplicación para abrir el enlace { $scheme }.
+# Please keep the emphasis around the scheme (ie the `<strong>` HTML tags).
+chooser-dialog-remember = Utilizar siempre esta aplicación para abrir enlaces <strong>{ $scheme }</strong>
+chooser-dialog-remember-extra =
+ { PLATFORM() ->
+ [windows] Esto se puede cambiar en las opciones de { -brand-short-name }.
+ *[other] Esto se puede cambiar en las preferencias de { -brand-short-name }.
+ }
+choose-other-app-description = Elija otra aplicación
+choose-app-btn =
+ .label = Elegir…
+ .accessKey = E
+choose-other-app-window-title = Otra aplicación…
+# Displayed under the name of a protocol handler in the Launch Application dialog.
+choose-dialog-privatebrowsing-disabled = Deshabilitado en ventanas privadas
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/htmlForm.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/htmlForm.ftl
new file mode 100644
index 0000000000..80bb168a17
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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] y uno más
+ *[other] y { $fileCount } más
+ }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/mozCard.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/mozCard.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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/es-ES/localization/es-ES/toolkit/global/mozFiveStar.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/mozFiveStar.ftl
new file mode 100644
index 0000000000..f9f2dc0357
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Calificación de { NUMBER($rating, maximumFractionDigits: 1) } sobre 5
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/mozMessageBar.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/mozMessageBar.ftl
new file mode 100644
index 0000000000..45327176e8
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Información
+moz-message-bar-icon-warning =
+ .alt = Advertencia
+moz-message-bar-icon-success =
+ .alt = Todo correcto
+moz-message-bar-icon-error =
+ .alt = Error
+moz-message-bar-close-button =
+ .aria-label = Cerrar
+ .title = Cerrar
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/mozSupportLink.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/mozSupportLink.ftl
new file mode 100644
index 0000000000..f788d8ff90
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 más
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/notification.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/notification.ftl
new file mode 100644
index 0000000000..a733b2d6e7
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 más
+
+# 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 = Cerrar
+ .title = Cerrar
+
+close-notification-message =
+ .tooltiptext = Cerrar este mensaje
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/popupnotification.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/popupnotification.ftl
new file mode 100644
index 0000000000..ed9b3acb15
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 más
+popup-notification-more-actions-button =
+ .aria-label = Más acciones
+popup-notification-default-button =
+ .label = ¡De acuerdo!
+ .accesskey = D
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/processTypes.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/processTypes.ftl
new file mode 100644
index 0000000000..7ccf94aebe
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Contenido web
+
+# process used to run privileged about pages,
+# such as about:home
+process-type-privilegedabout = Acerca de - privilegiado
+
+# process used to run privileged mozilla pages,
+# such as accounts.firefox.com
+process-type-privilegedmozilla = Contenido de Mozilla - privilegiado
+
+process-type-extension = Extensión
+
+# process used to open file:// URLs
+process-type-file = Archivo local
+
+# process used to isolate a webpage from other web pages
+# to improve security
+process-type-webisolated = Contenido web aislado
+
+# process used to isolate a ServiceWorker to improve
+# performance
+process-type-webserviceworker = Service Worker aislado
+
+# process preallocated; may change to other types
+process-type-prealloc = Preasignado
+
+##
+## Localization for Gecko process types defined in GeckoProcessTypes.h
+##
+
+process-type-default = Principal
+process-type-tab = Pestaña
+
+# 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 = Actor IPC en espacio aislado
+
+##
+## Other
+##
+
+# fallback
+process-type-unknown = Desconocido
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/profileDowngrade.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/profileDowngrade.ftl
new file mode 100644
index 0000000000..1383e6ffc6
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Ha ejecutado una versión antigua de { -brand-product-name }
+ .style = min-width: 490px;
+profiledowngrade-window-create =
+ .label = Crear nuevo perfil
+profiledowngrade-sync = Usar una versión antigua de { -brand-product-name } puede corromper los marcadores y el historial de navegación ya guardados en un perfil de { -brand-product-name } existente. Para proteger su información, cree un nuevo perfil para esta instalación de { -brand-short-name }. Siempre puede conectarse a una { -fxaccount-brand-name } para sincronizar sus marcadores e historial de navegación entre perfiles.
+profiledowngrade-sync2 = Usar una versión antigua de { -brand-product-name } puede corromper los marcadores y el historial de navegación ya guardados en un perfil de { -brand-product-name } existente. Para proteger su información, cree un nuevo perfil para esta instalación de { -brand-short-name }. Siempre puede iniciar sesión con una cuenta para sincronizar sus favoritos y su historial de navegación entre perfiles.
+profiledowngrade-nosync = Usar una versión antigua de { -brand-product-name } puede corromper los marcadores y el historial de navegación ya guardados en un perfil de { -brand-product-name } existente. Para proteger su información, cree un nuevo perfil para esta instalación de { -brand-short-name }.
+profiledowngrade-quit =
+ .label =
+ { PLATFORM() ->
+ [windows] Salir
+ *[other] Salir
+ }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/profileSelection.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/profileSelection.ftl
new file mode 100644
index 0000000000..34f3176fc6
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/profileSelection.ftl
@@ -0,0 +1,38 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+profile-selection-window =
+ .title = { -brand-short-name } - Escoja perfil de usuario
+
+profile-selection-button-accept =
+ .label = Iniciar { -brand-short-name }
+
+profile-selection-button-cancel =
+ .label = Salir
+
+profile-selection-new-button =
+ .label = Crear perfil…
+ .accesskey = C
+
+profile-selection-rename-button =
+ .label = Renombrar perfil…
+ .accesskey = R
+
+profile-selection-delete-button =
+ .label = Eliminar perfil…
+ .accesskey = E
+
+profile-selection-conflict-message = Otra copia de { -brand-product-name } ha hecho cambios a los perfiles. Debe reiniciar { -brand-short-name } antes de hacer más cambios.
+
+## Messages used in the profile manager
+
+profile-manager-description = { -brand-short-name } guarda información sobre su configuración, preferencias y otros elementos de usuario en su perfil.
+
+profile-manager-work-offline =
+ .label = Trabajar sin conexión
+ .accesskey = T
+
+profile-manager-use-selected =
+ .label = Usar el perfil seleccionado sin preguntar al iniciar
+ .accesskey = U
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/resetProfile.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/resetProfile.ftl
new file mode 100644
index 0000000000..1ee712c527
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = ¿Restaurar { -brand-short-name } a sus ajustes predeterminados?
+refresh-profile-dialog-button =
+ .label = Restablecer { -brand-short-name }
+refresh-profile-dialog-description = Comience de cero para solucionar problemas de rendimiento. Esto eliminará sus extensiones y personalizaciones. No perderá información esencial como marcadores o contraseñas.
+refresh-profile = Dar un repaso a { -brand-short-name }
+refresh-profile-button = Restablecer { -brand-short-name }…
+refresh-profile-learn-more = Saber más
+
+refresh-profile-progress =
+ .title = Restablecer { -brand-short-name }
+refresh-profile-progress-description = A punto de terminar…
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/resistFingerPrinting.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/resistFingerPrinting.ftl
new file mode 100644
index 0000000000..1885d9744e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Cambiar su configuración de idioma a inglés puede hacer más difícil identificarle y, así, mejorar su privacidad. ¿Quiere solicitar las versiones en inglés de las páginas web?
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000..006cdbf625
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = ¿Terminar de instalar { -brand-short-name }?
+prompt-to-install-message = Complete esta instalación en un solo paso para ayudar a mantener { -brand-short-name } actualizado y prevenir la pérdida de datos. { -brand-short-name } se añadirá a su carpeta de aplicaciones y Dock.
+prompt-to-install-yes-button = Instalar
+prompt-to-install-no-button = No instalar
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = Ha fallado la instalación de { -brand-short-name }.
+install-failed-message = Ha fallado la instalación de { -brand-short-name } pero seguirá en ejecución.
+
+## 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 la aplicación { -brand-short-name } existente?
+prompt-to-launch-existing-app-message = Ya tiene { -brand-short-name } instalado. Utilice la aplicación instalada para mantenerse al día y evitar la pérdida de datos.
+prompt-to-launch-existing-app-yes-button = Abrir existente
+prompt-to-launch-existing-app-no-button = No, gracias
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/tabprompts.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/tabprompts.ftl
new file mode 100644
index 0000000000..5adc830d3e
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Nombre de usuario:
+tabmodalprompt-password =
+ .value = Contraseña:
+
+tabmodalprompt-ok-button =
+ .label = Aceptar
+tabmodalprompt-cancel-button =
+ .label = Cancelar
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/textActions.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/textActions.ftl
new file mode 100644
index 0000000000..b63e304c78
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Deshacer
+ .accesskey = h
+text-action-undo-shortcut =
+ .key = Z
+text-action-redo =
+ .label = Rehacer
+ .accesskey = h
+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 sin el rastreo del sitio
+ .accesskey = n
+text-action-paste =
+ .label = Pegar
+ .accesskey = P
+text-action-paste-no-formatting =
+ .label = Pegar sin formato
+ .accesskey = m
+text-action-paste-shortcut =
+ .key = V
+text-action-delete =
+ .label = Eliminar
+ .accesskey = l
+text-action-select-all =
+ .label = Seleccionar todo
+ .accesskey = A
+text-action-select-all-shortcut =
+ .key = A
+text-action-spell-no-suggestions =
+ .label = No hay sugerencias ortográficas
+text-action-spell-add-to-dictionary =
+ .label = Añadir al diccionario
+ .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+ .label = Deshacer Añadir al diccionario
+ .accesskey = n
+text-action-spell-check-toggle =
+ .label = Revisar ortografía
+ .accesskey = g
+text-action-spell-add-dictionaries =
+ .label = Añadir diccionarios…
+ .accesskey = A
+text-action-spell-dictionaries =
+ .label = Idiomas
+ .accesskey = I
+text-action-search-text-box-clear =
+ .title = Limpiar
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/timepicker.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/timepicker.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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/es-ES/localization/es-ES/toolkit/global/tree.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/tree.ftl
new file mode 100644
index 0000000000..1703b66297
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Restablecer el orden de las columnas
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/unknownContentType.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/unknownContentType.ftl
new file mode 100644
index 0000000000..6fee416c9d
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 en { -brand-short-name }
+ .accesskey = e
+
+unknowncontenttype-settingschange =
+ .value =
+ { PLATFORM() ->
+ [windows] La configuración se puede cambiar en las opciones de { -brand-short-name }.
+ *[other] La configuración se puede cambiar en las preferencias de { -brand-short-name }.
+ }
+
+unknowncontenttype-intro = Ha elegido abrir:
+unknowncontenttype-which-is = que es:
+unknowncontenttype-from = de:
+unknowncontenttype-prompt = ¿Desea guardar este archivo?
+unknowncontenttype-action-question = ¿Qué debería hacer { -brand-short-name } con este archivo?
+unknowncontenttype-open-with =
+ .label = Abrir con
+ .accesskey = o
+unknowncontenttype-other =
+ .label = Otros…
+unknowncontenttype-choose-handler =
+ .label =
+ { PLATFORM() ->
+ [macos] Elegir…
+ *[other] Examinar…
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] E
+ *[other] E
+ }
+unknowncontenttype-save-file =
+ .label = Guardar archivo
+ .accesskey = u
+unknowncontenttype-remember-choice =
+ .label = Hacer esto automáticamente para estos archivos a partir de ahora.
+ .accesskey = a
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/videocontrols.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/videocontrols.ftl
new file mode 100644
index 0000000000..e7a46c82f9
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/videocontrols.ftl
@@ -0,0 +1,71 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This label is used by screenreaders and other assistive technology to indicate
+# to users how much of the video has been loaded from the network. It will be
+# followed by the percentage of the video that has loaded (e.g. "Loading: 13%").
+videocontrols-buffer-bar-label = Cargando:
+videocontrols-volume-control =
+ .aria-label = Volumen
+videocontrols-closed-caption-button =
+ .aria-label = Subtítulos
+
+videocontrols-play-button =
+ .aria-label = Reproducir
+videocontrols-pause-button =
+ .aria-label = Pausar
+videocontrols-mute-button =
+ .aria-label = Silenciar
+videocontrols-unmute-button =
+ .aria-label = Restaurar sonido
+videocontrols-enterfullscreen-button =
+ .aria-label = Pantalla completa
+videocontrols-exitfullscreen-button =
+ .aria-label = Salir de pantalla completa
+videocontrols-casting-button-label =
+ .aria-label = Enviar a pantalla
+videocontrols-closed-caption-off =
+ .offlabel = No
+
+# This string is used as part of the Picture-in-Picture video toggle button when
+# the mouse is hovering it.
+videocontrols-picture-in-picture-label = Picture-in-Picture
+
+# This string is used as the label for a variation of the Picture-in-Picture video
+# toggle button when the mouse is hovering over the video.
+videocontrols-picture-in-picture-toggle-label2 = Separar este vídeo
+
+videocontrols-picture-in-picture-explainer3 = Cuantas más pantallas más diversión. Reproduzca este vídeo mientras hace otras cosas.
+
+videocontrols-error-aborted = Se ha detenido la carga del vídeo.
+videocontrols-error-network = La reproducción del vídeo se ha interrumpido por un error de red.
+videocontrols-error-decode = No se puede reproducir el vídeo porque el archivo está dañado.
+videocontrols-error-src-not-supported = El formato o tipo MIME del vídeo no se admite.
+videocontrols-error-no-source = No se ha encontrado ningún vídeo que tenga un formato y tipo MIME compatibles.
+videocontrols-error-generic = La reproducción del vídeo se ha interrumpido por un error desconocido.
+videocontrols-status-picture-in-picture = Este vídeo se está reproduciendo en el modo Picture-in-Picture.
+
+# 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 = Posición
+ .aria-valuetext = { $position } / { $duration }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/wizard.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/wizard.ftl
new file mode 100644
index 0000000000..0d5d91fde6
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Atrás
+ .accesskey = A
+wizard-win-button-back =
+ .label = < Atrás
+ .accesskey = A
+
+wizard-macos-button-next =
+ .label = Continuar
+ .accesskey = C
+wizard-linux-button-next =
+ .label = Siguiente
+ .accesskey = N
+wizard-win-button-next =
+ .label = Siguiente >
+ .accesskey = N
+
+wizard-macos-button-finish =
+ .label = Hecho
+wizard-linux-button-finish =
+ .label = Finalizar
+wizard-win-button-finish =
+ .label = Finalizar
+
+wizard-macos-button-cancel =
+ .label = Cancelar
+wizard-linux-button-cancel =
+ .label = Cancelar
+wizard-win-button-cancel =
+ .label = Cancelar
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/intl/languageNames.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/intl/languageNames.ftl
new file mode 100644
index 0000000000..946d2fb341
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/intl/languageNames.ftl
@@ -0,0 +1,215 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+language-name-aa = Afar
+language-name-ab = Abkhazian
+language-name-ach = Acholi
+language-name-ae = Avestan
+language-name-af = Africano
+language-name-ak = Akan
+language-name-am = Amharic
+language-name-an = Aragonés
+language-name-ar = Árabe
+language-name-as = Assamese
+language-name-ast = Asturiano
+language-name-av = Avaric
+language-name-ay = Aymara
+language-name-az = Azerbaijani
+language-name-ba = Bashkir
+language-name-be = Bielorruso
+language-name-bg = Búlgaro
+language-name-bh = Bihari
+language-name-bi = Bislama
+language-name-bm = Bambara
+language-name-bn = Bengalí
+language-name-bo = Tibetano
+language-name-br = Bretón
+language-name-bs = Bosnio
+language-name-ca = Catalán
+language-name-cak = Kakchikel
+language-name-ce = Checheno
+language-name-ch = Chamorro
+language-name-co = Corso
+language-name-cr = Cree
+language-name-crh = Tatar de Crimea
+language-name-cs = Checo
+language-name-csb = Casubio
+language-name-cu = Church Slavic
+language-name-cv = Chuvash
+language-name-cy = Galés
+language-name-da = Danés
+language-name-de = Alemán
+language-name-dsb = Sorbio inferior
+language-name-dv = Divehi
+language-name-dz = Dzongkha
+language-name-ee = Ewe
+language-name-el = Griego
+language-name-en = Inglés
+language-name-eo = Esperanto
+language-name-es = Español
+language-name-et = Estonio
+language-name-eu = Vasco
+language-name-fa = Persa
+language-name-ff = Fulah
+language-name-fi = Finlandés
+language-name-fj = Fiji
+language-name-fo = Feroés
+language-name-fr = Francés
+language-name-fur = Friulano
+language-name-fy = Frisiano
+language-name-ga = Irlandés
+language-name-gd = Gaélico escocés
+language-name-gl = Gallego
+language-name-gn = Guaraní
+language-name-gu = Gujarati
+language-name-gv = Manx
+language-name-ha = Hausa
+language-name-haw = Hawaiano
+language-name-he = Hebreo
+language-name-hi = Hindú
+language-name-hil = Hiligainón
+language-name-ho = Hiri Motu
+language-name-hr = Croata
+language-name-hsb = Serbio superior
+language-name-ht = Haití
+language-name-hu = Húngaro
+language-name-hy = Armenio
+language-name-hz = Herero
+language-name-ia = Interlingua
+language-name-id = Indonesio
+language-name-ie = Interlingue
+language-name-ig = Igbo
+language-name-ii = Sichuan Yi
+language-name-ik = Inupiaq
+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 = Javanese
+language-name-ka = Georgiano
+language-name-kab = Cabilio
+language-name-kg = Kongo
+language-name-ki = Kikuyu
+language-name-kj = Kuanyama
+language-name-kk = Kazakh
+language-name-kl = Groenlandés
+language-name-km = Camboyano
+language-name-kn = Kannada
+language-name-ko = Coreano
+language-name-kok = Konkani
+language-name-kr = Kanuri
+language-name-ks = Kashmiri
+language-name-ku = Kurdo
+language-name-kv = Komi
+language-name-kw = Cornish
+language-name-ky = Kirghiz
+language-name-la = Latín
+language-name-lb = Luxemburgués
+language-name-lg = Ganda
+language-name-li = Limburgan
+language-name-lij = Ligur
+language-name-ln = Lingala
+language-name-lo = Lao
+language-name-lt = Lituano
+language-name-ltg = Latgaliano
+language-name-lu = Luba-Katanga
+language-name-lv = Letón
+language-name-mai = Maithili
+language-name-meh = Mixteco Tlaxiaco del suroeste
+language-name-mg = Malagasy
+language-name-mh = Marshallese
+language-name-mi = Maori
+language-name-mix = Mixtepec Mixtec
+language-name-mk = Macedonio
+language-name-ml = Malayalam
+language-name-mn = Mongol
+language-name-mr = Marathi
+language-name-ms = Malayo
+language-name-mt = Maltés
+language-name-my = Burmese
+language-name-na = Nauru
+language-name-nb = Noruego/Bokmål
+language-name-nd = Ndebele, Norte
+language-name-ne = Nepalí
+language-name-ng = Ndonga
+language-name-nl = Holandés
+language-name-nn = Noruego/Nynorsk
+language-name-no = Noruego
+language-name-nr = Ndebele, Sur
+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 = Oriya
+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-Romanic
+language-name-rn = Kirundi
+language-name-ro = Rumano
+language-name-ru = Ruso
+language-name-rw = Kinyarwanda
+language-name-sa = Sánscrito
+language-name-sat = Santalí
+language-name-sc = Sardinian
+language-name-sco = Escocés
+language-name-sd = Sindhi
+language-name-se = Northern Sami
+language-name-sg = Sango
+language-name-si = Singhalese
+language-name-sk = Eslovaco
+language-name-sl = Esloveno
+language-name-sm = Samoan
+language-name-sn = Shona
+language-name-so = Somalí
+language-name-son = Songhay
+language-name-sq = Albanés
+language-name-sr = Serbio
+language-name-ss = Siswati
+language-name-st = Sotho, Sur
+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 = Tajik
+language-name-th = Tailandés
+language-name-ti = Tigrinya
+language-name-tig = Tigre
+language-name-tk = Turkmen
+language-name-tl = Tagalog
+language-name-tlh = Klingon
+language-name-tn = Tswana
+language-name-to = Tonga
+language-name-tr = Turco
+language-name-trs = Triqui
+language-name-ts = Tsonga
+language-name-tt = Tatar
+language-name-tw = Twi
+language-name-ty = Tahití
+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 = valón
+language-name-wen = Serbio
+language-name-wo = Wolof
+language-name-xh = Xhosa
+language-name-yi = Judío
+language-name-yo = Yoruba
+language-name-za = Zhuang
+language-name-zam = Zapoteca de Miahuatlán
+language-name-zh = Chino
+language-name-zu = Zulú
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/intl/regionNames.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/intl/regionNames.ftl
new file mode 100644
index 0000000000..784b451776
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Emiratos Árabes Unidos
+region-name-af = Afganistán
+region-name-ag = Antigua y Barbuda
+region-name-ai = Anguilla
+region-name-al = Albania
+region-name-am = Armenia
+region-name-ao = Angola
+region-name-aq = Antártida
+region-name-ar = Argentina
+region-name-as = Samoa americana
+region-name-at = Austria
+region-name-au = Australia
+region-name-aw = Aruba
+region-name-az = Azerbayán
+region-name-ba = Bosnia-Herzegovina
+region-name-bb = Barbados
+region-name-bd = Bangladesh
+region-name-be = Bélgica
+region-name-bf = Burkina Faso
+region-name-bg = Bulgaria
+region-name-bh = Bahrain
+region-name-bi = Burundi
+region-name-bj = Benin
+region-name-bl = San Bartolomé
+region-name-bm = Bermuda
+region-name-bn = Brunei
+region-name-bo = Bolivia
+region-name-bq-2018 = Caribe Neerlandés
+region-name-br = Brasil
+region-name-bs = Las Bahamas
+region-name-bt = Bhutan
+region-name-bv = Isla Bouvet
+region-name-bw = Botswana
+region-name-by = Belarús
+region-name-bz = Belice
+region-name-ca = Canadá
+region-name-cc = Islas Cocos (Keeling)
+region-name-cd = Congo (Kinshasa)
+region-name-cf = República Centroafricana
+region-name-cg = Congo (Brazzaville)
+region-name-ch = Suiza
+region-name-ci = Costa Ivory
+region-name-ck = Islas Cook
+region-name-cl = Chile
+region-name-cm = Camerún
+region-name-cn = China
+region-name-co = Colombia
+region-name-cp = Isla Clipperton
+region-name-cr = Costa Rica
+region-name-cu = Cuba
+region-name-cv-2020 = Cabo Verde
+region-name-cw = Curazao
+region-name-cx = Isla de Navidad
+region-name-cy = Chipre
+region-name-cz-2019 = República Checa
+region-name-de = Alemania
+region-name-dg = Diego García
+region-name-dj = Djibouti
+region-name-dk = Dinamarca
+region-name-dm = Dominica
+region-name-do = República Dominicana
+region-name-dz = Argelia
+region-name-ec = Ecuador
+region-name-ee = Estonia
+region-name-eg = Egipto
+region-name-eh = Sáhara Occidental
+region-name-er = Eritrea
+region-name-es = España
+region-name-et = Etiopía
+region-name-fi = Finlandia
+region-name-fj = Fiji
+region-name-fk = Islas Malvinas (Falkland)
+region-name-fm = Estados Federados de la Micronesia
+region-name-fo = Islas Faroe
+region-name-fr = Francia
+region-name-ga = Gabón
+region-name-gb = Reino Unido
+region-name-gd = Granada
+region-name-ge = Georgia
+region-name-gf = Guayana Francesa
+region-name-gg = Guernsey
+region-name-gh = Ghana
+region-name-gi = Gibraltar
+region-name-gl = Groenlandia
+region-name-gm = Gambia
+region-name-gn = Guinea
+region-name-gp = Guadalupe
+region-name-gq = Guinea Ecuatorial
+region-name-gr = Grecia
+region-name-gs = Georgia del Sur y las Islas Sandwich del Sur
+region-name-gt = Guatemala
+region-name-gu = Guam
+region-name-gw = Guinea-Bissau
+region-name-gy = Guyana
+region-name-hk = Hong Kong
+region-name-hm = Islas Heard e Islas McDonald
+region-name-hn = Honduras
+region-name-hr = Croacia
+region-name-ht = Haiti
+region-name-hu = Hungría
+region-name-id = Indonesia
+region-name-ie = Irlanda
+region-name-il = Israel
+region-name-im = Isla de Man
+region-name-in = India
+region-name-io = Territorio británico en el Océano Índico
+region-name-iq = Iraq
+region-name-ir = Irán
+region-name-is = Islandia
+region-name-it = Italia
+region-name-je = Jersey
+region-name-jm = Jamaica
+region-name-jo = Jordania
+region-name-jp = Japón
+region-name-ke = Kenia
+region-name-kg = Kyrgyzstan
+region-name-kh = Camboya
+region-name-ki = Kiribati
+region-name-km = Comoros
+region-name-kn = Saint Kitts y Nevis
+region-name-kp = Corea del Norte
+region-name-kr = Corea del Sur
+region-name-kw = Kuwait
+region-name-ky = Islas Caimán
+region-name-kz = Kazajstán
+region-name-la = Laos
+region-name-lb = Líbano
+region-name-lc = Santa Lucía
+region-name-li = Liechtenstein
+region-name-lk = Sri Lanka
+region-name-lr = Liberia
+region-name-ls = Lesotho
+region-name-lt = Lituania
+region-name-lu = Luxemburgo
+region-name-lv = Letonia
+region-name-ly = Libia
+region-name-ma = Marruecos
+region-name-mc = Mónaco
+region-name-md = Moldavia
+region-name-me = Montenegro
+region-name-mf = San Martín
+region-name-mg = Madagascar
+region-name-mh = Islas Marshall
+region-name-mk-2019 = Macedonia del Norte
+region-name-ml = Mali
+region-name-mm = Burma
+region-name-mn = Mongolia
+region-name-mo = Macao
+region-name-mp = Islas Marianas del Norte
+region-name-mq = Martinica
+region-name-mr = Mauritania
+region-name-ms = Montserrat
+region-name-mt = Malta
+region-name-mu = Mauricio
+region-name-mv = Maldivas
+region-name-mw = Malawi
+region-name-mx = México
+region-name-my = Malasia
+region-name-mz = Mozambique
+region-name-na = Namibia
+region-name-nc = Nueva Caledonia
+region-name-ne = Níger
+region-name-nf = Isla Norfolk
+region-name-ng = Nigeria
+region-name-ni = Nicaragua
+region-name-nl = Holanda (Países Bajos)
+region-name-no = Noruega
+region-name-np = Nepal
+region-name-nr = Nauru
+region-name-nu = Niue
+region-name-nz = Nueva Zelanda
+region-name-om = Omán
+region-name-pa = Panamá
+region-name-pe = Perú
+region-name-pf = Polinesia Francesa
+region-name-pg = Papúa Nueva Guinea
+region-name-ph = Filipinas
+region-name-pk = Pakistán
+region-name-pl = Polonia
+region-name-pm = San Pedro y Miquelón
+region-name-pn = Islas Pitcairn
+region-name-pr = Puerto Rico
+region-name-pt = Portugal
+region-name-pw = Palau
+region-name-py = Paraguay
+region-name-qa = Qatar
+region-name-qm = Islas Midway
+region-name-qs = Bassas da India
+region-name-qu = Isla Juan de Nova
+region-name-qw = Isla Wake
+region-name-qx = Islas Glorioso
+region-name-qz = Akrotiri
+region-name-re = Reunión
+region-name-ro = Rumanía
+region-name-rs = Serbia
+region-name-ru = Rusia
+region-name-rw = Ruanda
+region-name-sa = Arabia Saudí
+region-name-sb = Islas Salomón
+region-name-sc = Seychelles
+region-name-sd = Sudán
+region-name-se = Suecia
+region-name-sg = Singapur
+region-name-sh = Santa Elena, Ascensión y Tristán de Acuña
+region-name-si = Eslovenia
+region-name-sk = Eslovaquia
+region-name-sl = Sierra Leona
+region-name-sm = San Marino
+region-name-sn = Senegal
+region-name-so = Somalia
+region-name-sr = Suriname
+region-name-ss = Sudán del Sur
+region-name-st = San Tome y Príncipe
+region-name-sv = El Salvador
+region-name-sx = Sint Maarten
+region-name-sy = Siria
+region-name-sz-2019 = Suazilandia
+region-name-tc = Islas Turcas y Caicos
+region-name-td = Chad
+region-name-tf = Territorios franceses del sur y tierras antárticas
+region-name-tg = Togo
+region-name-th = Tailandia
+region-name-tj = Tayikistán
+region-name-tk = Tokelau
+region-name-tl = Timor Oriental
+region-name-tm = Turkmenistán
+region-name-tn = Túnez
+region-name-to = Tonga
+region-name-tr = Turquía
+region-name-tt = Trinidad y Tobago
+region-name-tv = Tuvalu
+region-name-tw = Taiwán
+region-name-tz = Tanzania
+region-name-ua = Ucrania
+region-name-ug = Uganda
+region-name-us = Estados Unidos
+region-name-uy = Uruguay
+region-name-uz = Uzbekistán
+region-name-va = Ciudad del Vaticano
+region-name-vc = San Vicente y las Granadinas
+region-name-ve = Venezuela
+region-name-vg = Islas Vírgenes Británicas
+region-name-vi = Islas Vírgenes U.S.
+region-name-vn = Vietnám
+region-name-vu = Vanuatu
+region-name-wf = Wallis y Futuna
+region-name-ws = Samoa
+region-name-xa = Islas Ashmore y Cartier
+region-name-xb = Isla Baker
+region-name-xc = Islas del Mar del Coral
+region-name-xd = Dhekelia
+region-name-xe = Isla Europa
+region-name-xg = Franja de Gaza
+region-name-xh = Isla Howland
+region-name-xj = Jan Mayen
+region-name-xk = Kosovo
+region-name-xl = Atolón Palmira
+region-name-xm = Arrecife Kingman
+region-name-xp = Islas Paracelso
+region-name-xq = Isla Jarvis
+region-name-xr = Svalbard
+region-name-xs = Islas Spratly
+region-name-xt = Isla Tromelin
+region-name-xu = Atolón Johnston
+region-name-xv = Isla de Navaza
+region-name-xw = Cisjordania
+region-name-ye = Yemen
+region-name-yt = Mayotte
+region-name-za = Sudáfrica
+region-name-zm = Zambia
+region-name-zw = Zimbabwe
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/main-window/autocomplete.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/main-window/autocomplete.ftl
new file mode 100644
index 0000000000..3fcffe0294
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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">Importe su inicio de sesión desde Google Chrome</div>
+ <div data-l10n-name = "line2">para { $host } y otros sitios</div>
+autocomplete-import-logins-chromium =
+ <div data-l10n-name = "line1">Importe su inicio de sesión desde Chromium</div>
+ <div data-l10n-name = "line2">para { $host } y otros sitios</div>
+autocomplete-import-logins-chromium-edge =
+ <div data-l10n-name = "line1">Importe su inicio de sesión desde Microsoft Edge</div>
+ <div data-l10n-name = "line2">para { $host } y otros sitios</div>
+
+##
+
+autocomplete-import-learn-more = Saber más
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/main-window/findbar.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/main-window/findbar.ftl
new file mode 100644
index 0000000000..0b74419fac
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Encontrar la siguiente aparición de la frase
+findbar-previous =
+ .tooltiptext = Encontrar la anterior aparición de la frase
+
+findbar-find-button-close =
+ .tooltiptext = Cerrar barra de búsqueda
+
+findbar-highlight-all2 =
+ .label = Resaltar todo
+ .accesskey =
+ { PLATFORM() ->
+ [macos] l
+ *[other] a
+ }
+ .tooltiptext = Resaltar todas las ocurrencias de la frase
+
+findbar-case-sensitive =
+ .label = Coincidencia de mayúsculas/minúsculas
+ .accesskey = C
+ .tooltiptext = Buscar distinguiendo mayús./minús.
+
+findbar-match-diacritics =
+ .label = Coincidir diacríticos
+ .accesskey = o
+ .tooltiptext = Distingue entre letras con acentos y sus letras base (por ejemplo, al buscar por "como", "cómo" no coincidirá y por lo tanto no aparecerá)
+
+findbar-entire-word =
+ .label = Palabras completas
+ .accesskey = P
+ .tooltiptext = Buscar palabras completas únicamente
+
+findbar-not-found = No se encontró la frase
+
+findbar-wrapped-to-top = Se alcanzó el final de la página, se continúa desde el principio
+findbar-wrapped-to-bottom = Se alcanzó el principio de la página, se continúa desde el final
+
+findbar-normal-find =
+ .placeholder = Buscar en la página
+findbar-fast-find =
+ .placeholder = Búsqueda rápida
+findbar-fast-find-links =
+ .placeholder = Búsqueda rápida (sólo en enlaces)
+
+findbar-case-sensitive-status =
+ .value = (Sensible a mayúsculas)
+findbar-match-diacritics-status =
+ .value = (coincidencia de diacrícitos)
+findbar-entire-word-status =
+ .value = (solo palabras 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 } acierto
+ *[other] { $current } de { $total } aciertos
+ }
+
+# Variables:
+# $limit (Number): Total count of matches allowed before counting stops
+findbar-found-matches-count-limit =
+ .value =
+ { $limit ->
+ [one] Más de { $limit } acierto
+ *[other] Más de { $limit } aciertos
+ }
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/neterror/certError.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/neterror/certError.ftl
new file mode 100644
index 0000000000..26d2c536ca
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 } usa un certificado de seguridad no válido.
+
+cert-error-mitm-intro = Los sitios web demuestran su identidad a través de certificados, que son emitidos por autoridades de certificación.
+
+cert-error-mitm-mozilla = { -brand-short-name } está respaldado por la organización sin ánimo de lucro Mozilla, que administra un almacén de autoridad de certificados (CA) completamente abierto. El almacén de CA ayuda a garantizar que las autoridades de certificación siguen las mejores prácticas para la seguridad del usuario.
+
+cert-error-mitm-connection = { -brand-short-name } usa el almacén de Mozilla CA para verificar que la conexión sea segura, en lugar de los certificados proporcionados por el sistema operativo del usuario. Por lo tanto, si un programa antivirus o una red está interceptando una conexión con un certificado de seguridad emitido por una CA que no se encuentra en el almacén de Mozilla CA, la conexión se considera insegura.
+
+cert-error-trust-unknown-issuer-intro = Alguien podría estar tratando de suplantar el sitio y usted no debería continuar.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-trust-unknown-issuer = Los sitios web prueban su identidad mediante certificados. { -brand-short-name } no confía en { $hostname } porque su emisor del certificado es desconocido, el certificado es autofirmado o el servidor no está enviando los certificados intermediarios correctos.
+
+cert-error-trust-cert-invalid = No se confía en el certificado porque fue emitido por un certificado CA no válido.
+
+cert-error-trust-untrusted-issuer = No se confía en el certificado porque no se confía en el certificado emisor.
+
+cert-error-trust-signature-algorithm-disabled = No se confía en el certificado porque ha sido firmado usando un algoritmo de firma que fue desactivado porque es inseguro.
+
+cert-error-trust-expired-issuer = No se confía en el certificado porque el certificado emisor ha caducado.
+
+cert-error-trust-self-signed = No se confía en el certificado porque está autofirmado.
+
+cert-error-trust-symantec = Los certificados emitidos por GeoTrust, RapidSSL, Symantec, Thawte y VeriSign ya no se consideran seguros porque estas autoridades de certificación no siguieron las prácticas de seguridad en el pasado.
+
+cert-error-untrusted-default = El certificado no procede de una fuente confiable.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-domain-mismatch = Los sitios web prueban su identidad mediante certificados. { -brand-short-name } no confía en este sitio porque utiliza un certificado que no es 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 = Los sitios web prueban su identidad mediante certificados. { -brand-short-name } no confía en este sitio porque utiliza un certificado que no es válido para { $hostname }. El certificado solo es 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 = Los sitios web prueban su identidad mediante certificados. { -brand-short-name } no confía en este sitio porque utiliza un certificado que no es válido para { $hostname }. El certificado solo es 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 = Los sitios web prueban su identidad mediante certificados. { -brand-short-name } no confía en este sitio porque utiliza un certificado que no es válido para { $hostname }. El certificado solo es válido para los siguientes nombres: { $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 = Los sitios web demuestran su identidad mediante certificados, que son válidos durante un cierto periodo de tiempo. El certificado de { $hostname } dejó de ser válido el { $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 = Los sitios web demuestran su identidad mediante certificados, que son válidos durante un cierto periodo de tiempo. El certificado de { $hostname } solo será válido a partir del { $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 error: { $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 error: <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 = Ha ocurrido un error al conectar con { $hostname }. { $errorMessage }
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-symantec-distrust-description = Los sitios web demuestran su identidad a través de certificados, que son emitidos por autoridades de certificación. La mayoría de los navegadores ya no confían en los certificados emitidos por GeoTrust, RapidSSL, Symantec, Thawte y VeriSign. { $hostname } usa un certificado emitido por una de estas autoridades y, por lo tanto, no se puede probar la identidad del sitio web.
+
+cert-error-symantec-distrust-admin = Puede avisar al administrador del sitio web acerca de este problema.
+
+cert-error-old-tls-version = Es posible que este sitio web no sea compatible con el protocolo TLS 1.2, que es la versión mínima compatible con { -brand-short-name }.
+
+# Variables:
+# $hasHSTS (Boolean) - Indicates whether HSTS header is present.
+cert-error-details-hsts-label = Seguridad estricta de transporte HTTP: { $hasHSTS }
+
+# Variables:
+# $hasHPKP (Boolean) - Indicates whether HPKP header is present.
+cert-error-details-key-pinning-label = Pinning de clave pública HTTP: { $hasHPKP }
+
+cert-error-details-cert-chain-label = Cadena de certificados:
+
+open-in-new-window-for-csp-or-xfo-error = Abrir sitio en una nueva ventana
+
+# Variables:
+# $hostname (string) - Hostname of the website blocked by csp or xfo error.
+csp-xfo-blocked-long-desc = Para proteger su seguridad, { $hostname } no permitirá que { -brand-short-name } muestre la página si otro sitio la ha incrustado. Para ver esta página, debe abrirla en una nueva ventana.
+
+## Messages used for certificate error titles
+
+connectionFailure-title = No se puede conectar
+deniedPortAccess-title = Esta dirección está restringida
+# "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 = Uf. Tenemos problemas para encontrar ese sitio.
+
+dns-not-found-trr-only-title2 = Posible riesgo de seguridad buscando este dominio
+dns-not-found-native-fallback-title2 = Posible riesgo de seguridad buscando este dominio
+
+fileNotFound-title = Archivo no encontrado
+fileAccessDenied-title = El acceso al archivo ha sido denegado
+generic-title = Oops.
+captivePortal-title = Iniciar sesión en la red
+# "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 = Uf. Esa dirección no parece correcta.
+netInterrupt-title = La conexión ha sido interrumpida
+notCached-title = Documento expirado
+netOffline-title = Modo sin conexión
+contentEncodingError-title = Error de codificación de contenido
+unsafeContentType-title = Tipo de archivo no seguro
+netReset-title = La conexión ha sido reiniciada
+netTimeout-title = La conexión ha caducado
+unknownProtocolFound-title = La dirección no resulta comprensible
+proxyConnectFailure-title = El servidor proxy está rechazando las conexiones
+proxyResolveFailure-title = No se puede encontrar el servidor proxy
+redirectLoop-title = La página no está redirigiendo adecuadamente
+unknownSocketType-title = Respuesta inesperada del servidor
+nssFailure2-title = Conexión segura fallida
+csp-xfo-error-title = { -brand-short-name } no puede abrir esta página
+corruptedContentError-title = Error de contenido dañado
+sslv3Used-title = No es posible conectar de manera segura
+inadequateSecurityError-title = Su conexión no es segura
+blockedByPolicy-title = Página bloqueada
+clockSkewError-title = La hora de su equipo es incorrecta
+networkProtocolError-title = Error de protocolo de red
+nssBadCert-title = Advertencia: riesgo potencial de seguridad a continuación
+nssBadCert-sts-title = No se ha conectado: Posible problema de seguridad
+certerror-mitm-title = Un software que impide a { -brand-short-name } conectarse de forma segura a este sitio
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/neterror/netError.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/neterror/netError.ftl
new file mode 100644
index 0000000000..20f0325320
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/neterror/netError.ftl
@@ -0,0 +1,149 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 al cargar la página
+certerror-page-title = Advertencia: riesgo potencial de seguridad a continuación
+certerror-sts-page-title = No se ha conectado: Posible problema de seguridad
+neterror-blocked-by-policy-page-title = Página bloqueada
+neterror-captive-portal-page-title = Iniciar sesión en la red
+neterror-dns-not-found-title = Servidor no encontrado
+neterror-malformed-uri-page-title = URL no válida
+
+## Error page actions
+
+neterror-advanced-button = Avanzado…
+neterror-copy-to-clipboard-button = Copiar texto al portapapeles
+neterror-learn-more-link = Más información…
+neterror-open-portal-login-page-button = Abrir página de inicio de sesión en la red
+neterror-override-exception-button = Aceptar el riesgo y continuar
+neterror-pref-reset-button = Restablecer configuración predeterminada
+neterror-return-to-previous-page-button = Ir atrás
+neterror-return-to-previous-page-recommended-button = Retroceder (recomendado)
+neterror-try-again-button = Reintentar
+neterror-add-exception-button = Continuar siempre para este sitio
+neterror-settings-button = Cambiar la configuración de DNS
+neterror-view-certificate-link = Ver certificado
+neterror-trr-continue-this-time = Continuar esta vez
+neterror-disable-native-feedback-warning = Continuar siempre
+
+##
+
+neterror-pref-reset = Parece que su configuración de seguridad de red podría estar causando esto. ¿Quiere restaurar la configuración predeterminada?
+neterror-error-reporting-automatic = Informar de errores como esto ayuda a { -vendor-short-name } a identificar y bloquear sitios maliciosos
+
+## Specific error messages
+
+neterror-generic-error = { -brand-short-name } no puede cargar esta página por alguna razón.
+neterror-load-error-try-again = El sitio podría estar no disponible temporalmente o demasiado ocupado. Vuelva a intentarlo en unos momentos.
+neterror-load-error-connection = Si no puede cargar ninguna página, compruebe la conexión de red de su equipo.
+neterror-load-error-firewall = Si su equipo o red están protegidos por un cortafuegos o proxy, asegúrese de que { -brand-short-name } tiene permiso para acceder a la web.
+neterror-captive-portal = Debe iniciar sesión en esta red antes de que pueda acceder a 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 = ¿Quería ir a <a data-l10n-name="website">{ $hostAndPath }</a>?
+neterror-dns-not-found-hint-header = <strong>Si escribió la dirección correcta, puede:</strong>
+neterror-dns-not-found-hint-try-again = Probar de nuevo más tarde
+neterror-dns-not-found-hint-check-network = Verificar la conexión a internet
+neterror-dns-not-found-hint-firewall = Comprobar que { -brand-short-name } tiene permiso para acceder a la web (puede ser que esté conectado pero detrás de un firewall)
+
+## TRR-only specific messages
+## Variables:
+## $hostname (String) - Hostname of the website to which the user was trying to connect.
+## $trrDomain (String) - Hostname of the DNS over HTTPS server that is currently in use.
+
+neterror-dns-not-found-trr-only-reason = { -brand-short-name } no puede proteger su solicitud de la dirección de este sitio a través de nuestro sistema de resolución de DNS de confianza. Éste es el motivo:
+neterror-dns-not-found-trr-only-reason2 = { -brand-short-name } no puede proteger su solicitud de la dirección de este sitio a través de nuestro proveedor de DNS seguro. Éste es el motivo:
+neterror-dns-not-found-trr-third-party-warning2 = Puede continuar con su servicio de DNS predeterminado. Sin embargo, un tercero podría ser capaz de ver los sitios web que visite.
+neterror-dns-not-found-trr-only-could-not-connect = { -brand-short-name } no se ha podido conectar a { $trrDomain }
+neterror-dns-not-found-trr-only-timeout = La conexión a { $trrDomain } ha necesitado más tiempo de lo esperado.
+neterror-dns-not-found-trr-offline = No está conectado a Internet.
+neterror-dns-not-found-trr-unknown-host2 = Este sitio web no fue encontrado por { $trrDomain }.
+neterror-dns-not-found-trr-server-problem = Ha habido un problema con { $trrDomain }.
+neterror-dns-not-found-bad-trr-url = URL no válida.
+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 = { -brand-short-name } no puede proteger su solicitud de la dirección de este sitio a través de nuestro sistema de resolución de DNS de confianza. Éste es el motivo:
+neterror-dns-not-found-native-fallback-reason2 = { -brand-short-name } no puede proteger su solicitud de la dirección de este sitio a través de nuestro proveedor de DNS seguro. Éste es el motivo:
+neterror-dns-not-found-native-fallback-heuristic = DNS sobre HTTPS ha sido desactivado en su red.
+neterror-dns-not-found-native-fallback-not-confirmed2 = { -brand-short-name } no se ha podido conectar a { $trrDomain }
+
+##
+
+neterror-file-not-found-filename = Compruebe que el nombre de archivo no tiene errores de escritura, incluyendo el uso de mayúsculas.
+neterror-file-not-found-moved = Compruebe si el archivo ha sido movido, renombrado o eliminado.
+neterror-access-denied = Puede haber sido eliminado, movido o sus permisos de archivo pueden estar impidiendo el acceso al mismo.
+neterror-unknown-protocol = Podría necesitar instalar otro software para abrir esta dirección.
+neterror-redirect-loop = Este problema a veces está causado por desactivar o rechazar la recepción de cookies.
+neterror-unknown-socket-type-psm-installed = Compruebe que su sistema tiene el administrador personal de seguridad instalado.
+neterror-unknown-socket-type-server-config = Esto podría deberse a una configuración no estándar en el servidor.
+neterror-not-cached-intro = El documento requerido ya no está disponible en la caché de { -brand-short-name }.
+neterror-not-cached-sensitive = Como precaución de seguridad, { -brand-short-name } no vuelve a pedir automáticamente documentos sensibles.
+neterror-not-cached-try-again = Haga clic en Reintentar para volver a pedir el documento del sitio web.
+neterror-net-offline = Presione “Probar de nuevo” para cambiar al modo con conexión y recargar la página.
+neterror-proxy-resolve-failure-settings = Compruebe la configuración de proxy para asegurarse de que es correcta.
+neterror-proxy-resolve-failure-connection = Compruebe que su equipo tiene una conexión de red operativa.
+neterror-proxy-resolve-failure-firewall = Si su equipo o red está protegida por un cortafuegos o proxy, asegúrese de que { -brand-short-name } tiene permiso para acceder a la web.
+neterror-proxy-connect-failure-settings = Compruebe la configuración de proxy para asegurarse de que es correcta.
+neterror-proxy-connect-failure-contact-admin = Contacte con su administrador de red para asegurarse de que el servidor proxy está funcionando.
+neterror-content-encoding-error = Contacte con los propietarios del sitio web para informarles de este problema.
+neterror-unsafe-content-type = Contacte con los propietarios del sitio web para informarles de este problema.
+neterror-nss-failure-not-verified = La página que está intentando ver no se puede mostrar porque la autenticidad de los datos recibidos no ha podido ser verificada.
+neterror-nss-failure-contact-website = Contacte con los propietarios del sitio web para informarles de este problema.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-intro = { -brand-short-name } ha detectado una posible amenaza de seguridad y no ha cargado <b>{ $hostname }</b>. Si visita este sitio, los atacantes podrían intentar robar información como sus contraseñas, correos electrónicos o detalles de su tarjeta de crédito.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-sts-intro = { -brand-short-name } ha detectado una potencial amenaza de seguridad y no ha continuado a <b>{ $hostname }</b> porque este sitio web requiere una conexión segura.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-expired-cert-intro = { -brand-short-name } ha detectado un problema y no ha continuado a <b>{ $hostname }</b>. El sitio web está mal configurado o el reloj de su ordenador está configurado de manera incorrecta.
+# 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> probablemente es un sitio seguro, pero no se ha podido establecer una conexión segura. Este problema está causado por <b>{ $mitm }</b>, que es un programa en su ordenador o en su red.
+neterror-corrupted-content-intro = La página que está intentando ver no se puede mostrar porque se ha detectado un error en la transmisión de datos.
+neterror-corrupted-content-contact-website = Contacte con los propietarios del sitio web para informarles de este problema.
+# Do not translate "SSL_ERROR_UNSUPPORTED_VERSION".
+neterror-sslv3-used = Información avanzada: 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> usa tecnología de seguridad que está obsoleta y es vulnerable a ataques. Un atacante podría revelar fácilmente información que usted pensaría que es segura. El administrador del sitio web tendrá que corregir el problema antes de que se pueda visitar el sitio.
+# Do not translate "NS_ERROR_NET_INADEQUATE_SECURITY".
+neterror-inadequate-security-code = Código de error: 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 = Su equipo piensa que la fecha y hora es { DATETIME($now, dateStyle: "medium") }, lo que evita que { -brand-short-name } se conecte de forma segura. Para visitar <b>{ $hostname }</b>, actualice el reloj de su equipo en los ajustes de su sistema a la fecha y hora actuales, y la zona horaria apropiada, y luego refresque <b>{ $hostname }</b>.
+neterror-network-protocol-error-intro = La página que está intentando ver no se puede mostrar debido a un error detectado en el protocolo de red.
+neterror-network-protocol-error-contact-website = Por favor, contacte con el propietario del sitio para informarle de este problema.
+certerror-expired-cert-second-para = Probablemente el certificado del sitio ha expirado, lo que impide a { -brand-short-name } conectarse de forma segura. Si visita este sitio, los atacantes pueden intentar robar información como sus contraseñas, correos o datos de la tarjeta de crédito.
+certerror-expired-cert-sts-second-para = Probablemente el certificado del sitio ha expirado, lo que impide a { -brand-short-name } conectarse de forma segura.
+certerror-what-can-you-do-about-it-title = ¿Qué puede hacer al respecto?
+certerror-unknown-issuer-what-can-you-do-about-it-website = El problema está probablemente en el sitio web, y no hay nada que pueda hacer para resolverlo.
+certerror-unknown-issuer-what-can-you-do-about-it-contact-admin = Si está en una red corporativa o utilizando un antivirus, puede ponerse en contacto con el equipo de asistencia para obtener ayuda. También puede notificar el problema al administrador del sitio web.
+# 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 = El reloj de su equipo está establecido en { DATETIME($now, dateStyle: "medium") }. Asegúrese de que su equipo está configurado, en los ajustes del sistema, en la fecha y hora correctas, así como la zona horaria apropiada, y luego refresque <b>{ $hostname }</b>.
+certerror-expired-cert-what-can-you-do-about-it-contact-website = Si su equipo ya está configurado en la hora correcta, entonces lo más probable es que el sitio web esté mal configurado, y no hay nada que pueda hacer para resolver el problema. Puede avisar al administrador del sitio web sobre el problema.
+certerror-bad-cert-domain-what-can-you-do-about-it = Lo más probable es que el problema sea con el sitio web, y no hay nada que pueda hacer para resolverlo. Puede notificar el problema al administrador del sitio web.
+certerror-mitm-what-can-you-do-about-it-antivirus = Si su antivirus incluye una función que escanea conexiones cifradas (normalmente llamada “escáner web” o “escáner https”), puede desactivar esa función. Si eso no funciona, puede eliminar y volver a instalar el programa antivirus.
+certerror-mitm-what-can-you-do-about-it-corporate = Si está en una red corporativa, puede ponerse en contacto con su departamento de informática.
+# 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 = Si no está familiarizado con <b>{ $mitm }</b>, entonces esto puede ser un ataque y no debería acceder al sitio.
+# 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 = Si no está familiarizado con <b>{ $mitm }</b>, entonces esto puede ser un ataque y no hay nada que pueda hacer para acceder al sitio.
+# 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> tiene una política de seguridad llamada HTTP Strict Transport Security (HSTS), que significa que { -brand-short-name } solo puede conectarse a él de forma segura. No puede añadir una excepción para visitar este sitio.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/neterror/nsserrors.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/neterror/nsserrors.ftl
new file mode 100644
index 0000000000..792354b070
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/neterror/nsserrors.ftl
@@ -0,0 +1,350 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# 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 = No se puede conectar de forma segura porque el protocolo SSL ha sido desactivado.
+psmerr-ssl2-disabled = No se puede conectar de forma segura porque el sitio usa una versión antigua e insegura del protocolo SSL.
+
+# This is a multi-line message.
+psmerr-hostreusedissuerandserial =
+ Ha recibido un certificado no válido. Contacte con el administrador o dirección de correo electrónico de contacto del servidor y facilíteles la siguiente información:
+
+ Su certificado contiene el mismo número de serie que otro certificado emitido por la autoridad de certificación. Obtenga un nuevo certificado que contenga un número de serie único.
+
+ssl-error-export-only-server = No es posible comunicar de forma segura. El otro extremo de la conexión no admite cifrado de grado alto.
+ssl-error-us-only-server = No es posible comunicar de forma segura. El otro extremo de la conexión requiere cifrado de grado alto que no está admitido.
+ssl-error-no-cypher-overlap = No se puede comunicar de forma segura con la otra parte: no hay algoritmos de cifrado comunes.
+ssl-error-no-certificate = No es posible encontrar el certificado o clave necesarios para la identificación.
+ssl-error-bad-certificate = No es posible comunicar de forma segura con el otro extremo de la conexión porque el certificado de este ha sido rechazado.
+ssl-error-bad-client = El servidor ha encontrado datos erróneos del cliente.
+ssl-error-bad-server = El cliente ha encontrado datos erróneos del servidor.
+ssl-error-unsupported-certificate-type = Tipo de certificado no admitido.
+ssl-error-unsupported-version = La otra parte está usando una versión del protocolo de seguridad no admitida.
+ssl-error-wrong-certificate = Identificación del cliente fallida: la clave privada en la base de datos de claves no coincide con la clave pública en la base de datos de certificados.
+ssl-error-bad-cert-domain = No es posible comunicar de forma segura con el otro extremo de la conexión porque el nombre de dominio solicitado no coincide con el certificado del servidor.
+ssl-error-post-warning = Código de error SSL no reconocido.
+ssl-error-ssl2-disabled = La otra parte sólo admite SSL versión 2, que está desactivado localmente.
+ssl-error-bad-mac-read = SSL ha recibido un registro con un código de identificación de mensaje incorrecto.
+ssl-error-bad-mac-alert = El otro extremo de la conexión SSL informa de un código de identificación de mensaje incorrecto.
+ssl-error-bad-cert-alert = El otro extremo de la conexión SSL no puede verificar su certificado.
+ssl-error-revoked-cert-alert = El otro extremo de la conexión SSL ha rechazado su certificado por considerarlo revocado.
+ssl-error-expired-cert-alert = El otro extremo de la conexión SSL ha rechazado su certificado por considerarlo caducado.
+ssl-error-ssl-disabled = No se puede conectar: SSL está desactivado.
+ssl-error-fortezza-pqg = No se puede conectar: el otro extremo de la conexión SSL está en otro dominio FORTEZZA.
+ssl-error-unknown-cipher-suite = Se ha solicitado una suite de cifrado SSL desconocida.
+ssl-error-no-ciphers-supported = No hay suites de cifrado presentes y activas en este programa.
+ssl-error-bad-block-padding = SSL ha recibido un registro con un ajuste de bloque incorrecto.
+ssl-error-rx-record-too-long = SSL ha recibido un registro que excedía la longitud máxima permitida.
+ssl-error-tx-record-too-long = SSL ha intentado enviar un registro que excede la longitud máxima admisible.
+ssl-error-rx-malformed-hello-request = SSL ha recibido un mensaje de negociación Hello Request mal formado.
+ssl-error-rx-malformed-client-hello = SSL ha recibido un mensaje de negociación Client Hello mal formado.
+ssl-error-rx-malformed-server-hello = SSL ha recibido un mensaje de negociación Server Hello mal formado.
+ssl-error-rx-malformed-certificate = SSL ha recibido un mensaje de negociación Certificate mal formado.
+ssl-error-rx-malformed-server-key-exch = SSL ha recibido un mensaje de negociación Server Key Exchange mal formado.
+ssl-error-rx-malformed-cert-request = SSL ha recibido un mensaje de negociación de Certificate Request mal formado.
+ssl-error-rx-malformed-hello-done = SSL ha recibido un mensaje de negociación Server Hello Done mal formado.
+ssl-error-rx-malformed-cert-verify = SSL ha recibido un mensaje de negociación Certificate Verify mal formado.
+ssl-error-rx-malformed-client-key-exch = SSL ha recibido un mensaje de negociación Client Key Exchange mal formado.
+ssl-error-rx-malformed-finished = SSL ha recibido un mensaje de negociación Finished mal formado.
+ssl-error-rx-malformed-change-cipher = SSL ha recibido un registro de cambio de especificaciones de cifrado mal formado.
+ssl-error-rx-malformed-alert = SSL ha recibido un registro de alerta mal formada.
+ssl-error-rx-malformed-handshake = SSL ha recibido un registro de negociación mal formado.
+ssl-error-rx-malformed-application-data = SSL ha recibido un registro de datos de aplicación mal formado.
+ssl-error-rx-unexpected-hello-request = SSL ha recibido un mensaje de negociación Hello Request inesperado.
+ssl-error-rx-unexpected-client-hello = SSL ha recibido un mensaje de negociación Client Hello inesperado.
+ssl-error-rx-unexpected-server-hello = SSL ha recibido un mensaje de negociación Server Hello inesperado.
+ssl-error-rx-unexpected-certificate = SSL ha recibido un mensaje de negociación Certificate inesperado.
+ssl-error-rx-unexpected-server-key-exch = SSL ha recibido un mensaje de negociación Server Key Exchange inesperado.
+ssl-error-rx-unexpected-cert-request = SSL ha recibido un mensaje de negociación Certificate Request inesperado.
+ssl-error-rx-unexpected-hello-done = SSL ha recibido un mensaje de negociación Server Hello Done inesperado.
+ssl-error-rx-unexpected-cert-verify = SSL ha recibido un mensaje de negociación Certificate Verify inesperado.
+ssl-error-rx-unexpected-client-key-exch = SSL ha recibido un mensaje de negociación Client Key Exchange inesperado.
+ssl-error-rx-unexpected-finished = SSL ha recibido un mensaje de negociación Finished inesperado.
+ssl-error-rx-unexpected-change-cipher = SSL ha recibido un registro Change Cipher Spec inesperado.
+ssl-error-rx-unexpected-alert = SSL ha recibido un registro Alert inesperado.
+ssl-error-rx-unexpected-handshake = SSL ha recibido un registro de negociación inesperado.
+ssl-error-rx-unexpected-application-data = SSL ha recibido un registro Application Data inesperado.
+ssl-error-rx-unknown-record-type = SSL ha recibido un registro con un tipo de contenido desconocido.
+ssl-error-rx-unknown-handshake = SSL ha recibido un mensaje de negociación con un tipo de mensaje desconocido.
+ssl-error-rx-unknown-alert = SSL ha recibido un registro de alerta con una descripción de alerta desconocida.
+ssl-error-close-notify-alert = El otro extremo de la conexión SSL ha cerrado esta conexión.
+ssl-error-handshake-unexpected-alert = El otro extremo de la conexión SSL no esperaba un mensaje de negociación que ha recibido.
+ssl-error-decompression-failure-alert = El otro extremo de la conexión SSL no ha podido descomprimir con éxito un registro SSL que ha recibido.
+ssl-error-handshake-failure-alert = El otro extremo de la conexión SSL no ha podido negociar un conjunto aceptable de parámetros de seguridad.
+ssl-error-illegal-parameter-alert = El otro extremo de la conexión SSL ha rechazado un mensaje de negociación por contenido no aceptable.
+ssl-error-unsupported-cert-alert = El otro extremo de la conexión SSL no admite certificados del tipo que ha recibido.
+ssl-error-certificate-unknown-alert = El otro extremo de la conexión SSL ha tenido algún problema no especificado con el certificado que ha recibido.
+ssl-error-generate-random-failure = SSL ha experimentado un fallo de su generador de números aleatorios.
+ssl-error-sign-hashes-failure = No es posible firmar digitalmente los datos requeridos para verificar su certificado.
+ssl-error-extract-public-key-failure = SSL no ha podido extraer la clave pública del certificado del otro extremo de la conexión.
+ssl-error-server-key-exchange-failure = Fallo no especificado mientras se procesaba la negociación de intercambio de claves servidor de SSL.
+ssl-error-client-key-exchange-failure = Fallo no especificado mientras se procesaba la negociación de intercambio de claves cliente de SSL.
+ssl-error-encryption-failure = Ha fallado el algoritmo de cifrado de lotes de datos en la suite de cifrado seleccionada.
+ssl-error-decryption-failure = Ha fallado el algoritmo de descifrado de lotes de datos en la suite de cifrado seleccionada.
+ssl-error-socket-write-failure = Ha fallado un intento de escribir datos cifrados en el socket subyacente.
+ssl-error-md5-digest-failure = Función resumen MD5 fallida.
+ssl-error-sha-digest-failure = Función resumen SHA-1 fallida.
+ssl-error-mac-computation-failure = Cálculo MAC fallido.
+ssl-error-sym-key-context-failure = No se ha podido crear un contexto de clave simétrica.
+ssl-error-sym-key-unwrap-failure = No se ha podido desempaquetar la clave simétrica en el mensaje de intercambio de claves de cliente.
+ssl-error-pub-key-size-limit-exceeded = El servidor SSL ha intentado usar una clave pública de grado doméstico con una suite de cifrado de exportación.
+ssl-error-iv-param-failure = El código PKCS11 no permite traducir un IV en un parámetro.
+ssl-error-init-cipher-suite-failure = No se ha podido inicializar la suite de cifrado seleccionada.
+ssl-error-session-key-gen-failure = El cliente no ha podido generar claves de sesión para la sesión SSL.
+ssl-error-no-server-key-for-alg = El servidor no tiene clave para el algoritmo de intercambio de claves intentado.
+ssl-error-token-insertion-removal = El token PKCS#11 se ha insertado o eliminado mientras la operación estaba en progreso.
+ssl-error-token-slot-not-found = No se ha podido encontrar un token PKCS#11 para hacer una operación requerida.
+ssl-error-no-compression-overlap = No se puede comunicar de forma segura con la otra parte: no hay algoritmos de compresión comunes.
+ssl-error-handshake-not-completed = No se puede iniciar otra negociación SSL (SSL handshake) hasta que la actual se haya completado.
+ssl-error-bad-handshake-hash-value = Se han recibido de la otra parte valores hash incorrectos de negociación.
+ssl-error-cert-kea-mismatch = El certificado proporcionado no puede usarse con el algoritmo de intercambio de claves seleccionado.
+ssl-error-no-trusted-ssl-client-ca = No se confía en ninguna autoridad certificadora para la identificación del cliente SSL.
+ssl-error-session-not-found = La ID de sesión SSL del cliente no se ha encontrado en el caché de sesión del servidor.
+ssl-error-decryption-failed-alert = La otra parte no ha podido descifrar un registro SSL recibido por ella.
+ssl-error-record-overflow-alert = La otra parte ha recibido un registro SSL más largo de lo permitido.
+ssl-error-unknown-ca-alert = La otra parte no reconoce o confía en la CA que emitió su certificado.
+ssl-error-access-denied-alert = La otra parte ha recibido un certificado válido, pero el acceso ha sido denegado.
+ssl-error-decode-error-alert = El otro extremo de la conexión no ha podido decodificar un mensaje de negociación SSL (SSL handshake).
+ssl-error-decrypt-error-alert = La otra parte indica un fallo en la verificación de la firma o intercambio de claves.
+ssl-error-export-restriction-alert = La otra parte informa que la negociación no cumple las regulaciones de exportación.
+ssl-error-protocol-version-alert = La otra parte informa de una versión del protocolo incompatible o no admitida.
+ssl-error-insufficient-security-alert = El servidor requiere cifrado más segudo del soportado por el cliente.
+ssl-error-internal-error-alert = La otra parte informa que ha experimentado un error interno.
+ssl-error-user-canceled-alert = El usuario del otro extremo de la conexión ha cancelado la negociación.
+ssl-error-no-renegotiation-alert = La otra parte no permite renegociar los parámetros de seguridad SSL.
+ssl-error-server-cache-not-configured = El caché del servidor SSL no está configurado ni desactivado en este socket.
+ssl-error-unsupported-extension-alert = El otro extremo de la conexión SSL no admite la extensión hello TLS solicitada.
+ssl-error-certificate-unobtainable-alert = El otro extremo de la conexión SSL no ha podido obtener el certificado de usted de la URL suministrada.
+ssl-error-unrecognized-name-alert = El otro extremo de la conexión SSL no tiene certificado para el nombre DNS solicitado.
+ssl-error-bad-cert-status-response-alert = El otro extremo de la conexión SSL no ha podido obtener una respuesta OCSP para su certificado.
+ssl-error-bad-cert-hash-value-alert = El otro extremo de la conexión SSL ha informado de un valor hash de certificado erróneo.
+ssl-error-rx-unexpected-new-session-ticket = SSL ha recibido un mensaje de negociación Nuevo tique de sesión inesperado.
+ssl-error-rx-malformed-new-session-ticket = SSL ha recibido un mensaje de negociación Nuevo tique de sesión mal formado.
+ssl-error-decompression-failure = SSL ha recibido un registro comprimido que no ha podido ser descomprimido.
+ssl-error-renegotiation-not-allowed = No se permite la renegociación en este socket SSL.
+ssl-error-unsafe-negotiation = La otra parte ha intentado una negociación al estilo antiguo (potencialmente vulnerable).
+ssl-error-rx-unexpected-uncompressed-record = SSL ha recibido un registro no comprimido inesperado.
+ssl-error-weak-server-ephemeral-dh-key = SSL ha recibido una clave Diffie-Hellman efímera débil en el mensaje de negociación de intercambio de claves de servidor.
+ssl-error-next-protocol-data-invalid = SSL ha recibido datos no válidos de la extensión NPN.
+ssl-error-feature-not-supported-for-ssl2 = Característica SSL no compatible con las conexiones SSL 2.0.
+ssl-error-feature-not-supported-for-servers = Característica SSL no admitida en los servidores.
+ssl-error-feature-not-supported-for-clients = Característica SSL no admitida en los clientes.
+ssl-error-invalid-version-range = El intervalo de versiones SSL no es válido.
+ssl-error-cipher-disallowed-for-version = El interlocutor SSL ha seleccionado una suite de cifrado no permitida en la versión de protocolo elegida.
+ssl-error-rx-malformed-hello-verify-request = SSL ha recibido un mensaje de negociación Hello Verify Request mal formado.
+ssl-error-rx-unexpected-hello-verify-request = SSL ha recibido un mensaje de negociación Hello Verify Request inesperado.
+ssl-error-feature-not-supported-for-version = Característica SSL no admitida en esa versión del protocolo.
+ssl-error-rx-unexpected-cert-status = SSL ha recibido un mensaje de negociación Certificate Status inesperado.
+ssl-error-unsupported-hash-algorithm = Algoritmo hash no admitido utilizado por el interlocutor TLS.
+ssl-error-digest-failure = Falló la función de resumen.
+ssl-error-incorrect-signature-algorithm = Algoritmo de firma incorrecto especificado en un elemento firmado digitalmente.
+ssl-error-next-protocol-no-callback = Se activó la extensión de negociación del siguiente protocolo, pero la llamada de respuesta se inicializó antes de necesitarse.
+ssl-error-next-protocol-no-protocol = El servidor no admite protocolos anunciados por el cliente en la extensión ALPN.
+ssl-error-inappropriate-fallback-alert = El servidor rechazó la negociación porque el cliente degradó a una versión TLS inferior a la que admite el servidor.
+ssl-error-weak-server-cert-key = El certificado de servidor incluía una clave pública que era demasiado débil.
+ssl-error-rx-short-dtls-read = No hay espacio suficiente en el buffer para el registro DTLS.
+ssl-error-no-supported-signature-algorithm = No se ha configurado un algoritmo de firma TLS compatible.
+ssl-error-unsupported-signature-algorithm = El par usó una combinación no admitida de firma y algoritmo resumen.
+ssl-error-missing-extended-master-secret = El par intentó continuar sin una extensión extended_master_secret correcta.
+ssl-error-unexpected-extended-master-secret = El par intentó continuar conn una extensión extended_master_secret inesperada.
+
+sec-error-io = Ha ocurrido un error de E/S durante la autorización de seguridad.
+sec-error-library-failure = fallo de la biblioteca de seguridad.
+sec-error-bad-data = biblioteca de seguridad: se han recibido datos incorrectos.
+sec-error-output-len = biblioteca de seguridad: error de longitud de salida.
+sec-error-input-len = la biblioteca de seguridad ha experimentado un error de longitud de entrada.
+sec-error-invalid-args = biblioteca de seguridad: argumentos no válidos.
+sec-error-invalid-algorithm = biblioteca de seguridad: algoritmo no válido.
+sec-error-invalid-ava = biblioteca de seguridad: AVA no válido.
+sec-error-invalid-time = Cadena de fecha/hora incorrectamente formateada.
+sec-error-bad-der = biblioteca de seguridad: mensaje codificado en DER incorrectamente formateado.
+sec-error-bad-signature = El certificado de la otra parte tiene una firma no válida.
+sec-error-expired-certificate = El certificado de la otra parte ha caducado.
+sec-error-revoked-certificate = El certificado de la otra parte ha sido revocado.
+sec-error-unknown-issuer = El emisor del certificado de la otra parte no se reconoce.
+sec-error-bad-key = La clave pública de la otra parte no es válida.
+sec-error-bad-password = La contraseña de seguridad introducida es incorrecta.
+sec-error-retry-password = La nueva contraseña se ha introducido incorrectamente. Inténtelo de nuevo.
+sec-error-no-nodelock = biblioteca de seguridad: no hay bloqueo de nodo (nodelock).
+sec-error-bad-database = biblioteca de seguridad: base de datos incorrecta.
+sec-error-no-memory = biblioteca de seguridad: fallo de ubicación (allocation) de memoria.
+sec-error-untrusted-issuer = El emisor del certificado de la otra parte ha sido marcado como no confiable por el usuario.
+sec-error-untrusted-cert = El certificado de la otra parte ha sido marcado como no confiable por el usuario.
+sec-error-duplicate-cert = El certificado ya existe en su base de datos.
+sec-error-duplicate-cert-name = El nombre del certificado descargado duplica uno ya instalado en su base de datos.
+sec-error-adding-cert = Error al añadir el certificado a la base de datos.
+sec-error-filing-key = Error al rellenar la clave para este certificado.
+sec-error-no-key = La clave privada de este certificado no puede encontrarse en la base de datos de claves
+sec-error-cert-valid = Este certificado es válido.
+sec-error-cert-not-valid = Este certificado no es válido.
+sec-error-cert-no-response = Biblioteca de certificados: no hay respuesta
+sec-error-expired-issuer-certificate = El certificado del emisor del certificado ha caducado. Compruebe la fecha y hora de su sistema.
+sec-error-crl-expired = La CRL del emisor del certificado ha caducado. Actualícela o compruebe la fecha y hora de su sistema.
+sec-error-crl-bad-signature = La CRL del emisor del certificado tiene una firma no válida.
+sec-error-crl-invalid = La nueva CRL tiene un formato no válido.
+sec-error-extension-value-invalid = El valor de la extensión del certificado no es válido.
+sec-error-extension-not-found = No se ha encontrado una extensión del certificado.
+sec-error-ca-cert-invalid = El certificado del emisor no es válido.
+sec-error-path-len-constraint-invalid = La restricción a la longitud de la ruta del certificado no es válida.
+sec-error-cert-usages-invalid = El campo de usos del certificado no es válido.
+sec-internal-only = **Módulo EXCLUSIVAMENTE interno**
+sec-error-invalid-key = La clave no admite la operación solicitada.
+sec-error-unknown-critical-extension = El certificado contiene una extensión crítica desconocida.
+sec-error-old-crl = La nueva CRL no es posterior a la actual.
+sec-error-no-email-cert = No cifrado o firmado: aún no tiene un certificado de correo electrónico.
+sec-error-no-recipient-certs-query = No cifrado: no tiene ciertificados para cada uno de los recipientes.
+sec-error-not-a-recipient = No se puede descrifrar: usted no es un destinatario, o bien no se ha encontrado una clave privada o certificado apropiados.
+sec-error-pkcs7-keyalg-mismatch = No se puede descifrar: el algoritmo de cifrado de clave no coincide con su certificado.
+sec-error-pkcs7-bad-signature = Verificación de la firma fallida: o no se ha encontrado firmante, o se han encontrado demasiados firmantes, o los datos son inadecuados o corruptos.
+sec-error-unsupported-keyalg = Algoritmo de claves no admitido o desconocido.
+sec-error-decryption-disallowed = No se puede descifrar: se ha cifrado usando un algoritmo o tamaño de clave no permitidos.
+sec-error-no-krl = No se ha encontrado KRL para el certificado de este sitio.
+sec-error-krl-expired = La KRL del certificado de este sitio ha caducado.
+sec-error-krl-bad-signature = La KRL del certificado de este sitio tiene una firma no válida.
+sec-error-revoked-key = La clave para el certificado de este sitio ha sido revocada.
+sec-error-krl-invalid = La nueva KRL tiene un formato no válido.
+sec-error-need-random = biblioteca de seguridad: se necesitan datos aleatorios.
+sec-error-no-module = biblioteca de seguridad: ningún módulo de seguridad puede ejecutar la operación solicitada.
+sec-error-no-token = La tarjeta o token de seguridad no existe, tiene que ser inicializada, o ha sido eliminada.
+sec-error-read-only = biblioteca de seguridad: base de datos de sólo lectura.
+sec-error-no-slot-selected = No se ha seleccionado una ranura o token.
+sec-error-cert-nickname-collision = Ya existe un certificado con el mismo apodo.
+sec-error-key-nickname-collision = Ya existe una clave con el mismo apodo.
+sec-error-safe-not-created = error al crear el objeto seguro
+sec-error-baggage-not-created = error al crear el objeto de transporte (baggage object)
+sec-error-bad-export-algorithm = Un algoritmo requerido no está permitido.
+sec-error-exporting-certificates = Error al intentar exportar certificados.
+sec-error-importing-certificates = Error al intentar importar certificados.
+sec-error-pkcs12-decoding-pfx = No es posible importar. Error de decodificación. Archivo no válido.
+sec-error-pkcs12-invalid-mac = No es posible importar. MAC no válida. Contraseña incorrecta o archivo corrupto.
+sec-error-pkcs12-unsupported-mac-algorithm = No es posible importar. Algoritmo MAC no admitido.
+sec-error-pkcs12-unsupported-transport-mode = No es posible importar. Sólo se admiten los modos de privacidad e integridad de contraseña.
+sec-error-pkcs12-corrupt-pfx-structure = No es posible importar. La estructura del archivo está corrupta.
+sec-error-pkcs12-unsupported-pbe-algorithm = No es posible importar. Algoritmo de cifrado no admitido.
+sec-error-pkcs12-unsupported-version = No es posible importar. Versión del archivo no admitida.
+sec-error-pkcs12-privacy-password-incorrect = No es posible importar. Contraseña de privacidad incorrecta.
+sec-error-pkcs12-cert-collision = No es posible importar. El mismo apodo existe ya en la base de datos.
+sec-error-user-cancelled = El usuario ha presionado Cancelar.
+sec-error-pkcs12-duplicate-data = No importado, ya en la base de datos.
+sec-error-message-send-aborted = Mensaje no enviado.
+sec-error-inadequate-key-usage = El uso de la clave del certificado es inapropiada para la operación pretendida.
+sec-error-inadequate-cert-type = Tipo de certificado no aprobado para la aplicación.
+sec-error-cert-addr-mismatch = La dirección en el certificado de firma no coincide con la dirección en las cabeceras del mensaje.
+sec-error-pkcs12-unable-to-import-key = No es posible importar. Error al intentar importar la clave privada.
+sec-error-pkcs12-importing-cert-chain = No es posible importar. Error al intentar importar la cadena de certificados.
+sec-error-pkcs12-unable-to-locate-object-by-name = No es posible exportar. No se puede localizar el certificado o clave por el apodo.
+sec-error-pkcs12-unable-to-export-key = No es posible exportar. La clave privada no ha podido ser localizada y exportada.
+sec-error-pkcs12-unable-to-write = No es posible exportar. No se puede escribir el archivo de exportación.
+sec-error-pkcs12-unable-to-read = No es posible importar. No se puede leer el archivo de importación.
+sec-error-pkcs12-key-database-not-initialized = No es posible exportar. La base de datos de claves está corrupta o ha sido borrada.
+sec-error-keygen-fail = No es posible generar el par de claves pública/privada.
+sec-error-invalid-password = La contraseña introducida no es válida. Por favor, escoja una diferente.
+sec-error-retry-old-password = Contraseña anterior introducida incorrectamente. Vuelva a intentarlo.
+sec-error-bad-nickname = El apodo del certificado ya está en uso.
+sec-error-not-fortezza-issuer = La cadena FORTEZZA de la otra parte tiene un certificado que no es de FORTEZZA.
+sec-error-cannot-move-sensitive-key = No se puede mover una clave confidencial a la ranura donde se necesita.
+sec-error-js-invalid-module-name = Nombre de módulo no válido.
+sec-error-js-invalid-dll = Ruta o nombre de archivo de módulo no válido
+sec-error-js-add-mod-failure = No es posible añadir el módulo
+sec-error-js-del-mod-failure = No es posible eliminar el módulo
+sec-error-old-krl = La nueva KRL no es posterior a la actual.
+sec-error-ckl-conflict = La nueva CKL tiene un emisor diferente de la CKL actual. Borre la CKL actual.
+sec-error-cert-not-in-name-space = La autoridad certificadora de este certificado no tiene permitido emitir un certificado con este nombre.
+sec-error-krl-not-yet-valid = La lista de revocación de claves para este certificado no es válida aún.
+sec-error-crl-not-yet-valid = La lista de revocación de certificados para este certificado no es válido aún.
+sec-error-unknown-cert = No se ha podido encontrar el certificado solicitado.
+sec-error-unknown-signer = No se ha podido encontrar el certificado del firmante.
+sec-error-cert-bad-access-location = La dirección del servidor de estado de certificado tiene un formato no válido.
+sec-error-ocsp-unknown-response-type = La respuesta OCSP no puede decodificarse totalmente; es de un tipo desconocido.
+sec-error-ocsp-bad-http-response = El servidor OCSP ha devuelto datos HTTP inesperados/no válidos.
+sec-error-ocsp-malformed-request = El servidor OCSP ha encontrado que la solicitud está corrupta o incorrectamente formada.
+sec-error-ocsp-server-error = El servidor OCSP ha experimentado un error interno.
+sec-error-ocsp-try-server-later = El servidor OCSP sugiere que lo intente de nuevo más tarde.
+sec-error-ocsp-request-needs-sig = El servidor OCSP requiere una firma en esta solicitud.
+sec-error-ocsp-unauthorized-request = El servidor OCSP ha rechazado esta solicitud como no autorizada.
+sec-error-ocsp-unknown-response-status = El servidor OCSP ha devuelto un estado irreconocible.
+sec-error-ocsp-unknown-cert = El servidor OCSP no tiene estado para el certificado.
+sec-error-ocsp-not-enabled = Debe activar OCSP antes de ejecutar esta operación.
+sec-error-ocsp-no-default-responder = Debe establecer el respondedor OCSP predeterminado antes de ejecutar esta operación.
+sec-error-ocsp-malformed-response = La respuesta del servidor OCSP estaba corrupta o incorrectamente formada.
+sec-error-ocsp-unauthorized-response = El firmante de la respuesta OCSP no está autorizado a proporcionar el estado de este certificado.
+sec-error-ocsp-future-response = La respuesta OCSP no es válida aún (contiene una fecha en el futuro).
+sec-error-ocsp-old-response = La respuesta OCSP contiene información no actualizada.
+sec-error-digest-not-found = No se ha encontrado el resumen CMS o PKCS #7 en el mensaje firmado.
+sec-error-unsupported-message-type = El tipo de mensaje CMS o PKCS #7 no está admitido.
+sec-error-module-stuck = El módulo PKCS #11 no se ha podido eliminar porque está aún en uso.
+sec-error-bad-template = No se ha podido decodificar los datos ASN.1. La plantilla especificada no era válida.
+sec-error-crl-not-found = No se ha encontrado CRL apropiada.
+sec-error-reused-issuer-and-serial = Está intentando importar un certificado con el mismo número de serie/emisor que un certificado existente, pero no es el mismo certificado.
+sec-error-busy = NSS no se pudo cerrar. Hay objetos aún en uso.
+sec-error-extra-input = El mensaje codificado con DER contenía datos extra no usados.
+sec-error-unsupported-elliptic-curve = Curva elíptica no admitida.
+sec-error-unsupported-ec-point-form = Forma de punto de curva elíptica no admitida.
+sec-error-unrecognized-oid = Identificador de objeto no reconocido.
+sec-error-ocsp-invalid-signing-cert = Certificado de firma OCSP no valido en respuesta OCSP.
+sec-error-revoked-certificate-crl = El certificado está revocado en la lista de revocación de certificados del emisor.
+sec-error-revoked-certificate-ocsp = El respondedor OCSP del emisor informa que el certificado está revocado.
+sec-error-crl-invalid-version = La lista de revocación de certificados del emisor tiene un número de versión desconocido.
+sec-error-crl-v1-critical-extension = La lista de revocación de certificados V1 del emisor tiene una extensión crítica.
+sec-error-crl-unknown-critical-extension = La lista de revocación de certificados V2 del emisor tiene una extensión crítica desconocida.
+sec-error-unknown-object-type = Tipo de objeto especificado desconocido.
+sec-error-incompatible-pkcs11 = El controlador PKCS #11 viola la especificación en una forma incompatible.
+sec-error-no-event = No hay disponible ningún nuevo evento de ranura en este momento.
+sec-error-crl-already-exists = La CRL ya existe.
+sec-error-not-initialized = NSS no está inicializado.
+sec-error-token-not-logged-in = La operación ha fallado porque el token PKCS#11 no ha iniciado sesión.
+sec-error-ocsp-responder-cert-invalid = El certificado configurado del respondedor OCSP no es válido.
+sec-error-ocsp-bad-signature = La respuesta OCSP tiene una firma no válida.
+sec-error-out-of-search-limits = La búsqueda de validación del certificado está fuera de los límites de búsqueda
+sec-error-invalid-policy-mapping = El mapeo de políticas contiene anypolicy
+sec-error-policy-validation-failed = La cadena de certificados no cumple la validación de políticas
+sec-error-unknown-aia-location-type = Tipo de dirección desconocido en la extensión de certificado AIA
+sec-error-bad-http-response = El servidor ha devuelto una respuesta HTTP no válida
+sec-error-bad-ldap-response = El servidor ha devuelto una respuesta LDAP no válida
+sec-error-failed-to-encode-data = Fallo al codificar datos con el codificador ASN1
+sec-error-bad-info-access-location = Dirección de acceso a información no válida en extensión de certificado
+sec-error-libpkix-internal = Ha ocurrido un error interno Libpkix durante la validación del certificado.
+sec-error-pkcs11-general-error = Un módulo PKCS #11 ha devuelto CKR_GENERAL_ERROR, indicando que ha sucedido un error no recuperable.
+sec-error-pkcs11-function-failed = Un módulo PKCS #11 ha devuelto CKR_FUNCTION_FAILED, indicando que la función solicitada no se ha podido ejecutar. Si se intenta de nuevo la misma operación podría tener éxito.
+sec-error-pkcs11-device-error = Un módulo PKCS #11 ha devuelto CKR_DEVICE_ERROR, indicando que ha ocurrido un problema con el token o slot.
+sec-error-bad-info-access-method = Método de acceso a información desconocido en extensión de certificado.
+sec-error-crl-import-failed = Error al intentar importar una CRL.
+sec-error-expired-password = La contraseña ha caducado.
+sec-error-locked-password = La contraseña está bloqueada.
+sec-error-unknown-pkcs11-error = Error PKCS #11 desconocido.
+sec-error-bad-crl-dp-url = URL no válida o no admitida en el nombre del punto de distribución de la CRL.
+sec-error-cert-signature-algorithm-disabled = El certificado se firmó usando un algoritmo de firma que está desactivado porque no es seguro.
+
+mozilla-pkix-error-key-pinning-failure = Este servidor usa key pinning (HPKP) pero no se ha podido construir una cadena de certificados confiables que coincida con el pinset. Las violaciones de key pinning no se pueden solventar.
+mozilla-pkix-error-ca-cert-used-as-end-entity = El servidor usa un certificado con una extensión básica de restricciones que lo identifica como autoridad de certificación. Esto no debería ser el caso para un certificado emitido correctamente.
+mozilla-pkix-error-inadequate-key-size = El servidor ha presentado un certificado con un tamaño de clave que es demasiado pequeño para establecer una conexión segura.
+mozilla-pkix-error-v1-cert-used-as-ca = Para emitir el certificado del servidor se ha usado un certificado X.509 versión 1 que no es confiable. Los certificados X.509 versión 1 están desaprobados no deben usarse para firmar otros certificados.
+mozilla-pkix-error-not-yet-valid-certificate = El servidor ha presentado un certificado que aún no es válido.
+mozilla-pkix-error-not-yet-valid-issuer-certificate = Se ha usado un certificado que aún no es válido para emitir el certificado del servidor.
+mozilla-pkix-error-signature-algorithm-mismatch = El algoritmo de firma en el campo de firma del certificado no concuerda con el algoritmo en su campo signatureAlgorithm.
+mozilla-pkix-error-ocsp-response-for-cert-missing = La respuesta OCSP no incluye un estado para el certificado que se está verificando.
+mozilla-pkix-error-validity-too-long = El servidor ha presentado un certificado con una validez excesivamente amplia.
+mozilla-pkix-error-required-tls-feature-missing = Falta una característica necesaria de TLS.
+mozilla-pkix-error-invalid-integer-encoding = El servidor ha presentado un certificado que contiene una codificación no válida de un entero. Las causas más habituales incluyen números de serie negativos, módulos RSA negativos y codificaciones que son más largas de lo necesario.
+mozilla-pkix-error-empty-issuer-name = El servidor ha presentado un certificado con un nombre distinguido de emisor vacío.
+mozilla-pkix-error-additional-policy-constraint-failed = Una restricción de política adicional falló al validar este certificado.
+mozilla-pkix-error-self-signed-cert = No se confía en el certificado porque está autofirmado.
+
+xp-java-remove-principal-error = No se puede eliminar el principal
+xp-java-delete-privilege-error = No se puede eliminar el privilegio
+xp-java-cert-not-exists-error = Este principal no tiene un certificado
+
+xp-sec-fortezza-bad-card = La tarjeta Fortezza no ha sido correctamente inicializada. Retírela y devuélvala a su emisor.
+xp-sec-fortezza-no-card = No se han encontrado tarjetas Fortezza
+xp-sec-fortezza-none-selected = No hay tarjeta Fortezza seleccionada
+xp-sec-fortezza-more-info = Seleccione una personalidad para obtener más información sobre
+xp-sec-fortezza-person-not-found = Personalidad no encontrada
+xp-sec-fortezza-no-more-info = No hay más información en esa personalidad
+xp-sec-fortezza-bad-pin = PIN no válido
+xp-sec-fortezza-person-error = No se pueden inicializar las personalidades Fortezza.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/passwordmgr/passwordmgr.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/passwordmgr/passwordmgr.ftl
new file mode 100644
index 0000000000..73fbc94b1b
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 la contraseña para { $host }?
+password-manager-save-password-button-allow =
+ .label = Guardar
+ .accesskey = G
+password-manager-save-password-button-never =
+ .label = No guardar nunca
+ .accesskey = n
+# Variables
+# $host (String) - Hostname for which the password is updated for.
+password-manager-update-password-message = ¿Actualizar la contraseña para { $host }?
+password-manager-update-login-add-username = ¿Añadir nombre de usuario a la contraseña guardada?
+password-manager-password-password-button-allow =
+ .label = Actualizar
+ .accesskey = U
+password-manager-update-password-button-deny =
+ .label = No actualizar
+ .accesskey = a
+# This is displayed in place of the username when it is missing.
+password-manager-no-username-placeholder = Sin nombre de usuario
+password-manager-toggle-password =
+ .label = Mostrar contraseña
+ .accesskey = M
+password-manager-confirm-password-change = Confirmar cambio de contraseña
+password-manager-select-username = Seleccione qué cuenta actualizar:
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/payments/payments.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/payments/payments.ftl
new file mode 100644
index 0000000000..6d0b267366
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 en { $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/es-ES/localization/es-ES/toolkit/pdfviewer/viewer.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/pdfviewer/viewer.ftl
new file mode 100644
index 0000000000..6647abc0dd
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/pdfviewer/viewer.ftl
@@ -0,0 +1,384 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 siguiente
+pdfjs-next-button-label = Siguiente
+# .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 = Reducir
+pdfjs-zoom-out-button-label = Reducir
+pdfjs-zoom-in-button =
+ .title = Aumentar
+pdfjs-zoom-in-button-label = Aumentar
+pdfjs-zoom-select =
+ .title = Tamaño
+pdfjs-presentation-mode-button =
+ .title = Cambiar al modo presentación
+pdfjs-presentation-mode-button-label = Modo presentación
+pdfjs-open-file-button =
+ .title = Abrir archivo
+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 = Descargar
+# 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 = Descargar
+pdfjs-bookmark-button =
+ .title = Página actual (Ver URL de la página actual)
+pdfjs-bookmark-button-label = Página actual
+# Used in Firefox for Android.
+pdfjs-open-in-app-button =
+ .title = Abrir en aplicación
+# 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 en aplicación
+
+## Secondary toolbar and context menu
+
+pdfjs-tools-button =
+ .title = Herramientas
+pdfjs-tools-button-label = Herramientas
+pdfjs-first-page-button =
+ .title = Ir a la primera página
+pdfjs-first-page-button-label = Ir a la primera página
+pdfjs-last-page-button =
+ .title = Ir a la última página
+pdfjs-last-page-button-label = Ir a la última página
+pdfjs-page-rotate-cw-button =
+ .title = Rotar en sentido horario
+pdfjs-page-rotate-cw-button-label = Rotar en sentido horario
+pdfjs-page-rotate-ccw-button =
+ .title = Rotar en sentido antihorario
+pdfjs-page-rotate-ccw-button-label = Rotar en sentido antihorario
+pdfjs-cursor-text-select-tool-button =
+ .title = Activar herramienta de selección de texto
+pdfjs-cursor-text-select-tool-button-label = Herramienta de selección de texto
+pdfjs-cursor-hand-tool-button =
+ .title = Activar herramienta de mano
+pdfjs-cursor-hand-tool-button-label = Herramienta de mano
+pdfjs-scroll-page-button =
+ .title = Usar desplazamiento de página
+pdfjs-scroll-page-button-label = Desplazamiento de página
+pdfjs-scroll-vertical-button =
+ .title = Usar desplazamiento vertical
+pdfjs-scroll-vertical-button-label = Desplazamiento vertical
+pdfjs-scroll-horizontal-button =
+ .title = Usar desplazamiento horizontal
+pdfjs-scroll-horizontal-button-label = Desplazamiento horizontal
+pdfjs-scroll-wrapped-button =
+ .title = Usar desplazamiento en bloque
+pdfjs-scroll-wrapped-button-label = Desplazamiento en bloque
+pdfjs-spread-none-button =
+ .title = No juntar páginas en vista de libro
+pdfjs-spread-none-button-label = Vista de libro
+pdfjs-spread-odd-button =
+ .title = Juntar las páginas partiendo de una con número impar
+pdfjs-spread-odd-button-label = Vista de libro impar
+pdfjs-spread-even-button =
+ .title = Juntar las páginas partiendo de una con número par
+pdfjs-spread-even-button-label = Vista de libro par
+
+## Document properties dialog
+
+pdfjs-document-properties-button =
+ .title = Propiedades del documento…
+pdfjs-document-properties-button-label = Propiedades del documento…
+pdfjs-document-properties-file-name = Nombre de archivo:
+pdfjs-document-properties-file-size = Tamaño de archivo:
+# 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 = Asunto:
+pdfjs-document-properties-keywords = Palabras clave:
+pdfjs-document-properties-creation-date = Fecha de creación:
+pdfjs-document-properties-modification-date = Fecha de modificación:
+# 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 = Creador:
+pdfjs-document-properties-producer = Productor PDF:
+pdfjs-document-properties-version = Versión PDF:
+pdfjs-document-properties-page-count = Número de páginas:
+pdfjs-document-properties-page-size = Tamaño de la 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 = vertical
+pdfjs-document-properties-page-size-orientation-landscape = horizontal
+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 de la web:
+pdfjs-document-properties-linearized-yes = Sí
+pdfjs-document-properties-linearized-no = No
+pdfjs-document-properties-close-button = Cerrar
+
+## Print
+
+pdfjs-print-progress-message = Preparando documento para impresión…
+# Variables:
+# $progress (Number) - percent value
+pdfjs-print-progress-percent = { $progress }%
+pdfjs-print-progress-close-button = Cancelar
+pdfjs-printing-not-supported = Advertencia: Imprimir no está totalmente soportado por este navegador.
+pdfjs-printing-not-ready = Advertencia: Este PDF no se ha cargado completamente para poder imprimirse.
+
+## Tooltips and alt text for side panel toolbar buttons
+
+pdfjs-toggle-sidebar-button =
+ .title = Cambiar barra lateral
+pdfjs-toggle-sidebar-notification-button =
+ .title = Alternar barra lateral (el documento contiene esquemas/adjuntos/capas)
+pdfjs-toggle-sidebar-button-label = Cambiar barra lateral
+pdfjs-document-outline-button =
+ .title = Mostrar resumen del documento (doble clic para expandir/contraer todos los elementos)
+pdfjs-document-outline-button-label = Resumen de documento
+pdfjs-attachments-button =
+ .title = Mostrar adjuntos
+pdfjs-attachments-button-label = Adjuntos
+pdfjs-layers-button =
+ .title = Mostrar capas (doble clic para restablecer todas las capas al estado predeterminado)
+pdfjs-layers-button-label = Capas
+pdfjs-thumbs-button =
+ .title = Mostrar miniaturas
+pdfjs-thumbs-button-label = Miniaturas
+pdfjs-current-outline-item-button =
+ .title = Encontrar elemento de esquema actual
+pdfjs-current-outline-item-button-label = Elemento de esquema actual
+pdfjs-findbar-button =
+ .title = Buscar en el documento
+pdfjs-findbar-button-label = Buscar
+pdfjs-additional-layers = Capas adicionales
+
+## 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 de la página { $page }
+
+## Find panel button title and messages
+
+pdfjs-find-input =
+ .title = Buscar
+ .placeholder = Buscar en el documento…
+pdfjs-find-previous-button =
+ .title = Encontrar la anterior aparición de la frase
+pdfjs-find-previous-button-label = Anterior
+pdfjs-find-next-button =
+ .title = Encontrar la siguiente aparición de esta frase
+pdfjs-find-next-button-label = Siguiente
+pdfjs-find-highlight-checkbox = Resaltar todos
+pdfjs-find-match-case-checkbox-label = Coincidencia de mayús./minús.
+pdfjs-find-match-diacritics-checkbox-label = Coincidir diacríticos
+pdfjs-find-entire-word-checkbox-label = Palabras completas
+pdfjs-find-reached-top = Se alcanzó el inicio del documento, se continúa desde el final
+pdfjs-find-reached-bottom = Se alcanzó el final del documento, se continúa desde el inicio
+# 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 } coincidencia
+ *[other] { $current } de { $total } coincidencias
+ }
+# Variables:
+# $limit (Number) - the maximum number of matches
+pdfjs-find-match-count-limit =
+ { $limit ->
+ [one] Más de { $limit } coincidencia
+ *[other] Más de { $limit } coincidencias
+ }
+pdfjs-find-not-found = Frase no encontrada
+
+## Predefined zoom values
+
+pdfjs-page-scale-width = Anchura de la página
+pdfjs-page-scale-fit = Ajuste de la página
+pdfjs-page-scale-auto = Tamaño automático
+pdfjs-page-scale-actual = Tamaño 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 = Ocurrió un error al cargar el PDF.
+pdfjs-invalid-file-error = Fichero PDF no válido o corrupto.
+pdfjs-missing-file-error = No hay fichero PDF.
+pdfjs-unexpected-response-error = Respuesta inesperada del servidor.
+pdfjs-rendering-error = Ocurrió un error al renderizar la 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 = [Anotación { $type }]
+
+## Password
+
+pdfjs-password-label = Introduzca la contraseña para abrir este archivo PDF.
+pdfjs-password-invalid = Contraseña no válida. Vuelva a intentarlo.
+pdfjs-password-ok-button = Aceptar
+pdfjs-password-cancel-button = Cancelar
+pdfjs-web-fonts-disabled = Las tipografías web están desactivadas: es imposible usar las tipografías PDF embebidas.
+
+## Editing
+
+pdfjs-editor-free-text-button =
+ .title = Texto
+pdfjs-editor-free-text-button-label = Texto
+pdfjs-editor-ink-button =
+ .title = Dibujar
+pdfjs-editor-ink-button-label = Dibujar
+pdfjs-editor-stamp-button =
+ .title = Añadir o editar imágenes
+pdfjs-editor-stamp-button-label = Añadir o editar imágenes
+pdfjs-editor-remove-button =
+ .title = Eliminar
+
+## Remove button for the various kind of editor.
+
+pdfjs-editor-remove-ink-button =
+ .title = Eliminar dibujo
+pdfjs-editor-remove-freetext-button =
+ .title = Eliminar texto
+pdfjs-editor-remove-stamp-button =
+ .title = Eliminar imagen
+pdfjs-editor-remove-highlight-button =
+ .title = Quitar resaltado
+
+##
+
+# Editor Parameters
+pdfjs-editor-free-text-color-input = Color
+pdfjs-editor-free-text-size-input = Tamaño
+pdfjs-editor-ink-color-input = Color
+pdfjs-editor-ink-thickness-input = Grosor
+pdfjs-editor-ink-opacity-input = Opacidad
+pdfjs-editor-stamp-add-image-button =
+ .title = Añadir imagen
+pdfjs-editor-stamp-add-image-button-label = Añadir imagen
+pdfjs-free-text =
+ .aria-label = Editor de texto
+pdfjs-free-text-default-content = Empezar a escribir…
+pdfjs-ink =
+ .aria-label = Editor de dibujos
+pdfjs-ink-canvas =
+ .aria-label = Imagen creada por el usuario
+
+## 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 el texto alternativo
+pdfjs-editor-alt-text-dialog-label = Eligir una opción
+pdfjs-editor-alt-text-dialog-description = El texto alternativo (texto alternativo) ayuda cuando las personas no pueden ver la imagen o cuando no se carga.
+pdfjs-editor-alt-text-add-description-label = Añadir una descripción
+pdfjs-editor-alt-text-add-description-description = Intente escribir 1 o 2 frases que describan el tema, el entorno o las acciones.
+pdfjs-editor-alt-text-mark-decorative-label = Marcar como decorativa
+pdfjs-editor-alt-text-mark-decorative-description = Se utiliza para imágenes ornamentales, como bordes o marcas de agua.
+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 ejemplo: “Un joven se sienta a la mesa a comer”
+
+## Editor resizers
+## This is used in an aria label to help to understand the role of the resizer.
+
+pdfjs-editor-resizer-label-top-left = Esquina superior izquierda — redimensionar
+pdfjs-editor-resizer-label-top-middle = Borde superior en el medio — redimensionar
+pdfjs-editor-resizer-label-top-right = Esquina superior derecha — redimensionar
+pdfjs-editor-resizer-label-middle-right = Borde derecho en el medio — redimensionar
+pdfjs-editor-resizer-label-bottom-right = Esquina inferior derecha — redimensionar
+pdfjs-editor-resizer-label-bottom-middle = Borde inferior en el medio — redimensionar
+pdfjs-editor-resizer-label-bottom-left = Esquina inferior izquierda — redimensionar
+pdfjs-editor-resizer-label-middle-left = Borde izquierdo en el medio — redimensionar
+
+## Color picker
+
+# This means "Color used to highlight text"
+pdfjs-editor-highlight-colorpicker-label = Color de resaltado
+pdfjs-editor-colorpicker-button =
+ .title = Cambiar color
+pdfjs-editor-colorpicker-dropdown =
+ .aria-label = Opciones de color
+pdfjs-editor-colorpicker-yellow =
+ .title = Amarillo
+pdfjs-editor-colorpicker-green =
+ .title = Verde
+pdfjs-editor-colorpicker-blue =
+ .title = Azul
+pdfjs-editor-colorpicker-pink =
+ .title = Rosa
+pdfjs-editor-colorpicker-red =
+ .title = Rojo
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/pictureinpicture/pictureinpicture.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/pictureinpicture/pictureinpicture.ftl
new file mode 100644
index 0000000000..371b2becb5
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Picture-in-Picture
+
+## Variables:
+## $shortcut (String) - Keyboard shortcut to execute the command.
+
+## Note that this uses .tooltip rather than the standard '.title'
+## or '.tooltiptext' - but it has the same effect. Code in the
+## picture-in-picture window will read and copy this to an in-document
+## DOM node that then shows the tooltip.
+##
+## Variables:
+## $shortcut (String) - Keyboard shortcut to execute the command.
+
+pictureinpicture-pause-btn =
+ .aria-label = Pausar
+ .tooltip = Pausar (barra espaciadora)
+pictureinpicture-play-btn =
+ .aria-label = Reproducir
+ .tooltip = Reproducir (barra espaciadora)
+
+pictureinpicture-mute-btn =
+ .aria-label = Silenciar
+ .tooltip = Silenciar ({ $shortcut })
+pictureinpicture-unmute-btn =
+ .aria-label = Restaurar sonido
+ .tooltip = Restaurar sonido ({ $shortcut })
+
+pictureinpicture-unpip-btn =
+ .aria-label = Enviar de vuelta a la pestaña
+ .tooltip = Vuelta a la pestaña
+
+pictureinpicture-close-btn =
+ .aria-label = Cerrar
+ .tooltip = Cerrar ({ $shortcut })
+
+pictureinpicture-subtitles-btn =
+ .aria-label = Subtítulos
+ .tooltip = Subtítulos
+
+pictureinpicture-fullscreen-btn2 =
+ .aria-label = Pantalla completa
+ .tooltip = Pantalla completa (doble clic o { $shortcut })
+
+pictureinpicture-exit-fullscreen-btn2 =
+ .aria-label = Salir de pantalla completa
+ .tooltip = Salir de pantalla completa (doble clic o { $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 = Avanzar
+ .tooltip = Avanzar (→)
+
+##
+
+# 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 = Ajustes de subtítulos
+
+pictureinpicture-subtitles-label = Subtítulos
+
+pictureinpicture-font-size-label = Tamaño de letra
+
+pictureinpicture-font-size-small = Pequeño
+
+pictureinpicture-font-size-medium = Medio
+
+pictureinpicture-font-size-large = Grande
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/preferences/preferences.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/preferences/preferences.ftl
new file mode 100644
index 0000000000..6655fb06e8
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = (sin definir)
+
+failed-pp-change = No se pudo cambiar la contraseña maestra.
+incorrect-pp = No ha introducido la contraseña maestra actual correctamente. Vuelva a intentarlo.
+pp-change-ok = La contraseña maestra ha sido cambiada correctamente.
+
+settings-pp-erased-ok = Ha eliminado su contraseña principal. Las contraseñas almacenadas y las claves privadas de certificado administradas por { -brand-short-name } ya no estarán protegidas.
+settings-pp-not-wanted = ¡Advertencia! Ha decidido no usar una contraseña principal. Las contraseñas almacenadas y las claves privadas de certificados administradas por { -brand-short-name } ya no estarán protegidas.
+
+pp-change2empty-in-fips-mode = En este momento se encuentra en modo FIPS. FIPS requiere una contraseña maestra no vacía.
+pw-change-success-title = Cambio de contraseña correcto
+pw-change-failed-title = Falló el cambio de contraseña
+pw-remove-button =
+ .label = Eliminar
+
+primary-password-dialog =
+ .title = Contraseña maestra
+set-password-old-password = Contraseña actual:
+set-password-new-password = Introducir nueva contraseña:
+set-password-reenter-password = Confirmar contraseña:
+set-password-meter = Medidor de calidad de la contraseña
+set-password-meter-loading = Cargando
+primary-password-admin = Su administrador requiere que tenga configurada una Contraseña maestra para guardar los inicios de sesión y las contraseñas.
+primary-password-description = Una contraseña maestra se usa para proteger información confidencial como inicios de sesión y contraseñas. Si crea una contraseña maestra, se le pedirá que la escriba una vez por sesión cuando { -brand-short-name } recupere información guardada protegida por la contraseña.
+primary-password-warning = Procure recordar bien o escribir en un lugar seguro esta contraseña maestra ya que, si la olvida, no podrá acceder a ninguna información protegida por ésta en este dispositivo.
+
+remove-primary-password =
+ .title = Eliminar contraseña maestra
+remove-info =
+ .value = Debe introducir la contraseña actual para proceder:
+remove-primary-password-warning1 = Su contraseña maestra se usa para proteger información confidencial como inicios de sesión y contraseñas.
+remove-primary-password-warning2 = Si elimina la contraseña maestra su información no estará protegida si su ordenador resulta comprometido.
+remove-password-old-password =
+ .value = Contraseña actual:
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/printing/printDialogs.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/printing/printDialogs.ftl
new file mode 100644
index 0000000000..1b06c6fa95
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Configuración de página
+custom-prompt-title = Personalizado…
+custom-prompt-prompt = Introduzca su texto personalizado de encabezado/pie
+basic-tab =
+ .label = Formato y opciones
+advanced-tab =
+ .label = Márgenes y encabezado/pie de página
+format-group-label =
+ .value = Formato
+orientation-label =
+ .value = Orientación:
+portrait =
+ .label = Vertical
+ .accesskey = V
+landscape =
+ .label = Horizontal
+ .accesskey = H
+scale =
+ .label = Escala:
+ .accesskey = S
+scale-percent =
+ .value = %
+shrink-to-fit =
+ .label = Ajustar al ancho de página
+ .accesskey = u
+options-group-label =
+ .value = Opciones
+print-bg =
+ .label = Imprimir fondo (colores e imágenes)
+ .accesskey = f
+margin-group-label-inches =
+ .value = Márgenes (pulgadas)
+margin-group-label-metric =
+ .value = Márgenes (milímetros)
+margin-top =
+ .value = Superior:
+ .accesskey = S
+margin-top-invisible =
+ .value = Superior:
+margin-bottom =
+ .value = Inferior:
+ .accesskey = I
+margin-bottom-invisible =
+ .value = Inferior:
+margin-left =
+ .value = Izquierda:
+ .accesskey = z
+margin-left-invisible =
+ .value = Izquierda:
+margin-right =
+ .value = Derecha:
+ .accesskey = D
+margin-right-invisible =
+ .value = Derecha:
+header-footer-label =
+ .value = Encabezados y pies
+hf-left-label =
+ .value = Izquierda:
+hf-center-label =
+ .value = Centro:
+hf-right-label =
+ .value = Derecha:
+header-left-tip =
+ .tooltiptext = Encabezado izquierdo
+header-center-tip =
+ .tooltiptext = Encabezado central
+header-right-tip =
+ .tooltiptext = Encabezado derecho
+footer-left-tip =
+ .tooltiptext = Pie izquierdo
+footer-center-tip =
+ .tooltiptext = Pie central
+footer-right-tip =
+ .tooltiptext = Pie derecho
+hf-blank =
+ .label = --nada--
+hf-title =
+ .label = Título
+hf-url =
+ .label = Dirección
+hf-date-and-time =
+ .label = Fecha/hora
+hf-page =
+ .label = Página #
+hf-page-and-total =
+ .label = Página # de #
+hf-custom =
+ .label = Personalizado…
+print-preview-window =
+ .title = Vista preliminar
+print-title =
+ .value = Título:
+print-preparing =
+ .value = Preparando…
+print-progress =
+ .value = Progreso:
+print-window =
+ .title = Imprimiendo
+print-complete =
+ .value = La impresión se ha completado.
+
+# Variables
+# $percent (integer) - Number of printed percentage
+print-percent =
+ .value = { $percent }%
+dialog-cancel-label = Cancelar
+dialog-close-label = Cerrar
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/printing/printPreview.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/printing/printPreview.ftl
new file mode 100644
index 0000000000..f5b34bbe88
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 no se puede simplificar automáticamente
+printpreview-simplify-page-checkbox-enabled =
+ .label = { printpreview-simplify-page-checkbox.label }
+ .accesskey = { printpreview-simplify-page-checkbox.accesskey }
+ .tooltiptext = Cambiar disposición para una lectura más cómoda
+printpreview-close =
+ .label = Cerrar
+ .accesskey = C
+printpreview-portrait =
+ .label = Vertical
+ .accesskey = V
+printpreview-landscape =
+ .label = Horizontal
+ .accesskey = L
+printpreview-scale =
+ .value = Escala:
+ .accesskey = S
+printpreview-shrink-to-fit =
+ .label = Ajustar a la página
+printpreview-custom =
+ .label = Personalizado…
+printpreview-print =
+ .label = Imprimir…
+ .accesskey = P
+printpreview-of =
+ .value = de
+printpreview-custom-scale-prompt-title = Escala personalizada
+printpreview-page-setup =
+ .label = Configurar página…
+ .accesskey = u
+printpreview-page =
+ .value = Página:
+ .accesskey = a
+
+# 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 = Primera página
+printpreview-previousarrow =
+ .label = { $arrow }
+ .tooltiptext = Página anterior
+printpreview-nextarrow =
+ .label = { $arrow }
+ .tooltiptext = Página siguiente
+printpreview-endarrow =
+ .label = { $arrow }
+ .tooltiptext = Última página
+
+printpreview-homearrow-button =
+ .title = Primera página
+printpreview-previousarrow-button =
+ .title = Página anterior
+printpreview-nextarrow-button =
+ .title = Página siguiente
+printpreview-endarrow-button =
+ .title = Última página
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/printing/printUI.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/printing/printUI.ftl
new file mode 100644
index 0000000000..891b5c30b0
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 } hoja de papel
+ *[other] { $sheetCount } hojas de papel
+ }
+
+printui-page-range-all = Todo
+printui-page-range-current = Actual
+printui-page-range-odd = Impar
+printui-page-range-even = Par
+printui-page-range-custom = Personalizado
+printui-page-range-label = Páginas
+printui-page-range-picker =
+ .aria-label = Seleccionar rango de páginas
+printui-page-custom-range-input =
+ .aria-label = Introduzca un rango de páginas personalizado
+ .placeholder = p.ej. 2-6, 9, 12-16
+
+# Section title for the number of copies to print
+printui-copies-label = Copias
+
+printui-orientation = Orientación
+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 = Más ajustes
+printui-less-settings = Menos ajustes
+
+printui-paper-size-label = Tamaño de papel
+
+# Section title (noun) for the print scaling options
+printui-scale = Escala
+printui-scale-fit-to-page-width = Ajustar al ancho de la 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 = Impresión a doble cara
+printui-two-sided-printing-off = Desactivado
+# Flip the sheet as if it were bound along its long edge.
+printui-two-sided-printing-long-edge = Pasar página por el borde largo
+# Flip the sheet as if it were bound along its short edge.
+printui-two-sided-printing-short-edge = Pasar página por el borde corto
+
+# Section title for miscellaneous print options
+printui-options = Opciones
+printui-headers-footers-checkbox = Imprimir encabezados y pies de página
+printui-backgrounds-checkbox = Imprimir fondo de pantalla
+
+## 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 = Selección
+# Option for "simplifying" the page by printing the Reader View version.
+printui-simplify-page-radio = Simplificado
+
+##
+
+printui-color-mode-label = Modo de color
+printui-color-mode-color = Color
+printui-color-mode-bw = Blanco y negro
+
+printui-margins = Márgenes
+printui-margins-default = Predeterminado
+printui-margins-min = Mínimo
+printui-margins-none = Ninguno
+printui-margins-custom-inches = Personalizado (pulgadas)
+printui-margins-custom-mm = Personalizado (mm)
+printui-margins-custom-top = Superior
+printui-margins-custom-top-inches = Superior (pulgadas)
+printui-margins-custom-top-mm = Superior (mm)
+printui-margins-custom-bottom = Inferior
+printui-margins-custom-bottom-inches = Inferior (pulgadas)
+printui-margins-custom-bottom-mm = Inferior (mm)
+printui-margins-custom-left = Izquierdo
+printui-margins-custom-left-inches = Izquierda (pulgadas)
+printui-margins-custom-left-mm = Izquierdo (mm)
+printui-margins-custom-right = Derecho
+printui-margins-custom-right-inches = Derecha (pulgadas)
+printui-margins-custom-right-mm = Derecho (mm)
+
+printui-system-dialog-link = Imprimir usando el diálogo del sistema…
+
+printui-primary-button = Imprimir
+printui-primary-button-save = Guardar
+printui-cancel-button = Cancelar
+printui-close-button = Cerrar
+
+printui-loading = Preparando vista previa
+
+# Reported by screen readers and other accessibility tools to indicate that
+# the print preview has focus.
+printui-preview-label =
+ .aria-label = Vista previa de impresión
+
+printui-pages-per-sheet = Páginas por hoja
+
+# 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 = Imprimiendo…
+printui-print-progress-indicator-saving = Guardando…
+
+## 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 EE.UU.
+printui-paper-legal = Legal EE.UU.
+printui-paper-tabloid = Tabloide
+
+## Error messages shown when a user has an invalid input
+
+printui-error-invalid-scale = La escala debe ser un número entre 10 y 200.
+printui-error-invalid-margin = Introduzca un margen válido para el tamaño de papel seleccionado.
+printui-error-invalid-copies = El número de copias debe ser un número entre 1 y 10000.
+
+# Variables
+# $numPages (integer) - Number of pages
+printui-error-invalid-range = El rango debe ser un número entre 1 y { $numPages }.
+printui-error-invalid-start-overflow = El número de página “desde” debe ser menor que el número “hasta“.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/reportBrokenSite/reportBrokenSite.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/reportBrokenSite/reportBrokenSite.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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/es-ES/localization/es-ES/toolkit/updates/backgroundupdate.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/updates/backgroundupdate.ftl
new file mode 100644
index 0000000000..403ee1d516
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = La tarea de actualización en segundo plano comprueba si hay actualizaciones para { -brand-short-name } cuando { -brand-short-name } no se está ejecutando. Esta tarea es instalada automáticamente por { -brand-short-name }, y se reinstala cuando { -brand-short-name } se está ejecutando. Para desactivar esta tarea, actualice la configuración de { -brand-short-name } o la política empresarial “BackgroundAppUpdate” .
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/updates/elevation.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/updates/elevation.ftl
new file mode 100644
index 0000000000..944992d256
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/updates/elevation.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/.
+# This is temporary until bug 1521632 is fixed
+
+elevation-update-wizard =
+ .title = Actualización de software
+elevation-details-link-label =
+ .value = Detalles
+elevation-error-manual =
+ Se puede actualizar { -brand-short-name } manualmente visitando este enlace
+ y descargando la última versión:
+elevation-finished-page = Actualización lista para instalar
+elevation-finished-background-page =
+ Se ha descargado una actualización de seguridad y estabilidad
+ para { -brand-short-name } y está lista para ser instalada.
+elevation-finished-background = Actualización:
+elevation-more-elevated = Esta actualización requiere privilegios de administrador. La actualización se instalará la próxima vez que se inicie { -brand-short-name }. Puede reiniciar { -brand-short-name } ahora, continuar trabajando y reiniciar más tarde, o declinar esta actualización.
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/updates/history.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/updates/history.ftl
new file mode 100644
index 0000000000..2c1f97f3b6
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/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 = Historial de actualizaciones
+history-intro = Se han instalado las siguientes actualizaciones
+
+close-button-label =
+ .buttonlabelcancel = Cerrar
+ .title = Historial de actualizaciones
+
+no-updates-label = Todavía no hay actualizaciones instaladas
+name-header = Nombre de la actualización
+date-header = Fecha de instalación
+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 = Detalles
+
+update-installed-on = Instalado en: { $date }
+
+update-status = Estado: { $status }
diff --git a/thunderbird-l10n/es-ES/manifest.json b/thunderbird-l10n/es-ES/manifest.json
new file mode 100644
index 0000000000..a6494c0278
--- /dev/null
+++ b/thunderbird-l10n/es-ES/manifest.json
@@ -0,0 +1,56 @@
+{
+ "langpack_id": "es-ES",
+ "manifest_version": 2,
+ "browser_specific_settings": {
+ "gecko": {
+ "id": "langpack-es-ES@thunderbird.mozilla.org",
+ "strict_min_version": "115.0",
+ "strict_max_version": "115.*"
+ }
+ },
+ "name": "Language: Español (ES) (Spanish, Spain)",
+ "description": "Thunderbird Language Pack for Español (ES) (es-ES) – Spanish, Spain",
+ "version": "115.7.20240119.95007",
+ "languages": {
+ "es-ES": {
+ "version": "20240119104928",
+ "chrome_resources": {
+ "alerts": "chrome/es-ES/locale/es-ES/alerts/",
+ "autoconfig": "chrome/es-ES/locale/es-ES/autoconfig/",
+ "branding": "chrome/es-ES/locale/branding/",
+ "calendar": "chrome/es-ES/locale/es-ES/calendar/",
+ "chat": "chrome/es-ES/locale/es-ES/chat/",
+ "communicator": "chrome/es-ES/locale/es-ES/communicator/",
+ "devtools": "chrome/es-ES/locale/es-ES/devtools/client/",
+ "devtools-shared": "chrome/es-ES/locale/es-ES/devtools/shared/",
+ "global": "chrome/es-ES/locale/es-ES/global/",
+ "global-platform": {
+ "macosx": "chrome/es-ES/locale/es-ES/global-platform/mac/",
+ "linux": "chrome/es-ES/locale/es-ES/global-platform/unix/",
+ "android": "chrome/es-ES/locale/es-ES/global-platform/unix/",
+ "win": "chrome/es-ES/locale/es-ES/global-platform/win/"
+ },
+ "lightning": "chrome/es-ES/locale/es-ES/lightning/",
+ "messenger": "chrome/es-ES/locale/es-ES/messenger/",
+ "messenger-mapi": "chrome/es-ES/locale/es-ES/messenger-mapi/",
+ "messenger-newsblog": "chrome/es-ES/locale/es-ES/messenger-newsblog/",
+ "messenger-region": "chrome/es-ES/locale/es-ES/messenger-region/",
+ "messenger-smime": "chrome/es-ES/locale/es-ES/messenger-smime/",
+ "mozapps": "chrome/es-ES/locale/es-ES/mozapps/",
+ "mozldap": "chrome/es-ES/locale/es-ES/mozldap/",
+ "necko": "chrome/es-ES/locale/es-ES/necko/",
+ "passwordmgr": "chrome/es-ES/locale/es-ES/passwordmgr/",
+ "pdf.js": "chrome/es-ES/locale/pdfviewer/",
+ "pipnss": "chrome/es-ES/locale/es-ES/pipnss/",
+ "pippki": "chrome/es-ES/locale/es-ES/pippki/",
+ "places": "chrome/es-ES/locale/es-ES/places/"
+ }
+ }
+ },
+ "sources": {
+ "browser": {
+ "base_path": "browser/"
+ }
+ },
+ "author": "mozilla.org (contributors: Proyecto NAVE (http://www.proyectonave.es/))"
+}