summaryrefslogtreecommitdiffstats
path: root/thunderbird-l10n/es-ES/chrome
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/chrome
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/chrome')
-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
305 files changed, 21573 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