summaryrefslogtreecommitdiffstats
path: root/l10n-es-ES/calendar/chrome
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /l10n-es-ES/calendar/chrome
parentInitial commit. (diff)
downloadfirefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz
firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'l10n-es-ES/calendar/chrome')
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/calendar-alarms.properties22
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/calendar-event-dialog-attendees.properties14
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/calendar-event-dialog.dtd355
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/calendar-event-dialog.properties126
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/calendar-extract.properties103
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/calendar-invitations-dialog.dtd10
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/calendar-invitations-dialog.properties10
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/calendar-occurrence-prompt.dtd7
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/calendar-occurrence-prompt.properties46
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd13
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/calendar.dtd320
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/calendar.properties263
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/calendarCreation.dtd36
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/calendarCreation.properties6
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/categories.properties5
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/dateFormat.properties97
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd16
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/global.dtd47
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/menuOverlay.dtd33
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/migration.dtd9
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/migration.properties10
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/provider-uninstall.dtd12
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/timezones.properties448
-rw-r--r--l10n-es-ES/calendar/chrome/lightning/lightning-toolbar.dtd42
-rw-r--r--l10n-es-ES/calendar/chrome/lightning/lightning.dtd81
-rw-r--r--l10n-es-ES/calendar/chrome/lightning/lightning.properties95
26 files changed, 2226 insertions, 0 deletions
diff --git a/l10n-es-ES/calendar/chrome/calendar/calendar-alarms.properties b/l10n-es-ES/calendar/chrome/calendar/calendar-alarms.properties
new file mode 100644
index 0000000000..67cf8c4b82
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/calendar-event-dialog-attendees.properties b/l10n-es-ES/calendar/chrome/calendar/calendar-event-dialog-attendees.properties
new file mode 100644
index 0000000000..f1603c3f17
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/calendar-event-dialog.dtd b/l10n-es-ES/calendar/chrome/calendar/calendar-event-dialog.dtd
new file mode 100644
index 0000000000..e16cc75266
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/calendar-event-dialog.properties b/l10n-es-ES/calendar/chrome/calendar/calendar-event-dialog.properties
new file mode 100644
index 0000000000..4fab2cd3ba
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/calendar-extract.properties b/l10n-es-ES/calendar/chrome/calendar/calendar-extract.properties
new file mode 100644
index 0000000000..6a649c218b
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/calendar-invitations-dialog.dtd b/l10n-es-ES/calendar/chrome/calendar/calendar-invitations-dialog.dtd
new file mode 100644
index 0000000000..38091eade6
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/calendar-invitations-dialog.properties b/l10n-es-ES/calendar/chrome/calendar/calendar-invitations-dialog.properties
new file mode 100644
index 0000000000..dcb43e465b
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/calendar-occurrence-prompt.dtd b/l10n-es-ES/calendar/chrome/calendar/calendar-occurrence-prompt.dtd
new file mode 100644
index 0000000000..68749fafb7
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/calendar-occurrence-prompt.properties b/l10n-es-ES/calendar/chrome/calendar/calendar-occurrence-prompt.properties
new file mode 100644
index 0000000000..ed4cbb6e52
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd b/l10n-es-ES/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd
new file mode 100644
index 0000000000..7705b9f009
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd
@@ -0,0 +1,13 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+
+<!ENTITY calendar.subscriptions.dialog.title "Suscribirse a calendarios">
+<!ENTITY calendar.subscriptions.dialog.search.label.value "Mostrar calendarios que contengan:">
+<!ENTITY calendar.subscriptions.dialog.search.button.label "Buscar">
+<!ENTITY calendar.subscriptions.dialog.select.label.value "Seleccionar calendarios para suscribirse:">
+<!ENTITY calendar.subscriptions.dialog.subscribe.button.label "Suscribirse">
+<!ENTITY calendar.subscriptions.dialog.unsubscribe.button.label "Cancelar suscripción">
+<!ENTITY calendar.subscriptions.dialog.statusmessage.busy.label "Buscar…">
+<!ENTITY calendar.subscriptions.dialog.statusmessage.nomatches.label "No se han encontrado coincidencias.">
diff --git a/l10n-es-ES/calendar/chrome/calendar/calendar.dtd b/l10n-es-ES/calendar/chrome/calendar/calendar.dtd
new file mode 100644
index 0000000000..822221edf0
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/calendar.properties b/l10n-es-ES/calendar/chrome/calendar/calendar.properties
new file mode 100644
index 0000000000..bba7718e94
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/calendar/calendar.properties
@@ -0,0 +1,263 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+PrintPreviewWindowTitle = Vista preliminar de %1$S
+Untitled = Sin título
+newEvent = Nuevo evento
+newEventDialog = Nuevo evento
+editEventDialog = Editar evento
+newTaskDialog = Nueva tarea
+editTaskDialog = Editar tarea
+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?
+warningEndBeforeStart = La fecha final que ha introducido tiene lugar antes de la de inicio
+warningUntilDateBeforeStart = La fecha final sucede antes de la de inicio
+homeCalendarName = Casa
+untitledCalendarName = Calendario sin título
+statusTentative = Provisional
+statusConfirmed = Confirmado
+eventStatusCancelled = Cancelado
+todoStatusCancelled = Cancelado
+statusNeedsAction = Necesita intervención
+statusInProcess = En proceso
+statusCompleted = Completado
+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?
+pasteEventAlso = El contenido que ha pegado incluye un evento
+pasteEventsAlso = El contenido que ha pegado incluye eventos
+pasteTaskAlso = El contenido que ha pegado incluye una tarea asignada
+pasteTasksAlso = El contenido que ha pegado incluye tareas asignadas
+pasteItemsAlso = El contenido que ha pegado incluye eventos y tareas asignadas
+pasteEventOnly = Está pegando un evento
+pasteEventsOnly = Está pegando eventos
+pasteTaskOnly = Está pegando una tarea asignada
+pasteTasksOnly = Está pegando tareas asignadas
+pasteItemsOnly = Está pegando eventos y tareas asignadas
+pasteNotifyAbout = %1$S - ¿desea enviar una actualización a todos los involucrados?
+pasteAndNotifyLabel = Pegar y enviar ahora
+pasteDontNotifyLabel = Pegar sin enviar
+importItemsFailed = No se pudieron importar %1$S elementos. El último error ha sido: %2$S
+noItemsInCalendarFile = Fallo al importar desde %1$S. No hay elementos importables en este archivo.
+noItemsInCalendarFile2 = No se puede importar desde %1$S. No hay elementos importables en este archivo.
+eventDescription = Descripción:
+unableToRead = No se puede leer del archivo:
+unableToWrite = No se puede escribir en el archivo:
+defaultFileName = MozillaCalEvents
+HTMLTitle = Calendario de Mozilla
+timezoneError = Se ha encontrado una zona horaria desconocida e indefinida mientras se leía %1$S.
+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.
+unknownTimezonesError = Se ha encontrado un error al preparar el calendario situado en %1$S para su uso. El calendario podría hacer referencia a zonas horarias desconocidas. Instale el último calendar-timezones.xpi.
+missingCalendarTimezonesError = ¡No se han encontrado zonas horarias! Instale calendar-timezones.xpi.
+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'.
+removeCalendarTitle = Eliminar calendario
+removeCalendarButtonDelete = Eliminar calendario
+removeCalendarButtonUnsubscribe = Cancelar suscripción
+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.
+removeCalendarMessageDelete = ¿Desea eliminar permanentemente el calendario "%1$S"?
+removeCalendarMessageUnsubscribe = ¿Desea cancelar la suscripción al calendario "%1$S"?
+WeekTitle = Semana %1$S
+None = Ninguna
+tooNewSchemaErrorBoxTitle = Los datos de su calendario no son compatibles con esta versión de %1$S
+tooNewSchemaErrorBoxTextLightning = Los datos del calendario en su perfil han sido actualizados por una versión más moderna de %1$S, y continuar probablemente cause que se pierda o corrompa información. %1$S se desactivará a continuación y se reiniciará %2$S.
+tooNewSchemaButtonRestart = Reiniciar %1$S
+tooNewSchemaButtonQuit = Salir de %1$S
+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.
+eventUntitled = Sin título
+tooltipTitle = Título:
+tooltipLocation = Lugar:
+tooltipDate = Fecha:
+tooltipCalName = Nombre del calendario:
+tooltipStatus = Estado:
+tooltipOrganizer = Organizador:
+tooltipStart = Inicio:
+tooltipDue = Vencimiento:
+tooltipPriority = Prioridad:
+tooltipPercent = % completo:
+tooltipCompleted = Completado:
+dialog.tooltip.attendee.combined = %1$S %2$S
+dialog.tooltip.attendeeRole2.CHAIR = %1$S dirige el evento.
+dialog.tooltip.attendeeRole2.NON-PARTICIPANT = %1$S no es un participante.
+dialog.tooltip.attendeeRole2.OPT-PARTICIPANT = %1$S es un participante opcional.
+dialog.tooltip.attendeeRole2.REQ-PARTICIPANT = %1$S es un participante necesario.
+dialog.tooltip.attendeePartStat2.ACCEPTED = %1$S ha confirmado su asistencia.
+dialog.tooltip.attendeePartStat2.DECLINED = %1$S ha declinado su asistencia.
+dialog.tooltip.attendeePartStat2.DELEGATED = %1$S ha delegado su asistencia.
+dialog.tooltip.attendeePartStat2.NEEDS-ACTION = %1$S aún necesita responder.
+dialog.tooltip.attendeePartStat2.TENTATIVE = %1$S ha confirmado provisionalmente su asistencia.
+dialog.tooltip.attendeeUserType2.INDIVIDUAL = %1$S
+dialog.tooltip.attendeeUserType2.GROUP = %1$S (grupo)
+dialog.tooltip.attendeeUserType2.RESOURCE = %1$S (recurso)
+dialog.tooltip.attendeeUserType2.ROOM = %1$S (sala)
+dialog.tooltip.attendeeUserType2.UNKNOWN = %1$S
+New = Nuevo
+Open = Abrir
+filepickerTitleImport = Importar
+filepickerTitleExport = Exportar
+filterIcs = iCalendar (%1$S)
+filterXml = Documento XML (%1$S)
+filterHtml = Página web (%1$S)
+filterOutlookCsv = Valores separados por comas de Outlook (%1$S)
+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
+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'.
+disabledMode = Ha habido un error al leer datos del calendario: %1$S. Ha sido desactivado hasta que sea seguro usarlo.
+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.
+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
+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
+WarningOSTZNoMatch = Advertencia: la zona horaria del sistema operativo "%1$S"\nya no coincide con la zona horaria interna ZoneInfo "%2$S".
+SkippingOSTimezone = Se ignora la zona horaria '%1$S' del sistema operativo.
+SkippingLocaleTimezone = Se ignora la zona horaria '%1$S' del idioma.
+warningUsingFloatingTZNoMatch = Advertencia: se usa una zona horaria "flotante".\nNinguna zona horaria ZoneInfo coincide con los datos de la zona horaria del sistema operativo.
+WarningUsingGuessedTZ = Advertencia: se infiere la zona horaria\n %1$S (UTC%2$S).\n%3$S\n%4$S
+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.
+TZFromOS = Esta zona horaria ZoneInfo se ha elegido basándose en el identificador de \nzona horaria del sistema operativo "%1$S".
+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.
+formatListName = Lista
+weekPrinterName = Planificador semanal
+monthPrinterName = Cuadrícula mensual
+tasksWithNoDueDate = Tareas sin fecha límite
+caldavName = CalDAV
+compositeName = Compuesto
+icsName = iCalendar (ICS)
+memoryName = Temporal (memoria)
+storageName = Local (SQLite)
+htmlPrefixTitle = Título
+htmlPrefixWhen = Cuándo
+htmlPrefixLocation = Ubicación
+htmlPrefixDescription = Descripción
+htmlTaskCompleted = %1$S (completada)
+addCategory = Añadir categoría
+multipleCategories = Múltiples categorías
+today = Hoy
+tomorrow = Mañana
+yesterday = Ayer
+eventsonly = Eventos
+eventsandtasks = Eventos y tareas
+tasksonly = Tareas
+shortcalendarweek = SC
+go = Ir
+next1 = siguiente
+next2 = siguiente
+last1 = último
+last2 = último
+alarmWindowTitle.label = #1 Recordatorio;#1 Recordatorios
+alarmStarts = Comienza: %1$S
+alarmTodayAt = Hoy a la(s) %1$S
+alarmTomorrowAt = Mañana a la(s) %1$S
+alarmYesterdayAt = Ayer a la(s) %1$S
+alarmDefaultDescription = Descripción predeterminada de Mozilla
+alarmDefaultSummary = Resumen predeterminado de Mozilla
+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
+taskDetailsStatusInProgress = %1$S%% completada
+taskDetailsStatusCompleted = Completada
+taskDetailsStatusCompletedOn = Completada el %1$S
+taskDetailsStatusCancelled = Cancelada
+gettingCalendarInfoCommon = Comprobando calendarios…
+gettingCalendarInfoDetail = Comprobando calendario %1$S de %2$S
+errorCode = Código de error: %1$S
+errorDescription = Descripción: %1$S
+errorWriting2 = ¡Ha sucedido un error al escribir en el calendario %1$S! Debajo encontrará más información.
+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.
+tooltipCalendarDisabled = El calendario %1$S está momentáneamente no disponible
+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:
+datetimeWithTimezone = %1$S, %2$S
+singleLongCalendarWeek = Semana del calendario: %1$S
+severalLongCalendarWeeks = Semanas del calendario %1$S-%2$S
+singleShortCalendarWeek = SC: %1$S
+severalShortCalendarWeeks = Sem: %1$S-%2$S
+abbreviationOfWeek = %1$S
+dueInDays = #1 día;#1 días
+dueInHours = #1 hora;#1 horas
+dueInLessThanOneHour = < 1 hora
+monthInYear = %1$S %2$S
+monthInYear.monthFormat = nominative
+formatDateLong = %1$S %2$S %3$S %4$S
+dayHeaderLabel = %1$S %2$S
+daysIntervalInMonth = %1$S %2$S – %3$S, %4$S
+daysIntervalInMonth.monthFormat = nominative
+daysIntervalBetweenMonths = %1$S %2$S – %3$S %4$S, %5$S
+daysIntervalBetweenMonths.monthFormat = nominative
+daysIntervalBetweenYears = %1$S %2$S, %3$S – %4$S %5$S, %6$S
+daysIntervalBetweenYears.monthFormat = nominative
+datetimeIntervalOnSameDateTime = %1$S %2$S
+datetimeIntervalOnSameDay = %1$S %2$S – %3$S
+datetimeIntervalOnSeveralDays = %1$S %2$S – %3$S %4$S
+datetimeIntervalTaskWithoutDate = sin fecha de inicio ni final
+datetimeIntervalTaskWithoutDueDate = con inicio el %1$S a las %2$S
+datetimeIntervalTaskWithoutStartDate = finalización prevista el %1$S a las %2$S
+dragLabelTasksWithOnlyEntryDate = Hora de inicio
+dragLabelTasksWithOnlyDueDate = Vence en
+deleteTaskLabel = Eliminar tarea
+deleteTaskMessage = ¿Realmente quiere eliminar esta tarea?
+deleteTaskAccesskey = l
+deleteItemLabel = Eliminar
+deleteItemMessage = ¿Realmente quiere eliminar este elemento?
+deleteItemAccesskey = l
+deleteEventLabel = Eliminar evento
+deleteEventMessage = ¿Realmente quiere eliminar este evento?
+deleteEventAccesskey = l
+calendarPropertiesEveryMinute = Cada minuto;Cada #1 minutos
+extractUsing = Usando %1$S
+extractUsingRegion = Usando %1$S (%2$S)
+unitMinutes = #1 minuto;#1 minutos
+unitHours = #1 hora;#1 horas
+unitDays = #1 día;#1 días
+unitWeeks = #1 semana;#1 semanas
+showCalendar = Mostrar %1$S
+hideCalendar = Ocultar %1$S
+showOnlyCalendar = Mostrar sólo %1$S
+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
+dialog.attendee.append.delegatedFrom = (delegado por %1$S)
+dialog.attendee.append.delegatedTo = (delegado a %1$S)
+minimonthNoSelectedDate = No hay fecha seleccionada
diff --git a/l10n-es-ES/calendar/chrome/calendar/calendarCreation.dtd b/l10n-es-ES/calendar/chrome/calendar/calendarCreation.dtd
new file mode 100644
index 0000000000..bef2cbb43b
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/calendarCreation.properties b/l10n-es-ES/calendar/chrome/calendar/calendarCreation.properties
new file mode 100644
index 0000000000..78d4e44cb6
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/categories.properties b/l10n-es-ES/calendar/chrome/calendar/categories.properties
new file mode 100644
index 0000000000..79e6274562
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/dateFormat.properties b/l10n-es-ES/calendar/chrome/calendar/dateFormat.properties
new file mode 100644
index 0000000000..b4d09b7906
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd b/l10n-es-ES/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd
new file mode 100644
index 0000000000..884e2e7d0c
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/global.dtd b/l10n-es-ES/calendar/chrome/calendar/global.dtd
new file mode 100644
index 0000000000..4129e31c9b
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/menuOverlay.dtd b/l10n-es-ES/calendar/chrome/calendar/menuOverlay.dtd
new file mode 100644
index 0000000000..32a6b0766b
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/migration.dtd b/l10n-es-ES/calendar/chrome/calendar/migration.dtd
new file mode 100644
index 0000000000..c5760328ca
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/migration.properties b/l10n-es-ES/calendar/chrome/calendar/migration.properties
new file mode 100644
index 0000000000..81a7d58e74
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/provider-uninstall.dtd b/l10n-es-ES/calendar/chrome/calendar/provider-uninstall.dtd
new file mode 100644
index 0000000000..4356a77399
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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/l10n-es-ES/calendar/chrome/calendar/timezones.properties b/l10n-es-ES/calendar/chrome/calendar/timezones.properties
new file mode 100644
index 0000000000..176344bd56
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/calendar/timezones.properties
@@ -0,0 +1,448 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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.calendar-timezones@mozilla.org.name = Definiciones de zonas horarias para Mozilla Calendar
+extensions.calendar-timezones@mozilla.org.description = Definiciones de zonas horarias requeridas por Lightning
+extensions.calendar-timezones@mozilla.org.creator = Mozilla Calendar Project
+pref.timezone.floating = Hora local
+pref.timezone.UTC = UTC/GMT
+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
+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é
+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
+pref.timezone.America.Argentina.Salta = América/Argentina/Salta
+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
+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
+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
+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
+pref.timezone.Antarctica.Troll = Antártida/Troll
+pref.timezone.Asia.Chita = Asia/Chita
+pref.timezone.Asia.Srednekolymsk = Asia/Srednekolymsk
+pref.timezone.Pacific.Bougainville = Pacífico/Bougainville
+pref.timezone.America.Fort_Nelson = América/Fort Nelson
+pref.timezone.Europe.Ulyanovsk = Europa/Uliánovsk
+pref.timezone.Europe.Astrakhan = Europa/Astracán
+pref.timezone.Asia.Barnaul = Asia/Barnaul
+pref.timezone.Asia.Yangon = Asia/Yangon
+pref.timezone.Asia.Tomsk = Asia/Tomsk
+pref.timezone.Asia.Famagusta = Asia/Famagusta
+pref.timezone.Europe.Kirov = Europa/Kirov
+pref.timezone.Europe.Saratov = Europa/Saratov
+pref.timezone.Asia.Atyrau = Asia/Atyrau
+pref.timezone.America.Punta_Arenas = América/Punta Arenas
+pref.timezone.Asia.Qostanay = Asia/Kostanái
+pref.timezone.America.Nuuk = América/Nuuk
diff --git a/l10n-es-ES/calendar/chrome/lightning/lightning-toolbar.dtd b/l10n-es-ES/calendar/chrome/lightning/lightning-toolbar.dtd
new file mode 100644
index 0000000000..78ee5716ba
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/lightning/lightning-toolbar.dtd
@@ -0,0 +1,42 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY lightning.toolbar.calendar.name "Barra de herramientas del calendario">
+<!ENTITY lightning.toolbar.calendar.name.accesskey "B">
+<!ENTITY lightning.toolbar.task.name "Barra de herramientas de tareas">
+<!ENTITY lightning.toolbar.task.name.accesskey "a">
+<!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">
+<!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">
+<!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">
+<!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">
+<!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/l10n-es-ES/calendar/chrome/lightning/lightning.dtd b/l10n-es-ES/calendar/chrome/lightning/lightning.dtd
new file mode 100644
index 0000000000..3ad937b237
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/lightning/lightning.dtd
@@ -0,0 +1,81 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY lightning.preferencesLabel "Calendario">
+<!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">
+<!ENTITY lightning.menupopup.open.label "Abrir">
+<!ENTITY lightning.menupopup.open.accesskey "A">
+<!ENTITY lightning.menupopup.open.message.label "Mensaje guardado…">
+<!ENTITY lightning.menupopup.open.message.accesskey "M">
+<!ENTITY lightning.menupopup.open.calendar.label "Archivo de calendario…">
+<!ENTITY lightning.menupopup.open.calendar.accesskey "C">
+<!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">
+<!ENTITY lightning.menu.eventtask.label "Eventos y tareas">
+<!ENTITY lightning.menu.eventtask.accesskey "n">
+<!ENTITY lightning.calendarproperties.email.label "Correo-e:">
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.label "Preferir planificación de correo en el lado del cliente">
+<!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.">
+<!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">
+<!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">
+<!ENTITY lightning.acctCentral.newCalendar.label "Crear un nuevo calendario">
+<!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/l10n-es-ES/calendar/chrome/lightning/lightning.properties b/l10n-es-ES/calendar/chrome/lightning/lightning.properties
new file mode 100644
index 0000000000..deba26c445
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/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.