summaryrefslogtreecommitdiffstats
path: root/l10n-es-ES/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'l10n-es-ES/calendar')
-rw-r--r--l10n-es-ES/calendar/README.txt2
-rw-r--r--l10n-es-ES/calendar/calendar/calendar-context-menus.ftl7
-rw-r--r--l10n-es-ES/calendar/calendar/calendar-delete-prompt.ftl35
-rw-r--r--l10n-es-ES/calendar/calendar/calendar-editable-item.ftl30
-rw-r--r--l10n-es-ES/calendar/calendar/calendar-event-dialog-reminder.ftl10
-rw-r--r--l10n-es-ES/calendar/calendar/calendar-ics-file-dialog.ftl45
-rw-r--r--l10n-es-ES/calendar/calendar/calendar-invitation-panel.ftl96
-rw-r--r--l10n-es-ES/calendar/calendar/calendar-invitations-dialog.ftl10
-rw-r--r--l10n-es-ES/calendar/calendar/calendar-itip-identity-dialog.ftl8
-rw-r--r--l10n-es-ES/calendar/calendar/calendar-print.ftl17
-rw-r--r--l10n-es-ES/calendar/calendar/calendar-summary-dialog.ftl15
-rw-r--r--l10n-es-ES/calendar/calendar/calendar-uri-redirect-dialog.ftl14
-rw-r--r--l10n-es-ES/calendar/calendar/calendar-widgets.ftl9
-rw-r--r--l10n-es-ES/calendar/calendar/category-dialog.ftl8
-rw-r--r--l10n-es-ES/calendar/calendar/preferences.ftl192
-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.dtd320
-rw-r--r--l10n-es-ES/calendar/chrome/calendar/calendar.properties696
-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.properties494
-rw-r--r--l10n-es-ES/calendar/chrome/lightning/lightning-toolbar.dtd51
-rw-r--r--l10n-es-ES/calendar/chrome/lightning/lightning.dtd114
-rw-r--r--l10n-es-ES/calendar/chrome/lightning/lightning.properties95
-rw-r--r--l10n-es-ES/calendar/lightning-l10n.js21
41 files changed, 3253 insertions, 0 deletions
diff --git a/l10n-es-ES/calendar/README.txt b/l10n-es-ES/calendar/README.txt
new file mode 100644
index 0000000000..fbb39a2dc0
--- /dev/null
+++ b/l10n-es-ES/calendar/README.txt
@@ -0,0 +1,2 @@
+Para información sobre cómo instalar, ejecutar y configurar Lightning,
+incluyendo una lista de problemas conocidos e información sobre resolución de problemas, visite: http://www.mozilla.org/projects/calendar/ \ No newline at end of file
diff --git a/l10n-es-ES/calendar/calendar/calendar-context-menus.ftl b/l10n-es-ES/calendar/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000..990839b536
--- /dev/null
+++ b/l10n-es-ES/calendar/calendar/calendar-context-menus.ftl
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-item-context-menu-modify-menuitem =
+ .label = Editar
+ .accesskey = E
diff --git a/l10n-es-ES/calendar/calendar/calendar-delete-prompt.ftl b/l10n-es-ES/calendar/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000..f7684e0d8d
--- /dev/null
+++ b/l10n-es-ES/calendar/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,35 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-delete-event-prompt-title =
+ { $count ->
+ [one] Eliminar evento
+ *[other] Eliminar eventos
+ }
+calendar-delete-event-prompt-message =
+ { $count ->
+ [one] ¿Realmente quiere eliminar este evento?
+ *[other] ¿Realmente quiere eliminar { $count } eventos?
+ }
+calendar-delete-task-prompt-title =
+ { $count ->
+ [one] Eliminar tarea
+ *[other] Eliminar tareas
+ }
+calendar-delete-task-prompt-message =
+ { $count ->
+ [one] ¿Realmente quiere eliminar esta tarea?
+ *[other] ¿Realmente quiere eliminar { $count } tareas?
+ }
+calendar-delete-item-prompt-title =
+ { $count ->
+ [one] Eliminar elemento
+ *[other] Eliminar elementos
+ }
+calendar-delete-item-prompt-message =
+ { $count ->
+ [one] ¿Realmente quiere eliminar este elemento?
+ *[other] ¿Realmente quiere eliminar { $count } elementos?
+ }
+calendar-delete-prompt-disable-message = No preguntarme de nuevo.
diff --git a/l10n-es-ES/calendar/calendar/calendar-editable-item.ftl b/l10n-es-ES/calendar/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000..e3985f4fc9
--- /dev/null
+++ b/l10n-es-ES/calendar/calendar/calendar-editable-item.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-editable-item-privacy-icon-private =
+ .alt = Privacidad: Evento privado
+calendar-editable-item-privacy-icon-confidential =
+ .alt = Privacidad: Mostrar solo fecha y hora
+calendar-editable-item-recurrence =
+ .alt = Periódico
+calendar-editable-item-recurrence-exception =
+ .alt = Excepción a la periodicidad
+calendar-editable-item-todo-icon-task =
+ .alt = Tarea
+calendar-editable-item-todo-icon-completed-task =
+ .alt = Tareas completada
+calendar-editable-item-multiday-event-icon-start =
+ .alt = Comienza el evento de varios días
+calendar-editable-item-multiday-event-icon-continue =
+ .alt = Continúa el evento de varios días
+calendar-editable-item-multiday-event-icon-end =
+ .alt = Termina el evento de varios días
+calendar-editable-item-reminder-icon-alarm =
+ .alt = Se ha programado una alerta de recordatorio
+calendar-editable-item-reminder-icon-suppressed-alarm =
+ .alt = Hay una alerta de recordatorio programada, pero actualmente está suprimida.
+calendar-editable-item-reminder-icon-email =
+ .alt = Se ha programado un correo electrónico de recordatorio
+calendar-editable-item-reminder-icon-audio =
+ .alt = Se ha programado una alerta con audio de recordatorio
diff --git a/l10n-es-ES/calendar/calendar/calendar-event-dialog-reminder.ftl b/l10n-es-ES/calendar/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000..6fab8a47a5
--- /dev/null
+++ b/l10n-es-ES/calendar/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-event-reminder-icon-display =
+ .alt = Mostrar una alerta
+calendar-event-reminder-icon-email =
+ .alt = Enviar un correo electrónico
+calendar-event-reminder-icon-audio =
+ .alt = Reproducir una alerta con audio
diff --git a/l10n-es-ES/calendar/calendar/calendar-ics-file-dialog.ftl b/l10n-es-ES/calendar/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000..0ccdeadcc2
--- /dev/null
+++ b/l10n-es-ES/calendar/calendar/calendar-ics-file-dialog.ftl
@@ -0,0 +1,45 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-ics-file-window-2 =
+ .title = Importar eventos y tareas del calendario
+calendar-ics-file-dialog-import-event-button-label = Importar evento
+calendar-ics-file-dialog-import-task-button-label = Importar tarea
+calendar-ics-file-dialog-2 =
+ .buttonlabelaccept = Importar todo
+calendar-ics-file-accept-button-ok-label = Aceptar
+calendar-ics-file-cancel-button-close-label = Cerrar
+calendar-ics-file-dialog-message-2 = Importar desde archivo:
+calendar-ics-file-dialog-calendar-menu-label = Importar en el calendario:
+calendar-ics-file-dialog-items-loading-message =
+ .value = Cargando elementos…
+calendar-ics-file-dialog-search-input =
+ .placeholder = Filtrar elementos…
+calendar-ics-file-dialog-sort-start-ascending =
+ .label = Ordenar por fecha inicial (primera a última)
+calendar-ics-file-dialog-sort-start-descending =
+ .label = Ordenar por fecha inicial (última a primera)
+# "A > Z" is used as a concise way to say "alphabetical order".
+# You may replace it with something appropriate to your language.
+calendar-ics-file-dialog-sort-title-ascending =
+ .label = Ordenar por título (A > Z)
+# "Z > A" is used as a concise way to say "reverse alphabetical order".
+# You may replace it with something appropriate to your language.
+calendar-ics-file-dialog-sort-title-descending =
+ .label = Ordenar por título (Z > A)
+calendar-ics-file-dialog-progress-message = Importando…
+calendar-ics-file-import-success = ¡Importado correctamente!
+calendar-ics-file-import-error = Ha ocurrido un error y ha fallado la importación.
+calendar-ics-file-import-complete = Importación completa.
+calendar-ics-file-import-duplicates =
+ { $duplicatesCount ->
+ [one] Se ha ignorado un elemento porque ya existe en el calendario de destino.
+ *[other] Se han ignorado { $duplicatesCount } elementos porque ya existen en el calendario de destino.
+ }
+calendar-ics-file-import-errors =
+ { $errorsCount ->
+ [one] Ha fallado la importación de un elemento. Revise la consola de errores para obtener más detalles.
+ *[other] Ha fallado la importación de { $errorsCount } elementos. Revise la consola de errores para obtener más detalles.
+ }
+calendar-ics-file-dialog-no-calendars = No hay calendarios que puedan importar eventos o tareas.
diff --git a/l10n-es-ES/calendar/calendar/calendar-invitation-panel.ftl b/l10n-es-ES/calendar/calendar/calendar-invitation-panel.ftl
new file mode 100644
index 0000000000..76f526310e
--- /dev/null
+++ b/l10n-es-ES/calendar/calendar/calendar-invitation-panel.ftl
@@ -0,0 +1,96 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $organizer (String) - The participant that created the original invitation.
+calendar-invitation-panel-intro = { $organizer } te ha invitado a:
+# Variables:
+# $organizer (String) - The participant that updated the original invitation.
+calendar-invitation-panel-intro-update = { $organizer } ha actualizado:
+# Variables:
+# $organizer (String) - The participant that cancelled the invitation.
+calendar-invitation-panel-intro-cancel = { $organizer } ha cancelado:
+# Variables:
+# $summary (String) - A short summary or title of the event.
+calendar-invitation-panel-title = { $summary }
+calendar-invitation-panel-action-button = Guardar
+calendar-invitation-panel-save-button = Guardar
+calendar-invitation-panel-view-button = Ver
+calendar-invitation-panel-update-button = Actualizar
+calendar-invitation-panel-delete-button = Eliminar
+calendar-invitation-panel-accept-button = Sí
+calendar-invitation-panel-decline-button = No
+calendar-invitation-panel-tentative-button = Tal vez
+calendar-invitation-panel-reply-status = * Aún no has decidido ni respondido
+calendar-invitation-panel-prop-title-when = Cuándo:
+calendar-invitation-panel-prop-title-location = Ubicación:
+# Variables:
+# $dayOfWeek (String) - The day of the week for a given date.
+# $date (String) - The date example: Tuesday, February 24, 2022.
+calendar-invitation-datetime-date = { $dayOfWeek }, { $date }
+# Variables:
+# $time (String) - The time part of a datetime using the "short" timeStyle.
+# $timezone (String) - The timezone info for the datetime.
+calendar-invitation-datetime-time = { $time } ({ $timezone })
+# Example: Friday, September 16, 2022
+# Variables:
+# $startDate (String) - The date (without time) the event starts on.
+calendar-invitation-interval-all-day = { $startDate }
+# Example: September 16, 2022 – September 16, 2023
+# $startMonth (String) - The month the interval starts.
+# $startDay (String) - The day of the month the interval starts.
+# $startYear (String) - The year the interval starts.
+# $endMonth (String) - The month the interval ends.
+# $endDay (String) - The day of the month the interval ends.
+# $endYear (String) - The year the interval ends.
+calendar-invitation-interval-all-day-between-years = { $startDay } de { $startMonth } de { $startYear } – { $endDay } de { $endMonth } de { $endYear }
+# Example: September 16 – 20, 2022
+# $month (String) - The month the interval is in.
+# $startDay (String) - The day of the month the interval starts.
+# $endDay (String) - The day of the month the interval ends.
+# $year (String) - The year the interval is in.
+calendar-invitation-interval-all-day-in-month = { $startDay } – { $endDay } de { $month } de { $year }
+# Example: September 16 – October 20, 2022
+# $startMonth (String) - The month the interval starts.
+# $startDay (String) - The day of the month the interval starts.
+# $endDay (String) - The day of the month the interval ends.
+# $year (String) - The year the interval is in.
+calendar-invitation-interval-all-day-between-months = { $startDay } de { $startMonth } – { $endDay } de { $endMonth }, { $year }
+# Example: Friday, September 16, 2022 15:00 America/Port of Spain
+# $startDate (String) - The date the interval starts.
+# $startTime (String) - The time the interval starts.
+# $timezone (String) - The timezone the interval is in.
+calendar-invitation-interval-same-date-time = { $startDate } <b>{ $startTime }</b> { $timezone }
+# Example: Friday, September 16, 2022 14:00 – 16:00 America/Port of Spain
+# $startDate (String) - The date the interval starts.
+# $startTime (String) - The time the interval starts.
+# $endTime (String) - The time the interval ends.
+# $timezone (String) - The timezone the interval is in.
+calendar-invitation-interval-same-day = { $startDate } <b>{ $startTime }</b> – <b>{ $endTime }</b> { $timezone }
+# Example: Friday, September 16, 2022 14:00 – Tuesday, September 20, 2022 16:00 America/Port of Spain
+# $startDate (String) - The date the interval starts.
+# $startTime (String) - The time the interval starts.
+# $startDate (String) - The date the interval ends.
+# $endTime (String) - The time the interval ends.
+# $timezone (String) - The timezone the interval is in.
+calendar-invitation-interval-several-days = { $startDate } <b>{ $startTime }</b> – { $endDate } <b>{ $endTime }</b> { $timezone }
+calendar-invitation-panel-prop-title-recurrence = Repeticiones:
+calendar-invitation-panel-prop-title-attendees = Asistentes:
+calendar-invitation-panel-prop-title-description = Descripción:
+# Variables:
+# $count (Number) - The number of attendees with the "ACCEPTED" participation status.
+calendar-invitation-panel-partstat-accepted = { $count } sí
+# Variables:
+# $count (Number) - The number of attendees with the "DECLINED" participation status.
+calendar-invitation-panel-partstat-declined = { $count } no
+# Variables:
+# $count (Number) - The number of attendees with the "TENTATIVE" participation status.
+calendar-invitation-panel-partstat-tentative = { $count } tal vez
+# Variables:
+# $count (Number) - The number of attendees with the "NEEDS-ACTION" participation status.
+calendar-invitation-panel-partstat-needs-action = { $count } pendientes
+# Variables:
+# $count (Number) - The total number of attendees.
+calendar-invitation-panel-partstat-total = { $count } participantes
+calendar-invitation-panel-prop-title-attachments = Adjuntos:
diff --git a/l10n-es-ES/calendar/calendar/calendar-invitations-dialog.ftl b/l10n-es-ES/calendar/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000..7a0c2eef69
--- /dev/null
+++ b/l10n-es-ES/calendar/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-invitation-current-participation-status-icon-accepted =
+ .alt = Actualmente aceptado
+calendar-invitation-current-participation-status-icon-declined =
+ .alt = Actualmente declinado
+calendar-invitation-current-participation-status-icon-needs-action =
+ .alt = Actualmente indeciso
diff --git a/l10n-es-ES/calendar/calendar/calendar-itip-identity-dialog.ftl b/l10n-es-ES/calendar/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000..4a96bcee1e
--- /dev/null
+++ b/l10n-es-ES/calendar/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-itip-identity-dialog-title = ¿Colándose en una fiesta?
+calendar-itip-identity-warning = Aún no está en la lista de invitados.
+calendar-itip-identity-label = Responder como:
+calendar-itip-identity-label-none = Asociar este evento con:
diff --git a/l10n-es-ES/calendar/calendar/calendar-print.ftl b/l10n-es-ES/calendar/calendar/calendar-print.ftl
new file mode 100644
index 0000000000..125d6f4db2
--- /dev/null
+++ b/l10n-es-ES/calendar/calendar/calendar-print.ftl
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-print-layout-label = Diseño
+calendar-print-layout-list = Lista
+calendar-print-layout-month-grid = Cuadrícula mensual
+calendar-print-layout-week-planner = Planificador semanal
+calendar-print-filter-label = Qué imprimir
+calendar-print-filter-events = Eventos
+calendar-print-filter-tasks = Tareas
+calendar-print-filter-completedtasks = Tareas completadas
+calendar-print-filter-taskswithnoduedate = Tareas sin fecha límite
+calendar-print-range-from = Desde
+calendar-print-range-to = Hasta
+calendar-print-back-button = Anterior
+calendar-print-next-button = Siguiente
diff --git a/l10n-es-ES/calendar/calendar/calendar-summary-dialog.ftl b/l10n-es-ES/calendar/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000..927054393b
--- /dev/null
+++ b/l10n-es-ES/calendar/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-summary-dialog-edit-button =
+ .label = Editar
+ .accesskey = E
+calendar-summary-dialog-edit-menu-button =
+ .label = Editar
+edit-button-context-menu-this-occurrence =
+ .label = Editar solo esta repetición
+ .accesskey = t
+edit-button-context-menu-all-occurrences =
+ .label = Editar todas las repeticiones
+ .accesskey = a
diff --git a/l10n-es-ES/calendar/calendar/calendar-uri-redirect-dialog.ftl b/l10n-es-ES/calendar/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000..2512b7a2e5
--- /dev/null
+++ b/l10n-es-ES/calendar/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-uri-redirect-window =
+ .title = Redireccionar URI de calendario
+
+calendar-uri-redirect-description =
+ El servidor está redirigiendo la URI del calendario "{ $calendarName }".
+ ¿Aceptar la redirección y comenzar a usar la nueva URI para este calendario?
+
+calendar-uri-redirect-original-uri-label = URI actual:
+
+calendar-uri-redirect-target-uri-label = Redireccionar a la nueva URI:
diff --git a/l10n-es-ES/calendar/calendar/calendar-widgets.ftl b/l10n-es-ES/calendar/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000..894d91424c
--- /dev/null
+++ b/l10n-es-ES/calendar/calendar/calendar-widgets.ftl
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-deactivated-notification-events = Todos los calendarios están desactivados actualmente. Active un calendario existente o añada uno nuevo para crear y editar eventos.
+calendar-deactivated-notification-tasks = Todos los calendarios están desactivados actualmente. Active un calendario existente o añada uno nuevo para crear y editar tareas.
+calendar-notifications-label = Mostrar notificaciones para eventos futuros
+calendar-add-notification-button =
+ .label = Añadir notificación
diff --git a/l10n-es-ES/calendar/calendar/category-dialog.ftl b/l10n-es-ES/calendar/calendar/category-dialog.ftl
new file mode 100644
index 0000000000..8bc2004022
--- /dev/null
+++ b/l10n-es-ES/calendar/calendar/category-dialog.ftl
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+category-name-label = Nombre
+
+category-color-label =
+ .label = Usar color
diff --git a/l10n-es-ES/calendar/calendar/preferences.ftl b/l10n-es-ES/calendar/calendar/preferences.ftl
new file mode 100644
index 0000000000..4d8dd7e948
--- /dev/null
+++ b/l10n-es-ES/calendar/calendar/preferences.ftl
@@ -0,0 +1,192 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-title = Calendario
+calendar-title-reminder = Recordatorios
+calendar-title-notification = Notificaciones
+calendar-title-category = Categorías
+dateformat-label =
+ .value = Formato de texto de fecha:
+ .accesskey = F
+# $date (String) - the formatted example date
+dateformat-long =
+ .label = Largo: { $date }
+# $date (String) - the formatted example date
+dateformat-short =
+ .label = Corto: { $date }
+use-system-timezone-radio-button =
+ .label = Usar la zona horaria del sistema
+set-timezone-manually-radio-button =
+ .label = Establecer la zona horaria manualmente
+timezone-label =
+ .value = Zona horaria:
+weekstart-label =
+ .value = Comenzar la semana en:
+ .accesskey = r
+day-1-name =
+ .label = Domingo
+day-2-name =
+ .label = Lunes
+day-3-name =
+ .label = Martes
+day-4-name =
+ .label = Miercoles
+day-5-name =
+ .label = Jueves
+day-6-name =
+ .label = Viernes
+day-7-name =
+ .label = Sábado
+show-weeknumber-label =
+ .label = Mostrar el número de semana en las vistas y el minimés
+ .accesskey = n
+workdays-label =
+ .value = Días laborables:
+day-1-checkbox =
+ .label = Dom
+ .accesskey = D
+day-2-checkbox =
+ .label = Lun
+ .accesskey = L
+day-3-checkbox =
+ .label = Mar
+ .accesskey = M
+day-4-checkbox =
+ .label = Mié
+ .accesskey = X
+day-5-checkbox =
+ .label = Jue
+ .accesskey = J
+day-6-checkbox =
+ .label = Vie
+ .accesskey = V
+day-7-checkbox =
+ .label = Sáb
+ .accesskey = S
+dayweek-legend = Vistas diaria y semanal
+visible-hours-label =
+ .value = Mostrar:
+ .accesskey = o
+visible-hours-end-label =
+ .value = horas a la vez
+day-start-label =
+ .value = El día comienza a las:
+ .accesskey = c
+day-end-label =
+ .value = El día termina a las Day ends at:
+ .accesskey = t
+midnight-label =
+ .label = Medianoche
+noon-label =
+ .label = Mediodía
+location-checkbox =
+ .label = Mostrar ubicación
+ .accesskey = u
+multiweek-legend = Vista multisemana
+number-of-weeks-label =
+ .value = Número de semanas que mostrar (incluyendo anteriores):
+ .accesskey = e
+week-0-label =
+ .label = ninguna
+week-1-label =
+ .label = 1 semana
+week-2-label =
+ .label = 2 semanas
+week-3-label =
+ .label = 3 semanas
+week-4-label =
+ .label = 4 semanas
+week-5-label =
+ .label = 5 semanas
+week-6-label =
+ .label = 6 semanas
+previous-weeks-label =
+ .value = Semanas previas que mostrar:
+ .accesskey = p
+todaypane-legend = Panel para hoy
+agenda-days =
+ .value = La agenda muestra:
+ .accesskey = g
+event-task-legend = Eventos y tareas
+default-length-label =
+ .value = Duración predeterminada de eventos y tareas:
+ .accesskey = D
+task-start-label =
+ .value = Fecha de inicio:
+task-start-1-label =
+ .label = Ninguna
+task-start-2-label =
+ .label = Inicio del día
+task-start-3-label =
+ .label = Final del día
+task-start-4-label =
+ .label = Mañana
+task-start-5-label =
+ .label = Próxima semana
+task-start-6-label =
+ .label = Relativa a la fecha actual
+task-start-7-label =
+ .label = Relativa al inicio
+task-start-8-label =
+ .label = Relativa a la siguiente hora
+task-due-label =
+ .value = Fecha de finalización:
+edit-intab-label =
+ .label = Editar eventos y tareas en una pestaña en lugar de una ventana de diálogo.
+ .accesskey = E
+prompt-delete-label =
+ .label = Preguntar antes de eliminar eventos y tareas.
+ .accesskey = v
+accessibility-legend = Accessibilidad
+accessibility-colors-label =
+ .label = Optimizar colores para la accesibilidad
+ .accesskey = c
+reminder-legend = Cuando salta un recordatorio:
+reminder-play-checkbox =
+ .label = Reproducir un sonido
+ .accesskey = R
+reminder-play-alarm-button =
+ .label = Reproducir
+ .accesskey = p
+reminder-default-sound-label =
+ .label = Usar el sonido predeterminado
+ .accesskey = s
+reminder-custom-sound-label =
+ .label = Usar el siguiente archivo de sonido
+ .accesskey = U
+reminder-browse-sound-label =
+ .label = Examinar…
+ .accesskey = x
+reminder-dialog-label =
+ .label = Mostrar el diálogo del recordatorio
+ .accesskey = d
+missed-reminder-label =
+ .label = Mostrar recordatorios perdidos en calendarios escribibles
+ .accesskey = M
+reminder-default-legend = Valores predeterminados de recordatorios
+default-snooze-label =
+ .value = Duración predeterminada del retardo:
+ .accesskey = D
+event-alarm-label =
+ .value = Configuración predeterminada de recordatorio de eventos:
+ .accesskey = e
+alarm-on-label =
+ .label = Activado
+alarm-off-label =
+ .label = Desactivado
+task-alarm-label =
+ .value = Configuración predeterminada de recordatorio de tareas:
+ .accesskey = a
+event-alarm-time-label =
+ .value = Tiempo predeterminado de recordatorio antes de un evento:
+ .accesskey = u
+task-alarm-time-label =
+ .value = Tiempo predeterminado de recordatorio antes de una tarea:
+ .accesskey = o
+calendar-notifications-customize-label = Las notificaciones se pueden personalizar para cada calendario en la ventana de propiedades del calendario.
+category-new-label = Nueva categoría
+category-edit-label = Editar categoría
+category-overwrite-title = Advertencia: nombre duplicado
+category-overwrite = Ya existe una categoría con ese nombre. ¿Desea sobrescribirla?
+category-blank-warning = Debe introducir un nombre de categoría.
diff --git a/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.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..47e074622a
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/calendar/calendar.properties
@@ -0,0 +1,696 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Default name for new events
+newEvent=Nuevo evento
+
+# Titles for the event/task dialog
+newEventDialog=Nuevo evento
+editEventDialog=Editar evento
+newTaskDialog=Nueva tarea
+editTaskDialog=Editar tarea
+
+# Do you want to save changes?
+askSaveTitleEvent=Guardar evento
+askSaveTitleTask=Guardar tarea
+askSaveMessageEvent=El evento no ha sido guardado. ¿Quiere guardar el evento?
+askSaveMessageTask=La tarea no ha sido guardada. ¿Quiere guardar la tarea?
+
+# Event Dialog Warnings
+warningEndBeforeStart=La fecha final que ha introducido tiene lugar antes de la de inicio
+warningUntilDateBeforeStart=La fecha final sucede antes de la de inicio
+
+# The name of the calendar provided with the application by default
+homeCalendarName=Casa
+
+# The name given to a calendar if an opened calendar has an empty filename
+untitledCalendarName=Calendario sin título
+
+# Event status: Tentative, Confirmed, Cancelled
+# ToDo task status: NeedsAction, InProcess, Completed, Cancelled
+statusTentative =Provisional
+statusConfirmed =Confirmado
+eventStatusCancelled=Cancelado
+todoStatusCancelled =Cancelado
+statusNeedsAction =Necesita intervención
+statusInProcess =En proceso
+statusCompleted =Completado
+
+# Task priority, these should match the priority.level.* labels in calendar.dtd
+highPriority=Alta
+normalPriority=Normal
+lowPriority=Baja
+
+importPrompt=¿En qué calendario quiere importar estos elementos?
+exportPrompt=¿De qué calendario desea exportar?
+pastePrompt=¿En cuál de sus calendarios actualmente editables quiere pegar?
+publishPrompt=¿Qué calendario quiere publicar?
+
+# LOCALIZATION NOTE (pasteEventAlso): The users pasting operation includes among
+# others also a meeting invitation - this is used as a affix in
+# pasteNotifyAbout
+pasteEventAlso=El contenido que ha pegado incluye un evento
+# LOCALIZATION NOTE (pasteEventsAlso): The users pasting operation includes among
+# others also several meeting invitations - this is used as a affix in
+# pasteNotifyAbout
+pasteEventsAlso=El contenido que ha pegado incluye eventos
+# LOCALIZATION NOTE (pasteTaskAlso): The users pasting operation includes among
+# others also an assigned task - this is used as a affix in pasteNotifyAbout
+pasteTaskAlso=El contenido que ha pegado incluye una tarea asignada
+# LOCALIZATION NOTE (pasteTasksAlso): The users pasting operation include among
+# others also several assigned tasks - this is used as a affix in
+# pasteNotifyAbout
+pasteTasksAlso=El contenido que ha pegado incluye tareas asignadas
+# LOCALIZATION NOTE (pasteItemsAlso): The users pasting operation includes among
+# others also assigned task(s) and meeting invitation(s) - this is used as a affix
+# in pasteNotifyAbout
+pasteItemsAlso=El contenido que ha pegado incluye eventos y tareas asignadas
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting a meeting -
+# this is used as a affix in pasteNotifyAbout
+pasteEventOnly=Está pegando un evento
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several meetings -
+# this is used as a affix in pasteNotifyAbout
+pasteEventsOnly=Está pegando eventos
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting an assigned task -
+# this is used as a affix in pasteNotifyAbout
+pasteTaskOnly=Está pegando una tarea asignada
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several assigned
+# tasks - this is used as a affix in pasteNotifyAbout
+pasteTasksOnly=Está pegando tareas asignadas
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting assigned task(s) and
+# meeting(s) - this is used as a affix in pasteNotifyAbout
+pasteItemsOnly=Está pegando eventos y tareas asignadas
+
+# LOCALIZATION NOTE (pasteNotifyAbout): Text displayed if pasting an invitation
+# or assigned task
+# %1$S - pasteEvent* or pasteTask*
+pasteNotifyAbout=%1$S - ¿desea enviar una actualización a todos los involucrados?
+
+# LOCALIZATION NOTE (pasteAndNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteAndNotifyLabel=Pegar y enviar ahora
+# LOCALIZATION NOTE (pasteDontNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteDontNotifyLabel=Pegar sin enviar
+
+# LOCALIZATION NOTE (importItemsFailed):
+# %1$S will be replaced with number of failed items
+# %2$S will be replaced with last error code / error string
+importItemsFailed=No se pudieron importar %1$S elementos. El último error ha sido: %2$S
+# LOCALIZATION NOTE (noItemsInCalendarFile2):
+# %1$S will be replaced with file path
+noItemsInCalendarFile2=No se puede importar desde %1$S. No hay elementos importables en este archivo.
+
+#spaces needed at the end of the following lines
+eventDescription=Descripción:
+
+unableToRead=No se puede leer del archivo:
+unableToWrite=No se puede escribir en el archivo:
+defaultFileName=MozillaCalEvents
+HTMLTitle=Calendario de Mozilla
+
+# LOCALIZATION NOTE (timezoneError):
+# used for an error message like 'An unknown and undefined timezone was found while reading c:\Mycalendarfile.ics'
+# %1$S will be replaced with the path to a file
+timezoneError=Se ha encontrado una zona horaria desconocida e indefinida mientras se leía %1$S.
+
+# LOCALIZATION NOTE (duplicateError):
+# %1$S will be replaced with number of duplicate items
+# %2$S will be replaced with a file path pointing to a calendar
+duplicateError=Se ha(n) ignorado %1$S elemento(s) puesto que ya existen tanto en el calendario de destino como en %2$S.
+
+unableToCreateProvider=Se ha encontrado un error preparando el calendario situado en %1$S para su uso. No estará disponible.
+
+# Sample: Unknown timezone "USPacific" in "Dentist Appt". Using the 'floating' local timezone instead: 2008/02/28 14:00:00
+unknownTimezoneInItem=Zona horaria desconocida "%1$S" en "%2$S". Se tratará en su lugar como la zona horaria local 'flotante': %3$S
+TimezoneErrorsAlertTitle=Errores en zonas horarias
+TimezoneErrorsSeeConsole=Ver consola de errores: las zonas horarias desconocidas se tratan como la zona horaria local 'flotante'.
+
+# The following strings are for the prompt to delete/unsubscribe from the calendar
+removeCalendarTitle=Eliminar calendario
+removeCalendarButtonDelete=Eliminar calendario
+removeCalendarButtonUnsubscribe=Cancelar suscripción
+
+# LOCALIZATION NOTE (removeCalendarMessageDeleteOrUnsubscribe): Shown for
+# calendar where both deleting and unsubscribing is possible.
+# %1$S: The name of a calendar
+removeCalendarMessageDeleteOrUnsubscribe=¿Desea eliminar el calendario "%1$S"? Cancelar la suscripción eliminará el calendario de la lista, vaciarlo también purgará los datos que contiene de forma permanente.
+
+# LOCALIZATION NOTE (removeCalendarMessageDelete): Shown for calendar where
+# deleting is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageDelete=¿Desea eliminar permanentemente el calendario "%1$S"?
+
+# LOCALIZATION NOTE (removeCalendarMessageUnsubscribe): Shown for calendar
+# where unsubscribing is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageUnsubscribe=¿Desea cancelar la suscripción al calendario "%1$S"?
+
+WeekTitle=Semana %1$S
+None=Ninguna
+
+# Error strings
+## @name UID_NOT_FOUND
+## @loc none
+
+# LOCALIZATION NOTE (tooNewSchemaErrorText):
+# %1$S will be replaced with the name of the host application, e.g. 'Thunderbird'
+# %2$S will be replaced with the name of the new copy of the file, e.g. 'local-2020-05-11T21-30-17.sqlite'
+tooNewSchemaErrorText=Sus datos de calendario no son compatibles con esta versión de %1$S. Los datos de calendario en su perfil han sido actualizados por una versión más reciente de %1$S. Se ha creado una copia de seguridad del archivo de datos llamada "%2$S". Continuando con un nuevo archivo de datos.
+
+# List of events or todos (unifinder)
+eventUntitled=Sin título
+
+# Tooltips of events or todos
+tooltipTitle=Título:
+tooltipLocation=Lugar:
+# event date, usually an interval, such as
+# Date: 7:00--8:00 Thu 9 Oct 2011
+# Date: Thu 9 Oct 2000 -- Fri 10 Oct 2000
+tooltipDate=Fecha:
+# event calendar name
+tooltipCalName=Nombre del calendario:
+# event status: tentative, confirmed, cancelled
+tooltipStatus=Estado:
+# event organizer
+tooltipOrganizer=Organizador:
+# task/todo fields
+# start date time, due date time, task priority number, completed date time
+tooltipStart=Inicio:
+tooltipDue=Vencimiento:
+tooltipPriority=Prioridad:
+tooltipPercent=% completo:
+tooltipCompleted=Completado:
+
+#File commands and dialogs
+New=Nuevo
+Open=Abrir
+filepickerTitleImport=Importar
+filepickerTitleExport=Exportar
+
+# Filters for export/import/open file picker. %1$S will be replaced with
+# wildmat used to filter files by extension, such as (*.html; *.htm).
+filterIcs=iCalendar (%1$S)
+filterHtml=Página web (%1$S)
+
+# Remote calendar errors
+genericErrorTitle=Ha ocurrido un error
+httpPutError=La publicación del archivo de calendario ha fallado.\nCódigo de estado: %1$S: %2$S
+otherPutError=La publicación del archivo de calendario ha fallado.\nCódigo de estado: 0x%1$S
+
+# LOCALIZATION NOTE (readOnlyMode):
+# used for an message like 'There has been an error reading data for calendar: Home. It has been...'
+# %1$S will be replaced with the name of a calendar
+readOnlyMode=Ha habido un error al leer datos del calendario: %1$S. Se ha pasado a modo de sólo lectura, ya que los cambios en este calendario probablemente provocarían pérdida de datos. Puede cambiar esta configuración si elige 'Editar calendario'.
+
+# LOCALIZATION NOTE (disabledMode):
+# used for an message like 'There has been an error reading data for calendar: Home. It has been...'
+# %1$S will be replaced with the name of a calendar
+disabledMode=Ha habido un error al leer datos del calendario: %1$S. Ha sido desactivado hasta que sea seguro usarlo.
+
+# LOCALIZATION NOTE (minorError):
+# used for an message like 'There has been an error reading data for calendar: Home. However this...'
+# %1$S will be replaced with the name of a calendar
+minorError=Ha habido un error al leer datos del calendario: %1$S. Sin embargo, este error parece menor, por lo que el programa intentará continuar.
+
+# LOCALIZATION NOTE (stillReadOnlyError):
+# used for an message like 'There has been an error reading data for calendar: Home.'
+# %1$S will be replaced with the name of a calendar
+stillReadOnlyError=Ha habido un error al leer datos del calendario: %1$S.
+utf8DecodeError=Ha ocurrido un error al decodificar un archivo iCalendar (ics) como UTF-8. Compruebe que el archivo está codificado usando UTF-8, incluyendo símbolos y letras acentuadas.
+icsMalformedError=La interpretación de un archivo iCalendar (ics) ha fallado. Compruebe que el archivo es conforme a la sintaxis de archivo iCalendar (ics).
+itemModifiedOnServerTitle=Elemento modificado en el servidor
+itemModifiedOnServer=Este elemento ha sido modificado recientemente en el servidor.\n
+modifyWillLoseData=Enviar sus cambios provocará que se sobreescriban los cambios hechos en el servidor.
+deleteWillLoseData=Borrar este elemento hará que se pierdan los cambios en el servidor.
+updateFromServer=Descartar mis cambios y recargar
+proceedModify=Enviar mis cambios de todas formas
+proceedDelete=Borrar de todas formas
+dav_notDav=El recurso en %1$S o no es una colección DAV o no está disponible
+dav_davNotCaldav=El recurso en %1$S es una colección DAV pero no un calendario CalDAV
+itemPutError=Ha sucedido un error al guardar el elemento en el servidor.
+itemDeleteError=Ha sucedido un error al eliminar el elemento del servidor.
+caldavRequestError=Ha ocurrido un error al enviar la invitación.
+caldavResponseError=Ha ocurrido un error al enviar la respuesta.
+caldavRequestStatusCode=Código de estado: %1$S
+caldavRequestStatusCodeStringGeneric=La solicitud no puede ser procesada.
+caldavRequestStatusCodeString400=La solicitud contiene errores de sintaxis y no puede ser procesada.
+caldavRequestStatusCodeString403=El usuario no tiene los permisos necesario para ejecutar la solicitud.
+caldavRequestStatusCodeString404=Recurso no encontrado.
+caldavRequestStatusCodeString409=Conflicto de recursos.
+caldavRequestStatusCodeString412=Precondición fallida.
+caldavRequestStatusCodeString500=Error interno del servidor.
+caldavRequestStatusCodeString502=Pasarela errónea (¿configuración del proxy?).
+caldavRequestStatusCodeString503=Error interno del servidor (¿caída temporal del servidor?).
+caldavRedirectTitle=¿Actualizar dirección del calendario %1$S?
+caldavRedirectText=Las solicitudes para %1$S están siendo redirigidas a una nueva dirección. ¿Le gustaría cambiar la dirección al siguiente valor?
+caldavRedirectDisableCalendar=Desactivar calendario
+
+
+# LOCALIZATION NOTE (likelyTimezone):
+# Translators, please put the most likely timezone(s) where the people using
+# your locale will be. Use the Olson ZoneInfo timezone name *in English*,
+# ie "Europe/Paris", (continent or ocean)/(largest city in timezone).
+# Order does not matter, except if two historically different zones now match,
+# such as America/New_York and America/Toronto, will only find first listed.
+# (Particularly needed to guess the most relevant timezones if there are
+# similar timezones at the same June/December GMT offsets with alphabetically
+# earlier ZoneInfo timezone names. Sample explanations for English below.)
+# for english-US:
+# America/Los_Angeles likelier than America/Dawson
+# America/New_York likelier than America/Detroit (NY for US-EasternTime)
+# for english:
+# Europe/London likelier than Atlantic/Canary
+# Europe/Paris likelier than Africa/Ceuta (for WestEuropeanTime)
+# America/Halifax likelier than America/Glace_Bay (Canada-AtlanticTime)
+# America/Mexico_City likelier than America/Cancun
+# America/Argentina/Buenos_Aires likelier than America/Araguaina
+# America/Sao_Paolo (may not recognize: summer-time dates change every year)
+# Asia/Singapore likelier than Antarctica/Casey
+# Asia/Tokyo likelier than Asia/Dili
+# Africa/Lagos likelier than Africa/Algiers (for WestAfricanTime)
+# Africa/Johannesburg likelier than Africa/Blantyre (for SouthAfricanStdTime)
+# Africa/Nairobi likelier than Africa/Addis_Ababa (for EastAfricanTime)
+# Australia/Brisbane likelier than Antarctica/DumontDUrville
+# Australia/Sydney likelier than Australia/Currie or Australia/Hobart
+# Pacific/Auckland likelier than Antarctica/McMurdo
+likelyTimezone=Europe/Madrid, Africa/Ceuta, Atlantic/Canary, America/Mexico_City, America/Argentina/Buenos_Aires, America/Santiago, America/Tijuana, America/Santo_Domingo, America/Puerto_Rico, America/Panama, America/Merida, America/Montevideo, America/Monterrey, America/La_Paz, America/Lima
+
+# Guessed Timezone errors and warnings.
+# Testing note:
+# * remove preference for calendar.timezone.default in userprofile/prefs.js
+# * repeat
+# - set OS timezone to a city (windows: click right on clock in taskbar)
+# - restart
+# - observe guess in error console and verify whether guessed timezone city
+# makes sense for OS city.
+#
+# 'Warning: Operating system timezone "E. South America Standard Time"
+# no longer matches ZoneInfo timezone "America/Sao_Paulo".'
+# Testing notes:
+# - Brasil DST change dates are set every year by decree, so likely out of sync.
+# - Only appears on OSes from which timezone can be obtained
+# (windows; or TZ env var, /etc/localtime target path, or line in
+# /etc/timezone or /etc/sysconfig/clock contains ZoneInfo timezone id).
+# - Windows: turning off "Automatically adjust clock for daylight saving time"
+# can also trigger this warning.
+WarningOSTZNoMatch=Advertencia: la zona horaria del sistema operativo "%1$S"\nya no coincide con la zona horaria interna ZoneInfo "%2$S".
+
+# "Skipping Operating System timezone 'Pacific/New_Country'."
+# Testing note: not easily testable. May occur someday if (non-windows)
+# OS uses different version of ZoneInfo database which has a timezone name
+# that is not included in our current ZoneInfo database (or if the mapping
+# mapping from windows to ZoneInfo timezone ids does).
+SkippingOSTimezone=Se ignora la zona horaria '%1$S' del sistema operativo.
+
+# "Skipping locale timezone 'America/New_Yawk'."
+# Testing note: Skipping occurs if a likelyTimezone id is unknown or misspelled.
+SkippingLocaleTimezone=Se ignora la zona horaria '%1$S' del idioma.
+
+# Testing note: "No match" timezones include Bucharest on W2k.
+# Brazil timezones may be "No match" (change every year, so often out of date,
+# and changes are often more than a week different).
+warningUsingFloatingTZNoMatch=Advertencia: se usa una zona horaria "flotante".\nNinguna zona horaria ZoneInfo coincide con los datos de la zona horaria del sistema operativo.
+
+# "Warning: Using guessed timezone
+# America/New York (UTC-0500/-0400).
+# [rfc2445 summer daylight saving shift rules for timezone]
+# This ZoneInfo timezone almost matches/seems to match..."
+# This ZoneInfo timezone was chosen based on ... "
+WarningUsingGuessedTZ=Advertencia: se infiere la zona horaria\n %1$S (UTC%2$S).\n%3$S\n%4$S
+
+# Testing note: "Almost match" timezones include Cairo on W2k.
+TZAlmostMatchesOSDifferAtMostAWeek=Esta zona horaria ZoneInfo coincide casi por completo con la zona horaria \ndel sistema operativo. Para esta regla, las próximas transiciones entre la \nhora de verano e invierno difieren en, como mucho, una semana respecto de las \n transiciones de la zona horaria del sistema operativo. Puede haber \n discrepancias en los datos, como una fecha de inicio diferente, o una regla\n diferente, o una aproximación a una regla de un calendario no gregoriano.
+
+TZSeemsToMatchOS=Esta zona horaria ZoneInfo parece coincidir con la zona horaria del sistema operativo este año.
+
+# LOCALIZATION NOTE (TZFromOS):
+# used for a display of a chosen timezone
+# %1$S will be replaced with the name of a timezone
+TZFromOS=Esta zona horaria ZoneInfo se ha elegido basándose en el identificador de \nzona horaria del sistema operativo "%1$S".
+
+# Localization note (TZFromLocale): Substitute name of your locale language.
+TZFromLocale=Esta zona horaria ZoneInfo se ha elegido por coincidencia entre la zona \nhoraria del sistema operativo con zonas horarias probablemente usadas por los usuarios de \nInternet que utilizan español de España.
+
+TZFromKnownTimezones=Esta zona horaria ZoneInfo se ha elegido por coincidencia entre la zona horaria \ndel sistema operativo entre una lista de zonas horarias conocidas ordenada \nalfabética de identificador de zona horaria.
+
+# Print Layout
+tasksWithNoDueDate = Tareas sin fecha límite
+
+# Providers
+caldavName=CalDAV
+compositeName=Compuesto
+icsName=iCalendar (ICS)
+memoryName=Temporal (memoria)
+storageName=Local (SQLite)
+
+# Used in created html code for export
+htmlPrefixTitle=Título
+htmlPrefixWhen=Cuándo
+htmlPrefixLocation=Ubicación
+htmlPrefixDescription=Descripción
+htmlTaskCompleted=%1$S (completada)
+
+# Categories
+addCategory=Añadir categoría
+multipleCategories=Múltiples categorías
+
+today=Hoy
+tomorrow=Mañana
+yesterday=Ayer
+
+#Today pane
+eventsonly=Eventos
+eventsandtasks=Eventos y tareas
+tasksonly=Tareas
+shortcalendarweek=SC
+
+go=Ir
+
+# Some languages have different conjugations of 'next' and 'last'. If yours
+# does not, simply repeat the value. This will be used with day names, as in
+# 'next Sunday'.
+next1=siguiente
+next2=siguiente
+last1=último
+last2=último
+
+# Alarm Dialog
+# LOCALIZATION NOTE (alarmWindowTitle.label): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+alarmWindowTitle.label=#1 Recordatorio;#1 Recordatorios
+
+# LOCALIZATION NOTE (alarmStarts):
+# used for a display the start of an alarm like 'Starts: Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmStarts=Comienza: %1$S
+
+# LOCALIZATION NOTE (alarmTodayAt):
+# used for a display the date-time of an alarm like 'Today at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmTodayAt=Hoy a la(s) %1$S
+
+# LOCALIZATION NOTE (alarmTomorrowAt):
+# used for a display the date-time of an alarm like 'Tomorrow at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmTomorrowAt=Mañana a la(s) %1$S
+
+# LOCALIZATION NOTE (alarmYesterdayAt):
+# used for a display the date-time of an alarm like 'Yesterday at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmYesterdayAt=Ayer a la(s) %1$S
+
+# Alarm interface strings
+# LOCALIZATION NOTE: These strings do not get displayed. They are only visible
+# when exporting an item with i.e a DISPLAY alarm, that doesn't have a
+# description set, or an EMAIL alarm that doesn't have a summary set.
+alarmDefaultDescription=Descripción predeterminada de Mozilla
+alarmDefaultSummary=Resumen predeterminado de Mozilla
+
+# LOCALIZATION NOTE (alarmSnoozeLimitExceeded): Semi-colon list of plural
+# forms.
+alarmSnoozeLimitExceeded=No puede silenciar una alarma durante más de un mes.;No puede silenciar una alarma durante más de #1 meses.
+
+taskDetailsStatusNeedsAction=Necesita intervención
+
+# LOCALIZATION NOTE (taskDetailsStatusInProgress):
+# used for a display of how much of a task is completed '25% Complete'
+# %1$S will be replaced with the number of percentage completed
+taskDetailsStatusInProgress=%1$S%% completada
+taskDetailsStatusCompleted=Completada
+
+# LOCALIZATION NOTE (taskDetailsStatusCompletedOn):
+# used for a display of completion date like 'Completed on Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with the completion date-time of the task
+taskDetailsStatusCompletedOn=Completada el %1$S
+taskDetailsStatusCancelled=Cancelada
+
+gettingCalendarInfoCommon=Comprobando calendarios…
+
+# LOCALIZATION NOTE (gettingCalendarInfoDetail):
+# used for a progress-display of processed like 'Checking Calendar 5 of 10'
+# %1$S will be replaced with the index of the currently processed calendar
+# %2$S will be replaced with the total numbers of calendars
+gettingCalendarInfoDetail=Comprobando calendario %1$S de %2$S
+
+# LOCALIZATION NOTE (errorCode):
+# %1$S will be replaced with the number of an error code
+errorCode=Código de error: %1$S
+
+# LOCALIZATION NOTE (errorDescription):
+# %1$S will be replaced with the description of an error
+errorDescription=Descripción: %1$S
+
+# LOCALIZATION NOTE (errorWriting):
+# used for an message like 'An error occurred when writing to the calendar Home!'
+# %1$S will be replaced with the name of a calendar
+errorWriting2=¡Ha sucedido un error al escribir en el calendario %1$S! Debajo encontrará más información.
+
+# LOCALIZATION NOTE (errorWritingDetails):
+# This will be displayed in the detail section of the error dialog
+errorWritingDetails=Si ve este mensaje tras posponer u ocultar un recordatorio y es para un calendario en el que no quiere añadir o editar eventos, puede marcar este calendario como de solo lectura para evitar este comportamiento en el futuro. Para ello, acceda a las propiedades del calendario haciendo clic con el botón derecho en este calendario en la lista de las vistas de calendario o tareas.
+
+# LOCALIZATION NOTE (tooltipCalendarDisabled):
+# used for an alert-message like 'The calendar Home is momentarily not available'
+# %1$S will be replaced with the name of a calendar
+tooltipCalendarDisabled=El calendario %1$S está momentáneamente no disponible
+
+# LOCALIZATION NOTE (tooltipCalendarReadOnly):
+# used for an message like 'The calendar Home is readonly'
+# %1$S will be replaced with the name of a calendar
+tooltipCalendarReadOnly=El calendario %1$S es sólo de lectura
+
+taskEditInstructions=Pulse aquí para añadir una nueva tarea
+taskEditInstructionsReadonly=Seleccione un calendario en el que sea posible escribir
+taskEditInstructionsCapability=Seleccione un calendario que admita tareas
+
+eventDetailsStartDate=Inicio:
+eventDetailsEndDate=Final:
+
+# LOCALIZATION NOTE (datetimeWithTimezone):
+# used for a display of a date-time with timezone 'Thu 2 Oct 2008 13:21', Europe/Paris
+# %1$S will be replaced with the completion date-time
+# %2$S will be replaced with the name of the timezone
+datetimeWithTimezone=%1$S, %2$S
+
+# LOCALIZATION NOTE (singleLongCalendarWeek):
+# used for display of calendar weeks in short form like 'Calendar Week 43'
+# %1$S will be replaced with the index of the week
+singleLongCalendarWeek=Semana del calendario: %1$S
+
+# LOCALIZATION NOTE (severalLongCalendarWeeks):
+# used for display of calendar weeks in short form like 'Calendar Weeks 43 - 45'
+# %1$S will be replaced with the index of the start-week
+# %2$S will be replaced with the index of the end-week
+severalLongCalendarWeeks=Semanas del calendario %1$S-%2$S
+
+# LOCALIZATION NOTE (singleShortCalendarWeek):
+# used for display of calendar weeks in short form like 'CW 43'
+# %1$S will be replaced with the index of the week
+singleShortCalendarWeek=SC: %1$S
+
+# LOCALIZATION NOTE (severalShortCalendarWeeks):
+# used for display of calendar weeks in short form like 'CWs 43 - 45'
+# %1$S will be replaced with the index of the start-week
+# %2$S will be replaced with the index of the end-week
+severalShortCalendarWeeks=Sem: %1$S-%2$S
+
+# LOCALIZATION NOTE (multiweekViewWeek):
+# Used for displaying the week number in the first day box of every week
+# in multiweek and month views.
+# It allows to localize the label with the week number in case your locale
+# requires it.
+# Take into account that this label is placed in the same room of the day label
+# inside the day boxes, exactly on left side, hence a possible string shouldn't
+# be too long otherwise it will create confusion between the week number and
+# the day number other than a possible crop when the window is resized.
+#
+# %1$S is a number from 1 to 53 that represents the week number.
+multiweekViewWeek=Sem. %1$S
+
+# Task tree, "Due In" column.
+# LOCALIZATION NOTE (dueInDays, dueInHours): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+dueInDays=#1 día;#1 días
+dueInHours=#1 hora;#1 horas
+dueInLessThanOneHour=< 1 hora
+
+# LOCALIZATION NOTE (monthInYear):
+# used for display of Month-dates like 'December 2008'
+# %1$S will be replaced with name of the month
+# %2$S will be replaced with the year
+monthInYear=%1$S %2$S
+
+# LOCALIZATION NOTE (monthInYear.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+monthInYear.monthFormat=nominative
+
+# LOCALIZATION NOTE (formatDateLong):
+# used for display dates in long format like 'Mon 15 Oct 2008' when it's
+# impossible to retrieve the formatatted date from the OS.
+# %1$S will be replaced with name of the day in short format;
+# %2$S will be replaced with the day-index of the month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties);
+# %3$S will be replaced with the name of the month in short format;
+# %4$S will be replaced with the year.
+formatDateLong=%1$S %2$S %3$S %4$S
+
+# LOCALIZATION NOTE (dayHeaderLabel):
+# used for display the labels in the header of the days in day/week views in short
+# or long format. For example: 'Monday 6 Oct.' or 'Mon. 6 Oct.'
+# %1$S will be replaced with name of the day in short or long format
+# %2$S will be replaced with the day-index of the month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties), plus the name
+# of the month in short format (the day/month order depends on the OS settings).
+dayHeaderLabel=%1$S %2$S
+
+# LOCALIZATION NOTE (daysIntervalInMonth):
+# used for display of intervals in the form of 'March 3 - 9, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %4$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalInMonth=%1$S %2$S – %3$S, %4$S
+
+# LOCALIZATION NOTE (daysIntervalInMonth.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalInMonth.monthFormat=nominative
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths):
+# used for display of intervals in the form 'September 29 - October 5, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with name of the month of the end date
+# %4$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %5$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenMonths=%1$S %2$S – %3$S %4$S, %5$S
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalBetweenMonths.monthFormat=nominative
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears):
+# used for display of intervals in the form 'December 29, 2008 - January 4, 2009'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the year of the start date
+# %4$S will be replaced with name of the month of the end date
+# %5$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %6$S will be replaced with the year of the end date
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenYears=%1$S %2$S, %3$S – %4$S %5$S, %6$S
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalBetweenYears.monthFormat=nominative
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDateTime):
+# used for intervals where end is equals to start
+# displayed form is '5 Jan 2006 13:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+datetimeIntervalOnSameDateTime=%1$S %2$S
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDay):
+# used for intervals where end is on the same day as start, so we can leave out the
+# end date but still include end time
+# displayed form is '5 Jan 2006 13:00 - 17:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the time of the end date
+datetimeIntervalOnSameDay=%1$S %2$S – %3$S
+
+# LOCALIZATION NOTE (datetimeIntervalOnSeveralDays):
+# used for intervals spanning multiple days by including date and time
+# displayed form is '5 Jan 2006 13:00 - 7 Jan 2006 9:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the date of the end date
+# %4$S will be replaced with the time of the end date
+datetimeIntervalOnSeveralDays=%1$S %2$S – %3$S %4$S
+
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDate):
+# used for task without start and due date
+# (showed only in exported calendar in Html format)
+datetimeIntervalTaskWithoutDate= sin fecha de inicio ni final
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDueDate):
+# used for intervals in task with only start date
+# displayed form is 'start date 5 Jan 2006 13:00'
+# (showed only in exported calendar in Html format)
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+datetimeIntervalTaskWithoutDueDate=con inicio el %1$S a las %2$S
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutStartDate):
+# used for intervals in task with only due date
+# displayed form is 'due date 5 Jan 2006 13:00'
+# (showed only in exported calendar in Html format)
+# %1$S will be replaced with the date of the due date
+# %2$S will be replaced with the time of the due date
+datetimeIntervalTaskWithoutStartDate=finalización prevista el %1$S a las %2$S
+
+# LOCALIZATION NOTE (dragLabelTasksWithOnlyEntryDate
+# dragLabelTasksWithOnlyDueDate)
+# Labels that appear while dragging a task with only
+# entry date OR due date
+dragLabelTasksWithOnlyEntryDate=Hora de inicio
+dragLabelTasksWithOnlyDueDate=Vence en
+
+deleteTaskLabel=Eliminar tarea
+deleteTaskAccesskey=l
+deleteItemLabel=Eliminar
+deleteItemAccesskey=l
+deleteEventLabel=Eliminar evento
+deleteEventAccesskey=l
+
+calendarPropertiesEveryMinute=Cada minuto;Cada #1 minutos
+
+# LOCALIZATION NOTE (extractUsing)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+extractUsing=Usando %1$S
+
+# LOCALIZATION NOTE (extractUsingRegion)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+# %2$S will be replaced with region like US in en-US
+extractUsingRegion=Usando %1$S (%2$S)
+
+# LOCALIZATION NOTE (unit)
+# Used to determine the correct plural form of a unit
+unitMinutes=#1 minuto;#1 minutos
+unitHours=#1 hora;#1 horas
+unitDays=#1 día;#1 días
+unitWeeks=#1 semana;#1 semanas
+
+# LOCALIZATION NOTE (showCalendar)
+# Used in calendar list context menu
+# %1$S will be replaced with the calendar name
+# uses the access key calendar.context.togglevisible.accesskey
+showCalendar=Mostrar %1$S
+hideCalendar=Ocultar %1$S
+# uses the access key calendar.context.showonly.accesskey
+showOnlyCalendar=Mostrar sólo %1$S
+
+# LOCALIZATION NOTE (modifyConflict)
+# Used by the event dialog to resolve item modification conflicts.
+modifyConflictPromptTitle=Conflicto en la modificación del elemento.
+modifyConflictPromptMessage=El elemento que se está editando en el diálogo ha sido modificado desde que se abrió.
+modifyConflictPromptButton1=Sobreescribir los otros cambios
+modifyConflictPromptButton2=Descartar estos cambios
+
+# Accessible description of a grid calendar with no selected date
+minimonthNoSelectedDate=No hay fecha seleccionada
diff --git a/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..272cedb28f
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/calendar/timezones.properties
@@ -0,0 +1,494 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+pref.timezone.floating=Hora local
+pref.timezone.UTC=UTC/GMT
+
+# I've derived this list out of timezones.dtd
+# - replaced '_' with ' ' on value side
+# - corrected 'St xyz' to 'St. xyz'
+
+# This list is derived from the IANA timezone database, but was always
+# incomplete. It will not be updated; future revisions will rely on metazones as
+# defined by CLDR, but these remain in place to prevent regressions in
+# localization.
+
+# timezone names:
+pref.timezone.Africa.Abidjan=África/Abiyán
+pref.timezone.Africa.Accra=África/Accra
+pref.timezone.Africa.Addis_Ababa=África/Addis Ababa
+pref.timezone.Africa.Algiers=África/Argel
+pref.timezone.Africa.Asmara=África/Asmara
+pref.timezone.Africa.Bamako=África/Bamako
+pref.timezone.Africa.Bangui=África/Bangui
+pref.timezone.Africa.Banjul=África/Banjul
+pref.timezone.Africa.Bissau=África/Bissau
+pref.timezone.Africa.Blantyre=África/Blantyre
+pref.timezone.Africa.Brazzaville=África/Brazzaville
+pref.timezone.Africa.Bujumbura=África/Buyumbura
+pref.timezone.Africa.Cairo=África/Cairo
+pref.timezone.Africa.Casablanca=África/Casablanca
+pref.timezone.Africa.Ceuta=África/Ceuta
+pref.timezone.Africa.Conakry=África/Conakry
+pref.timezone.Africa.Dakar=África/Dakar
+pref.timezone.Africa.Dar_es_Salaam=África/Dar es Salaam
+pref.timezone.Africa.Djibouti=África/Djibouti
+pref.timezone.Africa.Douala=África/Douala
+pref.timezone.Africa.El_Aaiun=África/El Aaiun
+pref.timezone.Africa.Freetown=África/Freetown
+pref.timezone.Africa.Gaborone=África/Gaborone
+pref.timezone.Africa.Harare=África/Harare
+pref.timezone.Africa.Johannesburg=África/Johannesburg
+pref.timezone.Africa.Kampala=África/Kampala
+pref.timezone.Africa.Khartoum=África/Khartoum
+pref.timezone.Africa.Kigali=África/Kigali
+pref.timezone.Africa.Kinshasa=África/Kinshasa
+pref.timezone.Africa.Lagos=África/Lagos
+pref.timezone.Africa.Libreville=África/Libreville
+pref.timezone.Africa.Lome=África/Lomé
+pref.timezone.Africa.Luanda=África/Luanda
+pref.timezone.Africa.Lubumbashi=África/Lubumbashi
+pref.timezone.Africa.Lusaka=África/Lusaka
+pref.timezone.Africa.Malabo=África/Malabo
+pref.timezone.Africa.Maputo=África/Maputo
+pref.timezone.Africa.Maseru=África/Maseru
+pref.timezone.Africa.Mbabane=África/Mbabane
+pref.timezone.Africa.Mogadishu=África/Mogadiscio
+pref.timezone.Africa.Monrovia=África/Monrovia
+pref.timezone.Africa.Nairobi=África/Nairobi
+pref.timezone.Africa.Ndjamena=África/Ndjamena
+pref.timezone.Africa.Niamey=África/Niamey
+pref.timezone.Africa.Nouakchott=África/Nuakchot
+pref.timezone.Africa.Ouagadougou=África/Ouagadougou
+pref.timezone.Africa.Porto-Novo=África/Porto Novo
+pref.timezone.Africa.Sao_Tome=África/Santo Tomé
+pref.timezone.Africa.Tripoli=África/Trípoli
+pref.timezone.Africa.Tunis=África/Túnez
+pref.timezone.Africa.Windhoek=África/Windhoek
+pref.timezone.America.Adak=América/Adak
+pref.timezone.America.Anchorage=América/Anchorage
+pref.timezone.America.Anguilla=América/Anguilla
+pref.timezone.America.Antigua=América/Antigua
+pref.timezone.America.Araguaina=América/Araguaina
+pref.timezone.America.Argentina.Buenos_Aires=América/Argentina/Buenos Aires
+pref.timezone.America.Argentina.Catamarca=América/Argentina/Catamarca
+pref.timezone.America.Argentina.Cordoba=América/Argentina/Córdoba
+pref.timezone.America.Argentina.Jujuy=América/Argentina/Jujuy
+pref.timezone.America.Argentina.La_Rioja=América/Argentina/La Rioja
+pref.timezone.America.Argentina.Mendoza=América/Argentina/Mendoza
+pref.timezone.America.Argentina.Rio_Gallegos=América/Argentina/Río Gallegos
+pref.timezone.America.Argentina.San_Juan=América/Argentina/San Juan
+pref.timezone.America.Argentina.Tucuman=América/Argentina/Tucumán
+pref.timezone.America.Argentina.Ushuaia=América/Argentina/Ushuaia
+pref.timezone.America.Aruba=América/Aruba
+pref.timezone.America.Asuncion=América/Asunción
+pref.timezone.America.Atikokan=América/Atikokan
+pref.timezone.America.Bahia=América/Bahía
+pref.timezone.America.Barbados=América/Barbados
+pref.timezone.America.Belem=América/Belem
+pref.timezone.America.Belize=América/Belice
+pref.timezone.America.Blanc-Sablon=América/Blanc-Sablon
+pref.timezone.America.Boa_Vista=América/Boa Vista
+pref.timezone.America.Bogota=América/Bogotá
+pref.timezone.America.Boise=América/Boise
+pref.timezone.America.Cambridge_Bay=América/Bahía de Cambridge
+pref.timezone.America.Campo_Grande=América/Campo Grande
+pref.timezone.America.Cancun=América/Cancún
+pref.timezone.America.Caracas=América/Caracas
+pref.timezone.America.Cayenne=América/Cayenne
+pref.timezone.America.Cayman=América/Cayman
+pref.timezone.America.Chicago=América/Chicago
+pref.timezone.America.Chihuahua=América/Chihuahua
+pref.timezone.America.Costa_Rica=América/Costa Rica
+pref.timezone.America.Cuiaba=América/Cuiaba
+pref.timezone.America.Curacao=América/Curacao
+pref.timezone.America.Danmarkshavn=América/Danmarkshavn
+pref.timezone.America.Dawson=América/Dawson
+pref.timezone.America.Dawson_Creek=América/Dawson Creek
+pref.timezone.America.Denver=América/Denver
+pref.timezone.America.Detroit=América/Detroit
+pref.timezone.America.Dominica=América/Dominica
+pref.timezone.America.Edmonton=América/Edmonton
+pref.timezone.America.Eirunepe=América/Eirunepe
+pref.timezone.America.El_Salvador=América/El Salvador
+pref.timezone.America.Fortaleza=América/Fortaleza
+pref.timezone.America.Glace_Bay=América/Glace Bay
+pref.timezone.America.Godthab=América/Godthab
+pref.timezone.America.Goose_Bay=América/Goose Bay
+pref.timezone.America.Grand_Turk=América/Grand Turk
+pref.timezone.America.Grenada=América/Grenada
+pref.timezone.America.Guadeloupe=América/Guadalupe
+pref.timezone.America.Guatemala=América/Guatemala
+pref.timezone.America.Guayaquil=América/Guayaquil
+pref.timezone.America.Guyana=América/Guyana
+pref.timezone.America.Halifax=América/Halifax
+pref.timezone.America.Havana=América/Havana
+pref.timezone.America.Hermosillo=América/Hermosillo
+pref.timezone.America.Indiana.Indianapolis=América/Indiana/Indianápolis
+pref.timezone.America.Indiana.Knox=América/Indiana/Knox
+pref.timezone.America.Indiana.Marengo=América/Indiana/Marengo
+pref.timezone.America.Indiana.Petersburg=América/Indiana/Petersburg
+pref.timezone.America.Indiana.Vevay=América/Indiana/Vevay
+pref.timezone.America.Indiana.Vincennes=América/Indiana/Vincennes
+pref.timezone.America.Inuvik=América/Inuvik
+pref.timezone.America.Iqaluit=América/Iqaluit
+pref.timezone.America.Jamaica=América/Jamaica
+pref.timezone.America.Juneau=América/Juneau
+pref.timezone.America.Kentucky.Louisville=América/Kentucky/Louisville
+pref.timezone.America.Kentucky.Monticello=América/Kentucky/Monticello
+pref.timezone.America.La_Paz=América/La Paz
+pref.timezone.America.Lima=América/Lima
+pref.timezone.America.Los_Angeles=América/Los Ángeles
+pref.timezone.America.Maceio=América/Maceio
+pref.timezone.America.Managua=América/Managua
+pref.timezone.America.Manaus=América/Manaus
+pref.timezone.America.Martinique=América/Martinica
+pref.timezone.America.Mazatlan=América/Mazatlan
+pref.timezone.America.Menominee=América/Menominee
+pref.timezone.America.Merida=América/Mérida
+pref.timezone.America.Mexico_City=América/Ciudad de México
+pref.timezone.America.Miquelon=América/Miquelon
+pref.timezone.America.Moncton=América/Moncton
+pref.timezone.America.Monterrey=América/Monterrey
+pref.timezone.America.Montevideo=América/Montevideo
+pref.timezone.America.Montreal=América/Montreal
+pref.timezone.America.Montserrat=América/Montserrat
+pref.timezone.America.Nassau=América/Nassau
+pref.timezone.America.New_York=América/Nueva York
+pref.timezone.America.Nipigon=América/Nipigon
+pref.timezone.America.Nome=América/Nome
+pref.timezone.America.Noronha=América/Noronha
+pref.timezone.America.North_Dakota.Center=América/Dakota del Norte/Centro
+pref.timezone.America.North_Dakota.New_Salem=América/Dakota del Norte/Nuevo Salem
+pref.timezone.America.Panama=América/Panamá
+pref.timezone.America.Pangnirtung=América/Pangnirtung
+pref.timezone.America.Paramaribo=América/Paramaribo
+pref.timezone.America.Phoenix=América/Phoenix
+pref.timezone.America.Port-au-Prince=América/Port-au-Prince
+pref.timezone.America.Port_of_Spain=América/Puerto de España
+pref.timezone.America.Porto_Velho=América/Porto Velho
+pref.timezone.America.Puerto_Rico=América/Puerto Rico
+pref.timezone.America.Rainy_River=América/Rainy River
+pref.timezone.America.Rankin_Inlet=América/Rankin Inlet
+pref.timezone.America.Recife=América/Recife
+pref.timezone.America.Regina=América/Regina
+pref.timezone.America.Rio_Branco=América/Rio Branco
+pref.timezone.America.Santiago=América/Santiago
+pref.timezone.America.Santo_Domingo=América/Santo Domingo
+pref.timezone.America.Sao_Paulo=América/Sao Paulo
+pref.timezone.America.Scoresbysund=América/Scoresbysund
+pref.timezone.America.Shiprock=América/Shiprock
+pref.timezone.America.St_Johns=América/San Juan
+pref.timezone.America.St_Kitts=América/St. Kitts
+pref.timezone.America.St_Lucia=América/St. Lucía
+pref.timezone.America.St_Thomas=América/San Tomás
+pref.timezone.America.St_Vincent=América/San Vincente
+pref.timezone.America.Swift_Current=América/Swift Current
+pref.timezone.America.Tegucigalpa=América/Tegucigalpa
+pref.timezone.America.Thule=América/Thule
+pref.timezone.America.Thunder_Bay=América/Bahía del Trueno
+pref.timezone.America.Tijuana=América/Tijuana
+pref.timezone.America.Toronto=América/Toronto
+pref.timezone.America.Tortola=América/Tórtola
+pref.timezone.America.Vancouver=América/Vancouver
+pref.timezone.America.Whitehorse=América/Whitehorse
+pref.timezone.America.Winnipeg=América/Winnipeg
+pref.timezone.America.Yakutat=América/Yakutat
+pref.timezone.America.Yellowknife=América/Yellowknife
+pref.timezone.Antarctica.Casey=Antártida/Casey
+pref.timezone.Antarctica.Davis=Antártida/Davis
+pref.timezone.Antarctica.DumontDUrville=Antártida/DumontDUrville
+pref.timezone.Antarctica.Mawson=Antártida/Mawson
+pref.timezone.Antarctica.McMurdo=Antártida/McMurdo
+pref.timezone.Antarctica.Palmer=Antártida/Palmer
+pref.timezone.Antarctica.Rothera=Antártida/Rothera
+pref.timezone.Antarctica.South_Pole=Antártica/Polo Sur
+pref.timezone.Antarctica.Syowa=Antártida/Syowa
+pref.timezone.Antarctica.Vostok=Antártida/Vostok
+pref.timezone.Arctic.Longyearbyen=Ártico/Longyearbyen
+pref.timezone.Asia.Aden=Asia/Aden
+pref.timezone.Asia.Almaty=Asia/Almaty
+pref.timezone.Asia.Amman=Asia/Amman
+pref.timezone.Asia.Anadyr=Asia/Anadyr
+pref.timezone.Asia.Aqtau=Asia/Aqtau
+pref.timezone.Asia.Aqtobe=Asia/Aqtobe
+pref.timezone.Asia.Ashgabat=Asia/Ashgabat
+pref.timezone.Asia.Baghdad=Asia/Bagdad
+pref.timezone.Asia.Bahrain=Asia/Bahréin
+pref.timezone.Asia.Baku=Asia/Baku
+pref.timezone.Asia.Bangkok=Asia/Bangkok
+pref.timezone.Asia.Beirut=Asia/Beirut
+pref.timezone.Asia.Bishkek=Asia/Bishkek
+pref.timezone.Asia.Brunei=Asia/Brunei
+pref.timezone.Asia.Choibalsan=Asia/Choibalsan
+pref.timezone.Asia.Chongqing=Asia/Chongqing
+pref.timezone.Asia.Colombo=Asia/Colombo
+pref.timezone.Asia.Damascus=Asia/Damasco
+pref.timezone.Asia.Dhaka=Asia/Dhaka
+pref.timezone.Asia.Dili=Asia/Dili
+pref.timezone.Asia.Dubai=Asia/Dubái
+pref.timezone.Asia.Dushanbe=Asia/Dushanbe
+pref.timezone.Asia.Gaza=Asia/Gaza
+pref.timezone.Asia.Harbin=Asia/Harbin
+pref.timezone.Asia.Hong_Kong=Asia/Hong Kong
+pref.timezone.Asia.Hovd=Asia/Hovd
+pref.timezone.Asia.Irkutsk=Asia/Irkutsk
+pref.timezone.Asia.Istanbul=Asia/Estambul
+pref.timezone.Asia.Jakarta=Asia/Jakarta
+pref.timezone.Asia.Jayapura=Asia/Jayapura
+pref.timezone.Asia.Jerusalem=Asia/Jerusalén
+pref.timezone.Asia.Kabul=Asia/Kabul
+pref.timezone.Asia.Kamchatka=Asia/Kamchatka
+pref.timezone.Asia.Karachi=Asia/Karachi
+pref.timezone.Asia.Kashgar=Asia/Kashgar
+pref.timezone.Asia.Kathmandu=Asia/Kathmandú
+pref.timezone.Asia.Krasnoyarsk=Asia/Krasnoyarsk
+pref.timezone.Asia.Kuala_Lumpur=Asia/Kuala Lumpur
+pref.timezone.Asia.Kuching=Asia/Kuching
+pref.timezone.Asia.Kuwait=Asia/Kuwait
+pref.timezone.Asia.Macau=Asia/Macau
+pref.timezone.Asia.Magadan=Asia/Magadan
+pref.timezone.Asia.Makassar=Asia/Makassar
+pref.timezone.Asia.Manila=Asia/Manila
+pref.timezone.Asia.Muscat=Asia/Muscat
+pref.timezone.Asia.Nicosia=Asia/Nicosia
+pref.timezone.Asia.Novosibirsk=Asia/Novosibirsk
+pref.timezone.Asia.Omsk=Asia/Omsk
+pref.timezone.Asia.Oral=Asia/Oral
+pref.timezone.Asia.Phnom_Penh=Asia/Phnom Penh
+pref.timezone.Asia.Pontianak=Asia/Pontianak
+pref.timezone.Asia.Pyongyang=Asia/Pyongyang
+pref.timezone.Asia.Qatar=Asia/Qatar
+pref.timezone.Asia.Qyzylorda=Asia/Qyzylorda
+pref.timezone.Asia.Rangoon=Asia/Rangoon
+pref.timezone.Asia.Riyadh=Asia/Riyadh
+pref.timezone.Asia.Sakhalin=Asia/Sakhalin
+pref.timezone.Asia.Samarkand=Asia/Samarkanda
+pref.timezone.Asia.Seoul=Asia/Seúl
+pref.timezone.Asia.Shanghai=Asia/Shangai
+pref.timezone.Asia.Singapore=Asia/Singapur
+pref.timezone.Asia.Taipei=Asia/Taipéi
+pref.timezone.Asia.Tashkent=Asia/Tashkent
+pref.timezone.Asia.Tbilisi=Asia/Tbilisi
+pref.timezone.Asia.Tehran=Asia/Teherán
+pref.timezone.Asia.Thimphu=Asia/Thimphu
+pref.timezone.Asia.Tokyo=Asia/Tokio
+pref.timezone.Asia.Ulaanbaatar=Asia/Ulán Bator
+pref.timezone.Asia.Urumqi=Asia/Urumqi
+pref.timezone.Asia.Vientiane=Asia/Vientiane
+pref.timezone.Asia.Vladivostok=Asia/Vladivostok
+pref.timezone.Asia.Yakutsk=Asia/Yakutsk
+pref.timezone.Asia.Yekaterinburg=Asia/Yekaterinburg
+pref.timezone.Asia.Yerevan=Asia/Yerevan
+pref.timezone.Atlantic.Azores=Atlántico/Azores
+pref.timezone.Atlantic.Bermuda=Atlántico/Bermudas
+pref.timezone.Atlantic.Canary=Atlántico/Canarias
+pref.timezone.Atlantic.Cape_Verde=Atlántico/Cabo Verde
+pref.timezone.Atlantic.Faroe=Atlántico/Faroe
+pref.timezone.Atlantic.Madeira=Atlántico/Madeira
+pref.timezone.Atlantic.Reykjavik=Atlántico/Reykjavik
+pref.timezone.Atlantic.South_Georgia=Atlántico/Georgia del Sur
+pref.timezone.Atlantic.St_Helena=Atlántico/Santa Elena
+pref.timezone.Atlantic.Stanley=Atlántico/Stanley
+pref.timezone.Australia.Adelaide=Australia/Adelaida
+pref.timezone.Australia.Brisbane=Australia/Brisbane
+pref.timezone.Australia.Broken_Hill=Australia/Broken Hill
+pref.timezone.Australia.Currie=Australia/Currie
+pref.timezone.Australia.Darwin=Australia/Darwin
+pref.timezone.Australia.Eucla=Australia/Eucla
+pref.timezone.Australia.Hobart=Australia/Hobart
+pref.timezone.Australia.Lindeman=Australia/Lindeman
+pref.timezone.Australia.Lord_Howe=Australia/Lord Howe
+pref.timezone.Australia.Melbourne=Australia/Melbourne
+pref.timezone.Australia.Perth=Australia/Perth
+pref.timezone.Australia.Sydney=Australia/Sidney
+pref.timezone.Europe.Amsterdam=Europa/Amsterdam
+pref.timezone.Europe.Andorra=Europa/Andorra
+pref.timezone.Europe.Athens=Europa/Atenas
+pref.timezone.Europe.Belgrade=Europa/Belgrado
+pref.timezone.Europe.Berlin=Europa/Berlín
+pref.timezone.Europe.Bratislava=Europa/Bratislava
+pref.timezone.Europe.Brussels=Europa/Bruselas
+pref.timezone.Europe.Bucharest=Europa/Bucarest
+pref.timezone.Europe.Budapest=Europa/Budapest
+pref.timezone.Europe.Chisinau=Europa/Chisinau
+pref.timezone.Europe.Copenhagen=Europa/Copenhague
+pref.timezone.Europe.Dublin=Europa/Dublín
+pref.timezone.Europe.Gibraltar=Europa/Gibraltar
+pref.timezone.Europe.Guernsey=Europa/Guernsey
+pref.timezone.Europe.Helsinki=Europa/Helsinki
+pref.timezone.Europe.Isle_of_Man=Europa/Isla de Man
+pref.timezone.Europe.Istanbul=Europa/Estambul
+pref.timezone.Europe.Jersey=Europa/Jersey
+pref.timezone.Europe.Kaliningrad=Europa/Kaliningrado
+pref.timezone.Europe.Kiev=Europa/Kiev
+pref.timezone.Europe.Lisbon=Europa/Lisboa
+pref.timezone.Europe.Ljubljana=Europa/Ljubljana
+pref.timezone.Europe.London=Europa/Londres
+pref.timezone.Europe.Luxembourg=Europa/Luxemburgo
+pref.timezone.Europe.Madrid=Europa/Madrid
+pref.timezone.Europe.Malta=Europa/Malta
+pref.timezone.Europe.Mariehamn=Europa/Mariehamn
+pref.timezone.Europe.Minsk=Europa/Minsk
+pref.timezone.Europe.Monaco=Europa/Mónaco
+pref.timezone.Europe.Moscow=Europa/Moscú
+pref.timezone.Europe.Nicosia=Europa/Nicosia
+pref.timezone.Europe.Oslo=Europa/Oslo
+pref.timezone.Europe.Paris=Europa/París
+pref.timezone.Europe.Podgorica=Europa/Podgorica
+pref.timezone.Europe.Prague=Europa/Praga
+pref.timezone.Europe.Riga=Europa/Riga
+pref.timezone.Europe.Rome=Europa/Roma
+pref.timezone.Europe.Samara=Europa/Samara
+pref.timezone.Europe.San_Marino=Europa/San Marino
+pref.timezone.Europe.Sarajevo=Europa/Sarajevo
+pref.timezone.Europe.Simferopol=Europa/Simferopol
+pref.timezone.Europe.Skopje=Europa/Skopje
+pref.timezone.Europe.Sofia=Europa/Sofía
+pref.timezone.Europe.Stockholm=Europa/Stockholm
+pref.timezone.Europe.Tallinn=Europa/Tallinn
+pref.timezone.Europe.Tirane=Europa/Tirane
+pref.timezone.Europe.Uzhgorod=Europa/Uzhgorod
+pref.timezone.Europe.Vaduz=Europa/Vaduz
+pref.timezone.Europe.Vatican=Europa/Vaticano
+pref.timezone.Europe.Vienna=Europa/Viena
+pref.timezone.Europe.Vilnius=Europa/Vilnius
+pref.timezone.Europe.Volgograd=Europa/Volgograd
+pref.timezone.Europe.Warsaw=Europa/Varsovia
+pref.timezone.Europe.Zagreb=Europa/Zagreb
+pref.timezone.Europe.Zaporozhye=Europa/Zaporozhye
+pref.timezone.Europe.Zurich=Europa/Zurich
+pref.timezone.Indian.Antananarivo=Índico/Antananarivo
+pref.timezone.Indian.Chagos=Índico/Chagos
+pref.timezone.Indian.Christmas=Índico/Christmas
+pref.timezone.Indian.Cocos=Índico/Cocos
+pref.timezone.Indian.Comoro=Índico/Comoro
+pref.timezone.Indian.Kerguelen=Índico/Kerguelen
+pref.timezone.Indian.Mahe=Índico/Mahe
+pref.timezone.Indian.Maldives=Índico/Maldivas
+pref.timezone.Indian.Mauritius=Índico/Mauricio
+pref.timezone.Indian.Mayotte=Índico/Mayotte
+pref.timezone.Indian.Reunion=Índico/Reunión
+pref.timezone.Pacific.Apia=Pacífico/Apia
+pref.timezone.Pacific.Auckland=Pacífico/Auckland
+pref.timezone.Pacific.Chatham=Pacífico/Chatham
+pref.timezone.Pacific.Easter=Pacífico/Easter
+pref.timezone.Pacific.Efate=Pacífico/Efate
+pref.timezone.Pacific.Enderbury=Pacífico/Enderbury
+pref.timezone.Pacific.Fakaofo=Pacífico/Fakaofo
+pref.timezone.Pacific.Fiji=Pacífico/Fiji
+pref.timezone.Pacific.Funafuti=Pacífico/Funafuti
+pref.timezone.Pacific.Galapagos=Pacífico/Galápagos
+pref.timezone.Pacific.Gambier=Pacífico/Gambier
+pref.timezone.Pacific.Guadalcanal=Pacífico/Guadalcanal
+pref.timezone.Pacific.Guam=Pacífico/Guam
+pref.timezone.Pacific.Honolulu=Pacífico/Honolulu
+pref.timezone.Pacific.Johnston=Pacífico/Johnston
+pref.timezone.Pacific.Kiritimati=Pacífico/Kiritimati
+pref.timezone.Pacific.Kosrae=Pacífico/Kosrae
+pref.timezone.Pacific.Kwajalein=Pacífico/Kwajalein
+pref.timezone.Pacific.Majuro=Pacífico/Majuro
+pref.timezone.Pacific.Marquesas=Pacífico/Marquesas
+pref.timezone.Pacific.Midway=Pacífico/Midway
+pref.timezone.Pacific.Nauru=Pacífico/Nauru
+pref.timezone.Pacific.Niue=Pacífico/Niue
+pref.timezone.Pacific.Norfolk=Pacífico/Norfolk
+pref.timezone.Pacific.Noumea=Pacífico/Noumea
+pref.timezone.Pacific.Pago_Pago=Pacífico/Pago Pago
+pref.timezone.Pacific.Palau=Pacífico/Palau
+pref.timezone.Pacific.Pitcairn=Pacífico/Pitcairn
+pref.timezone.Pacific.Ponape=Pacífico/Ponape
+pref.timezone.Pacific.Port_Moresby=Pacífico/Puerto Moresby
+pref.timezone.Pacific.Rarotonga=Pacífico/Rarotonga
+pref.timezone.Pacific.Saipan=Pacífico/Saipan
+pref.timezone.Pacific.Tahiti=Pacífico/Tahití
+pref.timezone.Pacific.Tarawa=Pacífico/Tarawa
+pref.timezone.Pacific.Tongatapu=Pacífico/Tongatapu
+pref.timezone.Pacific.Truk=Pacífico/Truk
+pref.timezone.Pacific.Wake=Pacífico/Wake
+pref.timezone.Pacific.Wallis=Pacífico/Wallis
+
+# the following have been missing
+pref.timezone.America.Indiana.Tell_City=América/Indiana/Tell City
+pref.timezone.America.Indiana.Winamac=América/Indiana/Winamac
+pref.timezone.America.Marigot=América/Marigot
+pref.timezone.America.Resolute=América/Resolute
+pref.timezone.America.St_Barthelemy=América/San Bartolomé
+
+# added with 2008d:
+pref.timezone.America.Argentina.San_Luis=América/Argentina/San Luis
+pref.timezone.America.Santarem=América/Santarem
+pref.timezone.Asia.Ho_Chi_Minh=Asia/Ho Chi Minh
+pref.timezone.Asia.Kolkata=Asia/Kolkata
+
+# added with 2008i:
+pref.timezone.America.Argentina.Salta=América/Argentina/Salta
+
+# added with 2010i
+pref.timezone.America.Matamoros=América/Matamoros
+pref.timezone.America.Ojinaga=América/Ojinaga
+pref.timezone.America.Santa_Isabel=América/Santa Isabel
+pref.timezone.Antarctica.Macquarie=Antartida/Macquarie
+pref.timezone.Asia.Novokuznetsk=Asia/Novokuznetsk
+
+#added with 2011b
+pref.timezone.America.Bahia_Banderas=América/Bahía Banderas
+pref.timezone.America.North_Dakota.Beulah=América/Dakota del Norte/Beulah
+pref.timezone.Pacific.Chuuk=Pacífico/Chuuk
+pref.timezone.Pacific.Pohnpei=Pacífico/Pohnpei
+
+#added with 2011n
+pref.timezone.Africa.Juba=África/Juba
+pref.timezone.America.Kralendijk=América/Kralendijk
+pref.timezone.America.Lower_Princes=América/Lower Princes
+pref.timezone.America.Metlakatla=América/Metlakatla
+pref.timezone.America.Sitka=América/Sitka
+pref.timezone.Asia.Hebron=Asia/Hebrón
+
+#added with 2013a
+pref.timezone.America.Creston=América/Creston
+pref.timezone.Asia.Khandyga=Asia/Khandyga
+pref.timezone.Asia.Ust-Nera=Asia/Ust-Nera
+pref.timezone.Europe.Busingen=Europa/Busingen
+
+#added with 2014b
+pref.timezone.Antarctica.Troll=Antártida/Troll
+
+#added with 2014j
+pref.timezone.Asia.Chita=Asia/Chita
+pref.timezone.Asia.Srednekolymsk=Asia/Srednekolymsk
+pref.timezone.Pacific.Bougainville=Pacífico/Bougainville
+
+#added with 2.2015g
+pref.timezone.America.Fort_Nelson=América/Fort Nelson
+
+#added with 2.2016b
+pref.timezone.Europe.Ulyanovsk=Europa/Uliánovsk
+pref.timezone.Europe.Astrakhan=Europa/Astracán
+pref.timezone.Asia.Barnaul=Asia/Barnaul
+
+#added with 2.2016i
+pref.timezone.Asia.Yangon=Asia/Yangon
+pref.timezone.Asia.Tomsk=Asia/Tomsk
+pref.timezone.Asia.Famagusta=Asia/Famagusta
+pref.timezone.Europe.Kirov=Europa/Kirov
+
+#added with 2.2016j
+pref.timezone.Europe.Saratov=Europa/Saratov
+pref.timezone.Asia.Atyrau=Asia/Atyrau
+
+#added with 2.2017b
+pref.timezone.America.Punta_Arenas=América/Punta Arenas
+
+#added with 2.2018i
+pref.timezone.Asia.Qostanay=Asia/Kostanái
+
+#added with 2.2020a
+pref.timezone.America.Nuuk=América/Nuuk
+
+#added with 2.2021c
+pref.timezone.Pacific.Kanton=Pacífico/Kanton
+
+#added with 2.2022b
+pref.timezone.Europe.Kyiv=Europa/Kiev
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..a935c41234
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/lightning/lightning-toolbar.dtd
@@ -0,0 +1,51 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY lightning.toolbar.calendar.name "Barra de herramientas del calendario">
+<!ENTITY lightning.toolbar.calendar.name.accesskey "C">
+<!ENTITY lightning.toolbar.task.name "Barra de herramientas de tareas">
+<!ENTITY lightning.toolbar.task.name.accesskey "T">
+
+<!ENTITY lightning.toolbar.sync.label "Sincronizar">
+<!ENTITY lightning.toolbar.sync.tooltip "Recargar calendarios y sincronizar cambios">
+<!ENTITY lightning.toolbar.delete.label "Eliminar">
+<!ENTITY lightning.toolbar.delete.tooltip "Eliminar eventos o tareas seleccionados">
+<!ENTITY lightning.toolbar.edit.label "Editar">
+<!ENTITY lightning.toolbar.edit.tooltip "Editar tarea o evento seleccionado">
+<!ENTITY lightning.toolbar.gototoday.label "Ir a hoy">
+<!ENTITY lightning.toolbar.gototoday.tooltip "Ir a hoy">
+<!ENTITY lightning.toolbar.print.label "Imprimir">
+<!ENTITY lightning.toolbar.print.tooltip "Imprimir eventos o tareas">
+
+<!-- Mode Toolbar -->
+<!ENTITY lightning.toolbar.calendar.label "Calendario">
+<!ENTITY lightning.toolbar.calendar.tooltip "Pasar a la pestaña del calendario">
+<!ENTITY lightning.toolbar.calendar.accesskey "C">
+<!ENTITY lightning.toolbar.task.label "Tareas">
+<!ENTITY lightning.toolbar.task.tooltip "Pasar a la barra de herramientas de tareas">
+<!ENTITY lightning.toolbar.task.accesskey "T">
+
+<!-- Toolbar write button -->
+<!ENTITY lightning.toolbar.newevent.label "Evento">
+<!ENTITY lightning.toolbar.newevent.tooltip "Crear un nuevo evento">
+<!ENTITY lightning.toolbar.newtask.label "Tarea">
+<!ENTITY lightning.toolbar.newtask.tooltip "Crear una tarea nueva">
+
+<!-- Calendar and Task Mode Toolbar -->
+<!ENTITY lightning.toolbar.day.label "Día">
+<!ENTITY lightning.toolbar.day.accesskey "D">
+<!ENTITY lightning.toolbar.week.label "Semana">
+<!ENTITY lightning.toolbar.week.accesskey "S">
+<!ENTITY lightning.toolbar.multiweek.label "Multisemana">
+<!ENTITY lightning.toolbar.multiweek.accesskey "u">
+<!ENTITY lightning.toolbar.month.label "Mes">
+<!ENTITY lightning.toolbar.month.accesskey "M">
+<!-- LOCALIZATION NOTE: the same as appmenuButton.label and appmenuButton1.tooltip
+ from messenger.dtd -->
+<!ENTITY lightning.toolbar.appmenuButton.label "AppMenu">
+<!ENTITY lightning.toolbar.appmenuButton1.tooltip "Mostrar el menú &brandShortName;">
+<!ENTITY lightning.toolbar.calendarmenu.label "Panel del calendario">
+<!ENTITY lightning.toolbar.calendarmenu.accesskey "P">
+<!ENTITY lightning.toolbar.calendarpane.label "Mostrar panel del calendario">
+<!ENTITY lightning.toolbar.calendarpane.accesskey "P">
diff --git a/l10n-es-ES/calendar/chrome/lightning/lightning.dtd b/l10n-es-ES/calendar/chrome/lightning/lightning.dtd
new file mode 100644
index 0000000000..1fe785ba54
--- /dev/null
+++ b/l10n-es-ES/calendar/chrome/lightning/lightning.dtd
@@ -0,0 +1,114 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- WARNING! This file contains UTF-8 encoded characters!
+ - If this ==> … <== doesn't look like an ellipsis (three dots in a row),
+ - your editor isn't using UTF-8 encoding and may munge up the document!
+ -->
+
+<!-- Tools menu -->
+<!ENTITY lightning.preferencesLabel "Calendario">
+
+<!-- New menu popup in File menu -->
+<!ENTITY lightning.menupopup.new.event.label "Evento…">
+<!ENTITY lightning.menupopup.new.event.accesskey "E">
+<!ENTITY lightning.menupopup.new.task.label "Tarea…">
+<!ENTITY lightning.menupopup.new.task.accesskey "T">
+<!ENTITY lightning.menupopup.new.calendar.label "Calendario…">
+<!ENTITY lightning.menupopup.new.calendar.accesskey "C">
+
+<!-- Open menu popup in File menu -->
+<!ENTITY lightning.menupopup.open.calendar.label "Archivo de calendario…">
+<!ENTITY lightning.menupopup.open.calendar.accesskey "C">
+
+<!-- View Menu -->
+<!ENTITY lightning.menu.view.calendar.label "Calendario">
+<!ENTITY lightning.menu.view.calendar.accesskey "a">
+<!ENTITY lightning.menu.view.tasks.label "Tareas">
+<!ENTITY lightning.menu.view.tasks.accesskey "s">
+
+<!-- Events and Tasks menu -->
+<!ENTITY lightning.menu.eventtask.label "Eventos y tareas">
+<!ENTITY lightning.menu.eventtask.accesskey "n">
+
+<!-- properties dialog, calendar creation wizard -->
+<!-- LOCALIZATON NOTE(lightning.calendarproperties.email.label,
+ lightning.calendarproperties.forceEmailScheduling.label)
+ These strings are used in the calendar wizard and the calendar properties dialog, but are only
+ displayed when setting/using a caldav calendar -->
+<!ENTITY lightning.calendarproperties.email.label "Correo-e:">
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.label "Preferir planificación de correo en el lado del cliente">
+<!-- LOCALIZATON NOTE(lightning.calendarproperties.forceEmailScheduling.tooltiptext1,
+ lightning.calendarproperties.forceEmailScheduling.tooltiptext2)
+ - tooltiptext1 is used in the calendar wizard when setting a new caldav calendar
+ - tooltiptext2 is used in the calendar properties dialog for caldav calendars -->
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.tooltiptext1 "Desde ahora, solo puede activar esto tras configurar este calendario en su diálogo de propiedades si el servidor del calendario maneja planificaciones.">
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.tooltiptext2 "Esta opción solo está disponible si el servidor de calendario gestiona planificaciones. Activarlo le permitirá recurrir a la planificación estándar basada en correo electrónico en lugar de dejarla en manos del servidor.">
+
+<!-- The notifications settings in the properties dialog -->
+<!ENTITY lightning.calendarproperties.notifications.label "Notificaciones">
+<!ENTITY lightning.calendarproperties.globalNotifications.label "Preferencias globales de notificación…">
+
+<!-- iMIP Bar (meeting support) -->
+<!ENTITY lightning.imipbar.btnAccept.label "Aceptar">
+<!ENTITY lightning.imipbar.btnAccept2.tooltiptext "Aceptar invitación al evento">
+<!ENTITY lightning.imipbar.btnAcceptRecurrences.label "Aceptar todo">
+<!ENTITY lightning.imipbar.btnAcceptRecurrences2.tooltiptext "Aceptar invitación a todas las repeticiones del evento ">
+<!ENTITY lightning.imipbar.btnAdd.label "Añadir">
+<!ENTITY lightning.imipbar.btnAdd.tooltiptext "Añadir el evento al calendario">
+<!ENTITY lightning.imipbar.btnDecline.label "Rechazar">
+<!ENTITY lightning.imipbar.btnDecline2.tooltiptext "Declinar invitación al evento">
+<!ENTITY lightning.imipbar.btnDeclineRecurrences.label "Declinar todo">
+<!ENTITY lightning.imipbar.btnDeclineRecurrences2.tooltiptext "Declinar invitación a todas las repeticiones del evento">
+<!ENTITY lightning.imipbar.btnDeclineCounter.label "Rechazar">
+<!ENTITY lightning.imipbar.btnDeclineCounter.tooltiptext "Declinar la contrapropuesta">
+<!ENTITY lightning.imipbar.btnDelete.label "Eliminar">
+<!ENTITY lightning.imipbar.btnDelete.tooltiptext "Eliminar del calendario">
+<!ENTITY lightning.imipbar.btnDetails.label "Detalles…">
+<!ENTITY lightning.imipbar.btnDetails.tooltiptext "Mostrar detalles del evento">
+<!ENTITY lightning.imipbar.btnDoNotShowImipBar.label "No mostrarse estos mensajes">
+<!ENTITY lightning.imipbar.btnGoToCalendar.label "Calendario">
+<!ENTITY lightning.imipbar.btnGoToCalendar.tooltiptext "Ir a la pestaña de calendario">
+<!ENTITY lightning.imipbar.btnMore.label "Más">
+<!ENTITY lightning.imipbar.btnMore.tooltiptext "Pulse para mostrar más opciones">
+<!ENTITY lightning.imipbar.btnReconfirm2.label "Reconfirmar">
+<!ENTITY lightning.imipbar.btnReconfirm.tooltiptext "Envía una reconfirmación al organizador">
+<!ENTITY lightning.imipbar.btnReschedule.label "Replanificar">
+<!ENTITY lightning.imipbar.btnReschedule.tooltiptext "Replanificar el evento">
+<!ENTITY lightning.imipbar.btnSaveCopy.label "Guardar una copia">
+<!ENTITY lightning.imipbar.btnSaveCopy.tooltiptext "Guardar una copia del evento en el calendario con independencia de la respuesta al organizador. Se vaciará la lista de asistentes.">
+<!ENTITY lightning.imipbar.btnTentative.label "Provisional">
+<!ENTITY lightning.imipbar.btnTentative2.tooltiptext "Aceptar invitación al evento provisionalmente">
+<!ENTITY lightning.imipbar.btnTentativeRecurrences.label "Todo provisional">
+<!ENTITY lightning.imipbar.btnTentativeRecurrences2.tooltiptext "Aceptar invitación a todas las repeticiones del evento provisonalmente">
+<!ENTITY lightning.imipbar.btnUpdate.label "Actualizar">
+<!ENTITY lightning.imipbar.btnUpdate.tooltiptext "Actualizar evento en el calendario">
+<!ENTITY lightning.imipbar.description "Este mensaje contiene una invitación a un evento.">
+
+<!ENTITY lightning.imipbar.btnSend.label "Enviar respuesta ahora">
+<!ENTITY lightning.imipbar.btnSend.tooltiptext "Enviar respuesta al organizador">
+<!ENTITY lightning.imipbar.btnSendSeries.tooltiptext "Enviar respuesta para la serie completa al organizador">
+<!ENTITY lightning.imipbar.btnDontSend.label "No enviar respuesta">
+<!ENTITY lightning.imipbar.btnDontSend.tooltiptext "Cambiar su estado de participación sin enviar respuesta al organizador">
+<!ENTITY lightning.imipbar.btnDontSendSeries.tooltiptext "Cambiar su estado de participación para toda la serie sin enviar respuesta al organizador">
+
+<!-- Lightning specific keybindings -->
+<!ENTITY lightning.keys.event.showCalendar.key "C">
+<!ENTITY lightning.keys.event.showTasks.key "D">
+<!ENTITY lightning.keys.event.new "I">
+<!ENTITY lightning.keys.todo.new "D">
+
+<!-- Account Central page -->
+<!ENTITY lightning.acctCentral.newCalendar.label "Crear un nuevo calendario">
+
+<!-- today-pane-specific -->
+<!ENTITY todaypane.showMinimonth.label "Mostrar mini-mes">
+<!ENTITY todaypane.showMinimonth.accesskey "M">
+<!ENTITY todaypane.showMiniday.label "Mostrar mini-día">
+<!ENTITY todaypane.showMiniday.accesskey "d">
+<!ENTITY todaypane.showNone.label "No mostrar nada">
+<!ENTITY todaypane.showNone.accesskey "N">
+<!ENTITY todaypane.showTodayPane.label "Mostrar el panel de hoy">
+<!ENTITY todaypane.showTodayPane.accesskey "o">
+<!ENTITY todaypane.statusButton.label "Panel Para hoy">
diff --git a/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.
diff --git a/l10n-es-ES/calendar/lightning-l10n.js b/l10n-es-ES/calendar/lightning-l10n.js
new file mode 100644
index 0000000000..3d0744489b
--- /dev/null
+++ b/l10n-es-ES/calendar/lightning-l10n.js
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#filter substitution
+
+# the default day to start the week on
+#0=Sunday 1=Monday 2=Tuesday 3=Wednesday 4=Thursday 5=Friday 6=Saturday
+pref("calendar.week.start", 1);
+
+# default days off (not in work week)
+pref("calendar.week.d0sundaysoff", true);
+pref("calendar.week.d1mondaysoff", false);
+pref("calendar.week.d2tuesdaysoff", false);
+pref("calendar.week.d3wednesdaysoff", false);
+pref("calendar.week.d4thursdaysoff", false);
+pref("calendar.week.d5fridaysoff", false);
+pref("calendar.week.d6saturdaysoff", true);
+
+# categories
+pref("calendar.categories.names", "Aniversarios,Clientes,Competencia,Cumpleaños,Días libres,Estado,Favoritos,Festivos,Ideas,Llamadas,Miscelánea,Negocios,Personal,Problemas,Proyectos,Regalos,Reuniones,Seguimiento,Proveedores,Usuarios,Vacaciones,Viajes");