summaryrefslogtreecommitdiffstats
path: root/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'thunderbird-l10n/ca/chrome/ca/locale/ca/calendar')
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-alarms.properties39
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-event-dialog-attendees.properties15
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-event-dialog.dtd428
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-event-dialog.properties541
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-extract.properties294
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-invitations-dialog.dtd19
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-invitations-dialog.properties10
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-occurrence-prompt.dtd7
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-occurrence-prompt.properties53
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar.dtd411
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar.properties809
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendarCreation.dtd51
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendarCreation.properties6
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/categories.properties7
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/dateFormat.properties146
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/dialogs/calendar-event-dialog-reminder.dtd19
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/global.dtd54
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/menuOverlay.dtd50
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/migration.dtd9
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/migration.properties13
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/provider-uninstall.dtd12
-rw-r--r--thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/timezones.properties497
22 files changed, 3490 insertions, 0 deletions
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-alarms.properties b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-alarms.properties
new file mode 100644
index 0000000000..2916dbb49c
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-alarms.properties
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (reminderCustomTitle):
+# %1$S = unit, %2$S = reminderCustomOrigin
+# Example: "3 minutes" "before the task starts"
+reminderCustomTitle=%1$S %2$S
+reminderTitleAtStartEvent=El moment que comença la cita
+reminderTitleAtStartTask=El moment que comença la tasca
+reminderTitleAtEndEvent=El moment que acaba la cita
+reminderTitleAtEndTask=El moment que acaba la tasca
+
+# LOCALIZATION NOTE (reminderSnoozeOkA11y)
+# This string is not seen in the UI, it is read by screen readers when the user
+# focuses the "OK" button in the "Snooze for..." popup of the alarm dialog.
+# %1$S = any of unit*
+reminderSnoozeOkA11y=Ajorna el recordatori fins d'aquí %1$S
+
+reminderCustomOriginBeginBeforeEvent=abans que comenci la cita
+reminderCustomOriginBeginAfterEvent=després que comenci la cita
+reminderCustomOriginEndBeforeEvent=abans que acabi la cita
+reminderCustomOriginEndAfterEvent=després que acabi la cita
+reminderCustomOriginBeginBeforeTask=abans que comenci la tasca
+reminderCustomOriginBeginAfterTask=després que comenci la tasca
+reminderCustomOriginEndBeforeTask=abans que acabi la tasca
+reminderCustomOriginEndAfterTask=després que acabi la tasca
+
+reminderErrorMaxCountReachedEvent=El calendari seleccionat té una limitació d'#1 recordatori per cita.;El calendari seleccionat té una limitació de #1 recordatoris per cita.
+reminderErrorMaxCountReachedTask=El calendari seleccionat té una limitació d'#1 recordatori per tasca.;El calendari seleccionat té una limitació de #1 recordatoris per tasca.
+
+# LOCALIZATION NOTE (reminderReadonlyNotification)
+# This notification will be presented in the alarm dialog if reminders for not
+# writable items/calendars are displayed.
+# %1$S - localized value of calendar.alarm.snoozeallfor.label (defined in calendar.dtd)
+reminderReadonlyNotification=Actualment, els recordatoris en els calendaris només de lectura no es poden ajornar; només es poden aturar. El botó «%1$S» ajornarà només els recordatoris dels calendaris editables.
+# LOCALIZATION NOTE (reminderDisabledSnoozeButtonTooltip)
+# This tooltip is only displayed, if the button is disabled
+reminderDisabledSnoozeButtonTooltip=No es permet ajornar un recordatori en els calendaris només de lectura
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-event-dialog-attendees.properties b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-event-dialog-attendees.properties
new file mode 100644
index 0000000000..9e56859c3b
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-event-dialog-attendees.properties
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+event.attendee.role.required = Assistent necessari
+event.attendee.role.optional = Assistent opcional
+event.attendee.role.nonparticipant = No hi participa
+event.attendee.role.chair = Presideix
+event.attendee.role.unknown = Assistent desconegut (%1$S)
+
+event.attendee.usertype.individual = Individu
+event.attendee.usertype.group = Grup
+event.attendee.usertype.resource = Recurs
+event.attendee.usertype.room = Sala
+event.attendee.usertype.unknown = Tipus desconegut (%1$S)
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-event-dialog.dtd b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-event-dialog.dtd
new file mode 100644
index 0000000000..54a68410d6
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-event-dialog.dtd
@@ -0,0 +1,428 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 "Edita l'element" >
+
+<!ENTITY event.dialog.keepDurationButton.tooltip "Conserva la durada quan es canviï la data de finalització">
+<!ENTITY event.dialog.keepDurationButton.accesskey "d">
+
+<!ENTITY newevent.from.label "Des de" >
+<!ENTITY newevent.to.label "Fins a" >
+
+<!ENTITY newevent.status.label "Estat" >
+<!ENTITY newevent.status.accesskey "s" >
+<!ENTITY newevent.eventStatus.none.label "Sense especificar" >
+<!ENTITY newevent.eventStatus.none.accesskey "e" >
+<!ENTITY newevent.todoStatus.none.label "Sense especificar" >
+<!ENTITY newevent.eventStatus.cancelled.label "Cancel·lada" >
+<!ENTITY newevent.eventStatus.cancelled.accesskey "n" >
+<!ENTITY newevent.todoStatus.cancelled.label "Cancel·lada" >
+<!ENTITY newevent.status.tentative.label "Provisional" >
+<!ENTITY newevent.status.tentative.accesskey "P" >
+<!ENTITY newevent.status.confirmed.label "Confirmada" >
+<!ENTITY newevent.status.confirmed.accesskey "C" >
+<!ENTITY newevent.status.needsaction.label "Necessita una acció" >
+<!ENTITY newevent.status.inprogress.label "En curs" >
+<!ENTITY newevent.status.completed.label "Acabada el dia" >
+
+<!-- The following entity is for New Task dialog only -->
+<!ENTITY newtodo.percentcomplete.label "&#37; acabada">
+
+<!-- LOCALIZATON NOTE(event.attendees.notify.label,event.attendees.notifyundisclosed.label,
+ event.attendees.disallowcounter.label)
+ - These three labels are displayed side by side in the event dialog, make sure
+ - they still fit in. -->
+<!ENTITY event.attendees.notify.label "Notifica els assistents">
+<!ENTITY event.attendees.notify.accesskey "f">
+<!ENTITY event.attendees.notifyundisclosed.label "Invitació separada per a cada assistent">
+<!ENTITY event.attendees.notifyundisclosed.accesskey "n">
+<!ENTITY event.attendees.notifyundisclosed.tooltip "Aquesta opció envia un missatge d'invitació per assistent. Cada invitació conté l'assistent com a únic destinatari, de forma que els assistents no veuen la identitat els uns dels altres.">
+<!ENTITY event.attendees.disallowcounter.label "No permetis contrapropostes">
+<!ENTITY event.attendees.disallowcounter.accesskey "a">
+<!ENTITY event.attendees.disallowcounter.tooltip "Indica que no voleu acceptar contrapropostes">
+
+<!-- Keyboard Shortcuts -->
+<!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">
+
+<!-- Menubar -->
+<!ENTITY event.menu.item.new.label "Nou">
+<!ENTITY event.menu.item.new.accesskey "N">
+<!ENTITY event.menu.item.new.event.label "Cita">
+<!ENTITY event.menu.item.new.event.accesskey "C">
+<!ENTITY event.menu.item.new.task.label "Tasca">
+<!ENTITY event.menu.item.new.task.accesskey "T">
+<!ENTITY event.menu.item.new.message.label "Missatge">
+<!ENTITY event.menu.item.new.message.accesskey "M">
+<!ENTITY event.menu.item.new.contact.label "Contacte de la llibreta d'adreces">
+<!ENTITY event.menu.item.new.contact.accesskey "C">
+<!ENTITY event.menu.item.close.label "Tanca">
+<!ENTITY event.menu.item.close.accesskey "T">
+
+<!-- LOCALIZATION NOTE
+ - event.menu.item.save.accesskey is used for the "Save" menu item
+ - when editing events/tasks in a dialog window.
+ - event.menu.item.save.tab.accesskey is used for the "Save" menu item
+ - when editing events/tasks in a tab. -->
+<!ENTITY event.menu.item.save.label "Desa">
+<!ENTITY event.menu.item.save.accesskey "D">
+<!ENTITY event.menu.item.save.tab.accesskey "a">
+
+<!-- LOCALIZATION NOTE
+ - event.menu.item.saveandclose.accesskey is used for "Save and Close"
+ - menu item when editing events/tasks in a dialog window.
+ - event.menu.item.saveandclose.tab.accesskey is used for "Save and Close"
+ - when editing events/tasks in a tab. -->
+<!ENTITY event.menu.item.saveandclose.label "Desa i tanca">
+<!ENTITY event.menu.item.saveandclose.accesskey "e">
+<!ENTITY event.menu.item.saveandclose.tab.accesskey "t">
+
+<!ENTITY event.menu.item.delete.label "Suprimeix…">
+<!ENTITY event.menu.item.delete.accesskey "S">
+<!ENTITY event.menu.item.page.setup.label "Configuració de la pàgina">
+<!ENTITY event.menu.item.page.setup.accesskey "u">
+<!ENTITY event.menu.item.print.label "Imprimeix">
+<!ENTITY event.menu.item.print.accesskey "I">
+
+<!ENTITY event.menu.edit.label "Edita">
+<!ENTITY event.menu.edit.accesskey "E">
+<!ENTITY event.menu.edit.undo.label "Desfés">
+<!ENTITY event.menu.edit.undo.accesskey "D">
+<!ENTITY event.menu.edit.redo.label "Refés">
+<!ENTITY event.menu.edit.redo.accesskey "R">
+<!ENTITY event.menu.edit.cut.label "Retalla">
+<!ENTITY event.menu.edit.cut.accesskey "t">
+<!ENTITY event.menu.edit.copy.label "Copia">
+<!ENTITY event.menu.edit.copy.accesskey "C">
+<!ENTITY event.menu.edit.paste.label "Enganxa">
+<!ENTITY event.menu.edit.paste.accesskey "x">
+<!ENTITY event.menu.edit.select.all.label "Selecciona-ho tot">
+<!ENTITY event.menu.edit.select.all.accesskey "o">
+
+<!ENTITY event.menu.view.label "Visualitza">
+<!ENTITY event.menu.view.accesskey "V">
+<!ENTITY event.menu.view.toolbars.label "Barres d'eines">
+<!ENTITY event.menu.view.toolbars.accesskey "B">
+<!ENTITY event.menu.view.toolbars.event.label "Barra d'eines de cites">
+<!ENTITY event.menu.view.toolbars.event.accesskey "c">
+<!ENTITY event.menu.view.toolbars.customize.label "Personalitza…">
+<!ENTITY event.menu.view.toolbars.customize.accesskey "P">
+<!ENTITY event.menu.view.showlink.label "Mostra l'enllaç relacionat">
+<!ENTITY event.menu.view.showlink.accesskey "r">
+
+<!ENTITY event.menu.options.label "Opcions">
+<!ENTITY event.menu.options.accesskey "O">
+<!ENTITY event.menu.options.attendees.label "Invita assistents…">
+<!ENTITY event.menu.options.attendees.accesskey "I">
+<!ENTITY event.menu.options.timezone2.label "Mostra els fusos horaris">
+<!ENTITY event.menu.options.timezone2.accesskey "h">
+<!ENTITY event.menu.options.priority2.label "Prioritat">
+<!ENTITY event.menu.options.priority2.accesskey "P">
+<!ENTITY event.menu.options.priority.notspecified.label "Sense especificar">
+<!ENTITY event.menu.options.priority.notspecified.accesskey "S">
+<!ENTITY event.menu.options.priority.low.label "Baixa">
+<!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 "Privadesa">
+<!ENTITY event.menu.options.privacy.accesskey "v">
+<!ENTITY event.menu.options.privacy.public.label "Cita pública">
+<!ENTITY event.menu.options.privacy.public.accesskey "b">
+<!ENTITY event.menu.options.privacy.confidential.label "Mostra només la data i l'hora">
+<!ENTITY event.menu.options.privacy.confidential.accesskey "s">
+<!ENTITY event.menu.options.privacy.private.label "Cita privada">
+<!ENTITY event.menu.options.privacy.private.accesskey "r">
+<!ENTITY event.menu.options.show.time.label "Disponibilitat">
+<!ENTITY event.menu.options.show.time.accesskey "t">
+<!ENTITY event.menu.options.show.time.busy.label "Ocupat">
+<!ENTITY event.menu.options.show.time.busy.accesskey "O">
+<!ENTITY event.menu.options.show.time.free.label "Lliure">
+<!ENTITY event.menu.options.show.time.free.accesskey "L">
+
+<!ENTITY event.invite.attendees.label "Invita assistents…">
+<!ENTITY event.invite.attendees.accesskey "I">
+<!ENTITY event.email.attendees.label "Redacta un missatge a tots els assistents…">
+<!ENTITY event.email.attendees.accesskey "t">
+<!ENTITY event.email.tentative.attendees.label "Redacta un missatge a tots els assistents indecisos…">
+<!ENTITY event.email.tentative.attendees.accesskey "i">
+<!ENTITY event.remove.attendees.label2 "Elimina tots els assistents">
+<!ENTITY event.remove.attendees.accesskey "l">
+<!ENTITY event.remove.attendee.label "Elimina un assistent">
+<!ENTITY event.remove.attendee.accesskey "E">
+
+<!-- Toolbar -->
+<!ENTITY event.toolbar.save.label2 "Desa">
+<!ENTITY event.toolbar.saveandclose.label "Desa i tanca">
+<!ENTITY event.toolbar.delete.label "Suprimeix">
+<!ENTITY event.toolbar.attendees.label "Invita assistents">
+<!ENTITY event.toolbar.privacy.label "Privadesa">
+
+<!ENTITY event.toolbar.save.tooltip2 "Desa">
+<!ENTITY event.toolbar.saveandclose.tooltip "Desa i tanca">
+<!ENTITY event.toolbar.delete.tooltip "Suprimeix">
+<!ENTITY event.toolbar.attendees.tooltip "Invita assistents">
+<!ENTITY event.toolbar.attachments.tooltip "Afegeix adjuncions">
+<!ENTITY event.toolbar.privacy.tooltip "Canvia la privadesa">
+<!ENTITY event.toolbar.priority.tooltip "Canvia la prioritat">
+<!ENTITY event.toolbar.status.tooltip "Canvia l'estat">
+<!ENTITY event.toolbar.freebusy.tooltip "Canvia la disponibilitat (lliure/ocupat)">
+
+<!-- Counter box -->
+<!-- LOCALIZATON NOTE(counter.button.*)
+ - This is only visible in the UI if you have received a counterproposal before and are going to
+ - reschedule the event from the imipbar in the email view. Clicking on the buttons will only
+ - populate the form fields in the dialog, there's no other immediate action on clicking like with
+ - the imip bar. Rescheduling will happen after clicking on save&close as usual. This screenshot
+ - illustrates how it might look like: https://bugzilla.mozilla.org/attachment.cgi?id=8810121 -->
+<!ENTITY counter.button.proposal.label "Aplica la proposta">
+<!ENTITY counter.button.proposal.accesskey "p">
+<!ENTITY counter.button.proposal.tooltip2 "Els camps de la cita s'emplenaran utilitzant els valors de la contraproposta; només quan es desi, amb canvis addicionals o sense, es notificaran tots els assistents degudament.">
+<!ENTITY counter.button.original.label "Aplica les dades originals">
+<!ENTITY counter.button.original.accesskey "r">
+<!ENTITY counter.button.original.tooltip2 "Els valors dels camps seran els de la cita original, abans de fer la contraproposta">
+
+<!-- Main page -->
+<!ENTITY event.title.textbox.label "Títol:" >
+<!ENTITY event.title.textbox.accesskey "T">
+<!ENTITY event.location.label "Ubicació:" >
+<!ENTITY event.location.accesskey "U">
+<!ENTITY event.categories.label "Categoria:">
+<!ENTITY event.categories.accesskey "g">
+<!ENTITY event.categories.textbox.label "Afegeix una categoria nova" >
+<!ENTITY event.calendar.label "Calendari:" >
+<!ENTITY event.calendar.accesskey "C">
+<!ENTITY event.attendees.label "Assistents:" >
+<!ENTITY event.attendees.accesskey "n">
+<!ENTITY event.alldayevent.label "Cita de tot el dia" >
+<!ENTITY event.alldayevent.accesskey "d">
+<!ENTITY event.from.label "Inici:" >
+<!ENTITY event.from.accesskey "I">
+<!ENTITY task.from.label "Inici:" >
+<!ENTITY task.from.accesskey "I">
+<!ENTITY event.to.label "Fi:" >
+<!ENTITY event.to.accesskey "F">
+<!ENTITY task.to.label "Data de venciment:" >
+<!ENTITY task.to.accesskey "V">
+<!ENTITY task.status.label "Estat:" >
+<!ENTITY task.status.accesskey "E">
+<!ENTITY event.repeat.label "Repetició:" >
+<!ENTITY event.repeat.accesskey "R">
+<!ENTITY event.until.label "Fins:">
+<!ENTITY event.until.accesskey "i">
+<!ENTITY event.reminder.label "Recordatori:" >
+<!ENTITY event.reminder.accesskey "e">
+<!ENTITY event.description.label "Descripció:" >
+<!ENTITY event.description.accesskey "p">
+<!ENTITY event.attachments.label "Adjuncions:" >
+<!ENTITY event.attachments.accesskey "j" >
+<!ENTITY event.attachments.menubutton.label "Adjunta">
+<!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 "Suprimeix" >
+<!ENTITY event.attachments.popup.remove.accesskey "S" >
+<!ENTITY event.attachments.popup.open.label "Obre" >
+<!ENTITY event.attachments.popup.open.accesskey "O" >
+<!ENTITY event.attachments.popup.removeAll.label "Suprimeix-les totes" >
+<!ENTITY event.attachments.popup.removeAll.accesskey "t" >
+<!ENTITY event.attachments.popup.attachPage.label "Adjunta una pàgina web…" >
+<!ENTITY event.attachments.popup.attachPage.accesskey "w" >
+<!ENTITY event.url.label "Enllaç relacionat:" >
+<!ENTITY event.priority2.label "Prioritat:">
+
+<!ENTITY event.reminder.none.label "Cap recordatori " >
+<!ENTITY event.reminder.0minutes.before.label "0 minuts abans" >
+<!ENTITY event.reminder.5minutes.before.label "5 minuts abans" >
+<!ENTITY event.reminder.15minutes.before.label "15 minuts abans" >
+<!ENTITY event.reminder.30minutes.before.label "30 minuts abans" >
+<!ENTITY event.reminder.1hour.before.label "1 hora abans" >
+<!ENTITY event.reminder.2hours.before.label "2 hores abans" >
+<!ENTITY event.reminder.12hours.before.label "12 hores abans" >
+<!ENTITY event.reminder.1day.before.label "1 dia abans" >
+<!ENTITY event.reminder.2days.before.label "2 dies abans" >
+<!ENTITY event.reminder.1week.before.label "1 setmana abans" >
+<!ENTITY event.reminder.custom.label "Personalitzat…" >
+
+<!ENTITY event.reminder.multiple.label "Recordatoris múltiples…" >
+
+<!ENTITY event.statusbarpanel.freebusy.label "Disponibilitat:">
+<!ENTITY event.statusbarpanel.privacy.label "Privadesa:">
+
+<!-- Recurrence dialog -->
+<!ENTITY recurrence.title.label "Edita la repetició">
+
+<!ENTITY event.repeat.does.not.repeat.label "No es repeteix">
+<!ENTITY event.repeat.daily.label "Diàriament">
+<!ENTITY event.repeat.weekly.label "Setmanalment">
+<!ENTITY event.repeat.every.weekday.label "Cada dia feiner">
+<!ENTITY event.repeat.bi.weekly.label "Cada dues setmanes">
+<!ENTITY event.repeat.monthly.label "Mensualment">
+<!ENTITY event.repeat.yearly.label "Anualment">
+<!ENTITY event.repeat.custom.label "Personalitzat…">
+
+<!ENTITY event.recurrence.pattern.label "Patró de repetició">
+<!ENTITY event.recurrence.occurs.label "Es repeteix" >
+<!ENTITY event.recurrence.day.label "diàriament" >
+<!ENTITY event.recurrence.week.label "setmanalment" >
+<!ENTITY event.recurrence.month.label "mensualment" >
+<!ENTITY event.recurrence.year.label "anualment" >
+
+<!ENTITY event.recurrence.pattern.every.label "Cada" >
+<!ENTITY repeat.units.days.both "dia/es" >
+<!ENTITY event.recurrence.pattern.every.weekday.label "Cada dia feiner" >
+
+<!ENTITY event.recurrence.pattern.weekly.every.label "Cada" >
+<!ENTITY repeat.units.weeks.both "setmana/es" >
+<!ENTITY event.recurrence.on.label "El:" >
+
+<!ENTITY event.recurrence.pattern.monthly.every.label "Cada" >
+<!ENTITY repeat.units.months.both "mes/os" >
+<!ENTITY event.recurrence.monthly.every.label "Cada" >
+<!ENTITY event.recurrence.monthly.first.label "El primer">
+<!ENTITY event.recurrence.monthly.second.label "El segon">
+<!ENTITY event.recurrence.monthly.third.label "El tercer">
+<!ENTITY event.recurrence.monthly.fourth.label "El quart">
+<!ENTITY event.recurrence.monthly.fifth.label "El cinquè">
+<!ENTITY event.recurrence.monthly.last.label "L'últim">
+<!ENTITY event.recurrence.pattern.monthly.week.1.label "diumenge" >
+<!ENTITY event.recurrence.pattern.monthly.week.2.label "dilluns" >
+<!ENTITY event.recurrence.pattern.monthly.week.3.label "dimarts" >
+<!ENTITY event.recurrence.pattern.monthly.week.4.label "dimecres" >
+<!ENTITY event.recurrence.pattern.monthly.week.5.label "dijous" >
+<!ENTITY event.recurrence.pattern.monthly.week.6.label "divendres" >
+<!ENTITY event.recurrence.pattern.monthly.week.7.label "dissabte" >
+<!ENTITY event.recurrence.repeat.dayofmonth.label "dia del mes">
+<!ENTITY event.recurrence.repeat.recur.label "Es repeteix els dies">
+
+<!ENTITY event.recurrence.every.label "Cada:" >
+<!ENTITY repeat.units.years.both "any/s" >
+<!ENTITY event.recurrence.pattern.yearly.every.month.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
+-->
+<!ENTITY event.recurrence.pattern.yearly.of.label "de" >
+
+<!ENTITY event.recurrence.pattern.yearly.month.1.label "gener" >
+<!ENTITY event.recurrence.pattern.yearly.month.2.label "febrer" >
+<!ENTITY event.recurrence.pattern.yearly.month.3.label "març" >
+<!ENTITY event.recurrence.pattern.yearly.month.4.label "abril" >
+<!ENTITY event.recurrence.pattern.yearly.month.5.label "maig" >
+<!ENTITY event.recurrence.pattern.yearly.month.6.label "juny" >
+<!ENTITY event.recurrence.pattern.yearly.month.7.label "juliol" >
+<!ENTITY event.recurrence.pattern.yearly.month.8.label "agost" >
+<!ENTITY event.recurrence.pattern.yearly.month.9.label "setembre" >
+<!ENTITY event.recurrence.pattern.yearly.month.10.label "octubre" >
+<!ENTITY event.recurrence.pattern.yearly.month.11.label "novembre" >
+<!ENTITY event.recurrence.pattern.yearly.month.12.label "desembre" >
+<!ENTITY event.recurrence.yearly.every.label "Cada">
+<!ENTITY event.recurrence.yearly.first.label "El primer">
+<!ENTITY event.recurrence.yearly.second.label "El segon">
+<!ENTITY event.recurrence.yearly.third.label "El tercer">
+<!ENTITY event.recurrence.yearly.fourth.label "El quart">
+<!ENTITY event.recurrence.yearly.fifth.label "El cinquè">
+<!ENTITY event.recurrence.yearly.last.label "L'últim">
+<!ENTITY event.recurrence.pattern.yearly.week.1.label "diumenge" >
+<!ENTITY event.recurrence.pattern.yearly.week.2.label "dilluns" >
+<!ENTITY event.recurrence.pattern.yearly.week.3.label "dimarts" >
+<!ENTITY event.recurrence.pattern.yearly.week.4.label "dimecres" >
+<!ENTITY event.recurrence.pattern.yearly.week.5.label "dijous" >
+<!ENTITY event.recurrence.pattern.yearly.week.6.label "divendres" >
+<!ENTITY event.recurrence.pattern.yearly.week.7.label "dissabte" >
+<!ENTITY event.recurrence.pattern.yearly.day.label "dia" >
+<!ENTITY event.recurrence.of.label "de" >
+<!ENTITY event.recurrence.pattern.yearly.month2.1.label "gener" >
+<!ENTITY event.recurrence.pattern.yearly.month2.2.label "febrer" >
+<!ENTITY event.recurrence.pattern.yearly.month2.3.label "març" >
+<!ENTITY event.recurrence.pattern.yearly.month2.4.label "abril" >
+<!ENTITY event.recurrence.pattern.yearly.month2.5.label "maig" >
+<!ENTITY event.recurrence.pattern.yearly.month2.6.label "juny" >
+<!ENTITY event.recurrence.pattern.yearly.month2.7.label "juliol" >
+<!ENTITY event.recurrence.pattern.yearly.month2.8.label "agost" >
+<!ENTITY event.recurrence.pattern.yearly.month2.9.label "setembre" >
+<!ENTITY event.recurrence.pattern.yearly.month2.10.label "octubre" >
+<!ENTITY event.recurrence.pattern.yearly.month2.11.label "novembre" >
+<!ENTITY event.recurrence.pattern.yearly.month2.12.label "desembre" >
+
+<!ENTITY event.recurrence.range.label "Interval de repetició">
+<!ENTITY event.recurrence.forever.label "Sense data de finalització" >
+<!ENTITY event.recurrence.repeat.for.label "Crea" >
+<!ENTITY event.recurrence.appointments.label "Cites" >
+<!ENTITY event.repeat.until.label "Es repeteix fins" >
+<!ENTITY event.recurrence.preview.label "Previsualització">
+
+<!-- Attendees dialog -->
+<!ENTITY invite.title.label "Invita assistents">
+<!ENTITY event.organizer.label "Organitzador">
+<!ENTITY event.freebusy.suggest.slot "Franja horària suggerida:">
+<!ENTITY event.freebusy.button.next.slot "Franja següent">
+<!ENTITY event.freebusy.button.previous.slot "Franja anterior">
+<!ENTITY event.freebusy.zoom "Escala:">
+<!ENTITY event.freebusy.legend.free "Lliure" >
+<!ENTITY event.freebusy.legend.busy "Ocupat" >
+<!ENTITY event.freebusy.legend.busy_tentative "Provisional" >
+<!ENTITY event.freebusy.legend.busy_unavailable "Fora de l'oficina" >
+<!ENTITY event.freebusy.legend.unknown "Sense informació" >
+<!ENTITY event.attendee.role.required "Assistent necessari">
+<!ENTITY event.attendee.role.optional "Assistent opcional">
+<!ENTITY event.attendee.role.chair "Presideix">
+<!ENTITY event.attendee.role.nonparticipant "No hi participa">
+<!ENTITY event.attendee.usertype.individual "Individu">
+<!ENTITY event.attendee.usertype.group "Grup">
+<!ENTITY event.attendee.usertype.resource "Recurs">
+<!ENTITY event.attendee.usertype.room "Sala">
+<!ENTITY event.attendee.usertype.unknown "Desconegut">
+
+<!-- Timezone dialog -->
+<!ENTITY timezone.title.label "Indiqueu el fus horari">
+<!ENTITY event.timezone.custom.label "Més fusos horaris…">
+
+<!-- Read-Only dialog -->
+<!ENTITY read.only.general.label "General">
+<!ENTITY read.only.title.label "Títol:">
+<!ENTITY read.only.calendar.label "Calendari:">
+<!ENTITY read.only.event.start.label "Data d'inici:">
+<!ENTITY read.only.task.start.label "Data d'inici:">
+<!ENTITY read.only.event.end.label "Data de fi:">
+<!ENTITY read.only.task.due.label "Data de venciment:">
+<!ENTITY read.only.repeat.label "Repetició:">
+<!ENTITY read.only.location.label "Ubicació:">
+<!ENTITY read.only.category.label "Categoria:">
+<!ENTITY read.only.organizer.label "Organitzador:">
+<!ENTITY read.only.reminder.label "Recordatori:">
+<!ENTITY read.only.attachments.label "Adjuncions:">
+<!ENTITY read.only.attendees.label "Assistents">
+<!ENTITY read.only.description.label "Descripció">
+<!ENTITY read.only.link.label "Enllaç relacionat">
+
+<!-- Summary dialog -->
+<!ENTITY summary.dialog.saveclose.label "Desa i tanca">
+<!ENTITY summary.dialog.saveclose.tooltiptext "Desa els canvis i tanca la finestra sense canviar el vostre estat de participació ni enviar cap resposta">
+<!ENTITY summary.dialog.accept.label "Accepta">
+<!ENTITY summary.dialog.accept.tooltiptext "Accepta la invitació">
+<!ENTITY summary.dialog.tentative.label "Provisional">
+<!ENTITY summary.dialog.tentative.tooltiptext "Accepta la invitació provisionalment">
+<!ENTITY summary.dialog.decline.label "Declina">
+<!ENTITY summary.dialog.decline.tooltiptext "Declina la invitació">
+<!ENTITY summary.dialog.dontsend.label "No enviïs cap resposta">
+<!ENTITY summary.dialog.dontsend.tooltiptext "Canvia el vostre estat de participació sense enviar cap resposta a l'organitzador i tanca la finestra">
+<!ENTITY summary.dialog.send.label "Envia una resposta ara">
+<!ENTITY summary.dialog.send.tooltiptext "Envia una resposta a l'organitzador i tanca la finestra">
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-event-dialog.properties b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-event-dialog.properties
new file mode 100644
index 0000000000..d1ca529e7f
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-event-dialog.properties
@@ -0,0 +1,541 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (dailyEveryNth):
+# Edit recurrence window -> Recurrence pattern -> Daily repeat rules
+# #1 - number
+# e.g. "every 4 days"
+dailyEveryNth=cada dia;cada #1 dies
+repeatDetailsRuleDaily4=cada dia feiner
+
+# 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 setmanes el %1$S
+weeklyNthOnNounclass2=cada %1$S;cada #2 setmanes el %1$S
+
+# LOCALIZATION NOTE (weeklyEveryNth):
+# Edit recurrence window -> Recurrence pattern -> Weekly repeat rules
+# #1 - interval
+# e.g. "every 5 weeks"
+weeklyEveryNth=cada setmana;cada #1 setmanes
+
+# 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=diumenge
+repeatDetailsDay1Nounclass=nounclass1
+repeatDetailsDay2=dilluns
+repeatDetailsDay2Nounclass=nounclass1
+repeatDetailsDay3=dimarts
+repeatDetailsDay3Nounclass=nounclass1
+repeatDetailsDay4=dimecres
+repeatDetailsDay4Nounclass=nounclass1
+repeatDetailsDay5=dijous
+repeatDetailsDay5Nounclass=nounclass1
+repeatDetailsDay6=divendres
+repeatDetailsDay6Nounclass=nounclass1
+repeatDetailsDay7=dissabte
+repeatDetailsDay7Nounclass=nounclass1
+
+# LOCALIZATION NOTE (repeatDetailsAnd)
+# Used to show a number of weekdays in a list
+# i.e. "Sunday, Monday, Tuesday " + and + " Wednesday"
+repeatDetailsAnd=i
+
+# LOCALIZATION NOTE (monthlyRuleNthOfEveryNounclass...):
+# 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 - list of weekdays with ordinal, article and noun class/gender
+# (ordinal and weekday of every element in the list follow the order
+# and the rule of ordinalWeekdayOrder string)
+# #2 - interval
+# e.g. "the first Monday and the last Friday of every 3 months"
+monthlyRuleNthOfEveryNounclass1=%1$S de cada mes;%1$S de cada #2 mesos
+monthlyRuleNthOfEveryNounclass2=%1$S de cada mes;%1$S de cada #2 mesos
+
+# LOCALIZATION NOTE (ordinalWeekdayOrder):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# This string allows to change the order of the elements "ordinal" and
+# "weekday" (or to insert a word between them) for the argument %1$S of the
+# string monthlyRuleNthOfEveryNounclass...
+# Without changing this string, the order is that one required from most
+# languages: ordinal + weekday (e.g. "'the first' 'Monday' of every 2 months").
+# %1$S - ordinal with article
+# %2$S - weekday noun
+# e.g. "'the first' 'Monday'"
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+ordinalWeekdayOrder=%1$S %2$S
+
+# 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 - list of single weekdays and/or weekdays with ordinal, article and
+# noun class/gender when rule contains also specific day in the month
+# #2 - interval
+# e.g. "every Monday, Tuesday and the second Sunday of every month"
+monthlyEveryOfEveryNounclass1=cada %1$S de cada mes;cada %1$S de cada #2 mesos
+monthlyEveryOfEveryNounclass2=cada %1$S de cada mes;cada %1$S de cada #2 mesos
+
+# LOCALIZATION NOTE (monthlyDaysOfNth_day):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - day of month or a sequence of days of month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties) separated with commas;
+# e.g. "days 3, 6 and 9" or "days 3rd, 6th and 9th"
+monthlyDaysOfNth_day=el dia %1$S;els dies %1$S
+
+# LOCALIZATION NOTE (monthlyDaysOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - it's the string monthlyDaysOfNth_day: day of month or a sequence of days
+# of month, possibly followed by an ordinal symbol, separated with commas;
+# #2 - monthly interval
+# e.g. "days 3, 6, 9 and 12 of every 3 months"
+monthlyDaysOfNth=%1$S de cada mes;%1$S de cada #2 mesos
+
+# 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=l'últim dia del mes; l'últim dia del mes de cada #1 mesos
+
+# 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 dia de cada mes;cada dia del mes de cada #2 mesos
+
+# 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 segon
+repeatOrdinal3Nounclass1=el tercer
+repeatOrdinal4Nounclass1=el quart
+repeatOrdinal5Nounclass1=el cinquè
+repeatOrdinal-1Nounclass1=l'últim
+repeatOrdinal1Nounclass2=el primer
+repeatOrdinal2Nounclass2=el segon
+repeatOrdinal3Nounclass2=el tercer
+repeatOrdinal4Nounclass2=el quart
+repeatOrdinal5Nounclass2=el cinquè
+repeatOrdinal-1Nounclass2=l'últim
+
+# LOCALIZATION NOTE (yearlyNthOn):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# %1$S - month name
+# %2$S - day of month possibly followed by an ordinal symbol (depending on the string
+# dayOrdinalSymbol in dateFormat.properties)
+# #3 - yearly interval
+# e.g. "every 3 years on December 14"
+# "every 2 years on December 8th"
+yearlyNthOn=cada %2$S de %1$S;cada %2$S de %1$S de cada #3 anys
+
+# 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;%1$S %2$S de %3$S de cada #4 anys
+yearlyNthOnNthOfNounclass2=%1$S %2$S de cada %3$S;%1$S %2$S de %3$S de cada #4 anys
+
+# LOCALIZATION NOTE (yearlyOnEveryNthOfNthNounclass...):
+# 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 %1$S de %2$S de cada #3 anys
+yearlyOnEveryNthOfNthNounclass2=cada %1$S de %2$S;cada %1$S de %2$S de cada #3 anys
+
+#LOCALIZATION NOTE (yearlyEveryDayOf):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# This string describes part of a yearly rule which includes every day of a month.
+# %1$S - month
+# #2 - yearly interval
+# e.g. "every day of December"
+# e.g. "every 3 years every day of December"
+yearlyEveryDayOf=cada dia de %1$S;cada dia de %1$S de cada #2 anys
+
+repeatDetailsMonth1=gener
+repeatDetailsMonth2=febrer
+repeatDetailsMonth3=març
+repeatDetailsMonth4=abril
+repeatDetailsMonth5=maig
+repeatDetailsMonth6=juny
+repeatDetailsMonth7=juliol
+repeatDetailsMonth8=agost
+repeatDetailsMonth9=setembre
+repeatDetailsMonth10=octubre
+repeatDetailsMonth11=novembre
+repeatDetailsMonth12=desembre
+
+# LOCALIZATION NOTE (repeatCount):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (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 monthlyRuleNthOfEvery:
+# "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=Té lloc %1$S\n#5 vegada a partir del %2$S\nde %3$S a %4$S.;Té lloc %1$S\n#5 vegades a partir del %2$S\nde %3$S a %4$S.
+
+# LOCALIZATION NOTE (repeatCountAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (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 monthlyRuleNthOfEvery:
+# "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=Té lloc %1$S\n#3 vegada a partir del %2$S.;Té lloc %1$S\n#3 vegades a partir del %2$S.
+
+# LOCALIZATION NOTE (repeatDetailsUntil):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (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 weeklyNthOn:
+# "Occurs every 2 weeks on Sunday and Friday
+# effective 1/1/2009 until 1/1/2010
+# from 5:00 PM to 6:00 PM"
+repeatDetailsUntil=Té lloc %1$S\na partir del %2$S fins al %3$S\nde %4$S a %5$S.
+
+# LOCALIZATION NOTE (repeatDetailsUntilAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (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 monthlyDaysOfNth and all day event:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009 until 1/1/2010"
+repeatDetailsUntilAllDay=Té lloc %1$S\na partir del %2$S fins al %3$S.
+
+# LOCALIZATION NOTE (repeatDetailsInfinite):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (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 monthlyDaysOfNth:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009
+# from 5:00 PM to 6:00 PM"
+repeatDetailsInfinite=Té lloc %1$S\na partir del %2$S\nde %3$S a %4$S.
+
+# LOCALIZATION NOTE (repeatDetailsInfiniteAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# e.g. with monthlyDaysOfNth and all day event:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009"
+repeatDetailsInfiniteAllDay=Té lloc %1$S\na partir del %2$S.
+
+# LOCALIZATION NOTE (monthlyLastDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# A monthly rule with one or more days of the month (monthlyDaysOfNth) and the
+# string "the last day" of the month.
+# e.g.: "Occurs day 15, 20, 25 and the last day of every 3 months"
+monthlyLastDay=l'últim dia
+
+# LOCALIZATION NOTE (ruleTooComplex):
+# This string is shown in the repeat details area if our code can't handle the
+# complexity of the recurrence rule yet.
+ruleTooComplex=Feu clic aquí per a més informació
+
+# LOCALIZATION NOTE (ruleTooComplexSummary):
+# This string is shown in the event summary dialog if our code can't handle the
+# complexity of the recurrence rule yet.
+ruleTooComplexSummary=No es coneixen els detalls de repetició
+
+# differences between the dialog for an Event or a Task
+newEvent=Cita nova
+newTask=Tasca nova
+itemMenuLabelEvent=Cita
+itemMenuAccesskeyEvent2=C
+itemMenuLabelTask=Tasca
+itemMenuAccesskeyTask2=T
+
+emailSubjectReply=Re: %1$S
+
+# Link Location Dialog
+specifyLinkLocation=Indiqueu l'adreça de l'enllaç
+enterLinkLocation=Escriviu l'adreça d'una pàgina web o la ubicació d'un document.
+
+summaryDueTaskLabel=Venciment:
+
+# Attach File Dialog
+attachViaFilelink=Fitxer mitjançant %1$S
+selectAFile=Seleccioneu els fitxers que voleu adjuntar
+removeCalendarsTitle=Suprimeix les adjuncions
+
+# LOCALIZATION NOTE (removeAttachmentsText): Semi-colon list of plural forms for
+# prompting attachment removal.
+# See http://developer.mozilla.org/en/Localization_and_Plurals
+removeAttachmentsText=Segur que voleu esborrar #1 adjunció?; Segur que voleu esborrar #1 adjuncions?
+
+# Recurrence Dialog Widget Order
+# LOCALIZATION NOTE: You can change the order of below params
+# Edit recurrence window -> Recurrence pattern -> Repeat monthly
+# %1$S - ordinal with article, %2$S - weekday
+# e.g. "the First Saturday"
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+monthlyOrder=%1$S %2$S
+
+# Edit recurrence window -> Recurrence pattern -> Repeat yearly
+# %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.
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+yearlyOrder=%1$S %3$S %2$S
+
+# Edit recurrence window -> Recurrence pattern -> Repeat yearly
+# %1$S - ordinal with article, %2$S - weekday, %3$S - of, %4$S - month
+# e.g. "the First Saturday of September"
+# If you don't need %3$S in your locale - please put this on the third place.
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+yearlyOrder2=%1$S %2$S %3$S %4$S
+
+# LOCALIZATION NOTE (pluralForWeekdays):
+# This string allows to set the use of weekdays nouns in plural form for
+# languages that need them in sentences like "every Monday" or "every Sunday
+# of March" etc.
+# Rule strings involved by this setting are:
+# - weeklyNthOn (only the first part) e.g. "every Sunday"
+# - monthlyEveryOfEvery
+# e.g. "every Monday of every month;every Monday every 2 months"
+# - yearlyOnEveryNthOfNth
+# e.g. "every Friday of March;every 2 years on every Friday of March"
+# In your local write:
+# "true" if sentences like those above need weekday in plural form;
+# "false" if sentences like those above don't need weekday in plural form;
+pluralForWeekdays=false
+
+# LOCALIZATION NOTE (repeatDetailsDayxxxPlural):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# Weekdays in plural form used inside sentences like "every Monday" or
+# "every Sunday of May" etc. for languages that need them.
+# These plurals will be used inside the following rule strings only if string
+# 'pluralForWeekdays' (see above) is set to "true":
+# - weeklyNthOn (only the first part) e.g. "every Sunday"
+# - monthlyEveryOfEvery
+# e.g. "every Monday of every month;every Monday every 2 months"
+# - yearlyOnEveryNthOfNth
+# e.g. "every Friday of March;every 2 years on every Friday of March"
+repeatDetailsDay1Plural=diumenges
+repeatDetailsDay2Plural=dilluns
+repeatDetailsDay3Plural=dimarts
+repeatDetailsDay4Plural=dimecres
+repeatDetailsDay5Plural=dijous
+repeatDetailsDay6Plural=divendres
+repeatDetailsDay7Plural=dissabtes
+
+# LOCALIZATION NOTE (eventRecurrenceForeverLabel):
+# Edit/New Event dialog -> datepicker that sets the until date.
+# For recurring rules that repeat forever, this labels appears in the
+# datepicker, below the minimonth, as an option for the until date.
+eventRecurrenceForeverLabel=Per sempre
+
+# LOCALIZATION NOTE (eventRecurrenceMonthlyLastDayLabel):
+# Edit dialog recurrence -> Monthly Recurrence pattern -> Monthly daypicker
+# The label on the monthly daypicker's last button that allows to select
+# the last day of the month inside a BYMONTHDAY rule.
+eventRecurrenceMonthlyLastDayLabel=Últim dia
+
+# LOCALIZATION NOTE (counterSummaryAccepted) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryAccepted=%1$S ha acceptat la invitació, però ha fet una contraproposta:
+
+# LOCALIZATION NOTE (counterSummaryDeclined) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryDeclined=%1$S ha declinat la invitació, però ha fet una contraproposta:
+
+# LOCALIZATION NOTE (counterSummaryDelegated) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryDelegated=%1$S ha delegat la invitació, però ha fet una contraproposta:
+
+# LOCALIZATION NOTE (counterSummaryNeedsAction) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryNeedsAction=%1$S no ha decidit si participarà i ha fet una contraproposta:
+
+# LOCALIZATION NOTE (counterSummaryTentative) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryTentative=%1$S ha acceptat la invitació provisionalment i ha fet una contraproposta:
+
+# LOCALIZATION NOTE (counterOnPreviousVersionNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+counterOnPreviousVersionNotification=Aquesta és la contraproposta d'una versió anterior d'aquesta cita.
+
+# LOCALIZATION NOTE (counterOnCounterDisallowedNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+counterOnCounterDisallowedNotification=Heu inhabilitat les contrapropostes quan heu enviat la invitació.
+
+# LOCALIZATION NOTE (eventAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation
+eventAccepted=Heu acceptat aquesta invitació
+
+# LOCALIZATION NOTE (eventTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation tentatively
+eventTentative=Heu acceptat provisionalment aquesta invitació
+
+# LOCALIZATION NOTE (eventDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the event invitation
+eventDeclined=Heu declinat aquesta invitació
+
+# LOCALIZATION NOTE (eventDelegated) - this will be displayed as notification
+# in the summary dialog if the user has delegated his/her participation to one
+# or more other participants (without attending / working on it his/herself)
+eventDelegated=Heu delegat aquesta invitació
+
+# LOCALIZATION NOTE (eventNeedsAction) - this will be displayed as notification
+# in the summary dialog if the user hasn't yet responded to an invitation
+eventNeedsAction=Encara no heu respost a aquesta invitació
+
+# LOCALIZATION NOTE (taskAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the assigned task
+taskAccepted=Heu acceptat participar en aquesta tasca
+
+# LOCALIZATION NOTE (taskTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted tentatively the assigned task
+taskTentative=Heu acceptat provisionalment participar en aquesta tasca
+
+# LOCALIZATION NOTE (taskDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the assigned task
+taskDeclined=Heu declinat participar en aquesta tasca
+
+# LOCALIZATION NOTE (taskDelegated) - this will be displayed as notification
+# in the summary dialog if the user has delegated his/her assignement to one or
+# more others (without attending / working on it his/herself)
+taskDelegated=Heu delegat la participació en aquesta tasca
+
+# LOCALIZATION NOTE (taskNeedsAction) - this will be displayed as notification
+# in the summary dialog if the user hasn't yet responded to the task assignment
+taskNeedsAction=Encara no heu respost a l'assignació d'aquesta tasca
+
+# LOCALIZATION NOTE (taskInProgress) - this will be displayed as notification
+# in the summary dialog if the user is working on an assigned task
+taskInProgress=Heu començat a participar en aquesta tasca assignada
+
+# LOCALIZATION NOTE (taskCompleted) - this will be displayed as notification
+# in the summary dialog if the user has completed the work on this assigned task
+taskCompleted=Heu acabat la vostra participació en aquesta tasca assignada
+
+# LOCALIZATION NOTE (sendandcloseButtonLabel) - this is a runtime replacement for
+# event.toolbar.saveandclose.label in the event dialog/tab toolbar if attendees
+# will be notified on saving & closing
+sendandcloseButtonLabel=Envia i tanca
+
+# LOCALIZATION NOTE (sendandcloseButtonTooltip) - this is a runtime replacement for
+# event.toolbar.saveandclose.tooltip in the event dialog/tab toolbar if attendees
+# will be notified on saving & closing
+sendandcloseButtonTooltip=Notifica els assistents i tanca
+
+# LOCALIZATION NOTE (saveandsendButtonLabel) - this is a runtime replacement for
+# event.toolbar.save.label2 in the event dialog/tab toolbar if attendees
+# will be notified on saving
+saveandsendButtonLabel=Desa i tanca
+
+# LOCALIZATION NOTE (saveandsendButtonTooltip) - this is a runtime replacement
+# for event.toolbar.save.tooltip2 in the event dialog/tab toolbar if attendees
+# will be notified on saving
+saveandsendButtonTooltip=Desa i notifica els assistents
+
+# LOCALIZATION NOTE (saveandsendMenuLabel) - this is a runtime replacement for
+# event.menu.item.save.label in the event dialog/tab toolbar if attendees
+# will be notified on saving
+saveandsendMenuLabel=Desa i tanca
+
+# LOCALIZATION NOTE (sendandcloseMenuLabel) - this is a runtime replacement for
+# event.menu.item.saveandclose.label in the event dialog/tab toolbar if attendees
+# will be notified on saving
+sendandcloseMenuLabel=Envia i tanca
+
+# LOCALIZATION NOTE (attendeesTabLabel) - this is a runtime replacement for
+# event.attendees.label defined in calendar-event-dialog.dtd and used in the
+# event dialog/tab as attendee tab label if an event has at least one attendee
+# %1$S - the number of attendee (1-n)
+attendeesTabLabel=Assistents (%1$S):
+
+# LOCALIZATION NOTE (attachmentsTabLabel) - this is a runtime replacement for
+# event.attachments.label defined in calendar-event-dialog.dtd and used in the
+# event dialog/tab as attendee tab label if an event has at least one attachment
+# %1$S - the number of attachments (1-n)
+attachmentsTabLabel=Adjuncions (%1$S):
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-extract.properties b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-extract.properties
new file mode 100644
index 0000000000..3f0d9107d3
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-extract.properties
@@ -0,0 +1,294 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE:
+# Strings here are used to create events and tasks with start and end times
+# based on email content.
+# None of the strings are displayed in the user interface.
+#
+# You don't have to fill all from.*, until.*, *.prefix and *.suffix patterns.
+# It's ok to leave some empty.
+# Please consider declensions and gender if your language has them.
+# Don't just translate directly. The number of variants doesn't have to be
+# the same as in en-US. All of 0, 1, 2, etc is allowed in patterns except alphabet
+# pattern. You can and should add language specific variants.
+#
+# There are two different ways to find a start time text in email:
+# 1) it matches a from.* pattern and does not have end.prefix or end.suffix next to it
+# 2) it matches until.* pattern and has start.prefix or start.suffix next to it
+# Similar inverse logic applies to end times.
+# These rules enable using prefix and suffix values with only start.* or only until.*
+# patterns localized for some languages and thus not having to repeat the same
+# values in both.
+#
+# Patterns are partially space-insensitive.
+# "deadline is" pattern will find both "deadlineis" and "deadline is"
+# but "deadlineis" won't find "deadline is" or "deadline is".
+# Therefore you should include all spaces that are valid within a pattern.
+
+# LOCALIZATION NOTE (start.prefix):
+# datetimes with these in front are extracted as start times
+# can be a list of values, separate variants by |
+start.prefix =de | de la | de les | des de | des de la | des de les | a partir de | a partir de la | a partir de les | entre | entre la | entre les
+
+# LOCALIZATION NOTE (start.suffix):
+# datetimes followed by these are extracted as start times
+start.suffix = a la | a les | fins la | fins les | fins a la | fins a les | - | i | i la | i les
+
+# LOCALIZATION NOTE (end.prefix):
+# datetimes with these in front are extracted as end times
+end.prefix = a la | a les | fins la | fins les | - | i | venciment: | venciment | acaba | data límit | data límit:
+
+# LOCALIZATION NOTE (end.suffix):
+# datetimes followed by these are extracted as end times
+# can be a list of values, separate variants by |
+end.suffix =
+
+# LOCALIZATION NOTE (no.datetime.prefix):
+# datetimes with these in front won't be used
+# specify full words here
+no.datetime.prefix = la setmana passada | la darrera setmana | enviat | correu | correu electrònic | en lloc de | > | desafortunadament | en | no
+
+# LOCALIZATION NOTE (no.datetime.suffix):
+# datetimes followed by these won't be used
+no.datetime.suffix = de la darrera setmana | : | correu | correu electrònic | > | & | eur | euros | $
+
+# LOCALIZATION NOTE (from.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (from.today):
+# must not be empty!
+from.today = avui
+
+from.tomorrow = demà
+# LOCALIZATION NOTE (until.*):
+# can be a list of values, separate variants by |
+until.tomorrow =
+
+# LOCALIZATION NOTE (from.ordinal.date):
+# #1 = matches numbers 1-31 and number.x
+# should not have "#1" as this would match any single number in email to a time
+from.ordinal.date = #1er | #1n | #1r | #1t | #1è
+
+# LOCALIZATION NOTE (until.ordinal.date):
+# #1 = matches numbers 1-31 and number.x
+until.ordinal.date =
+
+from.noon = migdia
+until.noon =migdia
+
+# LOCALIZATION NOTE (from.hour):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should not have "#1" as this would match any single number in email to a time
+from.hour = a la #1 | a les #1 | pels volts de la #1 | pels volts de les #1 | al voltant de la #1 | al voltant de les #1 | #1 - | #1 a | #1 fins
+
+# LOCALIZATION NOTE (until.hour):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour = - #1 | a #1 | a la #1 | a les #1 | fins a la #1 | fins a les #1 | fins la #1 | fins les #1
+
+# LOCALIZATION NOTE (from.hour.am):
+# #1 = matches numbers 0-23 and number.0-number.23
+from.hour.am = #1 am | #1 a.m
+
+# LOCALIZATION NOTE (until.hour.am):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour.am =
+
+# LOCALIZATION NOTE (from.hour.pm):
+# #1 = matches numbers 0-23 and number.0-number.23
+from.hour.pm = #1 pm | #1 p.m | #1 p
+
+# LOCALIZATION NOTE (until.hour.pm):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour.pm =
+
+# LOCALIZATION NOTE (from.half.hour.before):
+# denotes times 30 minutes before next full hour
+from.half.hour.before = mitja hora abans de la #1 | mitja hora abans de les #1 | dos quarts d'#1 | dos quarts de #1
+
+# LOCALIZATION NOTE (until.half.hour.before):
+# denotes times 30 minutes before next full hour
+until.half.hour.before =
+
+# LOCALIZATION NOTE (from.half.hour.after):
+# denotes times 30 minutes after last full hour
+from.half.hour.after = #1 i mitja
+
+# LOCALIZATION NOTE (until.half.hour.after):
+# denotes times 30 minutes after last full hour
+until.half.hour.after =
+
+# LOCALIZATION NOTE (from.hour.minutes):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+from.hour.minutes = #1:#2 | #1.#2 | a la #1:#2 | a la #1.#2 | a les #1:#2 | a les #1.#2 | de la #1:#2 | de la #1.#2 | de les #1:#2 | de les #1.#2
+
+# LOCALIZATION NOTE (until.hour.minutes):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+until.hour.minutes =- #1:#2 | - #1.#2 | fins a la #1:#2 | fins a la #1.#2 | fins a les #1:#2 | fins a les #1.#2 | fins la #1:#2 | fins la #1.#2 | fins les #1:#2 | fins les #1.#2
+
+# LOCALIZATION NOTE (from.hour.minutes.am):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+from.hour.minutes.am = #1:#2 am | #1:#2 a.m | #1.#2 am | #1.#2 a.m
+
+# LOCALIZATION NOTE (until.hour.minutes.am):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+until.hour.minutes.am =
+
+# LOCALIZATION NOTE (from.hour.minutes.pm):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+from.hour.minutes.pm = #1:#2 pm | #1:#2 p.m | #1:#2 p | #1.#2 pm | #1.#2 p.m | #1.#2 p
+
+# LOCALIZATION NOTE (until.hour.minutes.pm):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+until.hour.minutes.pm =
+
+# LOCALIZATION NOTE (from.monthname.day):
+# #1 = matches numbers 1-31 and number.x
+# #2 = matches monthname
+from.monthname.day = #1 #2 | #2 #1 | #1 de #2 | #1 d'#2 | #1er de #2 | #1n de #2 | #1r de #2 | #1t de #2 | #1è de #2 | #1er d'#2 | #1n d'#2 | #1r d'#2 | #1t d'#2 | #1è d'#2 | #1 - #2
+
+# LOCALIZATION NOTE (until.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+until.monthname.day =
+
+# LOCALIZATION NOTE (from.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+from.month.day = #1-#2 | #1/#2 | #1.#2
+
+# LOCALIZATION NOTE (until.month.day):
+# #1 = matches numbers 1-31 and number.x
+# #2 = matches numbers 1-12
+until.month.day =
+
+# LOCALIZATION NOTE (from.year.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+# #3 = matches 2/4 numbers
+from.year.month.day = #1/#2/#3 | #1-#2-#3 | #1.#2.#3
+
+# LOCALIZATION NOTE (until.year.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+# #3 = matches 2/4 numbers
+until.year.month.day =
+
+# LOCALIZATION NOTE (from.year.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+# #3 = matches 2/4 numbers
+from.year.monthname.day = #1 #2 #3 | #1 de #2 de #3 | #1 d'#2 de #3 | #1 de #2 del #3 | #1 d'#2 del #3 | #1er de #2 de #3 | #1er d'#2 de #3 | #1er de #2 del #3 | #1er d'#2 del #3 | #1n de #2 de #3 | #1n d'#2 de #3 | #1n de #2 del #3 | #1n d'#2 del #3 | #1r de #2 de #3 | #1r d'#2 de #3 | #1r de #2 del #3 | #1r d'#2 del #3 | #1t de #2 de #3 | #1t d'#2 de #3 | #1t de #2 del #3 | #1t d'#2 del #3 | #1è de #2 de #3 | #1è d'#2 de #3 | #1è de #2 del #3 | #1è d'#2 del #3 | #1/#2/#3 | #1-#2-#3 | #1.#2.#3
+
+# LOCALIZATION NOTE (until.year.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+# #3 = matches 2/4 numbers
+until.year.monthname.day =
+
+# LOCALIZATION NOTE (duration.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (duration.minutes):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.minutes = #1 minuts | #1 min | #1 mins
+
+# LOCALIZATION NOTE (duration.hours):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.hours = #1 hora | #1 hores
+
+# LOCALIZATION NOTE (duration.days):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.days = #1 dia | #1 dies
+
+# LOCALIZATION NOTE (month.*):
+# can be a list of values, separate variants by |
+month.1 = gener | gen | gen.
+month.2 = febrer | feb | feb. | febr | febr.
+month.3 = març | mar | mar.
+month.4 = abril | abr | abr.
+month.5 = maig | mai | mai.
+month.6 = juny | jun | jun.
+month.7 = juliol | jul | jul.
+month.8 = agost | ag | ag. | ago | ago.
+month.9 = setembre | set | set.
+month.10 = octubre | oct | oct.
+month.11 = novembre | nov | nov.
+month.12 = desembre | des | des.
+
+# LOCALIZATION NOTE (from.weekday.*):
+# used to derive start date based on weekdays mentioned
+# can be a list of values, separate variants by |
+# LOCALIZATION NOTE (from.weekday.0):
+# Regardless of what the first day of the week is in your country, 0 is Sunday here.
+from.weekday.0 = diumenge | diumenges | dg | dg. | diu. | dium.
+from.weekday.1 = dilluns | dl | dl. | dll | dll. | dill | dill.
+from.weekday.2 = dimarts | dt | dt.
+from.weekday.3 = dimecres | dc | dc. | dx | dx.
+from.weekday.4 = dijous | dj | dj. | dij | dij.
+from.weekday.5 = divendres | dv | dv. | div | div.
+from.weekday.6 = dissabte | dissabtes | ds | ds. | dss | dss. | dis | dis. | diss | diss.
+
+# LOCALIZATION NOTE (until.weekday.*):
+# used to derive end date based on weekdays mentioned
+# can be a list of values, separate variants by |
+# LOCALIZATION NOTE (until.weekday.0):
+# Regardless of what the first day of the week is in your country, 0 is Sunday here.
+until.weekday.0 =
+until.weekday.1 =
+until.weekday.2 =
+until.weekday.3 =
+until.weekday.4 =
+until.weekday.5 =
+until.weekday.6 =
+
+# LOCALIZATION NOTE (number.*):
+# used within other patterns to understand dates where day of month isn't written with digits
+# can be a list of values, separate variants by |
+number.0 = zero
+number.1 = u | un | una | uns | unes | primer | primera | primers | primeres
+number.2 = dos | dues | segon | segona | segons | segones
+number.3 = tres | tercer | tercera | tercers | terceres
+number.4 = quatre | quart | quarta | quarts | quartes
+number.5 = cinc | cinquè | cinquena | cinquens | cinquenes | cinqué | quint | quinta
+number.6 = sis | sisè | sisena | sisens | sisenes | sisé
+number.7 = set | setè | setena | setens | setenes | seté
+number.8 = vuit | vuitè | vuitena | vuitens | vuitenes | vuité
+number.9 = nou | novè | novena | novens | novenes | nové
+number.10 = deu | desè | desena | desens | desenes | desé
+number.11 = onze | onzè | onzena | onzens | onzenes | onzé
+number.12 = dotze | dotzè | dotzena | dotzens | dotzenes | dotzé
+number.13 = tretze | tretzè | tretzena | tretzens | tretzenes | tretzé
+number.14 = catorze | catorzè | catorzena | catorzens | catorzenes | catorzé
+number.15 = quinze | quinzè | quinzena | quinzens | quinzenes | quinzé
+number.16 = setze | setzè | setzena | setzens | setzenes | setzé
+number.17 = disset | dissetè | dissetena | dissetens | dissetenes | disseté
+number.18 = divuit | divuitè | divuitena | divuitens | divuitenes | divuité | dihuit | dihuité | dihuitè
+number.19 = dinou | dinovè | dinovena | dinovens | dinovenes | dinové
+number.20 = vint | vintè | vintena | vintens | vintenes | vinté
+number.21 = vint-i-u | vint-i-un | vint-i-una | vint-i-unè | vint-i-unena | vint-i-uné
+number.22 = vint-i-dos | vint-i-dues | vint-i-dosè | vint-i-dosena | vint-i-dosé
+number.23 = vint-i-tres | vint-i-tresè | vint-i-tresena | vint-i-tresé
+number.24 = vint-i-quatre | vint-i-quatrè | vint-i-quatrena | vint-i-quatré
+number.25 = vint-i-cinc | vint-i-cinquè | vint-i-cinquena | vint-i-cinqué
+number.26 = vint-i-sis | vint-i-sisè | vint-i-sisena | vint-i-sisé
+number.27 = vint-i-set | vint-i-setè | vint-i-setena | vint-i-seté
+number.28 = vint-i-vuit | vint-i-vuitè | vint-i-vuitena | vint-i-vuité | vint-i-huit | vint-i-huitè | vint-i-huité
+number.29 = vint-i-nou | vint-i-novè | vint-i-novena | vint-i-nové
+number.30 = trenta | trentè | trentena | trentens | trentenes | trenté
+number.31 = trenta-u | trenta-un | trenta-una | trenta-unè | trenta-unena | trenta-uné
+
+# LOCALIZATION NOTE (alphabet):
+# list all lower and uppercase letters if your language has an alphabet
+# otherwise leave it empty
+alphabet = abcçdefghijklmnopqrstuvwxyzABCÇDEFGHIJKLMNOPQRSTUVWXYZ
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-invitations-dialog.dtd b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-invitations-dialog.dtd
new file mode 100644
index 0000000000..dc6ca94306
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-invitations-dialog.dtd
@@ -0,0 +1,19 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<!-- Calendar Invitations Dialog -->
+
+<!ENTITY calendar.invitations.dialog.invitations.text "Invitacions">
+<!ENTITY calendar.invitations.dialog.statusmessage.updating.text "S'està actualitzant la llista d'invitacions.">
+<!ENTITY calendar.invitations.dialog.statusmessage.noinvitations.text "No s'han trobat invitacions per confirmar.">
+<!-- Calendar Invitations List -->
+
+<!ENTITY calendar.invitations.list.accept.button.label "Accepta">
+<!ENTITY calendar.invitations.list.decline.button.label "Declina">
+<!ENTITY calendar.invitations.list.recurrentevent.text "Cita repetitiva">
+<!ENTITY calendar.invitations.list.alldayevent.text "Cita de tot el dia">
+<!ENTITY calendar.invitations.list.location.text "Ubicació: ">
+<!ENTITY calendar.invitations.list.organizer.text "Organitzador: ">
+<!ENTITY calendar.invitations.list.attendee.text "Assistent: ">
+<!ENTITY calendar.invitations.list.none.text "Cap">
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-invitations-dialog.properties b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-invitations-dialog.properties
new file mode 100644
index 0000000000..04b1d42e62
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/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=Cita de tot el dia
+recurrent-event=Cita repetitiva
+location=Ubicació: %S
+organizer=Organitzador: %S
+attendee=Assistent: %S
+none=Cap
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-occurrence-prompt.dtd b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-occurrence-prompt.dtd
new file mode 100644
index 0000000000..5864a9335f
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/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 "t">
+<!ENTITY buttons.allfollowing.accesskey "f">
+<!ENTITY buttons.parent.accesskey "a">
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-occurrence-prompt.properties b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-occurrence-prompt.properties
new file mode 100644
index 0000000000..4de19200ca
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar-occurrence-prompt.properties
@@ -0,0 +1,53 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+header.isrepeating.event.label=és una cita periòdica
+header.isrepeating.task.label=és una tasca periòdica
+header.containsrepeating.event.label=conté cites periòdiques
+header.containsrepeating.task.label=conté tasques periòdiques
+header.containsrepeating.mixed.label=conté elements periòdics de diversos tipus
+
+windowtitle.event.copy=Copia la cita periòdica
+windowtitle.task.copy=Copia la tasca periòdica
+windowtitle.mixed.copy=Copia els elements periòdics
+windowtitle.event.cut=Retalla la cita periòdica
+windowtitle.task.cut=Retalla la tasca periòdica
+windowtitle.mixed.cut=Retalla els elements periòdics
+windowtitle.event.delete=Suprimeix la cita periòdica
+windowtitle.task.delete=Suprimeix la tasca periòdica
+windowtitle.mixed.delete=Suprimeix els elements periòdics
+windowtitle.event.edit=Edita la cita periòdica
+windowtitle.task.edit=Edita la tasca periòdica
+windowtitle.mixed.edit=Edita els elements periòdics
+windowtitle.multipleitems=Elements seleccionats
+
+buttons.single.occurrence.copy.label=Copia només aquesta ocurrència
+buttons.single.occurrence.cut.label=Retalla només aquesta ocurrència
+buttons.single.occurrence.delete.label=Suprimeix només aquesta ocurrència
+buttons.single.occurrence.edit.label=Edita només aquesta ocurrència
+
+buttons.multiple.occurrence.copy.label=Copia només les ocurrències seleccionades
+buttons.multiple.occurrence.cut.label=Retalla només les ocurrències seleccionades
+buttons.multiple.occurrence.delete.label=Suprimeix només les ocurrències seleccionades
+buttons.multiple.occurrence.edit.label=Edita només les ocurrències seleccionades
+
+buttons.single.allfollowing.copy.label=Copia aquesta ocurrència i totes les posteriors
+buttons.single.allfollowing.cut.label=Retalla aquesta ocurrència i totes les posteriors
+buttons.single.allfollowing.delete.label=Suprimeix aquesta ocurrència i totes les posteriors
+buttons.single.allfollowing.edit.label=Edita aquesta ocurrència i totes les posteriors
+
+buttons.multiple.allfollowing.copy.label=Copia les ocurrències seleccionades i totes les posteriors
+buttons.multiple.allfollowing.cut.label=Retalla les ocurrències seleccionades i totes les posteriors
+buttons.multiple.allfollowing.delete.label=Suprimeix les ocurrències seleccionades i totes les posteriors
+buttons.multiple.allfollowing.edit.label=Edita les ocurrències seleccionades i totes les posteriors
+
+buttons.single.parent.copy.label=Copia totes les ocurrències
+buttons.single.parent.cut.label=Retalla totes les ocurrències
+buttons.single.parent.delete.label=Suprimeix totes les ocurrències
+buttons.single.parent.edit.label=Edita totes les ocurrències
+
+buttons.multiple.parent.copy.label=Copia totes les ocurrències dels elements seleccionats
+buttons.multiple.parent.cut.label=Retalla totes les ocurrències dels elements seleccionats
+buttons.multiple.parent.delete.label=Suprimeix totes les ocurrències dels elements seleccionats
+buttons.multiple.parent.edit.label=Edita totes les ocurrències dels elements seleccionats
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar.dtd b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar.dtd
new file mode 100644
index 0000000000..26dba2e50b
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar.dtd
@@ -0,0 +1,411 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- General -->
+<!ENTITY calendar.calendar.label "Calendari">
+<!ENTITY calendar.calendar.accesskey "C">
+
+<!ENTITY calendar.newevent.button.tooltip "Crea una cita nova" >
+<!ENTITY calendar.newtask.button.tooltip "Crea una tasca nova" >
+
+<!ENTITY calendar.unifinder.todoitems.label "Tasques" >
+
+<!ENTITY calendar.unifinder.showcompletedtodos.label "Mostra les tasques acabades">
+
+<!ENTITY calendar.today.button.label "Avui">
+<!ENTITY calendar.tomorrow.button.label "Demà">
+<!ENTITY calendar.upcoming.button.label "Properes">
+
+<!ENTITY calendar.events.filter.all.label "Totes les cites">
+<!ENTITY calendar.events.filter.today.label "Cites d'avui">
+<!ENTITY calendar.events.filter.future.label "Totes les cites futures">
+<!ENTITY calendar.events.filter.current.label "Dia seleccionat actualment">
+<!ENTITY calendar.events.filter.currentview.label "Cites de la vista actual">
+<!ENTITY calendar.events.filter.next7Days.label "Cites dels propers 7 dies">
+<!ENTITY calendar.events.filter.next14Days.label "Cites dels propers 14 dies">
+<!ENTITY calendar.events.filter.next31Days.label "Cites dels propers 31 dies">
+<!ENTITY calendar.events.filter.thisCalendarMonth.label "Cites d'aquest mes del calendari">
+
+<!-- LOCALIZATION NOTE(calendar.unifinder.tree.done.tooltip)
+ - This label and tooltip is used for the column with the checkbox in the
+ - task tree view. -->
+<!ENTITY calendar.unifinder.tree.done.label "Feta">
+<!ENTITY calendar.unifinder.tree.done.tooltip2 "Ordena per compleció">
+<!ENTITY calendar.unifinder.tree.priority.label "Prioritat">
+<!ENTITY calendar.unifinder.tree.priority.tooltip2 "Ordena per prioritat">
+<!ENTITY calendar.unifinder.tree.title.label "Títol">
+<!ENTITY calendar.unifinder.tree.title.tooltip2 "Ordena per títol">
+<!ENTITY calendar.unifinder.tree.percentcomplete.label "&#37; acabada">
+<!ENTITY calendar.unifinder.tree.percentcomplete.tooltip2 "Ordena per &#37; acabada">
+<!ENTITY calendar.unifinder.tree.startdate.label "Inici">
+<!ENTITY calendar.unifinder.tree.startdate.tooltip2 "Ordena per data d'inici">
+<!ENTITY calendar.unifinder.tree.enddate.label "Fi">
+<!ENTITY calendar.unifinder.tree.enddate.tooltip2 "Ordena per data de fi">
+<!ENTITY calendar.unifinder.tree.duedate.label "Venciment">
+<!ENTITY calendar.unifinder.tree.duedate.tooltip2 "Ordena per data de venciment">
+<!ENTITY calendar.unifinder.tree.completeddate.label "Acabada">
+<!ENTITY calendar.unifinder.tree.completeddate.tooltip2 "Ordena per data d'acabament">
+<!ENTITY calendar.unifinder.tree.categories.label "Categoria">
+<!ENTITY calendar.unifinder.tree.categories.tooltip2 "Ordena per categoria">
+<!ENTITY calendar.unifinder.tree.location.label "Ubicació">
+<!ENTITY calendar.unifinder.tree.location.tooltip2 "Ordena per ubicació">
+<!ENTITY calendar.unifinder.tree.status.label "Estat">
+<!ENTITY calendar.unifinder.tree.status.tooltip2 "Ordena per estat">
+<!ENTITY calendar.unifinder.tree.calendarname.label "Nom del calendari">
+<!ENTITY calendar.unifinder.tree.calendarname.tooltip2 "Ordena per nom del calendari">
+<!ENTITY calendar.unifinder.tree.duration.label "Temps restant">
+<!ENTITY calendar.unifinder.tree.duration.tooltip2 "Ordena per temps restant">
+<!ENTITY calendar.unifinder.close.tooltip "Tanca la llista i la cerca de cites">
+
+<!ENTITY calendar.today.button.tooltip "Vés a avui" >
+<!ENTITY calendar.todaypane.button.tooltip "Mostra el plafó d'avui" >
+
+<!ENTITY calendar.day.button.tooltip "Canvia a la vista diària" >
+<!ENTITY calendar.week.button.tooltip "Canvia a la vista setmanal" >
+<!ENTITY calendar.month.button.tooltip "Canvia a la vista mensual" >
+<!ENTITY calendar.multiweek.button.tooltip "Canvia a la vista multisetmanal" >
+
+<!ENTITY calendar.nextday.label "Dia següent" >
+<!ENTITY calendar.prevday.label "Dia anterior" >
+<!ENTITY calendar.nextday.accesskey "s" >
+<!ENTITY calendar.prevday.accesskey "a" >
+<!ENTITY calendar.nextweek.label "Setmana següent" >
+<!ENTITY calendar.prevweek.label "Setmana anterior" >
+<!ENTITY calendar.nextweek.accesskey "S" >
+<!ENTITY calendar.prevweek.accesskey "a" >
+<!ENTITY calendar.nextmonth.label "Mes següent" >
+<!ENTITY calendar.prevmonth.label "Mes anterior" >
+<!ENTITY calendar.nextmonth.accesskey "s" >
+<!ENTITY calendar.prevmonth.accesskey "a" >
+
+<!ENTITY calendar.navigation.nextday.tooltip "Dia següent" >
+<!ENTITY calendar.navigation.prevday.tooltip "Dia anterior" >
+<!ENTITY calendar.navigation.nextweek.tooltip "Setmana següent" >
+<!ENTITY calendar.navigation.prevweek.tooltip "Setmana anterior" >
+<!ENTITY calendar.navigation.nextmonth.tooltip "Mes següent" >
+<!ENTITY calendar.navigation.prevmonth.tooltip "Mes anterior" >
+
+<!ENTITY calendar.newevent.button.label "Cita nova" >
+<!ENTITY calendar.newtask.button.label "Tasca nova" >
+<!ENTITY calendar.print.button.label "Imprimeix" >
+<!ENTITY calendar.print.button.accesskey "p">
+
+<!ENTITY calendar.day.button.label "Dia" >
+<!ENTITY calendar.week.button.label "Setmana" >
+<!ENTITY calendar.month.button.label "Mes" >
+<!ENTITY calendar.multiweek.button.label "Multisetmana" >
+<!ENTITY calendar.onlyworkday.checkbox.label "Només els dies feiners" >
+<!ENTITY calendar.onlyworkday.checkbox.accesskey "d" >
+<!ENTITY calendar.displaytodos.checkbox.label "Tasques de la vista" >
+<!ENTITY calendar.displaytodos.checkbox.accesskey "q" >
+<!ENTITY calendar.completedtasks.checkbox.label "Mostra les tasques acabades" >
+<!ENTITY calendar.completedtasks.checkbox.accesskey "c" >
+
+<!ENTITY calendar.orientation.label "Gira la vista" >
+<!ENTITY calendar.orientation.accesskey "G" >
+
+<!ENTITY calendar.search.options.searchfor " que continguin">
+
+<!ENTITY calendar.list.header.label "Calendari">
+
+<!ENTITY calendar.task.filter.title.label "Mostra">
+<!ENTITY calendar.task.filter.all.label "Totes">
+<!ENTITY calendar.task.filter.all.accesskey "T">
+<!ENTITY calendar.task.filter.today.label "Avui">
+<!ENTITY calendar.task.filter.today.accesskey "A">
+<!ENTITY calendar.task.filter.next7days.label "Els pròxims 7 dies">
+<!ENTITY calendar.task.filter.next7days.accesskey "7">
+<!ENTITY calendar.task.filter.notstarted.label "Tasques sense començar">
+<!ENTITY calendar.task.filter.notstarted.accesskey "o">
+<!ENTITY calendar.task.filter.overdue.label "Tasques endarrerides">
+<!ENTITY calendar.task.filter.overdue.accesskey "e">
+<!ENTITY calendar.task.filter.completed.label "Tasques acabades">
+<!ENTITY calendar.task.filter.completed.accesskey "c">
+<!ENTITY calendar.task.filter.open.label "Tasques inacabades">
+<!ENTITY calendar.task.filter.open.accesskey "b">
+
+<!-- LOCALIZATION NOTE(calendar.task.filter.current.label)
+ "Current Tasks" will show all tasks, except those with a start date set
+ that is after today and after the selected date. If a task repeats, a
+ separate entry will be shown for each of the occurrences that happen on or
+ before today (or the selected date, whichever is later). -->
+<!ENTITY calendar.task.filter.current.label "Tasques actuals">
+<!ENTITY calendar.task.filter.current.accesskey "u">
+
+<!ENTITY calendar.task-details.title.label "títol">
+<!ENTITY calendar.task-details.organizer.label "des de">
+<!ENTITY calendar.task-details.priority.label "prioritat">
+<!ENTITY calendar.task-details.priority.low.label "Baixa">
+<!ENTITY calendar.task-details.priority.normal.label "Normal">
+<!ENTITY calendar.task-details.priority.high.label "Alta">
+<!ENTITY calendar.task-details.status.label "estat">
+<!ENTITY calendar.task-details.category.label "categoria">
+<!ENTITY calendar.task-details.repeat.label "repetició">
+<!ENTITY calendar.task-details.attachments.label "adjuncions">
+<!ENTITY calendar.task-details.start.label "data d'inici">
+<!ENTITY calendar.task-details.due.label "data de venciment">
+
+<!ENTITY calendar.task.category.button.tooltip "Categorització de tasques">
+<!ENTITY calendar.task.complete.button.tooltip "Marca les tasques seleccionades com a acabades">
+<!ENTITY calendar.task.priority.button.tooltip "Canvia la prioritat">
+
+<!ENTITY calendar.task.text-filter.textbox.emptytext.base1 "Filtra les tasques #1">
+<!ENTITY calendar.task.text-filter.textbox.emptytext.keylabel.nonmac "&lt;Ctrl+Maj+K&gt;">
+<!ENTITY calendar.task.text-filter.textbox.emptytext.keylabel.mac "&lt;&#x21E7;&#x2318;K&gt;">
+
+<!-- Context Menu -->
+<!ENTITY calendar.context.modifyorviewitem.label "Obre">
+<!ENTITY calendar.context.modifyorviewitem.accesskey "O">
+<!ENTITY calendar.context.modifyorviewtask.label "Obre la tasca…">
+<!ENTITY calendar.context.modifyorviewtask.accesskey "b">
+<!ENTITY calendar.context.newevent.label "Cita nova…">
+<!ENTITY calendar.context.newevent.accesskey "i">
+<!ENTITY calendar.context.newtodo.label "Tasca nova…">
+<!ENTITY calendar.context.newtodo.accesskey "n">
+<!ENTITY calendar.context.deletetask.label "Suprimeix la tasca">
+<!ENTITY calendar.context.deletetask.accesskey "S">
+<!ENTITY calendar.context.deleteevent.label "Suprimeix la cita">
+<!ENTITY calendar.context.deleteevent.accesskey "S">
+<!ENTITY calendar.context.cutevent.label "Retalla">
+<!ENTITY calendar.context.cutevent.accesskey "t">
+<!ENTITY calendar.context.copyevent.label "Copia">
+<!ENTITY calendar.context.copyevent.accesskey "C">
+<!ENTITY calendar.context.pasteevent.label "Enganxa">
+<!ENTITY calendar.context.pasteevent.accesskey "x">
+<!ENTITY calendar.context.button.label "Plafó d'avui">
+<!ENTITY calendar.context.button.accesskey "a">
+
+<!ENTITY calendar.context.attendance.menu.label "Assistència">
+<!ENTITY calendar.context.attendance.menu.accesskey "A">
+<!ENTITY calendar.context.attendance.occurrence.label "Aquesta ocurrència">
+<!ENTITY calendar.context.attendance.all2.label "Sèrie completa">
+<!ENTITY calendar.context.attendance.send.label "Envia una notificació ara">
+<!ENTITY calendar.context.attendance.send.accesskey "E">
+<!ENTITY calendar.context.attendance.dontsend.label "No enviïs cap notificació">
+<!ENTITY calendar.context.attendance.dontsend.accesskey "N">
+
+<!ENTITY calendar.context.attendance.occ.accepted.accesskey "A">
+<!ENTITY calendar.context.attendance.occ.accepted.label "Acceptada">
+<!ENTITY calendar.context.attendance.occ.tentative.accesskey "v">
+<!ENTITY calendar.context.attendance.occ.tentative.label "Acceptada provisionalment">
+<!ENTITY calendar.context.attendance.occ.declined.accesskey "n">
+<!ENTITY calendar.context.attendance.occ.declined.label "Declinada">
+<!ENTITY calendar.context.attendance.occ.delegated.accesskey "g">
+<!ENTITY calendar.context.attendance.occ.delegated.label "Delegada">
+<!ENTITY calendar.context.attendance.occ.needsaction.accesskey "E">
+<!ENTITY calendar.context.attendance.occ.needsaction.label "Encara necessita una acció">
+<!ENTITY calendar.context.attendance.occ.inprogress.accesskey "r">
+<!ENTITY calendar.context.attendance.occ.inprogress.label "En curs">
+<!ENTITY calendar.context.attendance.occ.completed.accesskey "b">
+<!ENTITY calendar.context.attendance.occ.completed.label "Acabada">
+
+<!ENTITY calendar.context.attendance.all.accepted.accesskey "c">
+<!ENTITY calendar.context.attendance.all.accepted.label "Acceptada">
+<!ENTITY calendar.context.attendance.all.tentative.accesskey "o">
+<!ENTITY calendar.context.attendance.all.tentative.label "Acceptada provisionalment">
+<!ENTITY calendar.context.attendance.all.declined.accesskey "i">
+<!ENTITY calendar.context.attendance.all.declined.label "Declinada">
+<!ENTITY calendar.context.attendance.all.delegated.accesskey "l">
+<!ENTITY calendar.context.attendance.all.delegated.label "Delegada">
+<!ENTITY calendar.context.attendance.all.needsaction.accesskey "s">
+<!ENTITY calendar.context.attendance.all.needsaction.label "Encara necessita una acció">
+<!ENTITY calendar.context.attendance.all.inprogress.accesskey "u">
+<!ENTITY calendar.context.attendance.all.inprogress.label "En curs">
+<!ENTITY calendar.context.attendance.all.completed.accesskey "d">
+<!ENTITY calendar.context.attendance.all.completed.label "Acabada">
+
+<!-- Task Context Menu -->
+<!ENTITY calendar.context.progress.label "Progrés">
+<!ENTITY calendar.context.progress.accesskey "P">
+<!ENTITY calendar.context.priority.label "Prioritat">
+<!ENTITY calendar.context.priority.accesskey "r">
+<!ENTITY calendar.context.postpone.label "Ajorna la tasca">
+<!ENTITY calendar.context.postpone.accesskey "o">
+
+<!ENTITY percnt "&#38;#37;" ><!--=percent sign-->
+
+<!ENTITY calendar.context.markcompleted.label "Marca com a acabada">
+<!ENTITY calendar.context.markcompleted.accesskey "d">
+
+<!ENTITY progress.level.0 "0&percnt; acabat">
+<!ENTITY progress.level.0.accesskey "0">
+<!ENTITY progress.level.25 "25&percnt; acabat">
+<!ENTITY progress.level.25.accesskey "2">
+<!ENTITY progress.level.50 "50&percnt; acabat">
+<!ENTITY progress.level.50.accesskey "5">
+<!ENTITY progress.level.75 "75&percnt; acabat">
+<!ENTITY progress.level.75.accesskey "7">
+<!ENTITY progress.level.100 "100&percnt; acabat">
+<!ENTITY progress.level.100.accesskey "1">
+
+<!ENTITY priority.level.none "Sense especificar">
+<!ENTITY priority.level.none.accesskey "n">
+<!ENTITY priority.level.low "Baixa">
+<!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 dia">
+<!ENTITY calendar.context.postpone.1day.accesskey "d">
+<!ENTITY calendar.context.postpone.1week.label "1 setmana">
+<!ENTITY calendar.context.postpone.1week.accesskey "s">
+
+<!ENTITY calendar.copylink.label "Copia l'enllaç">
+<!ENTITY calendar.copylink.accesskey "C">
+
+<!-- Task View -->
+<!-- Note that the above *.context.* strings are currently used for the other
+ task action buttons -->
+<!ENTITY calendar.taskview.delete.label "Suprimeix">
+
+<!-- Server Context Menu -->
+<!ENTITY calendar.context.newserver.label "Calendari nou…">
+<!ENTITY calendar.context.newserver.accesskey "n">
+<!ENTITY calendar.context.findcalendar.label "Cerca un calendari…" >
+<!ENTITY calendar.context.findcalendar.accesskey "C" >
+<!ENTITY calendar.context.deleteserver2.label "Suprimeix el calendari…">
+<!ENTITY calendar.context.deleteserver2.accesskey "S">
+
+<!-- LOCALIZATION NOTE (calendar.context.removeserver.label): Removing the
+ calendar is the general action of removing it, while deleting means to
+ clear the data and unsubscribing means just taking it out of the calendar
+ list. -->
+<!ENTITY calendar.context.removeserver.label "Elimina el calendari…">
+<!ENTITY calendar.context.removeserver.accesskey "E">
+<!ENTITY calendar.context.unsubscribeserver.label "Cancel·la la subscripció al calendari…">
+<!ENTITY calendar.context.unsubscribeserver.accesskey "C">
+<!ENTITY calendar.context.synccalendars.label "Sincronitza els calendaris">
+<!ENTITY calendar.context.synccalendars.accesskey "S">
+<!ENTITY calendar.context.publish.label "Publica el calendari…">
+<!ENTITY calendar.context.publish.accesskey "b">
+<!ENTITY calendar.context.export.label "Exporta el calendari…">
+<!ENTITY calendar.context.export.accesskey "E">
+<!ENTITY calendar.context.properties.label "Propietats">
+<!ENTITY calendar.context.properties.accesskey "P">
+
+<!-- LOCALIZATION NOTE (calendar.context.showcalendar.accesskey)
+ This is the access key used for the showCalendar string -->
+<!ENTITY calendar.context.showcalendar.accesskey "o">
+
+<!-- LOCALIZATION NOTE (calendar.context.hidecalendar.accesskey)
+ This is the access key used for the hideCalendar string -->
+<!ENTITY calendar.context.hidecalendar.accesskey "m">
+
+<!-- LOCALIZATION NOTE (calendar.context.showonly.accesskey)
+ This is the access key used for the showOnlyCalendar string -->
+<!ENTITY calendar.context.showonly.accesskey "o">
+<!ENTITY calendar.context.showall.label "Mostra tots els calendaris">
+<!ENTITY calendar.context.showall.accesskey "t">
+
+<!ENTITY calendar.context.convertmenu.label "Converteix en">
+<!ENTITY calendar.context.convertmenu.accesskey.mail "n">
+<!ENTITY calendar.context.convertmenu.accesskey.calendar "v">
+<!ENTITY calendar.context.convertmenu.event.label "Cita…">
+<!ENTITY calendar.context.convertmenu.event.accesskey "C">
+<!ENTITY calendar.context.convertmenu.message.label "Missatge…">
+<!ENTITY calendar.context.convertmenu.message.accesskey "M">
+<!ENTITY calendar.context.convertmenu.task.label "Tasca…">
+<!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 "Llista de calendaris">
+<!ENTITY calendar.tasks.view.calendarlist.accesskey "L">
+
+<!ENTITY calendar.tasks.view.filtertasks.label "Filtra les tasques">
+<!ENTITY calendar.tasks.view.filtertasks.accesskey "F">
+
+<!-- Calendar Alarm Dialog -->
+
+<!ENTITY calendar.alarm.location.label "Ubicació:" >
+<!ENTITY calendar.alarm.details.label "Detalls…" >
+
+<!ENTITY calendar.alarm.snoozefor.label "Ajorna fins d'aquí" >
+<!ENTITY calendar.alarm.snoozeallfor.label "Ajorna-ho tot fins d'aquí" >
+<!ENTITY calendar.alarm.title.label "Recordatoris del calendari" >
+<!ENTITY calendar.alarm.dismiss.label "Atura l'alarma" >
+<!ENTITY calendar.alarm.dismissall.label "Atura totes les alarmes" >
+
+<!ENTITY calendar.alarm.snooze.5minutes.label "5 minuts" >
+<!ENTITY calendar.alarm.snooze.10minutes.label "10 minuts" >
+<!ENTITY calendar.alarm.snooze.15minutes.label "15 minuts" >
+<!ENTITY calendar.alarm.snooze.30minutes.label "30 minuts" >
+<!ENTITY calendar.alarm.snooze.45minutes.label "45 minuts" >
+<!ENTITY calendar.alarm.snooze.1hour.label "1 hora" >
+<!ENTITY calendar.alarm.snooze.2hours.label "2 hores" >
+<!ENTITY calendar.alarm.snooze.1day.label "1 dia" >
+
+<!-- LOCALIZATION NOTE (calendar.alarm.snooze.cancel)
+ This string is not seen in the UI, it is read by screen readers when the
+ user focuses the "Cancel" button in the "Snooze for..." popup of the alarm
+ dialog. -->
+<!ENTITY calendar.alarm.snooze.cancel "Cancel·la l'ajornament">
+
+<!-- Calendar Server Dialog -->
+<!ENTITY calendar.server.dialog.title.edit "Edita el calendari">
+<!ENTITY calendar.server.dialog.name.label "Nom del calendari:">
+
+<!-- Calendar Properties -->
+<!ENTITY calendarproperties.color.label "Color:">
+<!ENTITY calendarproperties.webdav.label "iCalendar (ICS)">
+<!ENTITY calendarproperties.caldav.label "CalDAV">
+<!ENTITY calendarproperties.wcap.label "Servidor de sistema de calendaris de Java de Sun (WCAP)">
+<!ENTITY calendarproperties.format.label "Format:">
+<!ENTITY calendarproperties.location.label "Ubicació:">
+<!ENTITY calendarproperties.refreshInterval.label "Actualització:">
+<!ENTITY calendarproperties.refreshInterval.manual.label "Manual">
+<!ENTITY calendarproperties.name.label "Nom:">
+<!ENTITY calendarproperties.readonly.label "Només de lectura">
+<!ENTITY calendarproperties.firealarms.label "Mostra els recordatoris">
+<!ENTITY calendarproperties.cache3.label "Funcionament fora de línia">
+<!ENTITY calendarproperties.enabled.label "Mostra aquest calendari">
+<!ENTITY calendarproperties.enabled2.label "Activa aquest calendari">
+<!ENTITY calendarproperties.forceDisabled.label "No s'ha pogut trobar el proveïdor d'aquest calendari. Això sol passar quan s'han inhabilitat o s'han desinstal·lat complements.">
+<!ENTITY calendarproperties.unsubscribe.label "Cancel·la la subscripció">
+<!ENTITY calendarproperties.unsubscribe.accesskey "C">
+
+<!-- Calendar Publish Dialog -->
+<!ENTITY calendar.publish.dialog.title "Publica el calendari">
+<!ENTITY calendar.publish.url.label "URL de publicació">
+<!ENTITY calendar.publish.publish.button "Publica">
+<!ENTITY calendar.publish.close.button "Tanca">
+
+<!ENTITY calendar.publish.example.url.description "Quelcom semblant a http://www.myserver.com/webdav/test.ics">
+
+<!-- Select Calendar Dialog -->
+<!ENTITY calendar.select.dialog.title "Selecció d'un calendari">
+
+<!-- Calendar Printing -->
+<!ENTITY calendar.print.window.title "Imprimeix un calendari">
+<!ENTITY calendar.print.title.label "Títol:">
+<!ENTITY calendar.print.layout.label "Format:">
+<!ENTITY calendar.print.range.label "Què s'imprimirà:">
+<!ENTITY calendar.print.currentView2.label "Vista actual">
+<!ENTITY calendar.print.selectedEventsAndTasks.label "Cites i tasques seleccionades">
+<!ENTITY calendar.print.tasks.label "Tasques">
+<!ENTITY calendar.print.events.label "Cites">
+<!ENTITY calendar.print.custom.label "Interval de dates personalitzat:">
+<!ENTITY calendar.print.from.label "Des de:">
+<!ENTITY calendar.print.to.label "Fins:">
+<!ENTITY calendar.print.settingsGroup.label "Paràmetres d'impressió">
+<!ENTITY calendar.print.optionsGroup.label "Opcions">
+<!ENTITY calendar.print.taskswithnoduedate.label "Tasques sense data de venciment">
+<!ENTITY calendar.print.completedtasks.label "Tasques acabades">
+
+<!-- Error reporting -->
+<!ENTITY calendar.error.detail "Detalls…">
+<!ENTITY calendar.error.code "Codi d'error:">
+<!ENTITY calendar.error.description "Descripció:">
+<!ENTITY calendar.error.title "S'ha produït un error">
+
+<!-- Extract buttons in message header -->
+<!ENTITY calendar.extract.event.button "Afegeix com a cita">
+<!ENTITY calendar.extract.task.button "Afegeix com a tasca">
+<!ENTITY calendar.extract.event.button.tooltip "Extreu la informació temporal del missatge i l'afegeix al calendari com a cita">
+<!ENTITY calendar.extract.task.button.tooltip "Extreu la informació temporal del missatge i l'afegeix al calendari com a tasca">
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar.properties b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar.properties
new file mode 100644
index 0000000000..185f0ffd79
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendar.properties
@@ -0,0 +1,809 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Misc. strings in JS
+
+# LOCALIZATION NOTE (PrintPreviewWindowTitle):
+# %1$S will be replaced with the title of a html frame
+PrintPreviewWindowTitle=Exemple d'impressió de %1$S
+Untitled=Sense títol
+
+# Default name for new events
+newEvent=Cita nova
+
+# Titles for the event/task dialog
+newEventDialog=Cita nova
+editEventDialog=Edita la cita
+newTaskDialog=Tasca nova
+editTaskDialog=Edita la tasca
+
+# Do you want to save changes?
+askSaveTitleEvent=Desa la cita
+askSaveTitleTask=Desa la tasca
+askSaveMessageEvent=La cita encara no s'ha desat. Voleu desar-la?
+askSaveMessageTask=La tasca encara no s'ha desat. Voleu desar-la?
+
+# Event Dialog Warnings
+warningEndBeforeStart=La data de finalització que heu escrit és anterior a la data d'inici
+warningUntilDateBeforeStart=La data de finalització és anterior a la data d'inici
+
+# The name of the calendar provided with the application by default
+homeCalendarName=Inici
+
+# The name given to a calendar if an opened calendar has an empty filename
+untitledCalendarName=Calendari sense títol
+
+# Event status: Tentative, Confirmed, Cancelled
+# ToDo task status: NeedsAction, InProcess, Completed, Cancelled
+statusTentative =Provisional
+statusConfirmed =Confirmada
+eventStatusCancelled=Cancel·lada
+todoStatusCancelled =Cancel·lada
+statusNeedsAction =Necessita una acció
+statusInProcess =En curs
+statusCompleted =Acabada
+
+# Task priority, these should match the priority.level.* labels in calendar.dtd
+highPriority=Alta
+normalPriority=Normal
+lowPriority=Baixa
+
+importPrompt=En quin calendari voleu importar-hi aquestes entrades?
+exportPrompt=Des de quin calendari voleu exportar?
+pastePrompt=En quin dels calendaris amb permís d'escriptura voleu enganxar la informació?
+publishPrompt=Quin calendari voleu 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 contingut que heu enganxat inclou una reunió
+# LOCALIZATION NOTE (pasteEventsAlso): The users pasting operation includes among
+# others also several meeting invitations - this is used as a affix in
+# pasteNotifyAbout
+pasteEventsAlso=El contingut que heu enganxat inclou reunions
+# LOCALIZATION NOTE (pasteTaskAlso): The users pasting operation includes among
+# others also an assigned task - this is used as a affix in pasteNotifyAbout
+pasteTaskAlso=El contingut que heu enganxat inclou una tasca assignada
+# LOCALIZATION NOTE (pasteTasksAlso): The users pasting operation include among
+# others also several assigned tasks - this is used as a affix in
+# pasteNotifyAbout
+pasteTasksAlso=El contingut que heu enganxat inclou tasques assignada
+# 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 contingut que heu enganxat inclou reunions i tasques assignades
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting a meeting -
+# this is used as a affix in pasteNotifyAbout
+pasteEventOnly=Esteu enganxant una reunió
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several meetings -
+# this is used as a affix in pasteNotifyAbout
+pasteEventsOnly=Esteu enganxant reunions
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting an assigned task -
+# this is used as a affix in pasteNotifyAbout
+pasteTaskOnly=Esteu enganxant una tasca assignada
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several assigned
+# tasks - this is used as a affix in pasteNotifyAbout
+pasteTasksOnly=Esteu enganxant tasques assignades
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting assigned task(s) and
+# meeting(s) - this is used as a affix in pasteNotifyAbout
+pasteItemsOnly=Esteu enganxant reunions i tasques assignades
+
+# LOCALIZATION NOTE (pasteNotifyAbout): Text displayed if pasting an invitation
+# or assigned task
+# %1$S - pasteEvent* or pasteTask*
+pasteNotifyAbout=%1$S - Voleu enviar una actualització a totes les persones implicades?
+
+# LOCALIZATION NOTE (pasteAndNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteAndNotifyLabel=Enganxa i envia-ho ara
+# LOCALIZATION NOTE (pasteDontNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteDontNotifyLabel=Enganxa-ho però no ho enviïs
+
+# 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 s'han pogut importar %1$S elements. El darrer error ha estat: %2$S
+# LOCALIZATION NOTE (noItemsInCalendarFile2):
+# %1$S will be replaced with file path
+noItemsInCalendarFile2=No s'ha pogut importar de %1$S. Aquest fitxer no conté cap element que es pugui importar.
+
+#spaces needed at the end of the following lines
+eventDescription=Descripció:
+
+unableToRead=No s'ha pogut llegir del fitxer:
+unableToWrite=No s'ha pogut escriure al fitxer:
+defaultFileName=MozillaCalCites
+HTMLTitle=Calendari del 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=S'ha trobat un fus horari desconegut i indefinit mentre es llegia %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=S'ha(n) ignorat %1$S element(s) perquè existeixen tant al calendari de destinació com a %2$S.
+
+unableToCreateProvider=S'ha produït un error quan s'estava preparant el calendari %1$S per utilitzar-lo. No estarà disponible.
+
+# Sample: Unknown timezone "USPacific" in "Dentist Appt". Using the 'floating' local timezone instead: 2008/02/28 14:00:00
+unknownTimezoneInItem=S'ha trobat el fus horari desconegut «%1$S» a «%2$S». Es tractarà com a fus horari local «flotant»: %3$S
+TimezoneErrorsAlertTitle=Errors de fus horari
+TimezoneErrorsSeeConsole=Vegeu la consola d'errors: Els fusos horaris desconeguts es tractaran com a fus horari local «flotant».
+
+# The following strings are for the prompt to delete/unsubscribe from the calendar
+removeCalendarTitle=Elimina el calendari
+removeCalendarButtonDelete=Suprimeix el calendari
+removeCalendarButtonUnsubscribe=Cancel·la la subscripció
+
+# LOCALIZATION NOTE (removeCalendarMessageDeleteOrUnsubscribe): Shown for
+# calendar where both deleting and unsubscribing is possible.
+# %1$S: The name of a calendar
+removeCalendarMessageDeleteOrUnsubscribe=Voleu eliminar el calendari «%1$S»? Si cancel·leu la subscripció, s'eliminarà el calendari de la llista; si suprimiu el calendari, també se'n suprimiran les dades.
+
+# LOCALIZATION NOTE (removeCalendarMessageDelete): Shown for calendar where
+# deleting is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageDelete=Voleu suprimir permanentment el calendari «%1$S»?
+
+# LOCALIZATION NOTE (removeCalendarMessageUnsubscribe): Shown for calendar
+# where unsubscribing is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageUnsubscribe=Voleu cancel·lar la subscripció al calendari «%1$S»?
+
+WeekTitle=setmana %1$S
+None=Cap
+
+# 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=Les dades del calendari no són compatibles amb aquesta versió del %1$S. Una versió més recent del %1$S va actualitzar les dades del calendari del vostre perfil. S'ha creat una còpia de seguretat del fitxer de dades anomenat «%2$S». Es continuarà amb un fitxer de dades nou.
+
+# List of events or todos (unifinder)
+eventUntitled=Sense títol
+
+# Tooltips of events or todos
+tooltipTitle=Títol:
+tooltipLocation=Ubicació:
+# 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=Data:
+# event calendar name
+tooltipCalName=Nom del calendari:
+# event status: tentative, confirmed, cancelled
+tooltipStatus=Estat:
+# event organizer
+tooltipOrganizer=Organitzador:
+# task/todo fields
+# start date time, due date time, task priority number, completed date time
+tooltipStart=Inici:
+tooltipDue=Venciment:
+tooltipPriority=Prioritat:
+tooltipPercent=% acabada:
+tooltipCompleted=Acabat:
+
+# Tooltips for attendees and organizer in event and summary dialog
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendee.combined): tooltip for itip icon in summary/event dialog.
+# Given an attendee loungeexample.org of type room is a mandatory participant and has accepted the
+# invitation, the tooltip would be:
+# lounge@example.org (room) is a required participant. lounge@example.org has confirmed attendance.
+# %1$S - value of dialog.tooltip.attendeeRole2.*
+# %2$S - value of dialog.tooltip.attendeePartStat2.*
+dialog.tooltip.attendee.combined=%1$S %2$S
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.CHAIR): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.CHAIR=%1$S presideix la cita.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.NON-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.NON-PARTICIPANT=%1$S no hi participa.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.OPT-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.OPT-PARTICIPANT=%1$S és un participant opcional.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.REQ-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.REQ-PARTICIPANT=%1$S és un participant necessari.
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.ACCEPTED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.ACCEPTED=%1$S ha confirmat l'assistència.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.DECLINED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.DECLINED=%1$S ha declinat l'assistència.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.DELEGATED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.DELEGATED=%1$S ha delegat l'assistència.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.NEEDS-ACTION): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.NEEDS-ACTION=%1$S encara no ha respost.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.TENTATIVE): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.TENTATIVE=%1$S ha confirmat l'assistència provisionalment.
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.INDIVIDUAL): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing individual attendee
+dialog.tooltip.attendeeUserType2.INDIVIDUAL=%1$S
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.GROUP): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a group (e.g. a distribution list)
+dialog.tooltip.attendeeUserType2.GROUP=%1$S (grup)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.RESOURCE): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a resource (e.g. projector)
+dialog.tooltip.attendeeUserType2.RESOURCE=%1$S (recurs)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.ROOM): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a room
+dialog.tooltip.attendeeUserType2.ROOM=%1$S (sala)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.UNKNOWN): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing an attendee of unknown type
+dialog.tooltip.attendeeUserType2.UNKNOWN=%1$S
+
+#File commands and dialogs
+New=Nou
+Open=Obre
+filepickerTitleImport=Importa
+filepickerTitleExport=Exporta
+
+# 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)
+filterXml=Document XML (%1$S)
+filterHtml=Pàgina web (%1$S)
+filterOutlookCsv=Valors separats per comes de l'Outlook (%1$S)
+
+# Remote calendar errors
+genericErrorTitle=S'ha produït un error
+httpPutError=La publicació del fitxer de calendari ha fallat.\nCodi d'estat: %1$S: %2$S
+otherPutError=La publicació del fitxer de calendari ha fallat.\nCodi d'estat: 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=S'ha produït un error en llegir dades per al calendari: %1$S. S'ha posat en mode només de lectura, perquè els canvis podrien suposar una pèrdua de dades. Podeu canviar aquest paràmetre triant «Edita el calendari».
+
+# 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=S'ha produït un error quan es llegien les dades per al calendari: %1$S. S'ha inhabilitat fins que sigui més segur utilitzar-lo.
+
+# 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=S'ha produït un error en llegir les dades per al calendari: %1$S. No obstant això, aquest error sembla ser menor; per això, 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=S'ha produït un error en llegir les dades per al calendari: %1$S.
+utf8DecodeError=S'ha produït un error en descodificar un fitxer iCalendar (ics) com UTF-8. Comproveu que el fitxer, incloent-hi els símbols i les lletres accentuades, està codificat fent servir la codificació de caràcters UTF-8.
+icsMalformedError=L'anàlisi del fitxer iCalendar (ics) ha fallat. Comproveu que aquest compleix la sintaxi de fitxer d'iCalendar (ics).
+itemModifiedOnServerTitle=L'element s'ha canviat al servidor
+itemModifiedOnServer=Aquest element s'ha canviat recentment al servidor.\n
+modifyWillLoseData=En enviar els vostres canvis, se sobreescriuran els que s'hagin fet al servidor.
+deleteWillLoseData=Si se suprimeix aquest element, es perdran els canvis fets al servidor.
+updateFromServer=Descarta els meus canvis i torna a carregar
+proceedModify=Envia els meus canvis igualment
+proceedDelete=Suprimeix igualment
+dav_notDav=El recurs %1$S o bé no és de tipus DAV o bé no està disponible
+dav_davNotCaldav=El recurs %1$S és de tipus DAV però no és un calendari CalDAV
+itemPutError=S'ha produït un error quan es desava l'element al servidor.
+itemDeleteError=S'ha produït un error quan se suprimia l'element del servidor.
+caldavRequestError=S'ha produït un error quan s'estava enviant la invitació.
+caldavResponseError=S'ha produït un error quan s'estava enviant la resposta.
+caldavRequestStatusCode=Codi d'estat: %1$S
+caldavRequestStatusCodeStringGeneric=La sol·licitud no es pot processar.
+caldavRequestStatusCodeString400=La sol·licitud té un error de sintaxi i no es pot processar.
+caldavRequestStatusCodeString403=L'usuari no té permisos per fer la sol·licitud.
+caldavRequestStatusCodeString404=El recurs no s'ha trobat.
+caldavRequestStatusCodeString409=Conflicte amb el recurs.
+caldavRequestStatusCodeString412=La precondició ha fallat.
+caldavRequestStatusCodeString500=Error intern del servidor.
+caldavRequestStatusCodeString502=Error en el servidor intermediari (pot ser un error de configuració).
+caldavRequestStatusCodeString503=Error intern del servidor (pot ser un error temporal).
+caldavRedirectTitle=Voleu actualitzar la ubicació del calendari «%1$S»?
+caldavRedirectText=Les sol·licituds de %1$S s'estan redirigint a una altra ubicació. Voleu canviar la ubicació per al valor següent?
+caldavRedirectDisableCalendar=Desactiva el calendari
+
+
+# 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/Andorra
+
+# 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=Avís: el fus horari del vostre sistema operatiu «%1$S»\nno concorda amb el fus horari configurat «%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=Sense tenir en compte el fus horari del sistema operatiu '%1$S'.
+
+# "Skipping locale timezone 'America/New_Yawk'."
+# Testing note: Skipping occurs if a likelyTimezone id is unknown or misspelled.
+SkippingLocaleTimezone=Sense tenir en compte el fus horari de la configuració '%1$S'.
+
+# 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=Avís: s'està utilitzant un fus horari desconegut.\nNo hi ha informació sobre el fus horari del vostre sistema operatiu.
+
+# "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=Avís: s'ha deduït que el vostre fus horari és\n %1$S (UTC%2$S).\n%3$S\n%4$S
+
+# Testing note: "Almost match" timezones include Cairo on W2k.
+TZAlmostMatchesOSDifferAtMostAWeek=Aquest fus horari pràcticament correspon amb la del vostre sistema operatiu.\nPer això, el proper canvi d'horari estiu/hivern pot variar una setmana\nrespecte a la transició del vostre sistema operatiu.\nPer tant, es poden produir discrepàncies en les dades, per exemple\nuna data d'inici diferent, una regla que canvia,\no una aproximació incorrecta a una regla d'un calendari no-Gregorià.
+
+TZSeemsToMatchOS=Aquest fus horari sembla que correspon al del vostre sistema operatiu aquest any.
+
+# LOCALIZATION NOTE (TZFromOS):
+# used for a display of a chosen timezone
+# %1$S will be replaced with the name of a timezone
+TZFromOS=Aquest fus horari ha estat seleccionat a partir de l'identificador del fus horari\ndel sistema operatiu «%1$S».
+
+# Localization note (TZFromLocale): Substitute name of your locale language.
+TZFromLocale=Aquest fus horari ha estat seleccionat a partir de la informació,\nen anglès americà,d'altres usuaris d'Internet que tenen un fus horari\ndel sistema operatiu semblant al del vostre.
+
+TZFromKnownTimezones=Aquest fus horari ha estat seleccionat a partir de concordar el fus horari\ndel vostre sistema operatiu amb una llista de fusos horaris coneguts\nordenats alfabèticament pel seu id.
+
+# Print Layout
+formatListName = Llista
+weekPrinterName = Planificador setmanal
+monthPrinterName = Graella mensual
+
+# Print Layout
+tasksWithNoDueDate = Tasques sense data de venciment
+
+# Providers
+caldavName=CalDAV
+compositeName=Composite
+icsName=iCalendar (ICS)
+memoryName=Temporal (memòria)
+storageName=Local (SQLite)
+
+# Used in created html code for export
+htmlPrefixTitle=Títol
+htmlPrefixWhen=Quan
+htmlPrefixLocation=Ubicació
+htmlPrefixDescription=Descripció
+htmlTaskCompleted=%1$S (acabada)
+
+# Categories
+addCategory=Afegeix una categoria
+multipleCategories=Múltiples categories
+
+today=Avui
+tomorrow=Demà
+yesterday=Ahir
+
+#Today pane
+eventsonly=Cites
+eventsandtasks=Cites i tasques
+tasksonly=Tasques
+shortcalendarweek=Setm.
+
+go=Vés
+
+# 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=següent
+next2=següent
+last1=darrer
+last2=darrer
+
+# Alarm Dialog
+# LOCALIZATION NOTE (alarmWindowTitle.label): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+alarmWindowTitle.label=#1 recordatori;#1 recordatoris
+
+# 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=Inici: %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=Avui a les %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=Demà a les %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=Ahir a les %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ó per defecte de Mozilla
+alarmDefaultSummary=Resum per defecte de Mozilla
+
+# LOCALIZATION NOTE (alarmSnoozeLimitExceeded): Semi-colon list of plural
+# forms.
+alarmSnoozeLimitExceeded=No podeu ajornar una alarma més enllà d'#1 mes.;No podeu ajornar una alarma més enllà de #1 mesos.
+
+taskDetailsStatusNeedsAction=Necessita una acció
+
+# 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%% acabada
+taskDetailsStatusCompleted=Acabada
+
+# 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=Acabada el %1$S
+taskDetailsStatusCancelled=Cancel·lada
+
+gettingCalendarInfoCommon=S'estan comprovant els calendaris…
+
+# 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=S'està comprovant el calendari %1$S de %2$S
+
+# LOCALIZATION NOTE (errorCode):
+# %1$S will be replaced with the number of an error code
+errorCode=Codi d'error: %1$S
+
+# LOCALIZATION NOTE (errorDescription):
+# %1$S will be replaced with the description of an error
+errorDescription=Descripció: %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=S'ha produït un error en escriure al calendari «%1$S». Vegeu-ne més informació a continuació.
+
+# LOCALIZATION NOTE (errorWritingDetails):
+# This will be displayed in the detail section of the error dialog
+errorWritingDetails=Si veieu aquest missatge després d'ajornar o aturar un recordatori que pertany a un calendari del qual no voleu afegir ni editar cites, podeu marcar aquest calendari com a només de lectura per evitar aquest missatge en el futur. Per fer-ho, aneu a les propietats del calendari fent clic amb el botó dret en aquest calendari a la llista de la vista de calendaris o tasques.
+
+# 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 calendari %1$S no està disponible temporalment
+
+# 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 calendari %1$S és només de lectura
+
+taskEditInstructions=Feu clic aquí per afegir una tasca nova
+taskEditInstructionsReadonly=Seleccioneu un calendari editable
+taskEditInstructionsCapability=Seleccioneu un calendari que permeti tasques
+
+eventDetailsStartDate=Inici:
+eventDetailsEndDate=Fi:
+
+# 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=Setmana del calendari: %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=Setmanes del calendari %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=Setm.: %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=Setm.: %1$S-%2$S
+
+# LOCALIZATION NOTE (abbreviationOfWeek):
+# 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.
+abbreviationOfWeek=%1$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=Setm. %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 dia;#1 dies
+dueInHours=#1 hora;#1 hores
+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 de %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=%2$S – %3$S %1$S de %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=genitive
+
+# 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=%2$S %1$S – %4$S %3$S de %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=genitive
+
+# 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=%2$S %1$S de %3$S – %5$S %4$S de %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=genitive
+
+# 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 a les %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 de %2$S a %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 a les %2$S – %3$S a les %4$S
+
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDate):
+# used for task without start and due date
+# (showed only in exported calendar in Html format)
+datetimeIntervalTaskWithoutDate= sense data d'inici ni de venciment
+# 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=data d'inici el %1$S a les %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=data de venciment el %1$S a les %2$S
+
+# LOCALIZATION NOTE (dragLabelTasksWithOnlyEntryDate
+# dragLabelTasksWithOnlyDueDate)
+# Labels that appear while dragging a task with only
+# entry date OR due date
+dragLabelTasksWithOnlyEntryDate=Hora d'inici
+dragLabelTasksWithOnlyDueDate=S'acaba a
+
+deleteTaskLabel=Suprimeix la tasca
+deleteTaskMessage=Segur que voleu suprimir aquesta tasca?
+deleteTaskAccesskey=S
+deleteItemLabel=Suprimeix
+deleteItemMessage=Segur que voleu suprimir-ho?
+deleteItemAccesskey=S
+deleteEventLabel=Suprimeix la cita
+deleteEventMessage=Segur que voleu suprimir aquesta cita?
+deleteEventAccesskey=S
+
+calendarPropertiesEveryMinute=Cada minut;Cada #1 minuts
+
+# LOCALIZATION NOTE (extractUsing)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+extractUsing=S'està utilitzant %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=S'està utilitzant %1$S (%2$S)
+
+# LOCALIZATION NOTE (unit)
+# Used to determine the correct plural form of a unit
+unitMinutes=#1 minut;#1 minuts
+unitHours=#1 hora;#1 hores
+unitDays=#1 dia;#1 dies
+unitWeeks=#1 setmana;#1 setmanes
+
+# 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=Mostra %1$S
+hideCalendar=Amaga %1$S
+# uses the access key calendar.context.showonly.accesskey
+showOnlyCalendar=Mostra només %1$S
+
+# LOCALIZATION NOTE (modifyConflict)
+# Used by the event dialog to resolve item modification conflicts.
+modifyConflictPromptTitle=Conflicte de modificació d'element
+modifyConflictPromptMessage=L'element que s'està editant al diàleg s'ha modificat des que es va obrir.
+modifyConflictPromptButton1=Sobreescriu els altres canvis
+modifyConflictPromptButton2=Descarta aquests canvis
+
+# LOCALIZATION_NOTE(dialog.attendee.append.delegatedFrom): this is appended behind an attendee name
+# in the tooltip and the visible name for an attendee in the event summary dialog - don't add
+# leading or trailing whitespaces here
+# %1$S - a single delegatee or a comma separated list of delegatees
+# delegation is different from simple invitation forwarding - in case of delegation the original
+# invited attendee gets replaced
+dialog.attendee.append.delegatedFrom=(s'ha delegat de %1$S)
+# LOCALIZATION_NOTE(dialog.attendee.append.delegatedTo): this is appended behind an attendee name
+# in the tooltip for an attendee in the event summary dialog - don't add leading or trailing
+# whitespaces here
+# delegation is different from simple invitation forwarding - in case of delegation the original
+# invited attendee gets replaced
+dialog.attendee.append.delegatedTo=(s'ha delegat a %1$S)
+
+# Accessible description of a grid calendar with no selected date
+minimonthNoSelectedDate=No s'ha seleccionat cap data
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendarCreation.dtd b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendarCreation.dtd
new file mode 100644
index 0000000000..00c822310f
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendarCreation.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 wizard.title "Crea un calendari nou" >
+<!ENTITY wizard.label "Crea un calendari nou" >
+<!ENTITY wizard.description "Ubicació del calendari" >
+
+<!ENTITY initialpage.description "Podeu emmagatzemar el calendari a l'ordinador o en un servidor per poder accedir-hi remotament o compartir-lo amb els vostres amics o companys de feina." >
+<!ENTITY initialpage.computer.label "Al meu ordinador">
+<!ENTITY initialpage.network.label "A la xarxa">
+
+<!ENTITY locationpage.description "Proporcioneu la informació que calgui per accedir al calendari remot" >
+<!ENTITY locationpage.login.description "Opcional: introduïu un nom d'usuari i contrasenya" >
+<!ENTITY locationpage.username.label "Nom d'usuari:" >
+<!ENTITY locationpage.password.label "Contrasenya:" >
+
+<!ENTITY custompage.shortdescription "Personalitzeu el calendari" >
+<!ENTITY custompage.longdescription "Podeu assignar un sobrenom al calendari i seleccionar el color de les cites." >
+
+<!ENTITY finishpage.shortdescription "S'ha creat el calendari" >
+<!ENTITY finishpage.longdescription "S'ha creat el calendari." >
+
+<!-- Below are new strings for the revised new calendar dialog. The above strings should be
+ removed/renamed later on -->
+
+<!ENTITY sourcetabs.other.label "Altres">
+
+<!ENTITY buttons.create.label "Crea un calendari">
+<!ENTITY buttons.create.accesskey "r">
+
+<!ENTITY buttons.find.label "Cerca un calendari">
+<!ENTITY buttons.find.accesskey "C">
+
+<!ENTITY buttons.back.label "Enrere">
+<!ENTITY buttons.back.accesskey "E">
+
+<!ENTITY buttons.subscribe.label "Subscriu">
+<!ENTITY buttons.subscribe.accesskey "S">
+
+<!ENTITY calendartype.label "Tipus de calendari:">
+<!ENTITY location.label "Ubicació:">
+<!ENTITY location.placeholder "URL o nom del servidor del calendari">
+
+<!ENTITY network.nocredentials.label "Aquesta ubicació no requereix credencials">
+<!ENTITY network.loading.description "S'estan detectant els vostres calendaris. Espereu...">
+<!ENTITY network.notfound.description "No s'ha trobat cap calendari en aquesta ubicació. Comproveu els paràmetres.">
+<!ENTITY network.authfail.description "No s'han acceptat les credencials que heu introduït. Comproveu els paràmetres.">
+
+<!ENTITY network.subscribe.single.description "Seleccioneu els calendaris als quals us voleu subscriure.">
+<!ENTITY network.subscribe.multiple.description "Hi ha diversos tipus de calendari disponibles en aquesta ubicació. Seleccioneu el tipus de calendari i, a continuació, marqueu els calendaris als quals us voleu subscriure.">
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendarCreation.properties b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/calendarCreation.properties
new file mode 100644
index 0000000000..859db55d19
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/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=Introduïu una ubicació correcta.
+error.alreadyExists=Ja esteu subscrit a un calendari en aquesta ubicació.
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/categories.properties b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/categories.properties
new file mode 100644
index 0000000000..2c72febcc2
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/categories.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# default categories
+
+categories2=Aniversari,Negocis,Trucades,Clients,Competència,Consumidors,Preferits,Seguiments,Regals,Vacances,Idees,Assumptes,Reunió,Miscel·lània,Personal,Projectes,Dia festiu,Estat,Proveïdors,Viatge,Descans
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/dateFormat.properties b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/dateFormat.properties
new file mode 100644
index 0000000000..e67441fc45
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/dateFormat.properties
@@ -0,0 +1,146 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# In case you are looking for the note about different declensions on date
+# formats, here it is. If your language doesn't use different declensions of
+# month names, you shouldn't have much work. Just leave the *.monthFormat
+# string on "nominative" and the string month.*.name will be filled in.
+#
+# If you need a different form for a string, you can change the
+# *.monthFormat to a different value. Supported values are currently:
+# nominative (default), genitive
+# The modified month name form will then be filled in accordingly. If this
+# system does not suit your needs, please file a bug!
+
+# LOCALIZATION NOTE (month.*.name):
+# Some languages require different declensions of month names.
+# These values will be used if *.monthFormat is set to "nominative" or in places
+# where using a different declension is not yet supported.
+month.1.name=gener
+month.2.name=febrer
+month.3.name=març
+month.4.name=abril
+month.5.name=maig
+month.6.name=juny
+month.7.name=juliol
+month.8.name=agost
+month.9.name=setembre
+month.10.name=octubre
+month.11.name=novembre
+month.12.name=desembre
+
+# LOCALIZATION NOTE (month.*.genitive):
+# Some languages require different declensions of month names.
+# These values will be used if *.monthFormat is set to "genitive"
+# If your language doesn't use different declensions, just set the same
+# values as for month.*.name.
+month.1.genitive=de gener
+month.2.genitive=de febrer
+month.3.genitive=de març
+month.4.genitive=d'abril
+month.5.genitive=de maig
+month.6.genitive=de juny
+month.7.genitive=de juliol
+month.8.genitive=d'agost
+month.9.genitive=de setembre
+month.10.genitive=d'octubre
+month.11.genitive=de novembre
+month.12.genitive=de desembre
+
+month.1.Mmm=gen.
+month.2.Mmm=febr.
+month.3.Mmm=març
+month.4.Mmm=abr.
+month.5.Mmm=maig
+month.6.Mmm=juny
+month.7.Mmm=jul.
+month.8.Mmm=ag.
+month.9.Mmm=set.
+month.10.Mmm=oct.
+month.11.Mmm=nov.
+month.12.Mmm=des.
+
+day.1.name=diumenge
+day.2.name=dilluns
+day.3.name=dimarts
+day.4.name=dimecres
+day.5.name=dijous
+day.6.name=divendres
+day.7.name=dissabte
+
+day.1.Mmm=dg.
+day.2.Mmm=dl.
+day.3.Mmm=dt.
+day.4.Mmm=dc.
+day.5.Mmm=dj.
+day.6.Mmm=dv.
+day.7.Mmm=ds.
+
+# Can someone tell me why we're not counting from zero?
+day.1.short=dg
+day.2.short=dl
+day.3.short=dt
+day.4.short=dc
+day.5.short=dj
+day.6.short=dv
+day.7.short=ds
+
+# Localizable day's date
+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
+
+# LOCALIZATION NOTE (dayOrdinalSymbol):
+# Allows to insert a string, a character or a symbol after the number of a
+# monthday in order to give it the meaning of ordinal number e.g. 1 -> 1st etc.
+# It's mainly used when formatting dates with both monthday and month name. It
+# affects the following localizable strings that hence must be localized *without*
+# any ordinal symbol for the monthday number:
+# dayHeaderLabel, monthlyDaysOfNth_day,
+# yearlyNthOn, daysIntervalBetweenYears,
+# daysIntervalBetweenMonths, daysIntervalInMonth.
+# Write only a single string if the ordinal symbol is the same for every monthday, otherwise
+# write a sequence of _31_ strings (one for each monthday) separated with commas.
+# If your language doesn't require that in the mentioned strings, leave it empty.
+# e.g.
+# dayOrdinalSymbol=.
+# -> daysIntervalInMonth: 'March 3. - 9., 2008'
+# dayOrdinalSymbol=st,nd,rd,th,th,th,th,th,th,th,th,th,th,th,th,
+# th,th,th,th,th,st,nd,rd,th,th,th,th,th,th,th,st
+# -> daysIntervalBetweenMonths: 'September 29th - November 1st, 2008'
+dayOrdinalSymbol=
+
+noon=Migdia
+midnight=Mitjanit
+
+AllDay=Tot el dia
+Repeating=(amb repetició)
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/dialogs/calendar-event-dialog-reminder.dtd b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/dialogs/calendar-event-dialog-reminder.dtd
new file mode 100644
index 0000000000..492c831304
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/dialogs/calendar-event-dialog-reminder.dtd
@@ -0,0 +1,19 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY reminderdialog.title "Configura els recordatoris">
+<!ENTITY reminder.add.label "Afegeix">
+<!ENTITY reminder.add.accesskey "A">
+<!ENTITY reminder.remove.label "Suprimeix">
+<!ENTITY reminder.remove.accesskey "S">
+
+<!ENTITY reminder.reminderDetails.label "Detalls del recordatori">
+<!ENTITY reminder.action.label "Seleccioneu una acció de recordatori">
+
+<!ENTITY reminder.action.alert.label "Mostra una alerta">
+<!ENTITY reminder.action.email.label "Envia un correu electrònic">
+
+<!ENTITY alarm.units.minutes "minuts" >
+<!ENTITY alarm.units.hours "hores" >
+<!ENTITY alarm.units.days "dies" >
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/global.dtd b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/global.dtd
new file mode 100644
index 0000000000..9e31686464
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/global.dtd
@@ -0,0 +1,54 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY time.midnight "Mitjanit" >
+<!ENTITY time.noon "Migdia" >
+
+<!-- Day Names -->
+<!-- LOCALIZATION NOTE : Accesskeys for day.1.Ddd to day.7.Ddd are currently
+ only used in Preferences > Views > Workweek groupbox -->
+<!ENTITY day.1.Ddd "dg" >
+<!ENTITY day.1.Ddd.accesskey "g">
+<!ENTITY day.2.Ddd "dl" >
+<!ENTITY day.2.Ddd.accesskey "l">
+<!ENTITY day.3.Ddd "dt" >
+<!ENTITY day.3.Ddd.accesskey "t">
+<!ENTITY day.4.Ddd "dc" >
+<!ENTITY day.4.Ddd.accesskey "c">
+<!ENTITY day.5.Ddd "dj" >
+<!ENTITY day.5.Ddd.accesskey "j">
+<!ENTITY day.6.Ddd "dv" >
+<!ENTITY day.6.Ddd.accesskey "v">
+<!ENTITY day.7.Ddd "ds" >
+<!ENTITY day.7.Ddd.accesskey "s">
+
+<!ENTITY day.1.name "diumenge" >
+<!ENTITY day.2.name "dilluns" >
+<!ENTITY day.3.name "dimarts" >
+<!ENTITY day.4.name "dimecres" >
+<!ENTITY day.5.name "dijous" >
+<!ENTITY day.6.name "divendres" >
+<!ENTITY day.7.name "dissabte" >
+
+<!ENTITY month.1.name "gener" >
+<!ENTITY month.2.name "febrer" >
+<!ENTITY month.3.name "març" >
+<!ENTITY month.4.name "abril" >
+<!ENTITY month.5.name "maig" >
+<!ENTITY month.6.name "juny" >
+<!ENTITY month.7.name "juliol" >
+<!ENTITY month.8.name "agost" >
+<!ENTITY month.9.name "setembre" >
+<!ENTITY month.10.name "octubre" >
+<!ENTITY month.11.name "novembre" >
+<!ENTITY month.12.name "desembre" >
+
+<!ENTITY onemonthbackward.tooltip "Mes anterior" >
+<!ENTITY onemonthforward.tooltip "Mes següent" >
+<!ENTITY oneyearbackward.tooltip "Any anterior" >
+<!ENTITY oneyearforward.tooltip "Any següent" >
+<!ENTITY showToday.tooltip "Vés a avui">
+<!ENTITY onedayforward.tooltip "Dia següent">
+<!ENTITY onedaybackward.tooltip "Dia anterior">
+<!ENTITY showselectedday.tooltip "Mostra les cites del dia seleccionat">
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/menuOverlay.dtd b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/menuOverlay.dtd
new file mode 100644
index 0000000000..87df6f3699
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/menuOverlay.dtd
@@ -0,0 +1,50 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!-- Event Menu -->
+
+<!ENTITY event.new.event "Cita nova…">
+<!ENTITY event.new.event.accesskey "N">
+
+<!ENTITY event.new.task "Tasca nova…">
+<!ENTITY event.new.task.accesskey "t">
+
+<!ENTITY calendar.import.label "Importa…">
+<!ENTITY calendar.import.accesskey "I">
+
+<!ENTITY calendar.export.label "Exporta…">
+<!ENTITY calendar.export.accesskey "E">
+
+<!ENTITY calendar.publish.label "Publica…">
+<!ENTITY calendar.publish.accesskey "b">
+
+<!ENTITY calendar.deletecalendar.label "Suprimeix el calendari seleccionat…">
+<!ENTITY calendar.deletecalendar.accesskey "S">
+<!ENTITY calendar.unsubscribecalendar.label "Cancel·la la subscripció al calendari seleccionat…">
+<!ENTITY calendar.unsubscribecalendar.accesskey "u">
+<!-- LOCALIZATION NOTE (calendar.removecalendar.label): Removing the calendar
+ is the general action of removing it, while deleting means to clear the
+ data and unsubscribing means just taking it out of the calendar list. -->
+
+<!ENTITY calendar.removecalendar.label "Elimina el calendari seleccionat…">
+<!ENTITY calendar.removecalendar.accesskey "E">
+
+
+<!ENTITY calendar.menu.customize.label "Personalitza…">
+<!ENTITY calendar.menu.customize.accesskey "z">
+
+<!ENTITY showUnifinderCmd.label "Cerca cites">
+<!ENTITY showUnifinderCmd.accesskey "C">
+<!ENTITY showUnifinderCmd.tooltip "Mostra/amaga la subfinestra de cerca de cites">
+
+<!ENTITY calendar.displaytodos.checkbox.label "Mostra les tasques al calendari">
+<!ENTITY calendar.displaytodos.checkbox.accesskey "t">
+
+<!ENTITY goTodayCmd.label "Avui">
+<!ENTITY goTodayCmd.accesskey "u">
+
+<!ENTITY showCurrentView.label "Vista actual">
+<!ENTITY showCurrentView.accesskey "V">
+
+<!ENTITY calendar.properties.label "Propietats del calendari…">
+<!ENTITY calendar.properties.accesskey "P">
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/migration.dtd b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/migration.dtd
new file mode 100644
index 0000000000..c277321dff
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/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ó de dades">
+<!ENTITY migration.welcome "Us donem la benvinguda">
+<!ENTITY migration.importing "S'està important">
+<!ENTITY migration.list.description "El &brandShortName; pot importar les dades de calendari de moltes aplicacions conegudes. S'han trobat les aplicacions següents a l'ordinador. Seleccioneu de quines aplicacions voleu importar les dades.">
+<!ENTITY migration.progress.description "S'estan important les dades seleccionades">
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/migration.properties b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/migration.properties
new file mode 100644
index 0000000000..973dd15f09
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/migration.properties
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+migratingApp = S'està migrant: %1$S…
+
+# The next two lines are duplicated from migration.dtd until there is branding
+# for lightning
+migrationTitle = %1$S: Importació de dades
+migrationDescription=El %1$S pot importar les dades de calendari de moltes aplicacions conegudes. S'han trobat les aplicacions següents a l'ordinador. Seleccioneu de quines aplicacions voleu importar les dades.
+finished = S'ha acabat
+disableExtTitle = S'ha trobat una extensió incompatible
+disableExtText = Teniu una extensió antiga del Mozilla Calendar instal·lada que no és compatible amb el Lightning. S'inhabilitarà i es reiniciarà el %1$S.
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/provider-uninstall.dtd b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/provider-uninstall.dtd
new file mode 100644
index 0000000000..c14dc79e9c
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/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 "Desinstal·la un proveïdor">
+<!ENTITY providerUninstall.accept.label "Cancel·la la subscripció seleccionada">
+<!ENTITY providerUninstall.accept.accesskey "b">
+<!ENTITY providerUninstall.cancel.label "Conserva el complement">
+<!ENTITY providerUninstall.cancel.accesskey "C">
+<!ENTITY providerUninstall.preName.label "Heu sol·licitat desinstal·lar o inhabilitar:">
+<!ENTITY providerUninstall.postName.label "Això farà que s'inhabilitin els calendaris següents.">
+<!ENTITY providerUninstall.reinstallNote.label "Si no teniu intenció de reinstal·lar aquest proveïdor, podeu cancel·lar la subscripció als calendaris d'aquest proveïdor.">
diff --git a/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/timezones.properties b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/timezones.properties
new file mode 100644
index 0000000000..2b1adbb2ca
--- /dev/null
+++ b/thunderbird-l10n/ca/chrome/ca/locale/ca/calendar/timezones.properties
@@ -0,0 +1,497 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+pref.timezone.floating=Hora local
+pref.timezone.UTC=UTC/GMT
+
+# I've derived this list out of timezones.dtd
+# - replaced '_' with ' ' on value side
+# - corrected 'St xyz' to 'St. xyz'
+
+# This list is derived from the IANA timezone database, but was always
+# incomplete. It will not be updated; future revisions will rely on metazones as
+# defined by CLDR, but these remain in place to prevent regressions in
+# localization.
+
+# timezone names:
+pref.timezone.Africa.Abidjan=Àfrica/Abidjan
+pref.timezone.Africa.Accra=Àfrica/Accra
+pref.timezone.Africa.Addis_Ababa=Àfrica/Addis_Ababa
+pref.timezone.Africa.Algiers=Àfrica/Algers
+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/Bujumbura
+pref.timezone.Africa.Cairo=Àfrica/El_Caire
+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/Lome
+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/Mogadishu
+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/Nouakchott
+pref.timezone.Africa.Ouagadougou=Àfrica/Ouagadougou
+pref.timezone.Africa.Porto-Novo=Àfrica/Porto-Novo
+pref.timezone.Africa.Sao_Tome=Àfrica/Sao_Tome
+pref.timezone.Africa.Tripoli=Àfrica/Trípoli
+pref.timezone.Africa.Tunis=Àfrica/Tunis
+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/Cordoba
+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/Rio_Gallegos
+pref.timezone.America.Argentina.San_Juan=Amèrica/Argentina/San_Juan
+pref.timezone.America.Argentina.Tucuman=Amèrica/Argentina/Tucuman
+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/Bahia
+pref.timezone.America.Barbados=Amèrica/Barbados
+pref.timezone.America.Belem=Amèrica/Belem
+pref.timezone.America.Belize=Amèrica/Belize
+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/Cambridge_Bay
+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/Curaçao
+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/Guadeloupe
+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/Indianapolis
+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_Angeles
+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/Martinique
+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/Ciutat_de_Mèxic
+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/Nova_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/North_Dakota/Center=>
+pref.timezone.America.North_Dakota.New_Salem=Amèrica/Dakota_del_Nord/New_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/Port_of_Spain
+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/St_Johns
+pref.timezone.America.St_Kitts=Amèrica/St_Kitts
+pref.timezone.America.St_Lucia=Amèrica/St_Lucia
+pref.timezone.America.St_Thomas=Amèrica/St_Thomas
+pref.timezone.America.St_Vincent=Amèrica/St_Vincent
+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/Thunder_Bay
+pref.timezone.America.Tijuana=Amèrica/Tijuana
+pref.timezone.America.Toronto=Amèrica/Toronto
+pref.timezone.America.Tortola=Amèrica/Tortola
+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àrtida/Pol Sud
+pref.timezone.Antarctica.Syowa=Antàrtida/Syowa
+pref.timezone.Antarctica.Vostok=Antàrtida/Vostok
+pref.timezone.Arctic.Longyearbyen=Àrtic/Longyearbyen
+pref.timezone.Asia.Aden=Àsia/Aden
+pref.timezone.Asia.Almaty=Àsia/Almaty
+pref.timezone.Asia.Amman=Àsia/Amman
+pref.timezone.Asia.Anadyr=Àsia/Anadyr
+pref.timezone.Asia.Aqtau=Àsia/Aqtau
+pref.timezone.Asia.Aqtobe=Àsia/Aqtobe
+pref.timezone.Asia.Ashgabat=Àsia/Ashgabat
+pref.timezone.Asia.Baghdad=Àsia/Bagdad
+pref.timezone.Asia.Bahrain=Àsia/Bahrain
+pref.timezone.Asia.Baku=Àsia/Baku
+pref.timezone.Asia.Bangkok=Àsia/Bangkok
+pref.timezone.Asia.Beirut=Àsia/Beirut
+pref.timezone.Asia.Bishkek=Àsia/Bishkek
+pref.timezone.Asia.Brunei=Àsia/Brunei
+pref.timezone.Asia.Choibalsan=Àsia/Choibalsan
+pref.timezone.Asia.Chongqing=Àsia/Chongqing
+pref.timezone.Asia.Colombo=Àsia/Colombo
+pref.timezone.Asia.Damascus=Àsia/Damascus
+pref.timezone.Asia.Dhaka=Àsia/Dhaka
+pref.timezone.Asia.Dili=Àsia/Dili
+pref.timezone.Asia.Dubai=Àsia/Dubai
+pref.timezone.Asia.Dushanbe=Àsia/Dushanbe
+pref.timezone.Asia.Gaza=Àsia/Gaza
+pref.timezone.Asia.Harbin=Àsia/Harbin
+pref.timezone.Asia.Hong_Kong=Àsia/Hong_Kong
+pref.timezone.Asia.Hovd=Àsia/Hovd
+pref.timezone.Asia.Irkutsk=Àsia/Irkutsk
+pref.timezone.Asia.Istanbul=Àsia/Istanbul
+pref.timezone.Asia.Jakarta=Àsia/Jakarta
+pref.timezone.Asia.Jayapura=Àsia/Jayapura
+pref.timezone.Asia.Jerusalem=Àsia/Jerusalem
+pref.timezone.Asia.Kabul=Àsia/Kabul
+pref.timezone.Asia.Kamchatka=Àsia/Kamchatka
+pref.timezone.Asia.Karachi=Àsia/Karachi
+pref.timezone.Asia.Kashgar=Àsia/Kashgar
+pref.timezone.Asia.Kathmandu=Àsia/Katmandú
+pref.timezone.Asia.Krasnoyarsk=Àsia/Krasnoyarsk
+pref.timezone.Asia.Kuala_Lumpur=Àsia/Kuala_Lumpur
+pref.timezone.Asia.Kuching=Àsia/Kuching
+pref.timezone.Asia.Kuwait=Àsia/Kuwait
+pref.timezone.Asia.Macau=Àsia/Macau
+pref.timezone.Asia.Magadan=Àsia/Magadan
+pref.timezone.Asia.Makassar=Àsia/Makassar
+pref.timezone.Asia.Manila=Àsia/Manila
+pref.timezone.Asia.Muscat=Àsia/Muscat
+pref.timezone.Asia.Nicosia=Àsia/Nicosia
+pref.timezone.Asia.Novosibirsk=Àsia/Novosibirsk
+pref.timezone.Asia.Omsk=Àsia/Omsk
+pref.timezone.Asia.Oral=Àsia/Oral
+pref.timezone.Asia.Phnom_Penh=Àsia/Phnom_Penh
+pref.timezone.Asia.Pontianak=Àsia/Pontianak
+pref.timezone.Asia.Pyongyang=Àsia/Pyongyang
+pref.timezone.Asia.Qatar=Àsia/Qatar
+pref.timezone.Asia.Qyzylorda=Àsia/Qyzylorda
+pref.timezone.Asia.Rangoon=Àsia/Rangoon
+pref.timezone.Asia.Riyadh=Àsia/Riyadh
+pref.timezone.Asia.Sakhalin=Àsia/Sakhalin
+pref.timezone.Asia.Samarkand=Àsia/Samarkand
+pref.timezone.Asia.Seoul=Àsia/Seül
+pref.timezone.Asia.Shanghai=Àsia/Shanghai
+pref.timezone.Asia.Singapore=Àsia/Singapore
+pref.timezone.Asia.Taipei=Àsia/Taipei
+pref.timezone.Asia.Tashkent=Àsia/Tashkent
+pref.timezone.Asia.Tbilisi=Àsia/Tbilisi
+pref.timezone.Asia.Tehran=Àsia/Tehran
+pref.timezone.Asia.Thimphu=Àsia/Thimphu
+pref.timezone.Asia.Tokyo=Àsia/Tokyo
+pref.timezone.Asia.Ulaanbaatar=Àsia/Ulaanbaatar
+pref.timezone.Asia.Urumqi=Àsia/Urumqi
+pref.timezone.Asia.Vientiane=Àsia/Vientiane
+pref.timezone.Asia.Vladivostok=Àsia/Vladivostok
+pref.timezone.Asia.Yakutsk=Àsia/Yakutsk
+pref.timezone.Asia.Yekaterinburg=Àsia/Yekaterinburg
+pref.timezone.Asia.Yerevan=Àsia/Yerevan
+pref.timezone.Atlantic.Azores=Atlàntic/Açores
+pref.timezone.Atlantic.Bermuda=Atlàntic/Bermuda
+pref.timezone.Atlantic.Canary=Atlàntic/Canàries
+pref.timezone.Atlantic.Cape_Verde=Atlàntic/Cap_Verd
+pref.timezone.Atlantic.Faroe=Atlàntic/Fèroe
+pref.timezone.Atlantic.Madeira=Atlàntic/Madeira
+pref.timezone.Atlantic.Reykjavik=Atlàntic/Reykjavik
+pref.timezone.Atlantic.South_Georgia=Atlàntic/South_Georgia
+pref.timezone.Atlantic.St_Helena=Atlàntic/St_Helena
+pref.timezone.Atlantic.Stanley=Atlàntic/Stanley
+pref.timezone.Australia.Adelaide=Austràlia/Adelaide
+pref.timezone.Australia.Brisbane=Austràlia/Brisbane
+pref.timezone.Australia.Broken_Hill=Austràlia/Broken_Hill
+pref.timezone.Australia.Currie=Austràlia/Currie
+pref.timezone.Australia.Darwin=Austràlia/Darwin
+pref.timezone.Australia.Eucla=Austràlia/Eucla
+pref.timezone.Australia.Hobart=Austràlia/Hobart
+pref.timezone.Australia.Lindeman=Austràlia/Lindeman
+pref.timezone.Australia.Lord_Howe=Austràlia/Lord_Howe
+pref.timezone.Australia.Melbourne=Austràlia/Melbourne
+pref.timezone.Australia.Perth=Austràlia/Perth
+pref.timezone.Australia.Sydney=Austràlia/Sydney
+pref.timezone.Europe.Amsterdam=Europa/Amsterdam
+pref.timezone.Europe.Andorra=Europa/Andorra
+pref.timezone.Europe.Athens=Europa/Atenes
+pref.timezone.Europe.Belgrade=Europa/Belgrad
+pref.timezone.Europe.Berlin=Europa/Berlín
+pref.timezone.Europe.Bratislava=Europa/Bratislava
+pref.timezone.Europe.Brussels=Europa/Brussel·les
+pref.timezone.Europe.Bucharest=Europa/Bucarest
+pref.timezone.Europe.Budapest=Europa/Budapest
+pref.timezone.Europe.Chisinau=Europa/Chisinau
+pref.timezone.Europe.Copenhagen=Europa/Copenhagen
+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/Illa_de_Man
+pref.timezone.Europe.Istanbul=Europa/Istanbul
+pref.timezone.Europe.Jersey=Europa/Jersey
+pref.timezone.Europe.Kaliningrad=Europa/Kaliningrad
+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/Luxemburg
+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/Moscou
+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/Sofia
+pref.timezone.Europe.Stockholm=Europa/Estocolm
+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/Vaticà
+pref.timezone.Europe.Vienna=Europa/Viena
+pref.timezone.Europe.Vilnius=Europa/Vilnius
+pref.timezone.Europe.Volgograd=Europa/Volgograd
+pref.timezone.Europe.Warsaw=Europa/Varsòvia
+pref.timezone.Europe.Zagreb=Europa/Zagreb
+pref.timezone.Europe.Zaporozhye=Europa/Zaporozhye
+pref.timezone.Europe.Zurich=Europa/Zurich
+pref.timezone.Indian.Antananarivo=Índia/Antananarivo
+pref.timezone.Indian.Chagos=Índia/Chagos
+pref.timezone.Indian.Christmas=Índia/Christmas
+pref.timezone.Indian.Cocos=Índia/Cocos
+pref.timezone.Indian.Comoro=Índia/Comoro
+pref.timezone.Indian.Kerguelen=Índia/Kerguelen
+pref.timezone.Indian.Mahe=Índia/Mahe
+pref.timezone.Indian.Maldives=Índia/Maldives
+pref.timezone.Indian.Mauritius=Índia/Mauritius
+pref.timezone.Indian.Mayotte=Índia/Mayotte
+pref.timezone.Indian.Reunion=Índia/Reunion
+pref.timezone.Pacific.Apia=Pacífic/Apia
+pref.timezone.Pacific.Auckland=Pacífic/Auckland
+pref.timezone.Pacific.Chatham=Pacífic/Chatham
+pref.timezone.Pacific.Easter=Pacífic/Easter
+pref.timezone.Pacific.Efate=Pacífic/Efate
+pref.timezone.Pacific.Enderbury=Pacífic/Enderbury
+pref.timezone.Pacific.Fakaofo=Pacífic/Fakaofo
+pref.timezone.Pacific.Fiji=Pacífic/Fiji
+pref.timezone.Pacific.Funafuti=Pacífic/Funafuti
+pref.timezone.Pacific.Galapagos=Pacífic/Galapagos
+pref.timezone.Pacific.Gambier=Pacífic/Gambier
+pref.timezone.Pacific.Guadalcanal=Pacífic/Guadalcanal
+pref.timezone.Pacific.Guam=Pacífic/Guam
+pref.timezone.Pacific.Honolulu=Pacífic/Honolulu
+pref.timezone.Pacific.Johnston=Pacífic/Johnston
+pref.timezone.Pacific.Kiritimati=Pacífic/Kiritimati
+pref.timezone.Pacific.Kosrae=Pacífic/Kosrae
+pref.timezone.Pacific.Kwajalein=Pacífic/Kwajalein
+pref.timezone.Pacific.Majuro=Pacífic/Majuro
+pref.timezone.Pacific.Marquesas=Pacífic/Marquesas
+pref.timezone.Pacific.Midway=Pacífic/Midway
+pref.timezone.Pacific.Nauru=Pacífic/Naüru
+pref.timezone.Pacific.Niue=Pacífic/Niue
+pref.timezone.Pacific.Norfolk=Pacífic/Norfolk
+pref.timezone.Pacific.Noumea=Pacífic/Noumea
+pref.timezone.Pacific.Pago_Pago=Pacífic/Pago_Pago
+pref.timezone.Pacific.Palau=Pacífic/Palau
+pref.timezone.Pacific.Pitcairn=Pacífic/Pitcairn
+pref.timezone.Pacific.Ponape=Pacífic/Ponape
+pref.timezone.Pacific.Port_Moresby=Pacífic/Port_Moresby
+pref.timezone.Pacific.Rarotonga=Pacífic/Rarotonga
+pref.timezone.Pacific.Saipan=Pacífic/Saipan
+pref.timezone.Pacific.Tahiti=Pacífic/Tahití
+pref.timezone.Pacific.Tarawa=Pacífic/Tarawa
+pref.timezone.Pacific.Tongatapu=Pacífic/Tongatapu
+pref.timezone.Pacific.Truk=Pacífic/Truk
+pref.timezone.Pacific.Wake=Pacífic/Wake
+pref.timezone.Pacific.Wallis=Pacífic/Wallis
+
+# the following have been missing
+pref.timezone.America.Indiana.Tell_City=Amèrica/Indiana/Ciutat Tell
+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/St. Bartomeu
+
+# added with 2008d:
+pref.timezone.America.Argentina.San_Luis=Amèrica/Argentina/Sant Lluís
+pref.timezone.America.Santarem=Amèrica/Santarem
+pref.timezone.Asia.Ho_Chi_Minh=Àsia/Ho Chi Minh
+pref.timezone.Asia.Kolkata=Àsia/Calcuta
+
+# 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=Antàrtida/Macquarie
+pref.timezone.Asia.Novokuznetsk=Àsia/Novokuznetsk
+
+#added with 2011b
+pref.timezone.America.Bahia_Banderas=Amèrica/Badia Banderas
+pref.timezone.America.North_Dakota.Beulah=Amèrica/Dakota del Nord/Beulah
+pref.timezone.Pacific.Chuuk=Pacífic/Chuuk
+pref.timezone.Pacific.Pohnpei=Pacífic/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=Àsia/Hebron
+
+#added with 2013a
+pref.timezone.America.Creston=Amèrica/Creston
+pref.timezone.Asia.Khandyga=Àsia/Khandyga
+pref.timezone.Asia.Ust-Nera=Àsia/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=Àsia/Chita
+pref.timezone.Asia.Srednekolymsk=Àsia/Srednekolymsk
+pref.timezone.Pacific.Bougainville=Pacífic/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/Àstrakhan
+pref.timezone.Asia.Barnaul=Àsia/Barnaül
+
+#added with 2.2016i
+pref.timezone.Asia.Yangon=Àsia/Yangon
+pref.timezone.Asia.Tomsk=Àsia/Tomsk
+pref.timezone.Asia.Famagusta=Àsia/Famagusta
+pref.timezone.Europe.Kirov=Europa/Kírov
+
+#added with 2.2016j
+pref.timezone.Europe.Saratov=Europa/Saràtov
+pref.timezone.Asia.Atyrau=Àsia/Atirau
+
+#added with 2.2017b
+pref.timezone.America.Punta_Arenas=Amèrica/Punta Arenas
+
+#added with 2.2018i
+pref.timezone.Asia.Qostanay=Àsia/Qostanay
+
+#added with 2.2020a
+pref.timezone.America.Nuuk=Amèrica/Nuuk
+
+#added with 2.2021c
+pref.timezone.Pacific.Kanton=Pacífic/Kanton
+
+#added with 2.2022b
+pref.timezone.Europe.Kyiv=Europa/Kíev
+
+#added with 2.2023c
+pref.timezone.America.Ciudad_Juarez=Amèrica/Ciudad Juarez