Migrating calendar from 1.9.1
authorMarcelo Poli <mpoli@lt24.zzn.com>
Thu, 06 May 2010 01:41:22 -0300
changeset 252 b671b8f8e80601724f4cba7a4752089552b19ad4
parent 251 c995ffa80bce71425dd8b3c38ec5a0c61c15c285
child 253 63450b73233bc9e0c91004f9281499ff2c0569f1
push id1
push usersledru@mozilla.com
push dateThu, 04 Dec 2014 21:47:06 +0000
Migrating calendar from 1.9.1
calendar/chrome/calendar/calendar-event-dialog.dtd
calendar/chrome/calendar/calendar-event-dialog.properties
calendar/chrome/calendar/calendar.dtd
calendar/chrome/calendar/calendar.properties
calendar/chrome/calendar/menuOverlay.dtd
calendar/chrome/calendar/migration.properties
calendar/chrome/calendar/preferences/advanced.dtd
calendar/chrome/calendar/preferences/connection.dtd
calendar/chrome/calendar/timezones.properties
calendar/chrome/lightning/lightning.dtd
calendar/chrome/lightning/lightning.properties
calendar/chrome/sunbird/aboutDialog.dtd
calendar/chrome/sunbird/menuOverlay.dtd
calendar/chrome/sunbird/sunbird.dtd
calendar/installer/custom.properties
calendar/installer/mui.properties
calendar/installer/override.properties
calendar/updater/updater.ini
--- a/calendar/chrome/calendar/calendar-event-dialog.dtd
+++ b/calendar/chrome/calendar/calendar-event-dialog.dtd
@@ -15,22 +15,23 @@
    -
    - The Initial Developer of the Original Code is
    - OEone Corporation.
    - Portions created by the Initial Developer are Copyright (C) 2006
    - the Initial Developer. All Rights Reserved.
    -
    - Contributor(s):
    -   Cédric Corazza <cedric.corazza@wanadoo.fr>
-   -   Michael Buettner <michael.buettner@sun.com>
+   -   Michael Buettner <michael.buettner@sun.com>
    -   Philipp Kewisch <mozilla@kewis.ch>
    -   Stefan Sitter <ssitter@gmail.com>
    -   Martin Schroeder <mschroeder@mozilla.x-home.org>
    -   Hubert Gajewski <hubert@hubertgajewski.com>, Aviary.pl
    -   Fred Jendrzejewski <fred.jen@web.de>
+   -   Simon Vaillancourt <simon.at.orcl@gmail.com>  
    -
    - Alternatively, the contents of this file may be used under the terms of
    - either the GNU General Public License Version 2 or later (the "GPL"), or
    - the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
    - in which case the provisions of the GPL or the LGPL are applicable instead
    - of those above. If you wish to allow use of your version of this file only
    - under the terms of either the GPL or the LGPL, and not to allow others to
    - use your version of this file under the terms of the MPL, indicate your
@@ -38,51 +39,55 @@
    - and other provisions required by the LGPL or the GPL. If you do not delete
    - the provisions above, a recipient may use your version of this file under
    - the terms of any one of the MPL, the GPL or the LGPL.
    -
    - ***** END LICENSE BLOCK ***** -->
 
 <!ENTITY event.title.label                  "Editar Ítem" >
 
-<!ENTITY newevent.before.label              "antes" >
-<!ENTITY newevent.after.label               "después" >
 
 <!ENTITY newevent.from.label                "De" >
 <!ENTITY newevent.to.label                  "Para" >
 <!ENTITY newevent.attendees.notify.label    "Notificar a los asistentes">
 
 <!ENTITY newevent.status.label              "Estado" >
 <!ENTITY newevent.status.accesskey          "S" >
 <!ENTITY newevent.status.none.label         "No especificado" >
+<!ENTITY newevent.status.none.accesskey       "o" >
 <!ENTITY newevent.status.cancelled.label    "Cancelado" >
+<!ENTITY newevent.status.cancelled.accesskey  "n" >
 <!ENTITY newevent.status.tentative.label    "Tentativo" >
+<!ENTITY newevent.status.tentative.accesskey  "T" >
 <!ENTITY newevent.status.confirmed.label    "Confirmado" >
+<!ENTITY newevent.status.confirmed.accesskey  "C" >
 <!ENTITY newevent.status.needsaction.label  "Necesita atención" >
 <!ENTITY newevent.status.inprogress.label   "En progreso" >
 <!ENTITY newevent.status.completed.label    "Completado" >
 
 <!-- The following entity is for New Task dialog only -->
 <!ENTITY newtodo.percentcomplete.label      "&#37; completado">
    
 <!-- Menubar -->
 <!ENTITY  event.menu.file.label                           "Archivo">
 <!ENTITY  event.menu.file.accesskey                       "A">
 <!ENTITY  event.menu.file.new.label                       "Nuevo">
 <!ENTITY  event.menu.file.new.accesskey                   "N">
 <!ENTITY  event.menu.file.new.event.label                 "Evento">
 <!ENTITY  event.menu.file.new.event.accesskey             "E">
 <!ENTITY  event.menu.file.new.message.label               "Mensaje">
 <!ENTITY  event.menu.file.new.message.accesskey           "M">
-<!ENTITY  event.menu.file.new.address.label               "Tarjeta de libreta de direcciones">
-<!ENTITY  event.menu.file.new.address.accesskey           "C">
+<!ENTITY  event.menu.file.new.contact.label               "Contacto de la libreta de direcciones">
+<!ENTITY  event.menu.file.new.contact.accesskey           "C">
 <!ENTITY  event.menu.file.close.label                     "Cerrar">
 <!ENTITY  event.menu.file.close.accesskey                 "C">
 <!ENTITY  event.menu.file.save.label                      "Guardar">
 <!ENTITY  event.menu.file.save.accesskey                  "G">
+<!ENTITY  event.menu.item.delete.label                    "Borrar…">
+<!ENTITY  event.menu.item.delete.accesskey                "B">
 <!ENTITY  event.menu.file.page.setup.label                "Configuración de página">
 <!ENTITY  event.menu.file.page.setup.accesskey            "u">
 <!ENTITY  event.menu.file.print.label                     "Imprimir">
 <!ENTITY  event.menu.file.print.accesskey                 "p">
 
 <!ENTITY  event.menu.edit.label                           "Editar">
 <!ENTITY  event.menu.edit.accesskey                       "E">
 <!ENTITY  event.menu.edit.undo.label                      "Deshacer">
@@ -161,16 +166,17 @@
 <!ENTITY event.invite.attendees.accesskey                 "I">
 <!ENTITY event.email.attendees.label                      "Redactar correo electrónico a todos los participantes…">
 <!ENTITY event.email.attendees.accesskey                  "T">
 <!ENTITY event.email.tentative.attendees.label            "Redactar correo electrónico a los participantes indecisos…">
 <!ENTITY event.email.tentative.attendees.accesskey        "R">
 
 <!-- Toolbar -->
 <!ENTITY  event.toolbar.save.label                        "Guardar y cerrar">
+<!ENTITY  event.toolbar.delete.label                      "Borrar">
 <!ENTITY  event.toolbar.attendees.label                   "Invitar participantes">
 <!ENTITY  event.toolbar.spellcheck.label                  "Ortografía">
 <!ENTITY  event.toolbar.privacy.label                     "Privacidad">
 <!ENTITY  event.toolbar.attachments.label                 "Adjuntar">
 
 <!-- Main page -->
 <!ENTITY event.title.textbox.label                        "Título:" >
 <!ENTITY event.title.textbox.accesskey                    "T">
@@ -254,37 +260,36 @@
 <!ENTITY event.recurrence.pattern.every.weekday.label "Cada día de semana">
 
 <!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.the.label "El">
-<!ENTITY event.recurrence.repeat.first.label "Primer">
-<!ENTITY event.recurrence.repeat.second.label "Segundo">
-<!ENTITY event.recurrence.repeat.third.label "Tercer">
-<!ENTITY event.recurrence.repeat.fourth.label "Cuarto">
-<!ENTITY event.recurrence.repeat.fifth.label            "Quinto">
-<!ENTITY event.recurrence.repeat.last.label "Último">
+<!ENTITY event.recurrence.monthly.every.label           "Cada">
+<!ENTITY event.recurrence.monthly.first.label           "Primer">
+<!ENTITY event.recurrence.monthly.second.label          "Segundo">
+<!ENTITY event.recurrence.monthly.third.label           "Tercer">
+<!ENTITY event.recurrence.monthly.fourth.label          "Cuarto">
+<!ENTITY event.recurrence.monthly.fifth.label           "Quinto">
+<!ENTITY event.recurrence.monthly.last.label            "Último">
 <!ENTITY event.recurrence.pattern.monthly.week.1.label  "Domingo" >
 <!ENTITY event.recurrence.pattern.monthly.week.2.label  "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 día(s)">
+<!ENTITY event.recurrence.repeat.recur.label            "Repetir día(s)">
 
-<!ENTITY event.recurrence.every.label "Cada:">
+<!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.every.weekday.label "Cada" >
 
 <!-- LOCALIZATON NOTE
      Some languages use a preposition when describing dates:
      Portuguese: 6 de Setembro
      English: 6 [of] September
      event.recurrence.pattern.yearly.of.label is "of" in
      Edit recurrence window -> Recurrence pattern -> Repeat yearly
 -->
@@ -297,22 +302,23 @@
 <!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       "Setiembre" >
 <!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.pattern.yearly.first.label         "Primero">
-<!ENTITY event.recurrence.pattern.yearly.second.label        "Segundo">
-<!ENTITY event.recurrence.pattern.yearly.third.label         "Tercero">
-<!ENTITY event.recurrence.pattern.yearly.fourth.label        "Cuarto">
-<!ENTITY event.recurrence.pattern.yearly.fifth.label         "Quinto">
-<!ENTITY event.recurrence.pattern.yearly.last.label          "Último">
+<!ENTITY event.recurrence.yearly.every.label                 "Cada">
+<!ENTITY event.recurrence.yearly.first.label                 "Primero">
+<!ENTITY event.recurrence.yearly.second.label                "Segundo">
+<!ENTITY event.recurrence.yearly.third.label                 "Tercero">
+<!ENTITY event.recurrence.yearly.fourth.label                "Cuarto">
+<!ENTITY event.recurrence.yearly.fifth.label                 "Quinto">
+<!ENTITY event.recurrence.yearly.last.label                  "Último">
 <!ENTITY event.recurrence.pattern.yearly.week.1.label        "Domingo" >
 <!ENTITY event.recurrence.pattern.yearly.week.2.label        "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.of.label                           "de" >
@@ -331,63 +337,47 @@
 
 <!ENTITY event.recurrence.range.label "Rango de recurrencia">
 <!ENTITY event.recurrence.forever.label "Sin día 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 previa">
 
-<!-- Reminder dialog -->
-
-<!ENTITY alarm.units.minutes                "minutos" >
-<!ENTITY alarm.units.hours                  "horas" >
-<!ENTITY alarm.units.days                   "días" >
-
-<!ENTITY reminder.title.label                           "Recordatorio personalizado">
-<!ENTITY reminder.dialogtitle.label                     "Establecer recordatorios">
-<!ENTITY reminder.reminderDetails.label                 "Detalles de recordatorios">
-<!ENTITY reminder.action.label                          "Seleccionar una acción recordatoria">
-<!ENTITY reminder.action.alert.label                    "Mostrar una alerta">
-<!ENTITY reminder.action.email.label                    "Enviar un correo electrónico">
-<!ENTITY reminder.new.label                             "Nuevo">
-<!ENTITY reminder.delete.label                          "Borrar">
-<!ENTITY reminder.relation.start.label                  "el evento se inicie">
-<!ENTITY reminder.relation.end.label                    "el evento finalice">
-<!ENTITY reminder.add.label                             "Agregar">
-<!ENTITY reminder.add.accesskey                         "A">
-<!ENTITY reminder.remove.label                          "Eliminar">
-<!ENTITY reminder.remove.accesskey                      "r">
-
 <!-- Attendees dialog -->
 <!ENTITY invite.title.label              "Invitar participantes">
 <!ENTITY event.organizer.label "Organizador">   
 <!ENTITY event.freebusy.suggest.slot     "Suggest time slot:">
 <!ENTITY event.freebusy.next.slot "Next slot ">
 <!ENTITY event.freebusy.previous.slot " Previous slot">
 <!ENTITY event.freebusy.zoom             "Zoom:">
 <!ENTITY event.freebusy.plus "Hora siguiente">
 <!ENTITY event.freebusy.minus "Hora previa">
 <!ENTITY event.freebusy.legend.free      "Libre" >
 <!ENTITY event.freebusy.legend.busy      "Ocupado" >
+<!ENTITY event.freebusy.legend.busy_tentative   "Tentativo" >
+<!ENTITY event.freebusy.legend.busy_unavailable "Fuera de la oficina" >
 <!ENTITY event.freebusy.legend.unknown   "Sin información" >
+<!ENTITY event.attendee.role.required           "Asistencia obligatoria">
+<!ENTITY event.attendee.role.optional           "Asistencia opcional">
+<!ENTITY event.attendee.role.chair              "Coordinador">
 
 <!-- Timezone dialog -->
 <!ENTITY timezone.title.label            "Especifique el huso horario">
 
 <!-- Read-Only dialog -->
 <!ENTITY read.only.general.label         "General">
 <!ENTITY read.only.title.label           "Título:">
 <!ENTITY read.only.repeat.label          "Repetir:">
 <!ENTITY read.only.location.label        "Dirección:">
 <!ENTITY read.only.category.label        "Categoría:">
 <!ENTITY read.only.organizer.label       "Organizador:">
 <!ENTITY read.only.reply.label           "Responder:">
 <!ENTITY read.only.accept.label          "Participaré">
 <!ENTITY read.only.decline.label         "No participaré">
-<!ENTITY read.only.tentative.label       "Podría participar">
+<!ENTITY read.only.tentative.label       "Podría participar">
 <!ENTITY read.only.needs.action.label    "Confirmaré después">
 <!ENTITY read.only.reminder.label        "Recordatorio:">
 <!ENTITY read.only.attendees.label       "Participantes">
 <!ENTITY read.only.description.label     "Descripción">
 <!ENTITY read.only.documents.label       "Documentos">
 <!ENTITY read.only.link.label            "Enlace relacionado">
 
--- a/calendar/chrome/calendar/calendar-event-dialog.properties
+++ b/calendar/chrome/calendar/calendar-event-dialog.properties
@@ -15,141 +15,333 @@
 #
 # The Initial Developer of the Original Code is Sun Microsystems.
 # Portions created by the Initial Developer are Copyright (C) 2006
 # the Initial Developer. All Rights Reserved.
 #
 # Contributor(s):
 #   Michael Büttner <michael.buettner@sun.com>
 #   Philipp Kewisch <mozilla@kewis.ch>
-#   Hubert Gajewski <hubert@hubertgajewski.com>, Aviary.pl
+#   Hubert Gajewski <hubert@hubertgajewski.com>, Aviary.pl
 #   Martin Schoeder <mschroeder@mozilla.x-home.org>
 #
 # Alternatively, the contents of this file may be used under the terms of
 # either the GNU General Public License Version 2 or later (the "GPL"), or
 # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 # in which case the provisions of the GPL or the LGPL are applicable instead
 # of those above. If you wish to allow use of your version of this file only
 # under the terms of either the GPL or the LGPL, and not to allow others to
 # use your version of this file under the terms of the MPL, indicate your
 # decision by deleting the provisions above and replace them with the notice
 # and other provisions required by the GPL or the LGPL. If you do not delete
 # the provisions above, a recipient may use your version of this file under
 # the terms of any one of the MPL, the GPL or the LGPL.
 #
 # ***** END LICENSE BLOCK *****
 
-repeatDetailsRuleDaily1=cada día
-repeatDetailsRuleDaily2=cada otro día
-repeatDetailsRuleDaily3=cada %1$S días
-repeatDetailsRuleDaily4=cada día de semana
+# LOCALIZATION NOTE (dailyEveryNth):
+# Edit recurrence window -> Recurrence pattern -> Daily repeat rules
+# #1 - number
+# e.g. "every 4 days"
+dailyEveryNth=cada día;cada #1 días
+repeatDetailsRuleDaily4=cada día de la semana
+
+# LOCALIZATION NOTE (weeklyNthOnNounclass...)
+# Edit recurrence window -> Recurrence pattern -> Weekly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S) 
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values 
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - weekday (one or more)
+# #2 - week interval
+# e.g. "every 3 weeks on Tuesday, Wednesday and Thursday
+weeklyNthOnNounclass1=cada %1$S;cada #2 semanas los %1$S
+weeklyNthOnNounclass2=cada %1$S;cada #2 semanas los %1$S
+
+# LOCALIZATION NOTE (weeklyNthOn)
+# Edit recurrence window -> Recurrence pattern -> Weekly repeat rules
+# #1 - interval
+# e.g. "every 5 weeks"
+weeklyEveryNth=cada semana;cada #1 semanas
 
-repeatDetailsRuleWeekly1=cada %1$S
-repeatDetailsRuleWeekly2=cada otra semana de %1$S
-repeatDetailsRuleWeekly3=cada %1$S semanas de %2$S
-repeatDetailsRuleWeekly4=cada semana
-repeatDetailsRuleWeekly5=cada otra semana
-repeatDetailsRuleWeekly6=cada %1$S semanas
+# LOCALIZATION NOTE ('repeatDetailsDay...' and 'repeatDetailsDay...Nounclass'):
+# Week days names and week days noun classes (feminine/masculine grammatical
+# gender) for languages that need different localization when weekdays nouns
+# have different noun classes (genders).
+# For every weekday, in 'repeatDetailsDay...Nounclass' strings write:
+#   "nounclass1"     for languages with grammatical genders -> MASCULINE gender;
+#                    for languages with noun classes -> a noun class;
+#                    for languages without noun classes or grammatical gender.
+#
+#   "nounclass2"     for languages with grammatical genders -> FEMININE gender;
+#                    for languages with noun classes -> a different noun class.
+#
+#   "nounclass3", "nounclass4" and so on for languages that need more than two 
+#                    noun classes for weekdays. In this case add corresponding
+#                    rule string with "Nounclass..." suffix and ordinal string
+#                    "repeatOrdinalxNounclass..."
+# Will be used rule strings with "Nounclass..." suffix corresponding to the 
+# following strings if there is a weekday in the rule string.
+repeatDetailsDay1=Domingo
+repeatDetailsDay1Nounclass=nounclass1
+repeatDetailsDay2=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
 
-repeatDetailsDay1=Domingo
-repeatDetailsDay2=Lunes
-repeatDetailsDay3=Martes
-repeatDetailsDay4=Miércoles
-repeatDetailsDay5=Jueves
-repeatDetailsDay6=Viernes
-repeatDetailsDay7=Sábado
+# LOCALIZATION NOTE (repeatDetailsAnd)
+# Used to show a number of weekdays in a list
+# i.e. "Sunday, Monday, Tuesday " + and + " Wednesday"
 repeatDetailsAnd=y
 
-repeatDetailsRuleMonthly=el %1$S %2$S de cada mes
-repeatDetailsRuleMonthly2=el %1$S %2$S de cada otro mes
-repeatDetailsRuleMonthly3=el %1$S %2$S de cada %3$S mes
-repeatDetailsRuleMonthly4=día %1$S de cada mes
-repeatDetailsRuleMonthly5=día %1$S de cada otro mes
-repeatDetailsRuleMonthly6=día %1$S de cada %2$S mes
-repeatDetailsRuleMonthly7=el último día del mes
-repeatDetailsRuleMonthly8=el último día de cada otro mes
-repeatDetailsRuleMonthly9=el último día de cada %1$S mes
+# LOCALIZATION NOTE (monthlyNthOfEveryNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# Translate these strings according to noun class/gender of weekday (%2$S) 
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values 
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings. 
+# %1$S - ordinal with article and noun class/gender corresponding to weekday
+# %2$S - weekday
+# #3 - interval
+# i.e. "the FIRST MONDAY of every 3 months"
+monthlyNthOfEveryNounclass1=%1$S %2$S de cada mes;%1$S %2$S de cada #3 meses
+monthlyNthOfEveryNounclass2=%1$S %2$S de cada mes;%1$S %2$S de cada #3 meses
+
+# LOCALIZATION NOTE (monthlyEveryOfEveryNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S) 
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values 
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - weekday
+# #2 - interval
+# i.e. "every MONDAY of every 3 months" 
+#  more specific: every monday of January, April, July, October
+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
+
+# LOCALIZATION NOTE (monthlyDayOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - day of month
+# #2 - month interval
+# e.g. "day 3 of every 2 months"
+monthlyDayOfNth=el día %1$S de cada mes;el día %1$S de cada #2 meses
+
+# LOCALIZATION NOTE (monthlyLastDayOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - day of month
+# #2 - month interval
+# e.g. "the last day of every 3 months"
+monthlyLastDayOfNth=el último día del mes; el último día de cada #1 meses
+
+# LOCALIZATION NOTE (monthlyEveryDayOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# #2 - month interval
+# e.g. "every day of the month every 4 months"
+monthlyEveryDayOfNth=cada día de cada mes;cada día del mes cada #2 meses
 
-repeatDetailsOrdinal1=primer
-repeatDetailsOrdinal2=segundo
-repeatDetailsOrdinal3=tercer
-repeatDetailsOrdinal4=cuarto
-repeatDetailsOrdinal5=quinto
-repeatDetailsOrdinal-1=último
+# LOCALIZATION NOTE (repeatOrdinal...Nounclass...):
+# Ordinal numbers nouns for every noun class (grammatical genders) of weekdays
+# considered in 'repeatDetailsDayxNounclass' strings. For languages that need
+# localization according to genders or noun classes.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add 'repeatOrdinal...Nounclass' strings with suffix 3, 4 and so on for
+# languages with more than two noun classes for weekdays. In this case 
+# must be added corresponding rule strings with 'Nounclass...' suffix and 
+# corresponding values "nounclass..." must be written in
+# 'repeatDetailsDayxNounclass' strings.
+repeatOrdinal1Nounclass1=el primer
+repeatOrdinal2Nounclass1=el segundo
+repeatOrdinal3Nounclass1=el tercer
+repeatOrdinal4Nounclass1=el cuarto
+repeatOrdinal5Nounclass1=el quinto
+repeatOrdinal-1Nounclass1=el último
+repeatOrdinal1Nounclass2=la primera
+repeatOrdinal2Nounclass2=la segunda
+repeatOrdinal3Nounclass2=la tercera
+repeatOrdinal4Nounclass2=la cuarta
+repeatOrdinal5Nounclass2=la quinta
+repeatOrdinal-1Nounclass2=la última
+
+# LOCALIZATION NOTE (yearlyNthOn):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# %1$S - month
+# %2$S - day of month
+# #3 - yearly interval
+# e.g. "every 3 years on December 14"
+yearlyNthOn=cada %1$S %2$S;cada #3 años el %2$S de %1$S
 
-repeatDetailsRuleYearly1=cada %1$S %2$S
-repeatDetailsRuleYearly2=cada otro año el %1$S %2$S
-repeatDetailsRuleYearly3=cada %3$S años el %1$S %2$S
-repeatDetailsRuleYearly4=el %1$S %2$S de %3$S
-repeatDetailsRuleYearly5=cada otro año el %1$S %2$S de %3$S
-repeatDetailsRuleYearly6=cada %4$S años el %1$S %2$S de %3$S
+# LOCALIZATION NOTE (yearlyNthOnNthOfNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# Translate these strings according to noun class/gender of weekday (%2$S) 
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values 
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - ordinal with article and noun class/gender corresponding to weekday
+# %2$S - weekday
+# %3$S - month
+# #4 - yearly interval
+# e.g. "the second Monday of every March"
+# e.g  "every 3 years the second Monday of March"
+yearlyNthOnNthOfNounclass1=%1$S %2$S de cada %3$S;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
+
+# LOCALIZATION NOTE (yearlyOnEveryNthOfNthNounclass1):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S) 
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values 
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - weekday
+# %2$S - month
+# #3 - yearly interval
+# e.g. "every Thursday of March"
+# e.g  "every 3 years on every Thursday of March"
+yearlyOnEveryNthOfNthNounclass1=cada %1$S de %2$S;cada #3 años en cada %1$S de %2$S
+yearlyOnEveryNthOfNthNounclass2=cada %1$S de %2$S;cada #3 años en cada %1$S de %2$S
 
 repeatDetailsMonth1=Enero
 repeatDetailsMonth2=Febrero
 repeatDetailsMonth3=Marzo
 repeatDetailsMonth4=Abril
 repeatDetailsMonth5=Mayo
 repeatDetailsMonth6=Junio
 repeatDetailsMonth7=Julio
 repeatDetailsMonth8=Agosto
 repeatDetailsMonth9=Setiembre
 repeatDetailsMonth10=Octubre
 repeatDetailsMonth11=Noviembre
 repeatDetailsMonth12=Diciembre
 
-repeatDetailsCount=Ocurre %1$S\nefectivo %2$S por %3$S veces\nde %4$S a %5$S.
-repeatDetailsCountAllDay=Ocurre %1$S\nefectivo %2$S por %3$S veces.
-repeatDetailsUntil=Ocurre %1$S\nefectivo %2$S hasta %3$S\nde %4$S a %5$S.
+# LOCALIZATION NOTE (repeatCount):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - repeatDetailsRule...(see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event start time (e.g. hh:mm (PM/AM))
+# %4$S - event end time (e.g. hh:mm (PM/AM))
+# #5 - event occurence times: number
+# e.g. with repeatDetailsRuleMonthly3:
+# "Occurs the first Sunday of every 3 month
+#  only on 1/1/2009"
+#  from 5:00 PM to 6:00 PM"
+# "Occurs the first Sunday of every 3 month
+#  effective 1/1/2009 for 5 times
+#  from 5:00 PM to 6:00 PM"
+repeatCount=Ocurre %1$S\nefectivo %2$S por #5 vez\ndesde %3$S a %4$S.;Ocurre %1$S\nefectivo %2$S por #5 veces\ndesde %3$S a %4$S.
+
+# LOCALIZATION NOTE (repeatCountAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - repeatDetailsRule...(see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# #3 - event occurence times: number
+# e.g. with repeatDetailsRuleMonthly3:
+# "Occurs the first Sunday of every 3 month
+#  only on 1/1/2009"
+# "Occurs the first Sunday of every 3 month
+#  effective 1/1/2009 for 5 times"
+repeatCountAllDay=Ocurre %1$S\nefectivo %2$S por #3 vez.;Ocurre %1$S\nefectivo %2$S por #3 vez.
+
+# LOCALIZATION NOTE (repeatDetailsUntil):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - repeatDetailsRule...(see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event end date (e.g. mm/gg/yyyy)
+# %4$S - event start time (e.g. hh:mm (PM/AM))
+# %5$S - event end time (e.g. hh:mm (PM/AM))
+# e.g. with repeatDetailsRuleWeekly2:
+# "Occurs every other week on Sunday and Friday
+#  effective 1/1/2009 until 1/1/2010 
+#  from 5:00 PM to 6:00 PM"
+repeatDetailsUntil=Ocurre %1$S\nefectivo %2$S hasta %3$S\ndesde %4$S a %5$S.
+
+# LOCALIZATION NOTE (repeatDetailsUntilAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - repeatDetailsRule...(see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event end date (e.g. mm/gg/yyyy)
+# e.g. with repeatDetailsRuleMonthly6 and all day event:
+# "Occurs day 3 of every 5 month
+#  effective 1/1/2009 until 1/1/2010"
 repeatDetailsUntilAllDay=Ocurre %1$S\nefectivo %2$S hasta %3$S.
-repeatDetailsInfinite=Ocurre %1$S\nefectivo %2$S\nde %3$S a %4$S.
+
+# LOCALIZATION NOTE (repeatDetailsInfinite):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - repeatDetailsRule...(see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event start time (e.g. hh:mm (PM/AM))
+# %4$S - event end time (e.g. hh:mm (PM/AM))
+# e.g. with repeatDetailsRuleMonthly6:
+# "Occurs day 3 of every 5 month
+#  effective 1/1/2009
+#  from 5:00 PM to 6:00 PM"
+repeatDetailsInfinite=Ocurre %1$S\nefectivo %2$S\ndesde %3$S a %4$S.
+
+# LOCALIZATION NOTE (repeatDetailsInfiniteAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - repeatDetailsRule...(see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# e.g. with repeatDetailsRuleMonthly6 and all day event:
+# "Occurs day 3 of every 5 month
+#  effective 1/1/2009"
 repeatDetailsInfiniteAllDay=Ocurre %1$S\nefectivo %2$S.
 
-reminderCustomTitle=%1$S %2$S %3$S %4$S
-reminderTitleAtStartEvent=El momento en que comience el evento
-reminderTitleAtStartTask=El momento en que comience la tarea
-reminderTitleAtEndEvent=El momento en que finalice el evento
-reminderTitleAtEndTask=El momento en que finalice la tarea
-reminderCustomUnitMinute=minuto
-reminderCustomUnitMinutes=minutos
-reminderCustomUnitHour=hora
-reminderCustomUnitHours=horas
-reminderCustomUnitDay=día
-reminderCustomUnitDays=días
-reminderCustomRelationBefore=antes
-reminderCustomRelationAfter=después
-reminderCustomOriginBeginEvent=que el evento se inicie
-reminderCustomOriginEndEvent=que el evento finalice
-reminderCustomOriginBeginTask=la tarea comience
-reminderCustomOriginEndTask=la tarea finalice
-reminderErrorMaxCountReachedEvent=El calendario seleccionado tiene una limitación de %1$S recordatorios por evento.
-reminderErrorMaxCountReachedTask=El calendario seleccionado tiene una limitación de %1$S recordatorios por tarea.
+# LOCALIZATION NOTE (ruleTooComplex):
+# This string is shown in the reminder details area if our code can't handle the
+# complexity of the recurrence rule yet.
+ruleTooComplex=Haga clic aquí para más detalles
+
 newEvent=Nuevo evento
 newTask=Nueva tarea
 
 emailSubjectReply=Re: %1$S
 
 # Link Location Dialog
 specifyLinkLocation=Especifique la dirección de enlace
 enterLinkLocation=Ingrese una página web o ubicación del documento.
 
 summaryDueTaskLabel=Vencimiento:
 
-
 # Attach File Dialog
 selectAFile=Seleccione archivo(s) a adjuntar
 removeCalendarsTitle=Eliminar adjuntos
 removeCalendarsText=¿Desea eliminar %1$S adjunto(s)?
 
 # Recurrence Dialog Widget Order
 # LOCALIZATION NOTE: You can change the order of below params
-# Edit recurrence window -> Recurrence pattern -> Repeat montly
-# %1$S - ordinal, %2$S - weekday 
+# Edit recurrence window -> Recurrence pattern -> Repeat monthly
+# %1$S - ordinal, %2$S - weekday
+# e.g. "First Saturday"
 monthlyOrder=%1$S %2$S
 
 # Edit recurrence window -> Recurrence pattern -> Repeat yearly
-# %1$S - day of month, %2$S - month
-yearlyOrder=%1$S %2$S
+# %1$S - day of month, %2$S - of, %3$S - month
+# e.g. "6 [of] September"
+# If you don't need %2$S in your locale - please put this on the third place.
+yearlyOrder=%1$S %2$S %3$S
 
 # Edit recurrence window -> Recurrence pattern -> Repeat yearly
 # %1$S - ordinal, %2$S - weekday, %3$S  - of, %4$S - month
+# e.g. "First Saturday of September"
 # If you don't need %3$S in your locale - please put this on the third place.
 yearlyOrder2=%1$S %2$S %3$S %4$S
-
--- a/calendar/chrome/calendar/calendar.dtd
+++ b/calendar/chrome/calendar/calendar.dtd
@@ -46,19 +46,18 @@
 <!ENTITY calendar.calendar.label     "Calendario">
 <!ENTITY calendar.calendar.accesskey "C">
 
 <!ENTITY calendar.dayView.key                  "1" >
 <!ENTITY calendar.weekView.key                 "2" >
 <!ENTITY calendar.multiweekView.key            "3" >
 <!ENTITY calendar.monthView.key                "4" >
 
+<!ENTITY calendar.newevent.button.tooltip         "Crear un nuevo evento" >
 <!ENTITY calendar.newtask.button.tooltip          "Crear una nueva tarea" >
-<!ENTITY calendar.newevent.button.tooltip         "Crear un nuevo evento" >
-<!ENTITY calendar.edit.button.tooltip             "Editar evento seleccionado" >
 
 <!ENTITY calendar.unifinder.todoitems.label       "Tareas" >
 <!ENTITY calendar.unifinder.showcompletedtodos.label "Mostrar tareas completas">
 
 <!ENTITY calendar.today.button.label       "Hoy">
 <!ENTITY calendar.tomorrow.button.label       "Mañana">
 <!ENTITY calendar.soon.button.label           "Pronto">
 
@@ -83,50 +82,42 @@
 <!ENTITY calendar.unifinder.tree.location.label      "Dirección">
 <!ENTITY calendar.unifinder.tree.status.label        "Estado">
 <!ENTITY calendar.unifinder.tree.calendarname.label  "Nombre Calendario">
 <!ENTITY calendar.unifinder.tree.duration.label      "Vence">
 <!ENTITY calendar.unifinder.close.tooltip            "Cierra el buscador de eventos y la lista de eventos">
 
 <!ENTITY calendar.today.button.tooltip            "Ir a hoy" >
 <!ENTITY calendar.todaypane.button.tooltip        "Mostrar vista de hoy" >
-<!ENTITY calendar.unifinder.button.tooltip        "Buscar y listar eventos" >
 
 <!ENTITY calendar.day.button.tooltip            "Cambiar a vista por día" >
 <!ENTITY calendar.week.button.tooltip           "Cambiar a vista por semana" >
 <!ENTITY calendar.month.button.tooltip          "Cambiar a vista por mes" >
 <!ENTITY calendar.multiweek.button.tooltip      "Cambiar a vista multisemana" >
 
 <!ENTITY calendar.nextday.button.tooltip        "Próximo día" >
 <!ENTITY calendar.prevday.button.tooltip        "Día anterior" >
 <!ENTITY calendar.nextweek.button.tooltip       "Próxima semana" >
 <!ENTITY calendar.prevweek.button.tooltip       "Semana anterior" >
 <!ENTITY calendar.nextmonth.button.tooltip      "Próximo mes" >
 <!ENTITY calendar.prevmonth.button.tooltip      "Mes anterior" >
 
-<!ENTITY calendar.newtask.button.label          "Nueva tarea" >
+<!ENTITY calendar.navigation.nextday.tooltip    "Un día después" >
+<!ENTITY calendar.navigation.prevday.tooltip    "Un día atrás" >
+<!ENTITY calendar.navigation.nextweek.tooltip   "Una semana después" >
+<!ENTITY calendar.navigation.prevweek.tooltip   "Una semana atrás" >
+<!ENTITY calendar.navigation.nextmonth.tooltip  "Un mes después" >
+<!ENTITY calendar.navigation.prevmonth.tooltip  "Un mes atrás" >
+
 <!ENTITY calendar.newevent.button.label         "Nuevo evento" >
-<!ENTITY calendar.edit.button.label             "Editar" >
-
-
+<!ENTITY calendar.newtask.button.label          "Nueva tarea" >
 <!ENTITY calendar.print.button.label            "Imprimir" >
 
-<!ENTITY calendar.import.button.tooltip            "Importar eventos desde un archivo local" >
-<!ENTITY calendar.export.button.tooltip            "Exportar eventos a un archivo local" >
-<!ENTITY calendar.subscribe.button.tooltip         "Suscribirse a un calendario en una máquina remota" >
-<!ENTITY calendar.publish.button.tooltip           "Publicar eventos a una máquina remota" >
-
 <!ENTITY calendar.export.calendar                "Exportar calendario…" >
 
-<!ENTITY calendar.import.button.label              "Importar" >
-<!ENTITY calendar.export.button.label              "Exportar" >
-<!ENTITY calendar.subscribe.button.label           "Suscribir" >
-<!ENTITY calendar.publish.button.label             "Publicar" >
-<!ENTITY calendar.unifinder.button.label           "Buscar eventos" >
-
 <!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    "Solamente días laborales" >
 <!ENTITY calendar.onlyworkday.checkbox.accesskey  "r" >
 <!ENTITY calendar.displaytodos.checkbox.label   "Tareas en vista" >
 <!ENTITY calendar.displaytodos.checkbox.accesskey "v" >
@@ -151,25 +142,25 @@
 <!ENTITY calendar.task.filter.notstarted.accesskey  "i">
 <!ENTITY calendar.task.filter.overdue.label         "Tareas vencidas">
 <!ENTITY calendar.task.filter.overdue.accesskey     "v">
 <!ENTITY calendar.task.filter.completed.label       "Tareas completas">
 <!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.details.title.label           "Título:">
-<!ENTITY calendar.task.details.organizer.label       "De:">
-<!ENTITY calendar.task.details.priority2.label       "Importancia:">
-<!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.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.category.button.tooltip  "Categorizar tareas">
 <!ENTITY calendar.task.complete.button.tooltip  "Marcar tareas seleccionadas como completas">
 <!ENTITY calendar.task.priority.button.tooltip  "Cambiar la prioridad">
 
 <!-- Statusbar -->
 <!ENTITY statusText.label            "Documento: Hecho">
 
@@ -308,16 +299,19 @@
 <!ENTITY calendarproperties.wcap.label     "Sun Java System Calendar Server (WCAP)">
 <!ENTITY calendarproperties.format.label   "Formato:">
 <!ENTITY calendarproperties.location.label "Dirección:">
 <!ENTITY calendarproperties.name.label     "Nombre:">
 <!ENTITY calendarproperties.readonly.label "Sólo lectura">
 <!ENTITY calendarproperties.firealarms.label "Mostrar alarmas">
 <!ENTITY calendarproperties.cache.label    "Caché (EXPERIMENTAL, requiere reinicio)">
 <!ENTITY calendarproperties.enabled.label "Cambiar a este calendario">
+<!ENTITY calendarproperties.forceDisabled.label            "No pudo encontrase el proveedor de este calendario. Ésto pasa a menudo si ha deshabilitado o desinstalado ciertos agregados.">
+<!ENTITY calendarproperties.unsubscribe.label              "Desuscribir">
+<!ENTITY calendarproperties.unsubscribe.accesskey          "U">
 
 <!-- Calendar Publish Dialog -->
 <!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.myservidor.com/webdav/prueba.ics">
@@ -334,11 +328,11 @@
 <!ENTITY calendar.print.selected.label "Eventos seleccionados">
 <!ENTITY calendar.print.custom.label "Rango de fechas a elegir:">
 <!ENTITY calendar.print.from.label "De:">
 <!ENTITY calendar.print.to.label "A:">
 <!ENTITY calendar.print.settingsGroup.label "Opciones de impresión">
 
 <!-- Error reporting -->
 <!ENTITY calendar.error.detail "Detalles…">
-<!ENTITY calendar.error.number "Número de error:">
+<!ENTITY calendar.error.code "Código de error:">
 <!ENTITY calendar.error.description "Descripción:">
 <!ENTITY calendar.error.title "Un error ha ocurrido">
--- a/calendar/chrome/calendar/calendar.properties
+++ b/calendar/chrome/calendar/calendar.properties
@@ -133,22 +133,22 @@ None = Nada
 # Error strings
 ## @name UID_NOT_FOUND
 ## @loc none
 tooNewSchemaErrorBoxTitle=La información de su calendario no es compatible con esta versión de  %1$S
 
 # LOCALIZATION NOTE (tooNewSchemaErrorBoxTextLightning):
 #    %1$S will be replaced with the name of the calendar application e.g. 'Lightning'
 #    %2$S will be replaced with the name of the host application 'calendar'
-tooNewSchemaErrorBoxTextLightning=La información del calendario en su perfíl fue actualizada por una versión nueva de %1$S, y continuar causará probablemente la pérdida de datos. %1$S será deshabilitada y se reiniciará %2$S.
+tooNewSchemaErrorBoxTextLightning=La información del calendario en su perfil fue actualizada por una versión nueva de %1$S, y continuar causará probablemente la pérdida de datos. %1$S será deshabilitada y se reiniciará %2$S.
 
 # LOCALIZATION NOTE (tooNewSchemaErrorBoxTextSunbird):
 #    %1$S will be replaced with the name of the calendar application e.g. 'Sunbird'
 #    %2$S will be replaced with the name of the host application 'calendar'
-tooNewSchemaErrorBoxTextSunbird=La información del calendario en su perfíl fue actualizada por una versión nueva de %1$S, y continuar causará probablemente la pérdida de datos. %1$S será cerrado.
+tooNewSchemaErrorBoxTextSunbird=La información del calendario en su perfil fue actualizada por una versión nueva de %1$S, y continuar causará probablemente la pérdida de datos. %1$S será cerrado.
 
 # LOCALIZATION NOTE (tooNewSchemaButtonRestart):
 #    %1$S will be replaced with the name of the host application 'Calendar'
 tooNewSchemaButtonRestart=Reiniciar %1$S
 
 # LOCALIZATION NOTE (tooNewSchemaButtonQuit):
 #    %1$S will be replaced with the name of the host application 'Calendar'
 tooNewSchemaButtonQuit=Salir de %1$S
@@ -461,56 +461,43 @@ taskDetailsStartDate=Fecha de inicio:
 taskDetailsEndDate=Fecha de fin:
 
 # 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 (longCalendarWeek):
+# 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
-longCalendarWeek=Semana calendario: %1$S
+singleLongCalendarWeek=Semana 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 calendario %1$S-%2$S
 
-# LOCALIZATION NOTE (shortCalendarWeek):
+# 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
-shortCalendarWeek=SC: %1$S
+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=SsC: %1$S-%2$S
 
-oneDayBack=Un día atrás
-oneDayForward=Un día después
-oneMonthBack=Un mes atrás
-oneMonthForward=Un mes después
-oneWeekBack=Una semana atrás
-oneWeekForward=Una semana después
-gotoToday=Ir a hoy
-
 # Task tree, "Due In" column.
-dueInDays1=1 día
-# Used for "2 days"
-dueInDays2=2 días
-# Used for more than 2 days
-dueInDaysN=%1$S días
-
-dueInHours1=1 hora
-dueInHours2=2 horas
-dueInHoursN=%1$S horas
+# LOCALIZATION NOTE (dueInDays, dueInHours): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/docs/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
 
@@ -554,14 +541,36 @@ datetimeIntervalOnSameDay=%1$S %2$S – %3$S
 # 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 o vencimiento
+# 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=fecha de inicio %1$S %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=fecha de vencimiento %1$S %2$S
+
 deleteTaskLabel=Borrar tarea
+deleteTaskMessage=¿Está seguro de querer borrar esta tarea?
 deleteTaskAccesskey=B
 deleteItemLabel=Borrar
+deleteItemMessage=¿Está seguro de querer borrar este ítem?
 deleteItemAccesskey=B
 deleteEventLabel=Borrar evento
+deleteEventMessage=¿Está seguro de querer borrar este evento?
 deleteEventAccesskey=B
--- a/calendar/chrome/calendar/menuOverlay.dtd
+++ b/calendar/chrome/calendar/menuOverlay.dtd
@@ -57,28 +57,26 @@
 <!ENTITY calendar.print.label "Imprimir…">
 <!ENTITY calendar.print.key "P">
 <!ENTITY calendar.print.accesskey "p">
 
 <!ENTITY calendar.import.label "Importar…">
 <!ENTITY calendar.import.key "I">
 <!ENTITY calendar.import.accesskey "I">
 
-<!ENTITY calendar.export.calendar.label "Exportar calendario…">
-<!ENTITY calendar.export.calendar.accesskey "E">
+<!ENTITY calendar.export.label                  "Exportar…">
+<!ENTITY calendar.export.accesskey              "E">
 <!ENTITY calendar.export.selection.label "Exportar selección…">
 <!ENTITY calendar.export.selection.accesskey "x">
 
 <!ENTITY calendar.publish.label "Publicar…">
 <!ENTITY calendar.publish.accesskey "b">
 
-<!ENTITY calendar.toolbar.label "Barra de calendario">
-<!ENTITY calendar.toolbar.accesskey             "C">
-<!ENTITY task.toolbar.label                     "Barra de tareas">
-<!ENTITY task.toolbar.accesskey                 "b">
+<!ENTITY calendar.deletecalendar.label          "Borrar calendario seleccionado…">
+<!ENTITY calendar.deletecalendar.accesskey      "d">
 
 <!ENTITY calendar.menu.customize.label "Personalizar…">
 <!ENTITY calendar.menu.customize.accesskey "P">
 
 <!ENTITY showUnifinderCmd.label                 "Buscar eventos">
 <!ENTITY showUnifinderCmd.accesskey             "v">
 
 <!ENTITY calendar.displaytodos.checkbox.label "Mostrar tareas en calendario">
@@ -99,18 +97,13 @@
 <!ENTITY goPreviousCmd.month.label "Mes anterior">
 <!ENTITY goPreviousCmd.accesskey "a">
 
 <!ENTITY goNextCmd.day.label "Día siguiente">
 <!ENTITY goNextCmd.week.label "Semana siguiente">
 <!ENTITY goNextCmd.month.label "Mes siguiente">
 <!ENTITY goNextCmd.all.accesskey "i">
 
-<!ENTITY addressBookCmd.label "Libreta de direcciones">
-<!ENTITY addressBookCmd.accesskey "A">
-
-<!ENTITY calendar.importcalendar.label          "Importar calendario…">
-
 <!ENTITY showCurrentView.label                  "Vista actual">
 <!ENTITY showCurrentView.accesskey              "V">
 
 <!ENTITY calendar.properties.label              "Propiedades del calendario…">
 <!ENTITY calendar.properties.accesskey          "C">
--- a/calendar/chrome/calendar/migration.properties
+++ b/calendar/chrome/calendar/migration.properties
@@ -34,13 +34,13 @@
 # the terms of any one of the MPL, the GPL or the LGPL.
 #
 # ***** END LICENSE BLOCK *****
 
 migratingApp = Migrando %1$S…
 
 # The next two lines are duplicated from migration.dtd until there is branding
 # for lightning
-migrationTitle = %1$S: Data Import
-migrationDescription=%1$S puede importar datos de calendario de muchas aplicaciones populares. Los datos de las siguientes aplicaciones fueron encontrados en su computadora. Seleccione desde cuál de éstas desearía importar datos.
+migrationTitle = %1$S: Importar datos
+migrationDescription=%1$S puede importar datos de calendario de varias aplicaciones populares. Los datos de las siguientes aplicaciones fueron encontrados en su computadora. Seleccione de cuáles de ellos desea importar datos.
 finished = Completo
 disableExtTitle = Se encontró una extensión incompatible
-disableExtText = Tiene una extensión Mozilla Calendar vieja que no es compatible con Lightning.  Será deshabilitada y %1$S se reiniciará.
+disableExtText = Tiene instalada la vieja extensión Mozilla Calendar que no es compatible con Lightning.  Será deshabilitada y se reiniciará %1$S.
--- a/calendar/chrome/calendar/preferences/advanced.dtd
+++ b/calendar/chrome/calendar/preferences/advanced.dtd
@@ -87,16 +87,16 @@
 <!ENTITY pref.calendar.advanced.encryption.useTLS1.label "Usar TLS 1.0">
 <!ENTITY pref.calendar.advanced.encryption.useTLS1.accesskey "1">
 <!ENTITY pref.calendar.advanced.encryption.certificates.label "Certificados">
 <!ENTITY pref.calendar.advanced.encryption.certSelection.description "Cuando un servidor requiera mi certificado personal:">
 <!ENTITY pref.calendar.advanced.encryption.certs.auto "Elegir uno automáticamente">
 <!ENTITY pref.calendar.advanced.encryption.certs.auto.accesskey "l">
 <!ENTITY pref.calendar.advanced.encryption.certs.ask "Preguntarme cada vez">
 <!ENTITY pref.calendar.advanced.encryption.certs.ask.accesskey "c">
-<!ENTITY pref.calendar.advanced.encryption.viewCerts.label "Ver Certificados">
+<!ENTITY pref.calendar.advanced.encryption.viewCerts.label "Ver certificados">
 <!ENTITY pref.calendar.advanced.encryption.viewCerts.accesskey "s">
-<!ENTITY pref.calendar.advanced.encryption.viewCRLs.label "Lista de Revocados">
+<!ENTITY pref.calendar.advanced.encryption.viewCRLs.label "Lista de revocados">
 <!ENTITY pref.calendar.advanced.encryption.viewCRLs.accesskey "R">
 <!ENTITY pref.calendar.advanced.encryption.verify2.label "Validación">
 <!ENTITY pref.calendar.advanced.encryption.verify2.accesskey "V">
-<!ENTITY pref.calendar.advanced.encryption.viewSecurityDevices.label "Dispositivos de Seguridad">
+<!ENTITY pref.calendar.advanced.encryption.viewSecurityDevices.label "Dispositivos de seguridad">
 <!ENTITY pref.calendar.advanced.encryption.viewSecurityDevices.accesskey "D">
--- a/calendar/chrome/calendar/preferences/connection.dtd
+++ b/calendar/chrome/calendar/preferences/connection.dtd
@@ -45,32 +45,28 @@
 <!ENTITY manualTypeRadio.label "Configuración manual de proxy">
 <!ENTITY manualTypeRadio.accesskey "m">
 <!ENTITY autoTypeRadio.label "URL de configuración automática de proxy:">
 <!ENTITY autoTypeRadio.accesskey "U">
 <!ENTITY reload.label "Recargar">
 <!ENTITY reload.accesskey "R">
 <!ENTITY ftp.label "Proxy FTP:">
 <!ENTITY ftp.accesskey "F">
-<!ENTITY gopher.label "Proxy Gopher:">
-<!ENTITY gopher.accesskey "G">
 <!ENTITY http.label "Proxy HTTP:">
 <!ENTITY http.accesskey "H">
 <!ENTITY ssl.label "Proxy SSL:">
 <!ENTITY ssl.accesskey "L">
 <!ENTITY socks.label "Servidor SOCKS:">
 <!ENTITY socks.accesskey "S">
 <!ENTITY socks4.label "SOCKS v4">
 <!ENTITY socks4.accesskey "K">
 <!ENTITY socks5.label "SOCKS v5">
 <!ENTITY socks5.accesskey "v">
 <!ENTITY port.label "Puerto:">
 <!ENTITY HTTPport.accesskey "P">
 <!ENTITY SSLport.accesskey "o">
 <!ENTITY FTPport.accesskey "e">
-<!ENTITY gopherPort.accesskey "">
 <!ENTITY SOCKSport.accesskey "t">
 <!ENTITY noproxy.label "Sin proxy para:">
 <!ENTITY noproxy.accesskey "y">
 <!ENTITY noproxyExplain.label "Ejemplo: .mozilla.org, .net.ar, 192.168.1.0/24">
 <!ENTITY shareproxy.label "Usar el mismo proxy para todos los protocolos">
 <!ENTITY shareproxy.accesskey "U">
-
--- a/calendar/chrome/calendar/timezones.properties
+++ b/calendar/chrome/calendar/timezones.properties
@@ -274,17 +274,17 @@ 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.Katmandu=Asia/Katmandu
+pref.timezone.Asia.Kathmandu=Asia/Katmandú
 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/Macao
 pref.timezone.Asia.Magadan=Asia/Magadán
 pref.timezone.Asia.Makassar=Asia/Makasar
 pref.timezone.Asia.Manila=Asia/Manila
--- a/calendar/chrome/lightning/lightning.dtd
+++ b/calendar/chrome/lightning/lightning.dtd
@@ -45,32 +45,39 @@
    - your editor isn't using UTF-8 encoding and may munge up the document!
   -->
 
 <!-- Tools menu -->
 <!ENTITY lightning.taskLabel "Lightning">
 
 <!-- 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 "n">
 
 <!-- Open menu popup in File menu -->
 <!ENTITY lightning.menupopup.open.label               "Abrir">
 <!ENTITY lightning.menupopup.open.accesskey           "A">
 <!ENTITY lightning.menupopup.open.message.label       "Mensaje guardado…">
 <!ENTITY lightning.menupopup.open.message.accesskey   "M">
 <!ENTITY lightning.menupopup.open.calendar.label      "Archivo de calendario…">
 <!ENTITY lightning.menupopup.open.calendar.accesskey  "C">
 
-<!-- Messenger Sidebar -->
-<!ENTITY lightning.calendar.label 			"Calendario">
-<!ENTITY lightning.calendar.accesskey        "C">
-<!ENTITY lightning.tasks.label               "Tareas">
-<!ENTITY lightning.tasks.accesskey           "T">
+<!-- View Menu -->
+<!ENTITY lightning.menu.view.calendar.label            "Calendario">
+<!ENTITY lightning.menu.view.calendar.accesskey        "n">
+<!ENTITY lightning.menu.view.tasks.label               "Tareas">
+<!ENTITY lightning.menu.view.tasks.accesskey           "T">
+
+<!-- Events and Tasks menu -->
+<!ENTITY lightning.menu.eventtask.label                "Eventos y tareas">
+<!ENTITY lightning.menu.eventtask.accesskey            "n">
 
 <!-- Mode Toolbar -->
 <!ENTITY lightning.toolbar.mail.label         "Correo">
 <!ENTITY lightning.toolbar.mail.accesskey     "o">
 <!ENTITY lightning.toolbar.calendar.label     "Calendario">
 <!ENTITY lightning.toolbar.calendar.accesskey "C">
 <!ENTITY lightning.toolbar.task.label         "Tarea">
 <!ENTITY lightning.toolbar.task.accesskey     "T">
--- a/calendar/chrome/lightning/lightning.properties
+++ b/calendar/chrome/lightning/lightning.properties
@@ -44,49 +44,49 @@ extensions.{e2fda1a4-762b-4020-b5ad-a41d
 
 # Lightning branding
 brandShortName=Lightning
 
 # Task mode title
 taskModeApplicationTitle=Tareas
 
 # Html event display in message
-imipHtml.header=Invitaci\u00F3n a evento
-imipHtml.summary=T\u00EDtulo:
-imipHtml.location=Direcci\u00F3n:
+imipHtml.header=Invitación a evento
+imipHtml.summary=Título:
+imipHtml.location=Dirección:
 imipHtml.when=Cuando:
 imipHtml.organizer=Organizador:
-imipHtml.description=Descripci\u00F3n:
+imipHtml.description=Descripción:
 imipHtml.comment=Comentario:
 
 imipAddToCalendar.label=Agregar al calendario
 imipAddedItemToCal=Evento agregado al calendario
 imipCanceledItem=El evento ha sido borrado
 imipUpdatedItem=El evento ha sido actualizado
 imipBarCancelText=Este mensaje contiene la cancelación de un evento.
 imipBarRefreshText=Este mensaje solicita una actualización de un evento.
 imipBarPublishText=Este mensaje contiene un evento.
-imipBarRequestText=Este mensaje contiene una invitaci\u00F3n a un evento.
-imipBarUpdateText=Este mensaje contiene una actualizaci\u00Fen a un evento existente.
+imipBarRequestText=Este mensaje contiene una invitación a un evento.
+imipBarUpdateText=Este mensaje contiene una actualizaciþn a un evento existente.
 imipBarAlreadyProcessedText=Este mensaje contiene un evento que ya ha sido procesdo.
-imipBarReplyText=Este mensaje contiene una respuesta a una invitaci\u00F3n.
-imipBarUnsupportedText=Este mensaje contiene un evento que esta versi\u00F3n de Lightning no puede procesar.
+imipBarReplyText=Este mensaje contiene una respuesta a una invitación.
+imipBarUnsupportedText=Este mensaje contiene un evento que esta versión de Lightning no puede procesar.
 imipBarProcessingFailed=Falla al procesar el mensaje. Estado: %1$S.
 imipAcceptInvitation.label=Aceptar
 imipCancelInvitation.label=Borrar
 imipDeclineInvitation.label=Declinar
 imipUpdate.label=Actualizar
 imipAcceptTentativeInvitation.label=Tentativo
 imipSend.label=Enviar
 imipSendMail.title=Notificación por correo electrónico
 imipSendMail.text=¿Quiere enviar los mensajes de notificación ahora?
 imipSendMail.Outlook2000CompatMode.text=Soporta Outlook 2000 y Outlook 2002/XP
 imipNoIdentity=Ninguno
 
-itipReplySubject=Respuesta a invitaci\u00F3n a evento: %1$S
-itipReplyBodyAccept=%1$S ha aceptado su invitaci\u00F3n a evento.
-itipReplyBodyDecline=%1$S ha declinado su invitaci\u00F3n a evento.
-itipRequestSubject=Invitaci\u00F3n a evento: %1$S
+itipReplySubject=Respuesta a invitación a evento: %1$S
+itipReplyBodyAccept=%1$S ha aceptado su invitación a evento.
+itipReplyBodyDecline=%1$S ha declinado su invitación a evento.
+itipRequestSubject=Invitación a evento: %1$S
 itipRequestBody=%1$S lo ha invitado a %2$S
 itipCancelSubject=Evento Cancelado: %1$S
 itipCancelBody=%1$S ha cancelado este evento: « %2$S »
 
 invitationsLink.label=Invitaciones: %1$S
--- a/calendar/chrome/sunbird/aboutDialog.dtd
+++ b/calendar/chrome/sunbird/aboutDialog.dtd
@@ -37,17 +37,17 @@
    - ***** END LICENSE BLOCK ***** -->
 
 <!ENTITY aboutDialog.title "Acerca de &brandFullName;">
 <!ENTITY copyright.label "Créditos">
 <!ENTITY copyright.accesskey    "C">
 <!ENTITY aboutLink.label "&lt; Acerca de &brandFullName;">
 <!ENTITY aboutLink.accesskey    "A">
 <!ENTITY aboutVersion "versión">
-<!ENTITY copyrightText          "&#169;1998-2008 Contributors. All rights
+<!ENTITY copyrightText          "&#169;1998-2009 Contributors. All rights
                                  reserved. Mozilla Sunbird, Sunbird, and the
                                  Sunbird logos are trademarks of the Mozilla
                                  Foundation. All rights reserved.">
 
 <!ENTITY brandMotto "ya era hora">
 <!ENTITY credit.thanks "Gracias especiales a">
 
 <!-- localization credits look like this: -->
--- a/calendar/chrome/sunbird/menuOverlay.dtd
+++ b/calendar/chrome/sunbird/menuOverlay.dtd
@@ -159,16 +159,19 @@
 <!ENTITY releaseCmd.accesskey "N">
 
 <!ENTITY aboutCmd.label "Acerca de &brandFullName;">
 <!ENTITY aboutCmd.accesskey "A">
 
 <!ENTITY updateCmd.label                        "Buscar actualizaciones…">
 <!ENTITY updateCmd.accesskey                    "o">
 
+<!ENTITY sunbird.export.calendar.label                     "Exportar calendario…">
+<!ENTITY sunbird.export.calendar.accesskey                 "E">
+
 <!-- Mac OS X "Window" menu items -->
 <!ENTITY windowMenu.label "Ventana">
 <!ENTITY minimizeWindow.label "Minimizar">
 <!ENTITY zoomWindow.label "Zoom">
 <!ENTITY minimizeWindow.key "M">
 <!ENTITY bringAllToFront.label "Traer todo al frente">
 
 <!-- Mac OS X Application menu items -->
--- a/calendar/chrome/sunbird/sunbird.dtd
+++ b/calendar/chrome/sunbird/sunbird.dtd
@@ -6,21 +6,21 @@
    - the License. You may obtain a copy of the License at
    - http://www.mozilla.org/MPL/
    -
    - Software distributed under the License is distributed on an "AS IS" basis,
    - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
    - for the specific language governing rights and limitations under the
    - License.
    -
-   - The Original Code is OEone Calendar Code, released October 31st, 2001.
+   - The Original Code is Sun Microsystems code.
    -
    - The Initial Developer of the Original Code is
-   - OEone Corporation.
-   - Portions created by the Initial Developer are Copyright (C) 2001
+   -   Philipp Kewisch <mozilla@kewis.ch>
+   - Portions created by the Initial Developer are Copyright (C) 2008
    - the Initial Developer. All Rights Reserved.
    -
    - Contributor(s):
    -
    - Alternatively, the contents of this file may be used under the terms of
    - either the GNU General Public License Version 2 or later (the "GPL"), or
    - the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
    - in which case the provisions of the GPL or the LGPL are applicable instead
@@ -36,23 +36,35 @@
 
 <!ENTITY sunbird.choosedate.button.tooltip                 "Choose date to go to" >
 <!ENTITY sunbird.cut.button.tooltip                        "Cortar" >
 <!ENTITY sunbird.copy.button.tooltip                       "Copiar" >
 <!ENTITY sunbird.paste.button.tooltip                      "Pegar" >
 <!ENTITY sunbird.print.button.tooltip          "Imprimir calendario" >
 <!ENTITY sunbird.delete.button.tooltip           "Borrar evento seleccionado" >
 <!ENTITY sunbird.remotereload.button.tooltip   "Recargar todos los calendarios remotos" >
+<!ENTITY sunbird.import.button.tooltip                     "Importar eventos de un archivo local" >
+<!ENTITY sunbird.export.button.tooltip                     "Exportar eventos a un archivo local" >
+<!ENTITY sunbird.subscribe.button.tooltip                  "Suscribirse a un archivo de calendario en una máquina remota" >
+<!ENTITY sunbird.publish.button.tooltip                    "Publicar eventos a una máquina remota" >
+<!ENTITY sunbird.unifinder.button.tooltip                  "Buscar y listar eventos" >
+<!ENTITY sunbird.edit.button.tooltip                       "Editar evento seleccionado" >
 
 <!ENTITY sunbird.choosedate.button.label                   "Seleccionar día" >
 <!ENTITY sunbird.cut.button.label                          "Cortar" >
 <!ENTITY sunbird.copy.button.label                         "Copiar" >
 <!ENTITY sunbird.paste.button.label                        "Pegar" >
 <!ENTITY sunbird.delete.button.label           "Borrar" >
 <!ENTITY sunbird.remotereload.button.label     "Recargar" >
+<!ENTITY sunbird.import.button.label                       "Importar" >
+<!ENTITY sunbird.export.button.label                       "Exportar" >
+<!ENTITY sunbird.subscribe.button.label                    "Suscribirse" >
+<!ENTITY sunbird.publish.button.label                      "Publicar" >
+<!ENTITY sunbird.unifinder.button.label                    "Buscar eventos" >
+<!ENTITY sunbird.edit.button.label                         "Editar" >
 
 <!ENTITY sunbird.flat.topbar.choosedate       "Ir a fecha" >
 <!ENTITY sunbird.flat.topbar.dayview          "Vista por día" >
 <!ENTITY sunbird.flat.topbar.weekview         "Vista por semana" >
 <!ENTITY sunbird.flat.topbar.monthview        "Vista por mes" >
 <!ENTITY sunbird.flat.topbar.multiweekview    "Vista multisemana" >
 
 <!ENTITY sunbird.dayview.accesskey                  "D" >
@@ -64,16 +76,17 @@
 <!ENTITY sunbird.calendartab.label "Fecha">
 <!ENTITY sunbird.listofcalendarstab.label "Calendarios">
 
 <!ENTITY sunbird.find.key                                  "F">
 <!ENTITY sunbird.close.key                                 "W">
 
 <!ENTITY sunbird.menu.numberofweeks.label     "Número de semanas" >
 <!ENTITY sunbird.menu.numberofweeks.accesskey "N" >
+<!ENTITY sunbird.menu.numberofweeks.1                      "1 semana" >
 <!ENTITY sunbird.menu.numberofweeks.2      "2 semanas" >
 <!ENTITY sunbird.menu.numberofweeks.3      "3 semanas" >
 <!ENTITY sunbird.menu.numberofweeks.4      "4 semanas" >
 <!ENTITY sunbird.menu.numberofweeks.5      "5 semanas" >
 <!ENTITY sunbird.menu.numberofweeks.6      "6 semanas" >
 
 <!-- customizable toolbars -->
 <!ENTITY sunbird.context.customize.label             "Personalizar…">
@@ -84,8 +97,9 @@
 <!ENTITY sunbird.maintoolbar.accesskey               "p">
 
 <!-- Sunbird Help -->
 <!ENTITY sunbird.help.label               "Contenido de ayuda">
 <!ENTITY sunbird.help.accesskey           "a">
 
 <!-- LOCALIZATION NOTE (mainWindow.title): DONT_TRANSLATE -->
 <!ENTITY mainWindow.title "&brandFullName;">
+ 
--- a/calendar/installer/custom.properties
+++ b/calendar/installer/custom.properties
@@ -36,56 +36,68 @@
 
 # LOCALIZATION NOTE:
 
 # This file must be saved as UTF8
 
 # Accesskeys are defined by prefixing the letter that is to be used for the
 # accesskey with an ampersand (e.g. &).
 
-# Don't replace ${BrandShortName}, $(^Name), or $(^NameDA) with a custom string.
+# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
+# custom string and always use the same one as used by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
 
 # You can use \n to create a newline in the string but only when the string
 # from en-US contains a \n.
 
-OPTIONAL_COMPONENTS_TITLE=Seleccione componentes opcionales
-OPTIONAL_COMPONENTS_SUBTITLE=Seleccione que características de $(^NameDA) desea instalar.
-OPTIONAL_COMPONENTS_LABEL=Componentes opcionales:
-APP_DESC=Archivos requeridos para la aplicación ${BrandShortName}
-DOMI_TITLE=Inspector DOM
-DOMI_TEXT=Inspecciona la estructura y propiedades de una ventana y su contenido.
-QFA_TITLE=Quality Feedback Agent
-QFA_TEXT=Envía información acerca de fallos del programa a Mozilla.
-OPTIONS=&Opciones de $(^NameDA)
+CONTEXT_OPTIONS=&Opciones de $BrandShortName
+CONTEXT_SAFE_MODE=Modo &seguro de $BrandShortName
 SAFE_MODE=Modo seguro
 OPTIONS_PAGE_TITLE=Tipo de instalación
 OPTIONS_PAGE_SUBTITLE=Seleccione opciones de instalación
 SHORTCUTS_PAGE_TITLE=Crear accesos directos
 SHORTCUTS_PAGE_SUBTITLE=Crear íconos de programa
-SURVEY_TEXT=&Díganos que piensa de ${BrandShortName}
-LAUNCH_TEXT=&Iniciar $(^Name) ahora
-WARN_APP_RUNNING_INSTALL=$(^Name) debe cerrarse para continuar con la instalación.\n\nHaga clic en "Aceptar" para salir de $(^Name) automáticamente y continuar.
-WARN_APP_RUNNING_UNINSTALL=$(^Name) debe cerrarse para continuar con la desinstalación.\n\nHaga click en "Aceptar" para salir de $(^Name) automáticamente y continuar.
-CREATE_ICONS_DESC=Crear íconos para ${BrandShortName}:
+SUMMARY_PAGE_TITLE=Resumen
+SUMMARY_PAGE_SUBTITLE=Listo para comenzar a instalar $BrandShortName
+SUMMARY_INSTALLED_TO=$BrandShortName se instalará en la siguiente ubicación:
+SUMMARY_REBOOT_REQUIRED_INSTALL=Puede ser necesario reiniciar su computadora para completar la instalación.
+SUMMARY_REBOOT_REQUIRED_UNINSTALL=Puede ser necesiario reiniciar su computadora para completar la desinstalación.
+SUMMARY_CLICK=Haga clic en Instalar para continuar.
+SURVEY_TEXT=&Díganos que piensa de $BrandShortName
+LAUNCH_TEXT=&Iniciar $BrandShortName ahora
+CREATE_ICONS_DESC=Crear íconos para $BrandShortName:
 ICONS_DESKTOP=En mi &Escritorio
 ICONS_STARTMENU=En mi carpeta de programas del &Menú Inicio
 ICONS_QUICKLAUNCH=En mi barra de &Inicio Rápido
-WARN_WRITE_ACCESS=No tiene acceso al directorio de instalación .\n\nHaga clic en Aceptar para seleccionar un directorio diferente OK to select a different directory.
+WARN_MANUALLY_CLOSE_APP_INSTALL=$BrandShortName debe cerrarse para proceder con la instalación.\n\nCierre $BrandShortName para continuar.
+WARN_MANUALLY_CLOSE_APP_UNINSTALL=$BrandShortName debe cerrarse para proceder con la desinstalación.\n\nCierre $BrandShortName para continuar.
+WARN_MANUALLY_CLOSE_APP_LAUNCH=$BrandShortName se está ejecutando.\n\nCierre $BrandShortName antes de iniciar la versión que acaba de instalar.
+WARN_WRITE_ACCESS=No tiene acceso al directorio de instalación .\n\nHaga clic en Aceptar para seleccionar un directorio diferente.
 WARN_DISK_SPACE=No tiene estpacio suficiente para instalar en esta ubicación.\n\nHaga clic en Aceptar para seleccionar una ubicación diferente.
+WARN_MIN_SUPPORTED_OS_MSG=Lo siento, $BrandShortName no puede instalarse. Esta versión de $BrandShortName requiere ${MinSupportedVer} o superior.
+WARN_RESTART_REQUIRED_UNINSTALL=Su computadora debe reiniciarse para completar una desinstalación previa de $BrandShortName. Desea reiniciar ahora?
+WARN_RESTART_REQUIRED_UPGRADE=Su computadora debe reiniciarse para completar una actualización previa de $BrandShortName. Desea reiniciar ahora?
+ERROR_CREATE_DIRECTORY_PREFIX=Error creando directorio:
+ERROR_CREATE_DIRECTORY_SUFFIX=Haga clic en Cancelar para detener la instalación o\nReintentar para probar nuevamente.
 
-STATUS_INSTALL_APP=Instalando ${BrandShortName}...
-STATUS_INSTALL_LANG=Instalando archivos de idioma (${AB_CD})...
-STATUS_INSTALL_OPTIONAL=Instalando componentes opcionales...
-STATUS_UNINSTALL_MAIN=Desinstalando ${BrandShortName}...
-STATUS_CLEANUP=Realizando limpieza...
+UN_CONFIRM_PAGE_TITLE=Desinstalar $BrandFullName
+UN_CONFIRM_PAGE_SUBTITLE=Eliminar $BrandFullName de su computadora.
+UN_CONFIRM_UNINSTALLED_FROM=$BrandShortName se desinstalará de la siguiente ubicación:
+UN_CONFIRM_CLICK=Haga clic en Desinstalar para continuar.
+
+BANNER_CHECK_EXISTING=Verificando instalación existente…
+
+STATUS_INSTALL_APP=Instalando $BrandShortName…
+STATUS_INSTALL_LANG=Instalando archivos de idioma (${AB_CD})…
+STATUS_UNINSTALL_MAIN=Desinstalando $BrandShortName…
+STATUS_CLEANUP=Realizando limpieza…
 
 # _DESC strings support approximately 65 characters per line.
 # One line
 OPTIONS_SUMMARY=Seleccione el tipo de instalación que prefiera y haga clic en Siguiente.
 # One line
-OPTION_STANDARD_DESC=${BrandShortName} se instalará con las opciones más comunes.
+OPTION_STANDARD_DESC=$BrandShortName se instalará con las opciones más comunes.
 OPTION_STANDARD_RADIO=E&stándar
-# One line
-OPTION_COMPLETE_DESC=${BrandShortName} se instalará con todas las opciones disponibles.
-OPTION_COMPLETE_RADIO=C&ompleta
 # Two lines
 OPTION_CUSTOM_DESC=Puede seleccionar las opciones individuales a ser instaladas. Recomendado para usuarios experimentados.
 OPTION_CUSTOM_RADIO=&Personalizada
--- a/calendar/installer/mui.properties
+++ b/calendar/installer/mui.properties
@@ -39,58 +39,59 @@
 
 # LOCALIZATION NOTE:
 
 # This file must be saved as UTF8
 
 # Accesskeys are defined by prefixing the letter that is to be used for the
 # accesskey with an ampersand (e.g. &).
 
-# Do not replace $(^NameDA) or $(^Name) with a custom string.
-
-# Do not change $(^NameDA) to $(^Name) or $(^Name) to $(^NameDA). NameDA allows
-# Name to contain an ampersand (e.g. DA stands for double ampersand) and
-# prevents the letter following the ampersand being used as an accesskey.
+# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
+# custom string and always use the same one as used by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
 
 # You can use \n to create a newline in the string but only when the string
 # from en-US contains a \n.
-MUI_TEXT_WELCOME_INFO_TITLE=Bienvenido al asistente de  instalación de $(^NameDA)
-MUI_TEXT_WELCOME_INFO_TEXT=Este asistente lo guiará a través de la instalación de $(^NameDA).\n\nSe recomienda que cierre todas las otras aplicaciones antes de comenzar la instalación. Ésto hará posible actualizar archivos de sistema relevantes sin tener que reiniciar su computadora.\n\n$_CLICK
+
+MUI_TEXT_WELCOME_INFO_TITLE=Bienvenido al asistente de  instalación de $BrandFullNameDA
+MUI_TEXT_WELCOME_INFO_TEXT=Este asistente lo guiará a través de la instalación de $BrandFullNameDA.\n\nSe recomienda que cierre todas las otras aplicaciones antes de comenzar la instalación. Ésto hará posible actualizar archivos de sistema relevantes sin tener que reiniciar su computadora.\n\n$_CLICK
 MUI_TEXT_LICENSE_TITLE=Contrato de licencia
-MUI_TEXT_LICENSE_SUBTITLE=Revise los términos de la licencia antes de instalar $(^NameDA).
+MUI_TEXT_LICENSE_SUBTITLE=Revise los términos de la licencia antes de instalar $BrandFullNameDA.
 MUI_INNERTEXT_LICENSE_TOP=Presione Page Down para ver el resto del contrato.
-MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS=Si acepta los términos del contrato, seleccione la primera opción. Debe aceptar el contrato para instalar $(^NameDA). $_CLICK
+MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX==Si acepta los términos del contrato, marque el recuadro. Debe aceptar el contrato para instalar $BrandFullNameDA. $_CLICK
 MUI_TEXT_COMPONENTS_TITLE=Seleccionar componentes
-MUI_TEXT_COMPONENTS_SUBTITLE=Seleccione que características de $(^NameDA) desea instalar.
+MUI_TEXT_COMPONENTS_SUBTITLE=Seleccione que características de $BrandFullNameDA desea instalar.
 MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE=Descripción
 MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO=Ubique el mouse sobre un componente para ver su descripción.
 MUI_TEXT_DIRECTORY_TITLE=Seleccione ubicación de la instalación
-MUI_TEXT_DIRECTORY_SUBTITLE=Seleccione la carpeta en la que se instalará $(^NameDA).
+MUI_TEXT_DIRECTORY_SUBTITLE=Seleccione la carpeta en la que se instalará $BrandFullNameDA.
 MUI_TEXT_INSTALLING_TITLE=Instalando
-MUI_TEXT_INSTALLING_SUBTITLE=Espere mientras $(^NameDA) está siendo instalado.
+MUI_TEXT_INSTALLING_SUBTITLE=Espere mientras $BrandFullNameDA está siendo instalado.
 MUI_TEXT_FINISH_TITLE=Installación completa
 MUI_TEXT_FINISH_SUBTITLE=La instalación se completó exitosamente.
 MUI_TEXT_ABORT_TITLE=Installación cancelada
 MUI_TEXT_ABORT_SUBTITLE=La instalación no se completó exitosamente.
 MUI_BUTTONTEXT_FINISH=&Finalizar
-MUI_TEXT_FINISH_INFO_TITLE=Completando el asistente de instalación de $(^NameDA)
-MUI_TEXT_FINISH_INFO_TEXT=$(^NameDA) ha sido instalado en su computadora.\n\nHaga clic en Finalizar para cerrar este asistente.
-MUI_TEXT_FINISH_INFO_REBOOT=Su computadora debe reiniciarse para completar la instalación de $(^NameDA). ¿Desea reiniciar ahora?
+MUI_TEXT_FINISH_INFO_TITLE=Completando el asistente de instalación de $BrandFullNameDA
+MUI_TEXT_FINISH_INFO_TEXT=$BrandFullNameDA ha sido instalado en su computadora.\n\nHaga clic en Finalizar para cerrar este asistente.
+MUI_TEXT_FINISH_INFO_REBOOT=Su computadora debe reiniciarse para completar la instalación de $BrandFullNameDA. ¿Desea reiniciar ahora?
 MUI_TEXT_FINISH_REBOOTNOW=Reiniciar ahora
 MUI_TEXT_FINISH_REBOOTLATER=Reiniciaré manualmente luego
 MUI_TEXT_STARTMENU_TITLE=Seleccione carpeta del Menú Inicio
-MUI_TEXT_STARTMENU_SUBTITLE=Seleccione una carpeta del Menú Inicio para los accesos directos de $(^NameDA).
+MUI_TEXT_STARTMENU_SUBTITLE=Seleccione una carpeta del Menú Inicio para los accesos directos de $BrandFullNameDA.
 MUI_INNERTEXT_STARTMENU_TOP=Seleccione la carpeta del Menú Inicio en la que desea crear los accesos directos del programa. También puede ingresar un nombre para crear una nueva carpeta.
-MUI_TEXT_ABORTWARNING=¿Seguro desea salir de la instalación de $(^Name)?
-MUI_UNTEXT_WELCOME_INFO_TITLE=Bienvenido al asistente de desinstalación de $(^NameDA)
-MUI_UNTEXT_WELCOME_INFO_TEXT=Este asistente lo guiará a través de la desinstalación de $(^NameDA).\n\nAntes de comenzar la desinstalación, asegúrese que $(^NameDA) no se esté ejecutando.\n\n$_CLICK
-MUI_UNTEXT_CONFIRM_TITLE=Desinstalar $(^NameDA)
-MUI_UNTEXT_CONFIRM_SUBTITLE=Eliminar $(^NameDA) de su computadora.
+MUI_TEXT_ABORTWARNING=¿Seguro desea salir de la instalación de $BrandFullName?
+MUI_UNTEXT_WELCOME_INFO_TITLE=Bienvenido al asistente de desinstalación de $BrandFullNameDA
+MUI_UNTEXT_WELCOME_INFO_TEXT=Este asistente lo guiará a través de la desinstalación de $BrandFullNameDA.\n\nAntes de comenzar la desinstalación, asegúrese que $BrandFullNameDA no se esté ejecutando.\n\n$_CLICK
+MUI_UNTEXT_CONFIRM_TITLE=Desinstalar $BrandFullNameDA
+MUI_UNTEXT_CONFIRM_SUBTITLE=Remover $BrandFullNameDA de su computadora.
 MUI_UNTEXT_UNINSTALLING_TITLE=Desinstalando
-MUI_UNTEXT_UNINSTALLING_SUBTITLE=Espere mientras $(^NameDA) se está desinstalando.
+MUI_UNTEXT_UNINSTALLING_SUBTITLE=Espere mientras $BrandFullNameDA se está desinstalando.
 MUI_UNTEXT_FINISH_TITLE=Desinstalación completa
 MUI_UNTEXT_FINISH_SUBTITLE=La desinstalación se completó exitosamente.
 MUI_UNTEXT_ABORT_TITLE=Desinstalación cancelada
 MUI_UNTEXT_ABORT_SUBTITLE=La desinstalación no se completó exitosamente.
-MUI_UNTEXT_FINISH_INFO_TITLE=Completando el asistente de desinstalación de $(^NameDA)
-MUI_UNTEXT_FINISH_INFO_TEXT=$(^NameDA) ha sido desinstalado de su computadora.\n\nHaga clic en Finalizar para cerrar este asistente.
-MUI_UNTEXT_FINISH_INFO_REBOOT=Su computadora debe reiniciarse para completar la desinstalación de $(^NameDA). ¿Desea reiniciar ahora?
-MUI_UNTEXT_ABORTWARNING=¿Está seguro de querer salir del desinstalador de $(^Name)?
+MUI_UNTEXT_FINISH_INFO_TITLE=Completando el asistente de desinstalación de $BrandFullNameDA
+MUI_UNTEXT_FINISH_INFO_TEXT=$BrandFullNameDA ha sido desinstalado de su computadora.\n\nHaga clic en Finalizar para cerrar este asistente.
+MUI_UNTEXT_FINISH_INFO_REBOOT=Su computadora debe reiniciarse para completar la desinstalación de $BrandFullNameDA. ¿Desea reiniciar ahora?
+MUI_UNTEXT_ABORTWARNING=¿Está seguro de querer salir del desinstalador de $BrandFullName?
--- a/calendar/installer/override.properties
+++ b/calendar/installer/override.properties
@@ -50,45 +50,45 @@
 # You can use \n to create a newline in the string but only when the string
 # from en-US contains a \n.
 
 # Strings that require a space at the end should be enclosed with double
 # quotes and the double quotes will be removed. To add quotes to the beginning
 # and end of a strong enclose the add and additional double quote to the
 # beginning and end of the string (e.g. ""This will include quotes"").
 
-SetupCaption=Instalador de $(^Name)
-UninstallCaption=Desinstalador de $(^Name)
-BackBtn=< &Atras
+SetupCaption=Instalador de $BrandFullName
+UninstallCaption=Desinstalador de $BrandFullName
+BackBtn=< &Atrás
 NextBtn=&Siguiente >
 AcceptBtn=&Acepto los términos del contrato de licencia
 DontAcceptBtn=&No acepto los términos del contrato de licencia
 InstallBtn=&Instalar
 UninstallBtn=&Desinstalar
 CancelBtn=Cancelar
 CloseBtn=&Cerrar
-BrowseBtn=E&xaminar...
+BrowseBtn=E&xaminar…
 ShowDetailsBtn=Mostrar &detalles
 ClickNext=Haga clic en Siguiente para continuar.
 ClickInstall=Haga clic en Instalar para comenzar la instalación.
 ClickUninstall=Haga clic en desinstalar para comenzar la desinstalación.
 Completed=Completa
-LicenseTextRB=Revise el contrato de licencia antes de instalar $(^NameDA). Si acepta todos los términos del contrato, seleccione la primera opción. $_CLICK
+LicenseTextRB=Revise el contrato de licencia antes de instalar $BrandFullNameDA. Si acepta todos los términos del contrato, seleccione la primera opción. $_CLICK
 ComponentsText=Marque los componentes que desee instalar y desmarque los que no desee instalar. $_CLICK
 ComponentsSubText2_NoInstTypes=Seleccione componentes a instalar:
-DirText=Se instalará $(^NameDA) en la siguiente carpeta. Para instalarlo en una carpeta diferente, haga clic en Examinar y seleccione otra. $_CLICK
+DirText=Se instalará $BrandFullNameDA en la siguiente carpeta. Para instalarlo en una carpeta diferente, haga clic en Examinar y seleccione otra. $_CLICK
 DirSubText=Carpeta de destino
-DirBrowseText=Seleccione la carpeta en la que se instalará $(^NameDA):
+DirBrowseText=Seleccione la carpeta en la que se instalará $BrandFullNameDA:
 SpaceAvailable="Espacio disponible: "
 SpaceRequired="Espacio requerido: "
-UninstallingText=$(^NameDA) se desinstalará de la siguiente carpeta. $_CLICK
+UninstallingText=$BrandFullNameDA se desinstalará de la siguiente carpeta. $_CLICK
 UninstallingSubText=Desinstalando de:
 FileError=Error abriendo el archivo para escritura: \r\n\r\n$0\r\n\r\nHaga clic en Abortar para detener la instalación,\r\nen Reintentar para tratar nuevamente or en\r\nIgnorar para saltear este archivo.
 FileError_NoIgnore=Error abriendo el archivo para escritura: \r\n\r\n$0\r\n\r\nHaga clic en Reintentar para tratar nuevamente o en\r\nCancelar para detener la instalación.
-CantWrite="No se pued escribir: "
+CantWrite="No se puede escribir: "
 CopyFailed=Fallo al copiar
 CopyTo="Copiar a "
 Registering="Registrando: "
 Unregistering="Desregistrando: "
 SymbolNotFound="No se encuentra el símbolo: "
 CouldNotLoad="No se puede cargar: "
 CreateFolder="Crear carpeta: "
 CreateShortcut="Crear acceso directo: "
@@ -101,17 +101,17 @@ ErrorDecompressing=Error descomprimiendo datos. ¿Instalador corrupto?
 ErrorRegistering=Error registrando DLL
 ExecShell="ExecShell: "
 Exec="Ejecutar: "
 Extract="Extraer: "
 ErrorWriting="Extraer: error escribiendo archivo "
 InvalidOpcode=Instalador corrupto: invalid opcode
 NoOLE="No OLE para: "
 OutputFolder="Carpeta de salida: "
-RemoveFolder="Eliminar carpeta: "
+RemoveFolder="Remover carpeta: "
 RenameOnReboot="Renombrar al reiniciar: "
 Rename="Renombrar: "
 Skipped="Salteado: "
 CopyDetails=Copiar detalles al portapapeles
 LogInstall=Registrar proceso de instalación
 Byte=B
 Kilo=K
 Mega=M
--- a/calendar/updater/updater.ini
+++ b/calendar/updater/updater.ini
@@ -1,4 +1,5 @@
 ; This file is in the UTF-8 encoding
 [Strings]
-Title=Actualizaci&#243;n de software
-Info=Sunbird est&#225; instalando sus actualizaciones y se iniciar&#225; en unos momentos...
+TitleText=Actualización de %MOZ_APP_DISPLAYNAME%
+InfoText=%MOZ_APP_DISPLAYNAME% está instalando sus actualizaciones y se iniciará en unos momentos…
+