summaryrefslogtreecommitdiffstats
path: root/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'thunderbird-l10n/ast/chrome/ast/locale/ast/calendar')
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-alarms.properties39
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-event-dialog-attendees.properties15
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-event-dialog.dtd418
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-event-dialog.properties541
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-extract.properties294
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-invitations-dialog.dtd13
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-invitations-dialog.properties10
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-occurrence-prompt.dtd7
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-occurrence-prompt.properties53
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar.dtd354
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar.properties696
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendarCreation.dtd51
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendarCreation.properties6
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/categories.properties7
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/dateFormat.properties146
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/dialogs/calendar-event-dialog-reminder.dtd19
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/global.dtd21
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/menuOverlay.dtd46
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/migration.dtd9
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/migration.properties11
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/provider-uninstall.dtd12
-rw-r--r--thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/timezones.properties490
22 files changed, 3258 insertions, 0 deletions
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-alarms.properties b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-alarms.properties
new file mode 100644
index 0000000000..1bf6e56f4c
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/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=The moment the event starts
+reminderTitleAtStartTask=The moment the task starts
+reminderTitleAtEndEvent=The moment the event ends
+reminderTitleAtEndTask=The moment the task ends
+
+# 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=Snooze reminder for %1$S
+
+reminderCustomOriginBeginBeforeEvent=before the event starts
+reminderCustomOriginBeginAfterEvent=after the event starts
+reminderCustomOriginEndBeforeEvent=before the event ends
+reminderCustomOriginEndAfterEvent=after the event ends
+reminderCustomOriginBeginBeforeTask=before the task starts
+reminderCustomOriginBeginAfterTask=after the task starts
+reminderCustomOriginEndBeforeTask=before the task ends
+reminderCustomOriginEndAfterTask=after the task ends
+
+reminderErrorMaxCountReachedEvent=The selected calendar has a limitation of #1 reminder per event.;The selected calendar has a limitation of #1 reminders per event.
+reminderErrorMaxCountReachedTask=The selected calendar has a limitation of #1 reminder per task.;The selected calendar has a limitation of #1 reminders per task.
+
+# 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=Reminders for read-only calendars currently cannot be snoozed but only dismissed - the button '%1$S' will only snooze reminders for writable calendars.
+# LOCALIZATION NOTE (reminderDisabledSnoozeButtonTooltip)
+# This tooltip is only displayed, if the button is disabled
+reminderDisabledSnoozeButtonTooltip=Snoozing of a reminder is not supported for read-only calendars
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-event-dialog-attendees.properties b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-event-dialog-attendees.properties
new file mode 100644
index 0000000000..4b55f1d7ec
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/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 = Required Attendee
+event.attendee.role.optional = Optional Attendee
+event.attendee.role.nonparticipant = Non Participant
+event.attendee.role.chair = Chair
+event.attendee.role.unknown = Unknown Attendee (%1$S)
+
+event.attendee.usertype.individual = Individual
+event.attendee.usertype.group = Group
+event.attendee.usertype.resource = Resource
+event.attendee.usertype.room = Room
+event.attendee.usertype.unknown = Unknown Type (%1$S)
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-event-dialog.dtd b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-event-dialog.dtd
new file mode 100644
index 0000000000..bbe94ecb6f
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-event-dialog.dtd
@@ -0,0 +1,418 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 "Edit Item" >
+
+<!ENTITY event.dialog.keepDurationButton.tooltip "Keep the duration when changing the end date">
+<!ENTITY event.dialog.keepDurationButton.accesskey "K">
+
+<!ENTITY newevent.from.label "From" >
+<!ENTITY newevent.to.label "To" >
+
+<!ENTITY newevent.status.label "Status" >
+<!ENTITY newevent.status.accesskey "S" >
+<!ENTITY newevent.eventStatus.none.label "Not specified" >
+<!ENTITY newevent.eventStatus.none.accesskey "o" >
+<!ENTITY newevent.todoStatus.none.label "Not specified" >
+<!ENTITY newevent.eventStatus.cancelled.label "Canceled" >
+<!ENTITY newevent.eventStatus.cancelled.accesskey "n" >
+<!ENTITY newevent.todoStatus.cancelled.label "Canceled" >
+<!ENTITY newevent.status.tentative.label "Tentative" >
+<!ENTITY newevent.status.tentative.accesskey "T" >
+<!ENTITY newevent.status.confirmed.label "Confirmed" >
+<!ENTITY newevent.status.confirmed.accesskey "C" >
+<!ENTITY newevent.status.needsaction.label "Needs Action" >
+<!ENTITY newevent.status.inprogress.label "In Process" >
+<!ENTITY newevent.status.completed.label "Completed on" >
+
+<!-- The following entity is for New Task dialog only -->
+<!ENTITY newtodo.percentcomplete.label "&#37; complete">
+
+<!-- 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 "Notify attendees">
+<!ENTITY event.attendees.notify.accesskey "f">
+<!ENTITY event.attendees.notifyundisclosed.label "Separate invitation per attendee">
+<!ENTITY event.attendees.notifyundisclosed.accesskey "x">
+<!ENTITY event.attendees.notifyundisclosed.tooltip "This option sends one invitation email per attendee. Each invitation only contains the recipient attendee so that other attendee identities are not disclosed.">
+<!ENTITY event.attendees.disallowcounter.label "Disallow counter">
+<!ENTITY event.attendees.disallowcounter.accesskey "a">
+<!ENTITY event.attendees.disallowcounter.tooltip "Indicates that you will not accept counterproposals">
+
+<!-- Keyboard Shortcuts -->
+<!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.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 "New">
+<!ENTITY event.menu.item.new.accesskey "N">
+<!ENTITY event.menu.item.new.event.label "Event">
+<!ENTITY event.menu.item.new.event.accesskey "E">
+<!ENTITY event.menu.item.new.task.label "Task">
+<!ENTITY event.menu.item.new.task.accesskey "T">
+<!ENTITY event.menu.item.new.message.label "Message">
+<!ENTITY event.menu.item.new.message.accesskey "M">
+<!ENTITY event.menu.item.new.contact.label "Address Book Contact">
+<!ENTITY event.menu.item.new.contact.accesskey "C">
+<!ENTITY event.menu.item.close.label "Close">
+<!ENTITY event.menu.item.close.accesskey "C">
+
+<!-- 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 "Save">
+<!ENTITY event.menu.item.save.accesskey "S">
+<!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 "Save and Close">
+<!ENTITY event.menu.item.saveandclose.accesskey "l">
+<!ENTITY event.menu.item.saveandclose.tab.accesskey "z">
+
+<!ENTITY event.menu.item.delete.label "Delete…">
+<!ENTITY event.menu.item.delete.accesskey "D">
+
+<!ENTITY event.menu.edit.label "Edit">
+<!ENTITY event.menu.edit.accesskey "E">
+<!ENTITY event.menu.edit.undo.label "Undo">
+<!ENTITY event.menu.edit.undo.accesskey "U">
+<!ENTITY event.menu.edit.redo.label "Redo">
+<!ENTITY event.menu.edit.redo.accesskey "R">
+<!ENTITY event.menu.edit.cut.label "Cut">
+<!ENTITY event.menu.edit.cut.accesskey "t">
+<!ENTITY event.menu.edit.copy.label "Copy">
+<!ENTITY event.menu.edit.copy.accesskey "C">
+<!ENTITY event.menu.edit.paste.label "Paste">
+<!ENTITY event.menu.edit.paste.accesskey "P">
+<!ENTITY event.menu.edit.select.all.label "Select All">
+<!ENTITY event.menu.edit.select.all.accesskey "A">
+
+<!ENTITY event.menu.view.label "View">
+<!ENTITY event.menu.view.accesskey "V">
+<!ENTITY event.menu.view.toolbars.label "Toolbars">
+<!ENTITY event.menu.view.toolbars.accesskey "T">
+<!ENTITY event.menu.view.toolbars.event.label "Event Toolbar">
+<!ENTITY event.menu.view.toolbars.event.accesskey "E">
+<!ENTITY event.menu.view.toolbars.customize.label "Customize…">
+<!ENTITY event.menu.view.toolbars.customize.accesskey "C">
+
+<!ENTITY event.menu.options.label "Options">
+<!ENTITY event.menu.options.accesskey "O">
+<!ENTITY event.menu.options.attendees.label "Invite Attendees…">
+<!ENTITY event.menu.options.attendees.accesskey "I">
+<!ENTITY event.menu.options.timezone2.label "Show Timezones">
+<!ENTITY event.menu.options.timezone2.accesskey "z">
+<!ENTITY event.menu.options.priority2.label "Priority">
+<!ENTITY event.menu.options.priority2.accesskey "y">
+<!ENTITY event.menu.options.priority.notspecified.label "Not specified">
+<!ENTITY event.menu.options.priority.notspecified.accesskey "o">
+<!ENTITY event.menu.options.priority.low.label "Low">
+<!ENTITY event.menu.options.priority.low.accesskey "L">
+<!ENTITY event.menu.options.priority.normal.label "Normal">
+<!ENTITY event.menu.options.priority.normal.accesskey "N">
+<!ENTITY event.menu.options.priority.high.label "High">
+<!ENTITY event.menu.options.priority.high.accesskey "H">
+<!ENTITY event.menu.options.privacy.label "Privacy">
+<!ENTITY event.menu.options.privacy.accesskey "P">
+<!ENTITY event.menu.options.privacy.public.label "Public Event">
+<!ENTITY event.menu.options.privacy.public.accesskey "u">
+<!ENTITY event.menu.options.privacy.confidential.label "Show Time and Date Only">
+<!ENTITY event.menu.options.privacy.confidential.accesskey "S">
+<!ENTITY event.menu.options.privacy.private.label "Private Event">
+<!ENTITY event.menu.options.privacy.private.accesskey "r">
+<!ENTITY event.menu.options.show.time.label "Show Time as">
+<!ENTITY event.menu.options.show.time.accesskey "T">
+<!ENTITY event.menu.options.show.time.busy.label "Busy">
+<!ENTITY event.menu.options.show.time.busy.accesskey "B">
+<!ENTITY event.menu.options.show.time.free.label "Free">
+<!ENTITY event.menu.options.show.time.free.accesskey "F">
+
+<!ENTITY event.invite.attendees.label "Invite Attendees…">
+<!ENTITY event.invite.attendees.accesskey "I">
+<!ENTITY event.email.attendees.label "Compose Email to All Attendees…">
+<!ENTITY event.email.attendees.accesskey "A">
+<!ENTITY event.email.tentative.attendees.label "Compose Email to Undecided Attendees…">
+<!ENTITY event.email.tentative.attendees.accesskey "U">
+<!ENTITY event.remove.attendees.label2 "Remove all attendees">
+<!ENTITY event.remove.attendees.accesskey "r">
+<!ENTITY event.remove.attendee.label "Remove attendee">
+<!ENTITY event.remove.attendee.accesskey "e">
+
+<!-- Toolbar -->
+<!ENTITY event.toolbar.save.label2 "Save">
+<!ENTITY event.toolbar.saveandclose.label "Save and Close">
+<!ENTITY event.toolbar.delete.label "Delete">
+<!ENTITY event.toolbar.attendees.label "Invite Attendees">
+<!ENTITY event.toolbar.privacy.label "Privacy">
+
+<!ENTITY event.toolbar.save.tooltip2 "Save">
+<!ENTITY event.toolbar.saveandclose.tooltip "Save and Close">
+<!ENTITY event.toolbar.delete.tooltip "Delete">
+<!ENTITY event.toolbar.attendees.tooltip "Invite Attendees">
+<!ENTITY event.toolbar.attachments.tooltip "Add Attachments">
+<!ENTITY event.toolbar.privacy.tooltip "Change Privacy">
+<!ENTITY event.toolbar.priority.tooltip "Change Priority">
+<!ENTITY event.toolbar.status.tooltip "Change Status">
+<!ENTITY event.toolbar.freebusy.tooltip "Change Free/Busy time">
+
+<!-- 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 "Apply proposal">
+<!ENTITY counter.button.proposal.accesskey "p">
+<!ENTITY counter.button.proposal.tooltip2 "Event fields will be filled in using the values from the counterproposal, only saving with or without additional changes will notify all attendees accordingly">
+<!ENTITY counter.button.original.label "Apply original data">
+<!ENTITY counter.button.original.accesskey "r">
+<!ENTITY counter.button.original.tooltip2 "The fields will be set to the values from the original event, before the counterproposal was made">
+
+<!-- Main page -->
+<!ENTITY event.title.textbox.label "Title:" >
+<!ENTITY event.title.textbox.accesskey "I">
+<!ENTITY event.location.label "Location:" >
+<!ENTITY event.location.accesskey "L">
+<!ENTITY event.categories.label "Category:">
+<!ENTITY event.categories.accesskey "y">
+<!ENTITY event.categories.textbox.label "Add a new category" >
+<!ENTITY event.calendar.label "Calendar:" >
+<!ENTITY event.calendar.accesskey "C">
+<!ENTITY event.attendees.label "Attendees:" >
+<!ENTITY event.attendees.accesskey "n">
+<!ENTITY event.alldayevent.label "All day Event" >
+<!ENTITY event.alldayevent.accesskey "d">
+<!ENTITY event.from.label "Start:" >
+<!ENTITY event.from.accesskey "S">
+<!ENTITY task.from.label "Start:" >
+<!ENTITY task.from.accesskey "S">
+<!ENTITY event.to.label "End:" >
+<!ENTITY event.to.accesskey "u">
+<!ENTITY task.to.label "Due Date:" >
+<!ENTITY task.to.accesskey "u">
+<!ENTITY task.status.label "Status:" >
+<!ENTITY task.status.accesskey "a">
+<!ENTITY event.repeat.label "Repeat:" >
+<!ENTITY event.repeat.accesskey "R">
+<!ENTITY event.until.label "Until:">
+<!ENTITY event.until.accesskey "B">
+<!ENTITY event.reminder.label "Reminder:" >
+<!ENTITY event.reminder.accesskey "m">
+<!ENTITY event.description.label "Description:" >
+<!ENTITY event.description.accesskey "p">
+<!ENTITY event.attachments.label "Attachments:" >
+<!ENTITY event.attachments.accesskey "h" >
+<!ENTITY event.attachments.menubutton.label "Attach">
+<!ENTITY event.attachments.menubutton.accesskey "A">
+<!ENTITY event.attachments.url.label "Webpage…">
+<!ENTITY event.attachments.url.accesskey "W">
+<!ENTITY event.attachments.popup.remove.label "Remove" >
+<!ENTITY event.attachments.popup.remove.accesskey "R" >
+<!ENTITY event.attachments.popup.open.label "Open" >
+<!ENTITY event.attachments.popup.open.accesskey "O" >
+<!ENTITY event.attachments.popup.removeAll.label "Remove All" >
+<!ENTITY event.attachments.popup.removeAll.accesskey "A" >
+<!ENTITY event.attachments.popup.attachPage.label "Attach Webpage…" >
+<!ENTITY event.attachments.popup.attachPage.accesskey "g" >
+<!ENTITY event.url.label "Related Link:" >
+<!ENTITY event.priority2.label "Priority:">
+
+<!ENTITY event.reminder.none.label "No reminder " >
+<!ENTITY event.reminder.0minutes.before.label "0 minutes before" >
+<!ENTITY event.reminder.5minutes.before.label "5 minutes before" >
+<!ENTITY event.reminder.15minutes.before.label "15 minutes before" >
+<!ENTITY event.reminder.30minutes.before.label "30 minutes before" >
+<!ENTITY event.reminder.1hour.before.label "1 hour before" >
+<!ENTITY event.reminder.2hours.before.label "2 hours before" >
+<!ENTITY event.reminder.12hours.before.label "12 hours before" >
+<!ENTITY event.reminder.1day.before.label "1 day before" >
+<!ENTITY event.reminder.2days.before.label "2 days before" >
+<!ENTITY event.reminder.1week.before.label "1 week before" >
+<!ENTITY event.reminder.custom.label "Custom…" >
+
+<!ENTITY event.reminder.multiple.label "Multiple Reminders…" >
+
+<!ENTITY event.statusbarpanel.freebusy.label "Time as:">
+<!ENTITY event.statusbarpanel.privacy.label "Privacy:">
+
+<!-- Recurrence dialog -->
+<!ENTITY recurrence.title.label "Edit Recurrence">
+
+<!ENTITY event.repeat.does.not.repeat.label "Does not repeat">
+<!ENTITY event.repeat.daily.label "Daily">
+<!ENTITY event.repeat.weekly.label "Weekly">
+<!ENTITY event.repeat.every.weekday.label "Every Weekday">
+<!ENTITY event.repeat.bi.weekly.label "Bi-weekly">
+<!ENTITY event.repeat.monthly.label "Monthly">
+<!ENTITY event.repeat.yearly.label "Yearly">
+<!ENTITY event.repeat.custom.label "Custom…">
+
+<!ENTITY event.recurrence.pattern.label "Recurrence pattern">
+<!ENTITY event.recurrence.occurs.label "Repeat" >
+<!ENTITY event.recurrence.day.label "daily" >
+<!ENTITY event.recurrence.week.label "weekly" >
+<!ENTITY event.recurrence.month.label "monthly" >
+<!ENTITY event.recurrence.year.label "annually" >
+
+<!ENTITY event.recurrence.pattern.every.label "Every" >
+<!ENTITY repeat.units.days.both "Day(s)" >
+<!ENTITY event.recurrence.pattern.every.weekday.label "Every weekday" >
+
+<!ENTITY event.recurrence.pattern.weekly.every.label "Every" >
+<!ENTITY repeat.units.weeks.both "Week(s)" >
+<!ENTITY event.recurrence.on.label "On:" >
+
+<!ENTITY event.recurrence.pattern.monthly.every.label "Every" >
+<!ENTITY repeat.units.months.both "Month(s)" >
+<!ENTITY event.recurrence.monthly.every.label "Every" >
+<!ENTITY event.recurrence.monthly.first.label "The First">
+<!ENTITY event.recurrence.monthly.second.label "The Second">
+<!ENTITY event.recurrence.monthly.third.label "The Third">
+<!ENTITY event.recurrence.monthly.fourth.label "The Fourth">
+<!ENTITY event.recurrence.monthly.fifth.label "The Fifth">
+<!ENTITY event.recurrence.monthly.last.label "The Last">
+<!ENTITY event.recurrence.pattern.monthly.week.1.label "Sunday" >
+<!ENTITY event.recurrence.pattern.monthly.week.2.label "Monday" >
+<!ENTITY event.recurrence.pattern.monthly.week.3.label "Tuesday" >
+<!ENTITY event.recurrence.pattern.monthly.week.4.label "Wednesday" >
+<!ENTITY event.recurrence.pattern.monthly.week.5.label "Thursday" >
+<!ENTITY event.recurrence.pattern.monthly.week.6.label "Friday" >
+<!ENTITY event.recurrence.pattern.monthly.week.7.label "Saturday" >
+<!ENTITY event.recurrence.repeat.dayofmonth.label "Day of the month">
+<!ENTITY event.recurrence.repeat.recur.label "Recur on day(s)">
+
+<!ENTITY event.recurrence.every.label "Every:" >
+<!ENTITY repeat.units.years.both "Year(s)" >
+<!ENTITY event.recurrence.pattern.yearly.every.month.label "Every" >
+
+<!-- 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 "" >
+
+<!ENTITY event.recurrence.pattern.yearly.month.1.label "January" >
+<!ENTITY event.recurrence.pattern.yearly.month.2.label "February" >
+<!ENTITY event.recurrence.pattern.yearly.month.3.label "March" >
+<!ENTITY event.recurrence.pattern.yearly.month.4.label "April" >
+<!ENTITY event.recurrence.pattern.yearly.month.5.label "May" >
+<!ENTITY event.recurrence.pattern.yearly.month.6.label "June" >
+<!ENTITY event.recurrence.pattern.yearly.month.7.label "July" >
+<!ENTITY event.recurrence.pattern.yearly.month.8.label "August" >
+<!ENTITY event.recurrence.pattern.yearly.month.9.label "September" >
+<!ENTITY event.recurrence.pattern.yearly.month.10.label "October" >
+<!ENTITY event.recurrence.pattern.yearly.month.11.label "November" >
+<!ENTITY event.recurrence.pattern.yearly.month.12.label "December" >
+<!ENTITY event.recurrence.yearly.every.label "Every">
+<!ENTITY event.recurrence.yearly.first.label "The First">
+<!ENTITY event.recurrence.yearly.second.label "The Second">
+<!ENTITY event.recurrence.yearly.third.label "The Third">
+<!ENTITY event.recurrence.yearly.fourth.label "The Fourth">
+<!ENTITY event.recurrence.yearly.fifth.label "The Fifth">
+<!ENTITY event.recurrence.yearly.last.label "The Last">
+<!ENTITY event.recurrence.pattern.yearly.week.1.label "Sunday" >
+<!ENTITY event.recurrence.pattern.yearly.week.2.label "Monday" >
+<!ENTITY event.recurrence.pattern.yearly.week.3.label "Tuesday" >
+<!ENTITY event.recurrence.pattern.yearly.week.4.label "Wednesday" >
+<!ENTITY event.recurrence.pattern.yearly.week.5.label "Thursday" >
+<!ENTITY event.recurrence.pattern.yearly.week.6.label "Friday" >
+<!ENTITY event.recurrence.pattern.yearly.week.7.label "Saturday" >
+<!ENTITY event.recurrence.pattern.yearly.day.label "day" >
+<!ENTITY event.recurrence.of.label "of" >
+<!ENTITY event.recurrence.pattern.yearly.month2.1.label "January" >
+<!ENTITY event.recurrence.pattern.yearly.month2.2.label "February" >
+<!ENTITY event.recurrence.pattern.yearly.month2.3.label "March" >
+<!ENTITY event.recurrence.pattern.yearly.month2.4.label "April" >
+<!ENTITY event.recurrence.pattern.yearly.month2.5.label "May" >
+<!ENTITY event.recurrence.pattern.yearly.month2.6.label "June" >
+<!ENTITY event.recurrence.pattern.yearly.month2.7.label "July" >
+<!ENTITY event.recurrence.pattern.yearly.month2.8.label "August" >
+<!ENTITY event.recurrence.pattern.yearly.month2.9.label "September" >
+<!ENTITY event.recurrence.pattern.yearly.month2.10.label "October" >
+<!ENTITY event.recurrence.pattern.yearly.month2.11.label "November" >
+<!ENTITY event.recurrence.pattern.yearly.month2.12.label "December" >
+
+<!ENTITY event.recurrence.range.label "Range of recurrence">
+<!ENTITY event.recurrence.forever.label "No end date" >
+<!ENTITY event.recurrence.repeat.for.label "Create" >
+<!ENTITY event.recurrence.appointments.label "Appointment(s)" >
+<!ENTITY event.repeat.until.label "Repeat until" >
+
+<!-- Attendees dialog -->
+<!ENTITY invite.title.label "Invite Attendees">
+<!ENTITY event.organizer.label "Organizer">
+<!ENTITY event.freebusy.suggest.slot "Suggest time slot:">
+<!ENTITY event.freebusy.button.next.slot "Next slot">
+<!ENTITY event.freebusy.button.previous.slot "Previous slot">
+<!ENTITY event.freebusy.zoom "Zoom:">
+<!ENTITY event.freebusy.legend.free "Free" >
+<!ENTITY event.freebusy.legend.busy "Busy" >
+<!ENTITY event.freebusy.legend.busy_tentative "Tentative" >
+<!ENTITY event.freebusy.legend.busy_unavailable "Out of Office" >
+<!ENTITY event.freebusy.legend.unknown "No Information" >
+<!ENTITY event.attendee.role.required "Required Attendee">
+<!ENTITY event.attendee.role.optional "Optional Attendee">
+<!ENTITY event.attendee.role.chair "Chair">
+<!ENTITY event.attendee.role.nonparticipant "Non Participant">
+<!ENTITY event.attendee.usertype.individual "Individual">
+<!ENTITY event.attendee.usertype.group "Group">
+<!ENTITY event.attendee.usertype.resource "Resource">
+<!ENTITY event.attendee.usertype.room "Room">
+<!ENTITY event.attendee.usertype.unknown "Unknown">
+
+<!-- Timezone dialog -->
+<!ENTITY timezone.title.label "Please Specify the Timezone">
+<!ENTITY event.timezone.custom.label "More Timezones…">
+
+<!-- Read-Only dialog -->
+<!ENTITY read.only.general.label "General">
+<!ENTITY read.only.title.label "Title:">
+<!ENTITY read.only.calendar.label "Calendar:">
+<!ENTITY read.only.event.start.label "Start Date:">
+<!ENTITY read.only.task.start.label "Start Date:">
+<!ENTITY read.only.event.end.label "End Date:">
+<!ENTITY read.only.task.due.label "Due Date:">
+<!ENTITY read.only.repeat.label "Repeat:">
+<!ENTITY read.only.location.label "Location:">
+<!ENTITY read.only.category.label "Category:">
+<!ENTITY read.only.organizer.label "Organizer:">
+<!ENTITY read.only.reminder.label "Reminder:">
+<!ENTITY read.only.attachments.label "Attachments:">
+<!ENTITY read.only.attendees.label "Attendees">
+<!ENTITY read.only.description.label "Description">
+<!ENTITY read.only.link.label "Related Link">
+
+<!-- Summary dialog -->
+<!ENTITY summary.dialog.saveclose.label "Save and Close">
+<!ENTITY summary.dialog.saveclose.tooltiptext "Save changes and close the window without changing the participation status and sending a response">
+<!ENTITY summary.dialog.accept.label "Accept">
+<!ENTITY summary.dialog.accept.tooltiptext "Accept the invitation">
+<!ENTITY summary.dialog.tentative.label "Tentative">
+<!ENTITY summary.dialog.tentative.tooltiptext "Accept the invitation tentatively">
+<!ENTITY summary.dialog.decline.label "Decline">
+<!ENTITY summary.dialog.decline.tooltiptext "Decline the invitation">
+<!ENTITY summary.dialog.dontsend.label "Do not send a response">
+<!ENTITY summary.dialog.dontsend.tooltiptext "Change your participation status without sending a reply to the organizer and close the window">
+<!ENTITY summary.dialog.send.label "Send a response now">
+<!ENTITY summary.dialog.send.tooltiptext "Send out a response to the organizer and close the window">
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-event-dialog.properties b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-event-dialog.properties
new file mode 100644
index 0000000000..6f1592242d
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/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=every day;every #1 days
+repeatDetailsRuleDaily4=every weekday
+
+# 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=every %1$S;every #2 weeks on %1$S
+weeklyNthOnNounclass2=every %1$S;every #2 weeks on %1$S
+
+# LOCALIZATION NOTE (weeklyEveryNth):
+# Edit recurrence window -> Recurrence pattern -> Weekly repeat rules
+# #1 - interval
+# e.g. "every 5 weeks"
+weeklyEveryNth=every week;every #1 weeks
+
+# 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=Sunday
+repeatDetailsDay1Nounclass=nounclass1
+repeatDetailsDay2=Monday
+repeatDetailsDay2Nounclass=nounclass1
+repeatDetailsDay3=Tuesday
+repeatDetailsDay3Nounclass=nounclass1
+repeatDetailsDay4=Wednesday
+repeatDetailsDay4Nounclass=nounclass1
+repeatDetailsDay5=Thursday
+repeatDetailsDay5Nounclass=nounclass1
+repeatDetailsDay6=Friday
+repeatDetailsDay6Nounclass=nounclass1
+repeatDetailsDay7=Saturday
+repeatDetailsDay7Nounclass=nounclass1
+
+# LOCALIZATION NOTE (repeatDetailsAnd)
+# Used to show a number of weekdays in a list
+# i.e. "Sunday, Monday, Tuesday " + and + " Wednesday"
+repeatDetailsAnd=and
+
+# 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 of every month;%1$S of every #2 months
+monthlyRuleNthOfEveryNounclass2=%1$S of every month;%1$S of every #2 months
+
+# 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=every %1$S of every month;every %1$S of every #2 months
+monthlyEveryOfEveryNounclass2=every %1$S of every month;every %1$S of every #2 months
+
+# 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=day %1$S;days %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 of every month;%1$S of every #2 months
+
+# 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=the last day of the month; the last day of every #1 months
+
+# 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=every day of every month;every day of the month every #2 months
+
+# 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=the first
+repeatOrdinal2Nounclass1=the second
+repeatOrdinal3Nounclass1=the third
+repeatOrdinal4Nounclass1=the fourth
+repeatOrdinal5Nounclass1=the fifth
+repeatOrdinal-1Nounclass1=the last
+repeatOrdinal1Nounclass2=the first
+repeatOrdinal2Nounclass2=the second
+repeatOrdinal3Nounclass2=the third
+repeatOrdinal4Nounclass2=the fourth
+repeatOrdinal5Nounclass2=the fifth
+repeatOrdinal-1Nounclass2=the last
+
+# 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=every %1$S %2$S;every #3 years on %1$S %2$S
+
+# LOCALIZATION NOTE (yearlyNthOnNthOfNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# Translate these strings according to noun class/gender of weekday (%2$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - ordinal with article and noun class/gender corresponding to weekday
+# %2$S - weekday
+# %3$S - month
+# #4 - yearly interval
+# e.g. "the second Monday of every March"
+# e.g "every 3 years the second Monday of March"
+yearlyNthOnNthOfNounclass1=%1$S %2$S of every %3$S;every #4 years on %1$S %2$S of %3$S
+yearlyNthOnNthOfNounclass2=%1$S %2$S of every %3$S;every #4 years on %1$S %2$S of %3$S
+
+# 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=every %1$S of %2$S;every #3 years on every %1$S of %2$S
+yearlyOnEveryNthOfNthNounclass2=every %1$S of %2$S;every #3 years on every %1$S of %2$S
+
+#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=every day of %1$S;every #2 years every day of %1$S
+
+repeatDetailsMonth1=January
+repeatDetailsMonth2=February
+repeatDetailsMonth3=March
+repeatDetailsMonth4=April
+repeatDetailsMonth5=May
+repeatDetailsMonth6=June
+repeatDetailsMonth7=July
+repeatDetailsMonth8=August
+repeatDetailsMonth9=September
+repeatDetailsMonth10=October
+repeatDetailsMonth11=November
+repeatDetailsMonth12=December
+
+# 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 occurrence 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=Occurs %1$S\neffective %2$S for #5 time\nfrom %3$S to %4$S.;Occurs %1$S\neffective %2$S for #5 times\nfrom %3$S to %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 occurrence 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=Occurs %1$S\neffective %2$S for #3 time.;Occurs %1$S\neffective %2$S for #3 times.
+
+# 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=Occurs %1$S\neffective %2$S until %3$S\nfrom %4$S to %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=Occurs %1$S\neffective %2$S until %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=Occurs %1$S\neffective %2$S\nfrom %3$S to %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=Occurs %1$S\neffective %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=the last day
+
+# 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=Click here for details
+
+# 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=Repeat details unknown
+
+# differences between the dialog for an Event or a Task
+newEvent=New Event
+newTask=New Task
+itemMenuLabelEvent=Event
+itemMenuAccesskeyEvent2=T
+itemMenuLabelTask=Task
+itemMenuAccesskeyTask2=T
+
+emailSubjectReply=Re: %1$S
+
+# Link Location Dialog
+specifyLinkLocation=Please specify the link location
+enterLinkLocation=Enter a web page, or document location.
+
+summaryDueTaskLabel=Due:
+
+# Attach File Dialog
+attachViaFilelink=File using %1$S
+selectAFile=Please select the file(s) to attach
+removeCalendarsTitle=Remove Attachments
+
+# LOCALIZATION NOTE (removeAttachmentsText): Semi-colon list of plural forms for
+# prompting attachment removal.
+# See http://developer.mozilla.org/en/Localization_and_Plurals
+removeAttachmentsText=Do you really want to remove #1 attachment?;Do you really want to remove #1 attachments?
+
+# 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=Sunday
+repeatDetailsDay2Plural=Monday
+repeatDetailsDay3Plural=Tuesday
+repeatDetailsDay4Plural=Wednesday
+repeatDetailsDay5Plural=Thursday
+repeatDetailsDay6Plural=Friday
+repeatDetailsDay7Plural=Saturday
+
+# 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=Forever
+
+# 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=Last day
+
+# 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 has accepted the invitation, but made a counter proposal:
+
+# 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 has declined the invitation, but made a counter proposal:
+
+# 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 has delegated the invitation, but made a counter proposal:
+
+# 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 hasn't decided whether to participate and made a counter proposal:
+
+# 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 has accepted the invitation only tentatively and made a counter proposal:
+
+# LOCALIZATION NOTE (counterOnPreviousVersionNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+counterOnPreviousVersionNotification=This is a counter proposal for a previous version of this event.
+
+# LOCALIZATION NOTE (counterOnCounterDisallowedNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+counterOnCounterDisallowedNotification=You disallowed countering when sending out the invitation.
+
+# LOCALIZATION NOTE (eventAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation
+eventAccepted=You have accepted this invitation
+
+# LOCALIZATION NOTE (eventTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation tentatively
+eventTentative=You have accepted this invitation tentatively
+
+# LOCALIZATION NOTE (eventDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the event invitation
+eventDeclined=You have declined this invitation
+
+# 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=You have delegated this invitation
+
+# LOCALIZATION NOTE (eventNeedsAction) - this will be displayed as notification
+# in the summary dialog if the user hasn't yet responded to an invitation
+eventNeedsAction=You haven't yet responded to this invitation
+
+# LOCALIZATION NOTE (taskAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the assigned task
+taskAccepted=You have accepted to work on this task
+
+# LOCALIZATION NOTE (taskTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted tentatively the assigned task
+taskTentative=You have tentatively accepted to work on this task
+
+# LOCALIZATION NOTE (taskDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the assigned task
+taskDeclined=You have declined to work on this task
+
+# LOCALIZATION NOTE (taskDelegated) - this will be displayed as notification
+# in the summary dialog if the user has delegated his/her assignment to one or
+# more others (without attending / working on it his/herself)
+taskDelegated=You have delegated the work on this task
+
+# 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=You haven't yet responded to this task assignment
+
+# LOCALIZATION NOTE (taskInProgress) - this will be displayed as notification
+# in the summary dialog if the user is working on an assigned task
+taskInProgress=You have started to work on this assigned task
+
+# 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=You have completed your work on this assigned task
+
+# 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=Send And Close
+
+# 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=Notify attendees and close
+
+# 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=Save And Send
+
+# 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=Save and notify attendees
+
+# 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=Save and Send
+
+# 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=Send and Close
+
+# 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=Attendees (%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=Attachments (%1$S):
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-extract.properties b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-extract.properties
new file mode 100644
index 0000000000..89fe718758
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/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 =
+
+# LOCALIZATION NOTE (start.suffix):
+# datetimes followed by these are extracted as start times
+start.suffix = by | until | to | - | till | til | and
+
+# LOCALIZATION NOTE (end.prefix):
+# datetimes with these in front are extracted as end times
+end.prefix = by | until | to | - | till | til | and | due: | due | ends | deadline is | deadline:
+
+# 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 = last week | sent | email | e-mail | instead of | > | unfortunately | in | not
+
+# LOCALIZATION NOTE (no.datetime.suffix):
+# datetimes followed by these won't be used
+no.datetime.suffix = floor | flr | : | email | e-mail | > | % | usd | dollars | $
+
+# LOCALIZATION NOTE (from.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (from.today):
+# must not be empty!
+from.today = today
+
+from.tomorrow = tomorrow
+# 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 = #1st | #1nd | #1rd | #1th
+
+# LOCALIZATION NOTE (until.ordinal.date):
+# #1 = matches numbers 1-31 and number.x
+until.ordinal.date =
+
+from.noon = noon
+until.noon =
+
+# 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 = at #1 | around #1 | #1 - | #1 to
+
+# 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 | to #1 | until #1 | by #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 = half an hour before #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 = half past #1
+
+# 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 | at #1#2
+
+# LOCALIZATION NOTE (until.hour.minutes):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+until.hour.minutes =
+
+# 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
+
+# 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
+
+# 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 | #2 #1st | #2 #1nd | #2 #1rd | #2 #1th | #1st of #2 | #1nd of #2 | #1rd of #2 | #1th of #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 = #2/#1
+
+# 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 = #2/#1/#3 | #3/#2/#1 | #3-#2-#1
+
+# 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 | #1st #2 #3 | #1nd #2 #3 | #1rd #2 #3 | #1th #2 #3 | #2 #1, #3 | #3-#2-#1
+
+# 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 minutes | #1 min | #1 mins
+
+# LOCALIZATION NOTE (duration.hours):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.hours = #1 hour | #1 hours
+
+# LOCALIZATION NOTE (duration.days):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.days = #1 days
+
+# LOCALIZATION NOTE (month.*):
+# can be a list of values, separate variants by |
+month.1 = january | jan | jan.
+month.2 = february | feb | feb.
+month.3 = march | mar | mar.
+month.4 = april | apr | apr.
+month.5 = may
+month.6 = june | jun | jun.
+month.7 = july | jul | jul.
+month.8 = august | aug | aug.
+month.9 = september | sep | sep. | sept.
+month.10 = october | oct | oct.
+month.11 = november | nov | nov.
+month.12 = december | dec | dec.
+
+# 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 = sunday | sundays
+from.weekday.1 = monday | mondays
+from.weekday.2 = tuesday | tuesdays
+from.weekday.3 = wednesday | wednesdays
+from.weekday.4 = thursday | thursdays
+from.weekday.5 = friday | fridays
+from.weekday.6 = saturday | saturdays
+
+# 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 = one | first
+number.2 = two | second
+number.3 = three | third
+number.4 = four | fourth
+number.5 = five | fifth
+number.6 = six | sixth
+number.7 = seven | seventh
+number.8 = eight | eighth
+number.9 = nine | ninth
+number.10 = ten | tenth
+number.11 = eleven | eleventh
+number.12 = twelve | twelfth
+number.13 = thirteen | thirteenth
+number.14 = fourteen | fourteenth
+number.15 = fifteen | fifteenth
+number.16 = sixteen | sixteenth
+number.17 = seventeen | seventeenth
+number.18 = eighteen | eighteenth
+number.19 = nineteen | nineteenth
+number.20 = twenty | twentieth
+number.21 = twenty one | twenty first
+number.22 = twenty two | twenty second
+number.23 = twenty three | twenty third
+number.24 = twenty four | twenty fourth
+number.25 = twenty five | twenty fifth
+number.26 = twenty six | twenty sixth
+number.27 = twenty seven | twenty seventh
+number.28 = twenty eight | twenty eighth
+number.29 = twenty nine | twenty ninth
+number.30 = thirty | thirtieth
+number.31 = thirty one | thirty first
+
+# LOCALIZATION NOTE (alphabet):
+# list all lower and uppercase letters if your language has an alphabet
+# otherwise leave it empty
+alphabet = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-invitations-dialog.dtd b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-invitations-dialog.dtd
new file mode 100644
index 0000000000..eb5b5e9f13
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-invitations-dialog.dtd
@@ -0,0 +1,13 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+
+<!-- Calendar Invitations Dialog -->
+<!ENTITY calendar.invitations.dialog.invitations.text "Invitations">
+<!ENTITY calendar.invitations.dialog.statusmessage.updating.text "Updating list of invitations.">
+<!ENTITY calendar.invitations.dialog.statusmessage.noinvitations.text "No unconfirmed invitations found.">
+
+<!-- Calendar Invitations List -->
+<!ENTITY calendar.invitations.list.accept.button.label "Accept">
+<!ENTITY calendar.invitations.list.decline.button.label "Decline">
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-invitations-dialog.properties b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-invitations-dialog.properties
new file mode 100644
index 0000000000..ff2b43899a
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/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=All day event
+recurrent-event=Repeating event
+location=Location: %S
+organizer=Organizer: %S
+attendee=Attendee: %S
+none=None
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-occurrence-prompt.dtd b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-occurrence-prompt.dtd
new file mode 100644
index 0000000000..5864a9335f
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/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/ast/chrome/ast/locale/ast/calendar/calendar-occurrence-prompt.properties b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar-occurrence-prompt.properties
new file mode 100644
index 0000000000..c3c9abae05
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/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=is a repeating event
+header.isrepeating.task.label=is a repeating task
+header.containsrepeating.event.label=contains repeating events
+header.containsrepeating.task.label=contains repeating tasks
+header.containsrepeating.mixed.label=contains repeating items of different type
+
+windowtitle.event.copy=Copy Repeating Event
+windowtitle.task.copy=Copy Repeating Task
+windowtitle.mixed.copy=Copy Repeating Items
+windowtitle.event.cut=Cut Repeating Event
+windowtitle.task.cut=Cut Repeating Task
+windowtitle.mixed.cut=Cut Repeating Items
+windowtitle.event.delete=Delete Repeating Event
+windowtitle.task.delete=Delete Repeating Task
+windowtitle.mixed.delete=Delete Repeating Items
+windowtitle.event.edit=Edit Repeating Event
+windowtitle.task.edit=Edit Repeating Task
+windowtitle.mixed.edit=Edit Repeating Items
+windowtitle.multipleitems=Selected items
+
+buttons.single.occurrence.copy.label=Copy only this occurrence
+buttons.single.occurrence.cut.label=Cut only this occurrence
+buttons.single.occurrence.delete.label=Delete only this occurrence
+buttons.single.occurrence.edit.label=Edit only this occurrence
+
+buttons.multiple.occurrence.copy.label=Copy only selected occurrences
+buttons.multiple.occurrence.cut.label=Cut only selected occurrences
+buttons.multiple.occurrence.delete.label=Delete only selected occurrences
+buttons.multiple.occurrence.edit.label=Edit only selected occurrences
+
+buttons.single.allfollowing.copy.label=Copy this and all future occurrences
+buttons.single.allfollowing.cut.label=Cut this and all future occurrences
+buttons.single.allfollowing.delete.label=Delete this and all future occurrences
+buttons.single.allfollowing.edit.label=Edit this and all future occurrences
+
+buttons.multiple.allfollowing.copy.label=Copy selected and all future occurrences
+buttons.multiple.allfollowing.cut.label=Cut selected and all future occurrences
+buttons.multiple.allfollowing.delete.label=Delete selected and all future occurrences
+buttons.multiple.allfollowing.edit.label=Edit selected and all future occurrences
+
+buttons.single.parent.copy.label=Copy all occurrences
+buttons.single.parent.cut.label=Cut all occurrences
+buttons.single.parent.delete.label=Delete all occurrences
+buttons.single.parent.edit.label=Edit all occurrences
+
+buttons.multiple.parent.copy.label=Copy all occurrences of selected items
+buttons.multiple.parent.cut.label=Cut all occurrences of selected items
+buttons.multiple.parent.delete.label=Delete all occurrences of selected items
+buttons.multiple.parent.edit.label=Edit all occurrences of selected items
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar.dtd b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar.dtd
new file mode 100644
index 0000000000..e8312f127e
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar.dtd
@@ -0,0 +1,354 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 "Calendar">
+<!ENTITY calendar.calendar.accesskey "C">
+
+<!ENTITY calendar.newevent.button.tooltip "Create a new event" >
+<!ENTITY calendar.newtask.button.tooltip "Create a new task" >
+
+<!ENTITY calendar.unifinder.showcompletedtodos.label "Show completed Tasks">
+
+<!ENTITY calendar.today.button.label "Today">
+<!ENTITY calendar.tomorrow.button.label "Tomorrow">
+
+<!ENTITY calendar.events.filter.all.label "All Events">
+<!ENTITY calendar.events.filter.today.label "Today's Events">
+<!ENTITY calendar.events.filter.future.label "All Future Events">
+<!ENTITY calendar.events.filter.current.label "Currently Selected Day">
+<!ENTITY calendar.events.filter.currentview.label "Events in Current View">
+<!ENTITY calendar.events.filter.next7Days.label "Events in the Next 7 Days">
+<!ENTITY calendar.events.filter.next14Days.label "Events in the Next 14 Days">
+<!ENTITY calendar.events.filter.next31Days.label "Events in the Next 31 Days">
+<!ENTITY calendar.events.filter.thisCalendarMonth.label "Events in this Calendar Month">
+
+<!-- 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 "Done">
+<!ENTITY calendar.unifinder.tree.done.tooltip2 "Sort by completion">
+<!ENTITY calendar.unifinder.tree.priority.label "Priority">
+<!ENTITY calendar.unifinder.tree.priority.tooltip2 "Sort by priority">
+<!ENTITY calendar.unifinder.tree.title.label "Title">
+<!ENTITY calendar.unifinder.tree.title.tooltip2 "Sort by title">
+<!ENTITY calendar.unifinder.tree.percentcomplete.label "&#37; Complete">
+<!ENTITY calendar.unifinder.tree.percentcomplete.tooltip2 "Sort by &#37; complete">
+<!ENTITY calendar.unifinder.tree.startdate.label "Start">
+<!ENTITY calendar.unifinder.tree.startdate.tooltip2 "Sort by start date">
+<!ENTITY calendar.unifinder.tree.enddate.label "End">
+<!ENTITY calendar.unifinder.tree.enddate.tooltip2 "Sort by end date">
+<!ENTITY calendar.unifinder.tree.duedate.label "Due">
+<!ENTITY calendar.unifinder.tree.duedate.tooltip2 "Sort by due date">
+<!ENTITY calendar.unifinder.tree.completeddate.label "Completed">
+<!ENTITY calendar.unifinder.tree.completeddate.tooltip2 "Sort by completed date">
+<!ENTITY calendar.unifinder.tree.categories.label "Category">
+<!ENTITY calendar.unifinder.tree.categories.tooltip2 "Sort by category">
+<!ENTITY calendar.unifinder.tree.location.label "Location">
+<!ENTITY calendar.unifinder.tree.location.tooltip2 "Sort by location">
+<!ENTITY calendar.unifinder.tree.status.label "Status">
+<!ENTITY calendar.unifinder.tree.status.tooltip2 "Sort by status">
+<!ENTITY calendar.unifinder.tree.calendarname.label "Calendar Name">
+<!ENTITY calendar.unifinder.tree.calendarname.tooltip2 "Sort by calendar name">
+<!ENTITY calendar.unifinder.tree.duration.label "Due in">
+<!ENTITY calendar.unifinder.tree.duration.tooltip2 "Sort by time until due">
+<!ENTITY calendar.unifinder.close.tooltip "Close event search and event list">
+
+<!ENTITY calendar.today.button.tooltip "Go to Today" >
+<!ENTITY calendar.todaypane.button.tooltip "Show Today Pane" >
+
+<!ENTITY calendar.newevent.button.label "New Event" >
+<!ENTITY calendar.newtask.button.label "New Task" >
+
+<!ENTITY calendar.onlyworkday.checkbox.label "Workweek days only" >
+<!ENTITY calendar.onlyworkday.checkbox.accesskey "r" >
+<!ENTITY calendar.displaytodos.checkbox.label "Tasks in View" >
+<!ENTITY calendar.displaytodos.checkbox.accesskey "k" >
+<!ENTITY calendar.completedtasks.checkbox.label "Show completed Tasks" >
+<!ENTITY calendar.completedtasks.checkbox.accesskey "c" >
+
+<!ENTITY calendar.orientation.label "Rotate View" >
+<!ENTITY calendar.orientation.accesskey "o" >
+
+<!ENTITY calendar.search.options.searchfor " contain">
+
+<!ENTITY calendar.list.header.label "Calendar">
+
+<!ENTITY calendar.task.filter.title.label "Show">
+<!ENTITY calendar.task.filter.all.label "All">
+<!ENTITY calendar.task.filter.all.accesskey "A">
+<!ENTITY calendar.task.filter.today.label "Today">
+<!ENTITY calendar.task.filter.today.accesskey "T">
+<!ENTITY calendar.task.filter.next7days.label "Next Seven Days">
+<!ENTITY calendar.task.filter.next7days.accesskey "N">
+<!ENTITY calendar.task.filter.notstarted.label "Not Started Tasks">
+<!ENTITY calendar.task.filter.notstarted.accesskey "a">
+<!ENTITY calendar.task.filter.overdue.label "Overdue Tasks">
+<!ENTITY calendar.task.filter.overdue.accesskey "O">
+<!ENTITY calendar.task.filter.completed.label "Completed Tasks">
+<!ENTITY calendar.task.filter.completed.accesskey "C">
+<!ENTITY calendar.task.filter.open.label "Incomplete Tasks">
+<!ENTITY calendar.task.filter.open.accesskey "m">
+
+<!-- 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 "Current Tasks">
+<!ENTITY calendar.task.filter.current.accesskey "u">
+
+<!ENTITY calendar.task-details.title.label "title">
+<!ENTITY calendar.task-details.organizer.label "from">
+<!ENTITY calendar.task-details.priority.label "priority">
+<!ENTITY calendar.task-details.priority.low.label "Low">
+<!ENTITY calendar.task-details.priority.normal.label "Normal">
+<!ENTITY calendar.task-details.priority.high.label "High">
+<!ENTITY calendar.task-details.status.label "status">
+<!ENTITY calendar.task-details.category.label "category">
+<!ENTITY calendar.task-details.repeat.label "repeat">
+<!ENTITY calendar.task-details.attachments.label "attachments">
+<!ENTITY calendar.task-details.start.label "start date">
+<!ENTITY calendar.task-details.due.label "due date">
+
+<!ENTITY calendar.task.category.button.tooltip "Categorize tasks">
+<!ENTITY calendar.task.complete.button.tooltip "Mark selected tasks completed">
+<!ENTITY calendar.task.priority.button.tooltip "Change the priority">
+
+<!ENTITY calendar.task.text-filter.textbox.emptytext.base1 "Filter tasks #1">
+<!ENTITY calendar.task.text-filter.textbox.emptytext.keylabel.nonmac "&lt;Ctrl+Shift+K&gt;">
+<!ENTITY calendar.task.text-filter.textbox.emptytext.keylabel.mac "&lt;&#x21E7;&#x2318;K&gt;">
+
+<!-- Context Menu -->
+<!ENTITY calendar.context.modifyorviewitem.label "Open">
+<!ENTITY calendar.context.modifyorviewitem.accesskey "O">
+<!ENTITY calendar.context.modifyorviewtask.label "Open Task…">
+<!ENTITY calendar.context.modifyorviewtask.accesskey "O">
+<!ENTITY calendar.context.newevent.label "New Event…">
+<!ENTITY calendar.context.newevent.accesskey "N">
+<!ENTITY calendar.context.newtodo.label "New Task…">
+<!ENTITY calendar.context.newtodo.accesskey "k">
+<!ENTITY calendar.context.deletetask.label "Delete Task">
+<!ENTITY calendar.context.deletetask.accesskey "l">
+<!ENTITY calendar.context.deleteevent.label "Delete Event">
+<!ENTITY calendar.context.deleteevent.accesskey "l">
+<!ENTITY calendar.context.cutevent.label "Cut">
+<!ENTITY calendar.context.cutevent.accesskey "t">
+<!ENTITY calendar.context.copyevent.label "Copy">
+<!ENTITY calendar.context.copyevent.accesskey "C">
+<!ENTITY calendar.context.pasteevent.label "Paste">
+<!ENTITY calendar.context.pasteevent.accesskey "P">
+<!ENTITY calendar.context.button.label "Today Pane">
+<!ENTITY calendar.context.button.accesskey "T">
+
+<!ENTITY calendar.context.attendance.menu.label "Attendance">
+<!ENTITY calendar.context.attendance.menu.accesskey "d">
+<!ENTITY calendar.context.attendance.occurrence.label "This Occurrence">
+<!ENTITY calendar.context.attendance.all2.label "Complete Series">
+<!ENTITY calendar.context.attendance.send.label "Send a notification now">
+<!ENTITY calendar.context.attendance.send.accesskey "S">
+<!ENTITY calendar.context.attendance.dontsend.label "Do not send a notification">
+<!ENTITY calendar.context.attendance.dontsend.accesskey "D">
+
+<!ENTITY calendar.context.attendance.occ.accepted.accesskey "A">
+<!ENTITY calendar.context.attendance.occ.accepted.label "Accepted">
+<!ENTITY calendar.context.attendance.occ.tentative.accesskey "y">
+<!ENTITY calendar.context.attendance.occ.tentative.label "Accepted tentatively">
+<!ENTITY calendar.context.attendance.occ.declined.accesskey "c">
+<!ENTITY calendar.context.attendance.occ.declined.label "Declined">
+<!ENTITY calendar.context.attendance.occ.delegated.accesskey "g">
+<!ENTITY calendar.context.attendance.occ.delegated.label "Delegated">
+<!ENTITY calendar.context.attendance.occ.needsaction.accesskey "S">
+<!ENTITY calendar.context.attendance.occ.needsaction.label "Still needs action">
+<!ENTITY calendar.context.attendance.occ.inprogress.accesskey "I">
+<!ENTITY calendar.context.attendance.occ.inprogress.label "In progress">
+<!ENTITY calendar.context.attendance.occ.completed.accesskey "C">
+<!ENTITY calendar.context.attendance.occ.completed.label "Completed">
+
+<!ENTITY calendar.context.attendance.all.accepted.accesskey "e">
+<!ENTITY calendar.context.attendance.all.accepted.label "Accepted">
+<!ENTITY calendar.context.attendance.all.tentative.accesskey "v">
+<!ENTITY calendar.context.attendance.all.tentative.label "Accepted tentatively">
+<!ENTITY calendar.context.attendance.all.declined.accesskey "d">
+<!ENTITY calendar.context.attendance.all.declined.label "Declined">
+<!ENTITY calendar.context.attendance.all.delegated.accesskey "l">
+<!ENTITY calendar.context.attendance.all.delegated.label "Delegated">
+<!ENTITY calendar.context.attendance.all.needsaction.accesskey "l">
+<!ENTITY calendar.context.attendance.all.needsaction.label "Still needs action">
+<!ENTITY calendar.context.attendance.all.inprogress.accesskey "p">
+<!ENTITY calendar.context.attendance.all.inprogress.label "In progress">
+<!ENTITY calendar.context.attendance.all.completed.accesskey "m">
+<!ENTITY calendar.context.attendance.all.completed.label "Completed">
+
+<!-- Task Context Menu -->
+<!ENTITY calendar.context.progress.label "Progress">
+<!ENTITY calendar.context.progress.accesskey "P">
+<!ENTITY calendar.context.priority.label "Priority">
+<!ENTITY calendar.context.priority.accesskey "r">
+<!ENTITY calendar.context.postpone.label "Postpone Task">
+<!ENTITY calendar.context.postpone.accesskey "s">
+
+<!ENTITY percnt "&#38;#37;" ><!--=percent sign-->
+
+<!ENTITY calendar.context.markcompleted.label "Mark Completed">
+<!ENTITY calendar.context.markcompleted.accesskey "o">
+
+<!ENTITY progress.level.0 "0&percnt; Completed">
+<!ENTITY progress.level.0.accesskey "0">
+<!ENTITY progress.level.25 "25&percnt; Completed">
+<!ENTITY progress.level.25.accesskey "2">
+<!ENTITY progress.level.50 "50&percnt; Completed">
+<!ENTITY progress.level.50.accesskey "5">
+<!ENTITY progress.level.75 "75&percnt; Completed">
+<!ENTITY progress.level.75.accesskey "7">
+<!ENTITY progress.level.100 "100&percnt; Completed">
+<!ENTITY progress.level.100.accesskey "1">
+
+<!ENTITY priority.level.none "Not specified">
+<!ENTITY priority.level.none.accesskey "s">
+<!ENTITY priority.level.low "Low">
+<!ENTITY priority.level.low.accesskey "L">
+<!ENTITY priority.level.normal "Normal">
+<!ENTITY priority.level.normal.accesskey "N">
+<!ENTITY priority.level.high "High">
+<!ENTITY priority.level.high.accesskey "H">
+
+<!ENTITY calendar.context.postpone.1hour.label "1 Hour">
+<!ENTITY calendar.context.postpone.1hour.accesskey "H">
+<!ENTITY calendar.context.postpone.1day.label "1 Day">
+<!ENTITY calendar.context.postpone.1day.accesskey "D">
+<!ENTITY calendar.context.postpone.1week.label "1 Week">
+<!ENTITY calendar.context.postpone.1week.accesskey "W">
+
+<!ENTITY calendar.copylink.label "Copy Link Location">
+<!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 "Delete">
+
+<!-- Server Context Menu -->
+<!ENTITY calendar.context.newserver.label "New Calendar…">
+<!ENTITY calendar.context.newserver.accesskey "N">
+<!ENTITY calendar.context.findcalendar.label "Find Calendar…" >
+<!ENTITY calendar.context.findcalendar.accesskey "F" >
+<!ENTITY calendar.context.deleteserver2.label "Delete Calendar…">
+<!ENTITY calendar.context.deleteserver2.accesskey "D">
+
+<!-- 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 "Remove Calendar…">
+<!ENTITY calendar.context.removeserver.accesskey "R">
+<!ENTITY calendar.context.unsubscribeserver.label "Unsubscribe Calendar…">
+<!ENTITY calendar.context.unsubscribeserver.accesskey "U">
+<!ENTITY calendar.context.publish.label "Publish Calendar…">
+<!ENTITY calendar.context.publish.accesskey "b">
+<!ENTITY calendar.context.export.label "Export Calendar…">
+<!ENTITY calendar.context.export.accesskey "E">
+<!ENTITY calendar.context.properties.label "Properties">
+<!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 "h">
+
+<!-- LOCALIZATION NOTE (calendar.context.hidecalendar.accesskey)
+ This is the access key used for the hideCalendar string -->
+<!ENTITY calendar.context.hidecalendar.accesskey "H">
+
+<!-- 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 "Show All Calendars">
+<!ENTITY calendar.context.showall.accesskey "A">
+
+<!ENTITY calendar.context.convertmenu.label "Convert To">
+<!ENTITY calendar.context.convertmenu.accesskey.mail "n">
+<!ENTITY calendar.context.convertmenu.accesskey.calendar "v">
+<!ENTITY calendar.context.convertmenu.event.label "Event…">
+<!ENTITY calendar.context.convertmenu.event.accesskey "E">
+<!ENTITY calendar.context.convertmenu.message.label "Message…">
+<!ENTITY calendar.context.convertmenu.message.accesskey "M">
+<!ENTITY calendar.context.convertmenu.task.label "Task…">
+<!ENTITY calendar.context.convertmenu.task.accesskey "T">
+
+<!ENTITY calendar.tasks.view.minimonth.label "Mini-Month">
+<!ENTITY calendar.tasks.view.minimonth.accesskey "M">
+
+<!ENTITY calendar.tasks.view.calendarlist.label "Calendar List">
+<!ENTITY calendar.tasks.view.calendarlist.accesskey "L">
+
+<!ENTITY calendar.tasks.view.filtertasks.label "Filter Tasks">
+<!ENTITY calendar.tasks.view.filtertasks.accesskey "F">
+
+<!-- Calendar Alarm Dialog -->
+
+<!ENTITY calendar.alarm.location.label "Location:" >
+<!ENTITY calendar.alarm.details.label "Details…" >
+
+<!ENTITY calendar.alarm.snoozefor.label "Snooze for" >
+<!ENTITY calendar.alarm.snoozeallfor.label "Snooze All for" >
+<!ENTITY calendar.alarm.title.label "Calendar Reminders" >
+<!ENTITY calendar.alarm.dismiss.label "Dismiss" >
+<!ENTITY calendar.alarm.dismissall.label "Dismiss All" >
+
+<!ENTITY calendar.alarm.snooze.5minutes.label "5 Minutes" >
+<!ENTITY calendar.alarm.snooze.10minutes.label "10 Minutes" >
+<!ENTITY calendar.alarm.snooze.15minutes.label "15 Minutes" >
+<!ENTITY calendar.alarm.snooze.30minutes.label "30 Minutes" >
+<!ENTITY calendar.alarm.snooze.45minutes.label "45 Minutes" >
+<!ENTITY calendar.alarm.snooze.1hour.label "1 Hour" >
+<!ENTITY calendar.alarm.snooze.2hours.label "2 Hours" >
+<!ENTITY calendar.alarm.snooze.1day.label "1 Day" >
+
+<!-- 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 Snooze">
+
+<!-- Calendar Server Dialog -->
+<!ENTITY calendar.server.dialog.title.edit "Edit Calendar">
+<!ENTITY calendar.server.dialog.name.label "Calendar Name:">
+
+<!-- Calendar Properties -->
+<!ENTITY calendarproperties.color.label "Color:">
+<!ENTITY calendarproperties.webdav.label "iCalendar (ICS)">
+<!ENTITY calendarproperties.caldav.label "CalDAV">
+<!ENTITY calendarproperties.format.label "Format:">
+<!ENTITY calendarproperties.location.label "Location:">
+<!ENTITY calendarproperties.refreshInterval.label "Refresh Calendar:">
+<!ENTITY calendarproperties.refreshInterval.manual.label "Manually">
+<!ENTITY calendarproperties.name.label "Name:">
+<!ENTITY calendarproperties.readonly.label "Read Only">
+<!ENTITY calendarproperties.firealarms.label "Show Reminders">
+<!ENTITY calendarproperties.cache3.label "Offline Support">
+<!ENTITY calendarproperties.enabled2.label "Enable This Calendar">
+<!ENTITY calendarproperties.forceDisabled.label "The provider for this calendar could not be found. This often happens if you have disabled or uninstalled certain addons.">
+<!ENTITY calendarproperties.unsubscribe.label "Unsubscribe">
+<!ENTITY calendarproperties.unsubscribe.accesskey "U">
+
+<!-- Calendar Publish Dialog -->
+<!ENTITY calendar.publish.dialog.title "Publish Calendar">
+<!ENTITY calendar.publish.url.label "Publishing URL">
+<!ENTITY calendar.publish.publish.button "Publish">
+<!ENTITY calendar.publish.close.button "Close">
+
+<!-- Select Calendar Dialog -->
+<!ENTITY calendar.select.dialog.title "Select Calendar">
+
+<!-- Error reporting -->
+<!ENTITY calendar.error.detail "Details…">
+<!ENTITY calendar.error.code "Error code:">
+<!ENTITY calendar.error.description "Description:">
+<!ENTITY calendar.error.title "An error has occurred">
+
+<!-- Extract buttons in message header -->
+<!ENTITY calendar.extract.event.button "Add as event">
+<!ENTITY calendar.extract.task.button "Add as task">
+<!ENTITY calendar.extract.event.button.tooltip "Extract calendaring information from the message and add it to your calendar as an event">
+<!ENTITY calendar.extract.task.button.tooltip "Extract calendaring information from the message and add it to your calendar as a task">
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar.properties b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar.properties
new file mode 100644
index 0000000000..5efab779fa
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendar.properties
@@ -0,0 +1,696 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Default name for new events
+newEvent=New Event
+
+# Titles for the event/task dialog
+newEventDialog=New Event
+editEventDialog=Edit Event
+newTaskDialog=New Task
+editTaskDialog=Edit Task
+
+# Do you want to save changes?
+askSaveTitleEvent=Save Event
+askSaveTitleTask=Save Task
+askSaveMessageEvent=Event has not been saved. Do you want to save the event?
+askSaveMessageTask=Task has not been saved. Do you want to save the task?
+
+# Event Dialog Warnings
+warningEndBeforeStart=The end date you entered occurs before the start date
+warningUntilDateBeforeStart=The until date occurs before the start date
+
+# The name of the calendar provided with the application by default
+homeCalendarName=Home
+
+# The name given to a calendar if an opened calendar has an empty filename
+untitledCalendarName=Untitled Calendar
+
+# Event status: Tentative, Confirmed, Cancelled
+# ToDo task status: NeedsAction, InProcess, Completed, Cancelled
+statusTentative =Tentative
+statusConfirmed =Confirmed
+eventStatusCancelled=Canceled
+todoStatusCancelled =Canceled
+statusNeedsAction =Needs Action
+statusInProcess =In Process
+statusCompleted =Completed
+
+# Task priority, these should match the priority.level.* labels in calendar.dtd
+highPriority=High
+normalPriority=Normal
+lowPriority=Low
+
+importPrompt=Which calendar do you want to import these items into?
+exportPrompt=Which calendar do you want to export from?
+pastePrompt=Which of your currently writable calendars do you want to paste into?
+publishPrompt=Which calendar do you want to publish?
+
+# LOCALIZATION NOTE (pasteEventAlso): The users pasting operation includes among
+# others also a meeting invitation - this is used as a affix in
+# pasteNotifyAbout
+pasteEventAlso=Your pasting includes a meeting
+# LOCALIZATION NOTE (pasteEventsAlso): The users pasting operation includes among
+# others also several meeting invitations - this is used as a affix in
+# pasteNotifyAbout
+pasteEventsAlso=Your pasting includes meetings
+# LOCALIZATION NOTE (pasteTaskAlso): The users pasting operation includes among
+# others also an assigned task - this is used as a affix in pasteNotifyAbout
+pasteTaskAlso=Your pasting includes an assigned task
+# LOCALIZATION NOTE (pasteTasksAlso): The users pasting operation include among
+# others also several assigned tasks - this is used as a affix in
+# pasteNotifyAbout
+pasteTasksAlso=Your pasting includes assigned tasks
+# 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=Your pasting includes meetings and assigned tasks
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting a meeting -
+# this is used as a affix in pasteNotifyAbout
+pasteEventOnly=You are pasting a meeting
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several meetings -
+# this is used as a affix in pasteNotifyAbout
+pasteEventsOnly=You are pasting meetings
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting an assigned task -
+# this is used as a affix in pasteNotifyAbout
+pasteTaskOnly=You are pasting an assigned task
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several assigned
+# tasks - this is used as a affix in pasteNotifyAbout
+pasteTasksOnly=You are pasting assigned tasks
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting assigned task(s) and
+# meeting(s) - this is used as a affix in pasteNotifyAbout
+pasteItemsOnly=You are pasting meetings and assigned tasks
+
+# LOCALIZATION NOTE (pasteNotifyAbout): Text displayed if pasting an invitation
+# or assigned task
+# %1$S - pasteEvent* or pasteTask*
+pasteNotifyAbout=%1$S - do you want to send an update to everybody involved?
+
+# LOCALIZATION NOTE (pasteAndNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteAndNotifyLabel=Paste and send now
+# LOCALIZATION NOTE (pasteDontNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteDontNotifyLabel=Paste without sending
+
+# 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=%1$S items failed to import. The last error was: %2$S
+# LOCALIZATION NOTE (noItemsInCalendarFile2):
+# %1$S will be replaced with file path
+noItemsInCalendarFile2=Cannot import from %1$S. There are no importable items in this file.
+
+#spaces needed at the end of the following lines
+eventDescription=Description:
+
+unableToRead=Unable to read from file:
+unableToWrite=Unable to write to file:
+defaultFileName=MozillaCalEvents
+HTMLTitle=Mozilla Calendar
+
+# 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=An unknown and undefined timezone was found while reading %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=%1$S item(s) were ignored since they exist in both the destination calendar and %2$S.
+
+unableToCreateProvider=An error was encountered preparing the calendar located at %1$S for use. It will not be available.
+
+# Sample: Unknown timezone "USPacific" in "Dentist Appt". Using the 'floating' local timezone instead: 2008/02/28 14:00:00
+unknownTimezoneInItem=Unknown timezone "%1$S" in "%2$S". Treated as 'floating' local timezone instead: %3$S
+TimezoneErrorsAlertTitle=Timezone Errors
+TimezoneErrorsSeeConsole=See Error Console: Unknown timezones are treated as the 'floating' local timezone.
+
+# The following strings are for the prompt to delete/unsubscribe from the calendar
+removeCalendarTitle=Remove Calendar
+removeCalendarButtonDelete=Delete Calendar
+removeCalendarButtonUnsubscribe=Unsubscribe
+
+# LOCALIZATION NOTE (removeCalendarMessageDeleteOrUnsubscribe): Shown for
+# calendar where both deleting and unsubscribing is possible.
+# %1$S: The name of a calendar
+removeCalendarMessageDeleteOrUnsubscribe=Do you want to remove the calendar "%1$S"? Unsubscribing will remove the calendar from the list, deleting will also permanently purge its data.
+
+# LOCALIZATION NOTE (removeCalendarMessageDelete): Shown for calendar where
+# deleting is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageDelete=Do you want to permanently delete the calendar "%1$S"?
+
+# LOCALIZATION NOTE (removeCalendarMessageUnsubscribe): Shown for calendar
+# where unsubscribing is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageUnsubscribe=Do you want to unsubscribe from the calendar "%1$S"?
+
+WeekTitle=Week %1$S
+None=None
+
+# 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=Your calendar data is not compatible with this version of %1$S. The calendar data in your profile was updated by a newer version of %1$S. A backup of the data file has been created, named "%2$S". Continuing with a newly created data file.
+
+# List of events or todos (unifinder)
+eventUntitled=Untitled
+
+# Tooltips of events or todos
+tooltipTitle=Title:
+tooltipLocation=Location:
+# 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=Date:
+# event calendar name
+tooltipCalName=Calendar Name:
+# event status: tentative, confirmed, cancelled
+tooltipStatus=Status:
+# event organizer
+tooltipOrganizer=Organizer:
+# task/todo fields
+# start date time, due date time, task priority number, completed date time
+tooltipStart=Start:
+tooltipDue=Due:
+tooltipPriority=Priority:
+tooltipPercent=% Complete:
+tooltipCompleted=Completed:
+
+#File commands and dialogs
+New=New
+Open=Open
+filepickerTitleImport=Import
+filepickerTitleExport=Export
+
+# Filters for export/import/open file picker. %1$S will be replaced with
+# wildmat used to filter files by extension, such as (*.html; *.htm).
+filterIcs=iCalendar (%1$S)
+filterHtml=Web Page (%1$S)
+
+# Remote calendar errors
+genericErrorTitle=An error has occurred
+httpPutError=Publishing the calendar file failed.\nStatus code: %1$S: %2$S
+otherPutError=Publishing the calendar file failed.\nStatus code: 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=There has been an error reading data for calendar: %1$S. It has been placed in read-only mode, since changes to this calendar will likely result in data-loss. You may change this setting by choosing 'Edit Calendar'.
+
+# 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=There has been an error reading data for calendar: %1$S. It has been disabled until it is safe to use it.
+
+# 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=There has been an error reading data for calendar: %1$S. However, this error is believed to be minor, so the program will attempt to continue.
+
+# 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=There has been an error reading data for calendar: %1$S.
+utf8DecodeError=An error occurred while decoding an iCalendar (ics) file as UTF-8. Check that the file, including symbols and accented letters, is encoded using the UTF-8 character encoding.
+icsMalformedError=Parsing an iCalendar (ics) file failed. Check that the file conforms to iCalendar (ics) file syntax.
+itemModifiedOnServerTitle=Item changed on server
+itemModifiedOnServer=This item has recently been changed on the server.\n
+modifyWillLoseData=Submitting your changes will overwrite the changes made on the server.
+deleteWillLoseData=Deleting this item will cause loss of the changes made on the server.
+updateFromServer=Discard my changes and reload
+proceedModify=Submit my changes anyway
+proceedDelete=Delete anyway
+dav_notDav=The resource at %1$S is either not a DAV collection or not available
+dav_davNotCaldav=The resource at %1$S is a DAV collection but not a CalDAV calendar
+itemPutError=There was an error storing the item on the server.
+itemDeleteError=There was an error deleting the item from the server.
+caldavRequestError=An error occurred when sending the invitation.
+caldavResponseError=An error occurred when sending the response.
+caldavRequestStatusCode=Status Code: %1$S
+caldavRequestStatusCodeStringGeneric=The request cannot be processed.
+caldavRequestStatusCodeString400=The request contains bad syntax and cannot be processed.
+caldavRequestStatusCodeString403=The user lacks the required permission to perform the request.
+caldavRequestStatusCodeString404=Resource not found.
+caldavRequestStatusCodeString409=Resource conflict.
+caldavRequestStatusCodeString412=Precondition failed.
+caldavRequestStatusCodeString500=Internal server error.
+caldavRequestStatusCodeString502=Bad gateway (Proxy configuration?).
+caldavRequestStatusCodeString503=Internal server error (Temporary server outage?).
+caldavRedirectTitle=Update location for calendar %1$S?
+caldavRedirectText=The requests for %1$S are being redirected to a new location. Would you like to change the location to the following value?
+caldavRedirectDisableCalendar=Disable Calendar
+
+
+# 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=America/New_York, America/Chicago, America/Denver, America/Phoenix, America/Los_Angeles, America/Anchorage, America/Adak, Pacific/Honolulu, America/Puerto_Rico, America/Halifax, America/Mexico_City, America/Argentina/Buenos_Aires, America/Sao_Paulo, Europe/London, Europe/Paris, Asia/Singapore, Asia/Tokyo, Africa/Lagos, Africa/Johannesburg, Africa/Nairobi, Australia/Brisbane, Australia/Sydney, Pacific/Auckland
+
+# 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=Warning: Operating system timezone "%1$S"\nno longer matches the internal ZoneInfo timezone "%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=Skipping Operating System timezone '%1$S'.
+
+# "Skipping locale timezone 'America/New_Yawk'."
+# Testing note: Skipping occurs if a likelyTimezone id is unknown or misspelled.
+SkippingLocaleTimezone=Skipping locale timezone '%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=Warning: Using "floating" timezone.\nNo ZoneInfo timezone data matched the operating system timezone data.
+
+# "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=Warning: Using guessed timezone\n %1$S (UTC%2$S).\n%3$S\n%4$S
+
+# Testing note: "Almost match" timezones include Cairo on W2k.
+TZAlmostMatchesOSDifferAtMostAWeek=This ZoneInfo timezone almost matches the operating system timezone.\nFor this rule, the next transitions between daylight and standard time\ndiffer at most a week from the operating system timezone transitions.\nThere may be discrepancies in the data, such as differing start date,\nor differing rule, or approximation for non-Gregorian-calendar rule.
+
+TZSeemsToMatchOS=This ZoneInfo timezone seems to match the operating system timezone this year.
+
+# LOCALIZATION NOTE (TZFromOS):
+# used for a display of a chosen timezone
+# %1$S will be replaced with the name of a timezone
+TZFromOS=This ZoneInfo timezone was chosen based on the operating system timezone\nidentifier "%1$S".
+
+# Localization note (TZFromLocale): Substitute name of your locale language.
+TZFromLocale=This ZoneInfo timezone was chosen based on matching the operating system\ntimezone with likely timezones for internet users using US English.
+
+TZFromKnownTimezones=This ZoneInfo timezone was chosen based on matching the operating system\ntimezone with known timezones in alphabetical order of timezone id.
+
+# Print Layout
+tasksWithNoDueDate = Tasks with no due date
+
+# Providers
+caldavName=CalDAV
+compositeName=Composite
+icsName=iCalendar (ICS)
+memoryName=Temporary (memory)
+storageName=Local (SQLite)
+
+# Used in created html code for export
+htmlPrefixTitle=Title
+htmlPrefixWhen=When
+htmlPrefixLocation=Location
+htmlPrefixDescription=Description
+htmlTaskCompleted=%1$S (completed)
+
+# Categories
+addCategory=Add Category
+multipleCategories=Multiple Categories
+
+today=Today
+tomorrow=Tomorrow
+yesterday=Yesterday
+
+#Today pane
+eventsonly=Events
+eventsandtasks=Events and Tasks
+tasksonly=Tasks
+shortcalendarweek=CW
+
+go=Go
+
+# 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=next
+next2=next
+last1=last
+last2=last
+
+# Alarm Dialog
+# LOCALIZATION NOTE (alarmWindowTitle.label): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+alarmWindowTitle.label=#1 Reminder;#1 Reminders
+
+# 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=Starts: %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=Today at %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=Tomorrow at %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=Yesterday at %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=Default Mozilla Description
+alarmDefaultSummary=Default Mozilla Summary
+
+# LOCALIZATION NOTE (alarmSnoozeLimitExceeded): Semi-colon list of plural
+# forms.
+alarmSnoozeLimitExceeded=You cannot snooze an alarm for more than #1 month.;You cannot snooze an alarm for more than #1 months.
+
+taskDetailsStatusNeedsAction=Needs Action
+
+# 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%% Complete
+taskDetailsStatusCompleted=Completed
+
+# 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=Completed on %1$S
+taskDetailsStatusCancelled=Canceled
+
+gettingCalendarInfoCommon=Checking Calendars…
+
+# 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=Checking Calendar %1$S of %2$S
+
+# LOCALIZATION NOTE (errorCode):
+# %1$S will be replaced with the number of an error code
+errorCode=Error code: %1$S
+
+# LOCALIZATION NOTE (errorDescription):
+# %1$S will be replaced with the description of an error
+errorDescription=Description: %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=An error occurred when writing to the calendar %1$S! Please see below for more information.
+
+# LOCALIZATION NOTE (errorWritingDetails):
+# This will be displayed in the detail section of the error dialog
+errorWritingDetails=If you're seeing this message after snoozing or dismissing a reminder and this is for a calendar you do not want to add or edit events for, you can mark this calendar as read-only to avoid such experience in future. To do so, get to the calendar properties by right-clicking on this calendar in the list in the calendar or task view.
+
+# 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=The calendar %1$S is momentarily not available
+
+# 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=The calendar %1$S is readonly
+
+taskEditInstructions=Click here to add a new task
+taskEditInstructionsReadonly=Please select a writable calendar
+taskEditInstructionsCapability=Please select a calendar that supports tasks
+
+eventDetailsStartDate=Start:
+eventDetailsEndDate=End:
+
+# 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=Calendar Week: %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=Calendar Weeks %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=CW: %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=CWs: %1$S-%2$S
+
+# LOCALIZATION NOTE (multiweekViewWeek):
+# Used for displaying the week number in the first day box of every week
+# in multiweek and month views.
+# It allows to localize the label with the week number in case your locale
+# requires it.
+# Take into account that this label is placed in the same room of the day label
+# inside the day boxes, exactly on left side, hence a possible string shouldn't
+# be too long otherwise it will create confusion between the week number and
+# the day number other than a possible crop when the window is resized.
+#
+# %1$S is a number from 1 to 53 that represents the week number.
+multiweekViewWeek=W %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 day;#1 days
+dueInHours=#1 hour;#1 hours
+dueInLessThanOneHour=< 1 hour
+
+# LOCALIZATION NOTE (monthInYear):
+# used for display of Month-dates like 'December 2008'
+# %1$S will be replaced with name of the month
+# %2$S will be replaced with the year
+monthInYear=%1$S %2$S
+
+# LOCALIZATION NOTE (monthInYear.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+monthInYear.monthFormat=nominative
+
+# LOCALIZATION NOTE (formatDateLong):
+# used for display dates in long format like 'Mon 15 Oct 2008' when it's
+# impossible to retrieve the formatatted date from the OS.
+# %1$S will be replaced with name of the day in short format;
+# %2$S will be replaced with the day-index of the month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties);
+# %3$S will be replaced with the name of the month in short format;
+# %4$S will be replaced with the year.
+formatDateLong=%1$S %2$S %3$S %4$S
+
+# LOCALIZATION NOTE (dayHeaderLabel):
+# used for display the labels in the header of the days in day/week views in short
+# or long format. For example: 'Monday 6 Oct.' or 'Mon. 6 Oct.'
+# %1$S will be replaced with name of the day in short or long format
+# %2$S will be replaced with the day-index of the month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties), plus the name
+# of the month in short format (the day/month order depends on the OS settings).
+dayHeaderLabel=%1$S %2$S
+
+# LOCALIZATION NOTE (daysIntervalInMonth):
+# used for display of intervals in the form of 'March 3 - 9, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %4$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalInMonth=%1$S %2$S – %3$S, %4$S
+
+# LOCALIZATION NOTE (daysIntervalInMonth.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalInMonth.monthFormat=nominative
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths):
+# used for display of intervals in the form 'September 29 - October 5, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with name of the month of the end date
+# %4$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %5$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenMonths=%1$S %2$S – %3$S %4$S, %5$S
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalBetweenMonths.monthFormat=nominative
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears):
+# used for display of intervals in the form 'December 29, 2008 - January 4, 2009'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the year of the start date
+# %4$S will be replaced with name of the month of the end date
+# %5$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %6$S will be replaced with the year of the end date
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenYears=%1$S %2$S, %3$S – %4$S %5$S, %6$S
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalBetweenYears.monthFormat=nominative
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDateTime):
+# used for intervals where end is equals to start
+# displayed form is '5 Jan 2006 13:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+datetimeIntervalOnSameDateTime=%1$S %2$S
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDay):
+# used for intervals where end is on the same day as start, so we can leave out the
+# end date but still include end time
+# displayed form is '5 Jan 2006 13:00 - 17:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the time of the end date
+datetimeIntervalOnSameDay=%1$S %2$S – %3$S
+
+# LOCALIZATION NOTE (datetimeIntervalOnSeveralDays):
+# used for intervals spanning multiple days by including date and time
+# displayed form is '5 Jan 2006 13:00 - 7 Jan 2006 9:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the date of the end date
+# %4$S will be replaced with the time of the end date
+datetimeIntervalOnSeveralDays=%1$S %2$S – %3$S %4$S
+
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDate):
+# used for task without start and due date
+# (showed only in exported calendar in Html format)
+datetimeIntervalTaskWithoutDate= no start or due date
+# 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=start date %1$S %2$S
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutStartDate):
+# used for intervals in task with only due date
+# displayed form is 'due date 5 Jan 2006 13:00'
+# (showed only in exported calendar in Html format)
+# %1$S will be replaced with the date of the due date
+# %2$S will be replaced with the time of the due date
+datetimeIntervalTaskWithoutStartDate=due date %1$S %2$S
+
+# LOCALIZATION NOTE (dragLabelTasksWithOnlyEntryDate
+# dragLabelTasksWithOnlyDueDate)
+# Labels that appear while dragging a task with only
+# entry date OR due date
+dragLabelTasksWithOnlyEntryDate=Starting time
+dragLabelTasksWithOnlyDueDate=Due at
+
+deleteTaskLabel=Delete Task
+deleteTaskAccesskey=l
+deleteItemLabel=Delete
+deleteItemAccesskey=l
+deleteEventLabel=Delete Event
+deleteEventAccesskey=l
+
+calendarPropertiesEveryMinute=Every minute;Every #1 minutes
+
+# LOCALIZATION NOTE (extractUsing)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+extractUsing=Using %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=Using %1$S (%2$S)
+
+# LOCALIZATION NOTE (unit)
+# Used to determine the correct plural form of a unit
+unitMinutes=#1 minute;#1 minutes
+unitHours=#1 hour;#1 hours
+unitDays=#1 day;#1 days
+unitWeeks=#1 week;#1 weeks
+
+# 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=Show %1$S
+hideCalendar=Hide %1$S
+# uses the access key calendar.context.showonly.accesskey
+showOnlyCalendar=Show Only %1$S
+
+# LOCALIZATION NOTE (modifyConflict)
+# Used by the event dialog to resolve item modification conflicts.
+modifyConflictPromptTitle=Item Modification Conflict
+modifyConflictPromptMessage=The item being edited in the dialog has been modified since it was opened.
+modifyConflictPromptButton1=Overwrite the other changes
+modifyConflictPromptButton2=Discard these changes
+
+# Accessible description of a grid calendar with no selected date
+minimonthNoSelectedDate=No date selected
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendarCreation.dtd b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendarCreation.dtd
new file mode 100644
index 0000000000..d3b643f80e
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/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 "Create New Calendar" >
+<!ENTITY wizard.label "Create a new calendar" >
+<!ENTITY wizard.description "Locate your calendar" >
+
+<!ENTITY initialpage.description "Your calendar can be stored on your computer or be stored on a server in order to access it remotely or share it with your friends or co-workers." >
+<!ENTITY initialpage.computer.label "On My Computer">
+<!ENTITY initialpage.network.label "On the Network">
+
+<!ENTITY locationpage.description "Provide info about what is needed to access your remote calendar" >
+<!ENTITY locationpage.login.description "Optional: enter an username and password" >
+<!ENTITY locationpage.username.label "Username:" >
+<!ENTITY locationpage.password.label "Password:" >
+
+<!ENTITY custompage.shortdescription "Customize your calendar" >
+<!ENTITY custompage.longdescription "You can give your calendar a nickname and colorize the events from this calendar." >
+
+<!ENTITY finishpage.shortdescription "Calendar Created" >
+<!ENTITY finishpage.longdescription "Your calendar has been created." >
+
+<!-- Below are new strings for the revised new calendar dialog. The above strings should be
+ removed/renamed later on -->
+
+<!ENTITY sourcetabs.other.label "Other">
+
+<!ENTITY buttons.create.label "Create Calendar">
+<!ENTITY buttons.create.accesskey "r">
+
+<!ENTITY buttons.find.label "Find Calendars">
+<!ENTITY buttons.find.accesskey "F">
+
+<!ENTITY buttons.back.label "Back">
+<!ENTITY buttons.back.accesskey "B">
+
+<!ENTITY buttons.subscribe.label "Subscribe">
+<!ENTITY buttons.subscribe.accesskey "S">
+
+<!ENTITY calendartype.label "Calendar Type:">
+<!ENTITY location.label "Location:">
+<!ENTITY location.placeholder "URL or host name of the calendar server">
+
+<!ENTITY network.nocredentials.label "This location doesn't require credentials">
+<!ENTITY network.loading.description "Please wait while your calendars are being discovered.">
+<!ENTITY network.notfound.description "Could not find calendars at this location. Please check your settings.">
+<!ENTITY network.authfail.description "The credentials you have entered were not accepted. Please check your settings.">
+
+<!ENTITY network.subscribe.single.description "Please select the calendars you would like to subscribe to.">
+<!ENTITY network.subscribe.multiple.description "Multiple calendar types are available for this location. Please select the calendar type, then mark the calendars you would like to subscribe to.">
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendarCreation.properties b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/calendarCreation.properties
new file mode 100644
index 0000000000..30bf726cb8
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/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=Please enter a valid location.
+error.alreadyExists=You are already subscribed to the calendar at this location.
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/categories.properties b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/categories.properties
new file mode 100644
index 0000000000..8ad02f13a2
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/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=Anniversary,Birthday,Business,Calls,Clients,Competition,Customer,Favorites,Follow up,Gifts,Holidays,Ideas,Issues,Meeting,Miscellaneous,Personal,Projects,Public Holiday,Status,Suppliers,Travel,Vacation
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/dateFormat.properties b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/dateFormat.properties
new file mode 100644
index 0000000000..7569165ebd
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/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=January
+month.2.name=February
+month.3.name=March
+month.4.name=April
+month.5.name=May
+month.6.name=June
+month.7.name=July
+month.8.name=August
+month.9.name=September
+month.10.name=October
+month.11.name=November
+month.12.name=December
+
+# 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=January
+month.2.genitive=February
+month.3.genitive=March
+month.4.genitive=April
+month.5.genitive=May
+month.6.genitive=June
+month.7.genitive=July
+month.8.genitive=August
+month.9.genitive=September
+month.10.genitive=October
+month.11.genitive=November
+month.12.genitive=December
+
+month.1.Mmm=Jan
+month.2.Mmm=Feb
+month.3.Mmm=Mar
+month.4.Mmm=Apr
+month.5.Mmm=May
+month.6.Mmm=Jun
+month.7.Mmm=Jul
+month.8.Mmm=Aug
+month.9.Mmm=Sep
+month.10.Mmm=Oct
+month.11.Mmm=Nov
+month.12.Mmm=Dec
+
+day.1.name=Sunday
+day.2.name=Monday
+day.3.name=Tuesday
+day.4.name=Wednesday
+day.5.name=Thursday
+day.6.name=Friday
+day.7.name=Saturday
+
+day.1.Mmm=Sun
+day.2.Mmm=Mon
+day.3.Mmm=Tue
+day.4.Mmm=Wed
+day.5.Mmm=Thu
+day.6.Mmm=Fri
+day.7.Mmm=Sat
+
+# Can someone tell me why we're not counting from zero?
+day.1.short=Su
+day.2.short=Mo
+day.3.short=Tu
+day.4.short=We
+day.5.short=Th
+day.6.short=Fr
+day.7.short=Sa
+
+# 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=Noon
+midnight=Midnight
+
+AllDay=All Day
+Repeating=(Repeating)
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/dialogs/calendar-event-dialog-reminder.dtd b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/dialogs/calendar-event-dialog-reminder.dtd
new file mode 100644
index 0000000000..ec4b3ca6a2
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/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 "Set up Reminders">
+<!ENTITY reminder.add.label "Add">
+<!ENTITY reminder.add.accesskey "A">
+<!ENTITY reminder.remove.label "Remove">
+<!ENTITY reminder.remove.accesskey "R">
+
+<!ENTITY reminder.reminderDetails.label "Reminder Details">
+<!ENTITY reminder.action.label "Choose a Reminder Action">
+
+<!ENTITY reminder.action.alert.label "Show an Alert">
+<!ENTITY reminder.action.email.label "Send an Email">
+
+<!ENTITY alarm.units.minutes "minutes" >
+<!ENTITY alarm.units.hours "hours" >
+<!ENTITY alarm.units.days "days" >
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/global.dtd b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/global.dtd
new file mode 100644
index 0000000000..8a7c7949e5
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/global.dtd
@@ -0,0 +1,21 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY month.1.name "January" >
+<!ENTITY month.2.name "February" >
+<!ENTITY month.3.name "March" >
+<!ENTITY month.4.name "April" >
+<!ENTITY month.5.name "May" >
+<!ENTITY month.6.name "June" >
+<!ENTITY month.7.name "July" >
+<!ENTITY month.8.name "August" >
+<!ENTITY month.9.name "September" >
+<!ENTITY month.10.name "October" >
+<!ENTITY month.11.name "November" >
+<!ENTITY month.12.name "December" >
+
+<!ENTITY showToday.tooltip "Go to Today">
+<!ENTITY onedayforward.tooltip "One Day Forward">
+<!ENTITY onedaybackward.tooltip "One Day Backward">
+<!ENTITY showselectedday.tooltip "Show events for selected day">
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/menuOverlay.dtd b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/menuOverlay.dtd
new file mode 100644
index 0000000000..aa6b1c7529
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/menuOverlay.dtd
@@ -0,0 +1,46 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Event Menu -->
+<!ENTITY event.new.event "New Event…">
+<!ENTITY event.new.event.accesskey "N">
+
+<!ENTITY event.new.task "New Task…">
+<!ENTITY event.new.task.accesskey "k">
+
+<!ENTITY calendar.import.label "Import…">
+<!ENTITY calendar.import.accesskey "I">
+
+<!ENTITY calendar.export.label "Export…">
+<!ENTITY calendar.export.accesskey "E">
+
+<!ENTITY calendar.publish.label "Publish…">
+<!ENTITY calendar.publish.accesskey "b">
+
+<!ENTITY calendar.deletecalendar.label "Delete Selected Calendar…">
+<!ENTITY calendar.deletecalendar.accesskey "D">
+<!ENTITY calendar.unsubscribecalendar.label "Unsubscribe Selected Calendar…">
+<!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 "Remove Selected Calendar…">
+<!ENTITY calendar.removecalendar.accesskey "R">
+
+<!ENTITY showUnifinderCmd.label "Find Events">
+<!ENTITY showUnifinderCmd.accesskey "F">
+<!ENTITY showUnifinderCmd.tooltip "Toggle the find events pane">
+
+<!ENTITY calendar.displaytodos.checkbox.label "Show Tasks in Calendar">
+<!ENTITY calendar.displaytodos.checkbox.accesskey "T">
+
+<!ENTITY goTodayCmd.label "Today">
+<!ENTITY goTodayCmd.accesskey "T">
+
+<!ENTITY showCurrentView.label "Current View">
+<!ENTITY showCurrentView.accesskey "V">
+
+<!ENTITY calendar.properties.label "Calendar Properties…">
+<!ENTITY calendar.properties.accesskey "a">
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/migration.dtd b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/migration.dtd
new file mode 100644
index 0000000000..78440db5ee
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/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;: Data Import">
+<!ENTITY migration.welcome "Welcome">
+<!ENTITY migration.importing "Importing">
+<!ENTITY migration.list.description "&brandShortName; can import calendar data from many popular applications. Data from the following applications were found on your computer. Please select which of these you would like to import data from.">
+<!ENTITY migration.progress.description "Importing selected data">
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/migration.properties b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/migration.properties
new file mode 100644
index 0000000000..c8ae25fc1b
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/migration.properties
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+migratingApp = Migrating %1$S…
+
+# The next two lines are duplicated from migration.dtd until there is branding
+# for lightning
+migrationTitle = %1$S: Data Import
+migrationDescription=%1$S can import calendar data from many popular applications. Data from the following applications were found on your computer. Please select which of these you would like to import data from.
+finished = Complete
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/provider-uninstall.dtd b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/provider-uninstall.dtd
new file mode 100644
index 0000000000..83186d835d
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/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 "Uninstall a Provider">
+<!ENTITY providerUninstall.accept.label "Unsubscribe Selected">
+<!ENTITY providerUninstall.accept.accesskey "U">
+<!ENTITY providerUninstall.cancel.label "Keep Addon">
+<!ENTITY providerUninstall.cancel.accesskey "K">
+<!ENTITY providerUninstall.preName.label "You have requested to uninstall or disable:">
+<!ENTITY providerUninstall.postName.label "This will cause the calendars below to be disabled.">
+<!ENTITY providerUninstall.reinstallNote.label "Unless you are planning to reinstall this provider, you may choose to unsubscribe from this provider's calendars.">
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/timezones.properties b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/timezones.properties
new file mode 100644
index 0000000000..5bc9215fe6
--- /dev/null
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/calendar/timezones.properties
@@ -0,0 +1,490 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=Local Time
+pref.timezone.UTC=UTC/GMT
+
+# 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=Africa/Abidjan
+pref.timezone.Africa.Accra=Africa/Accra
+pref.timezone.Africa.Addis_Ababa=Africa/Addis Ababa
+pref.timezone.Africa.Algiers=Africa/Algiers
+pref.timezone.Africa.Asmara=Africa/Asmara
+pref.timezone.Africa.Bamako=Africa/Bamako
+pref.timezone.Africa.Bangui=Africa/Bangui
+pref.timezone.Africa.Banjul=Africa/Banjul
+pref.timezone.Africa.Bissau=Africa/Bissau
+pref.timezone.Africa.Blantyre=Africa/Blantyre
+pref.timezone.Africa.Brazzaville=Africa/Brazzaville
+pref.timezone.Africa.Bujumbura=Africa/Bujumbura
+pref.timezone.Africa.Cairo=Africa/Cairo
+pref.timezone.Africa.Casablanca=Africa/Casablanca
+pref.timezone.Africa.Ceuta=Africa/Ceuta
+pref.timezone.Africa.Conakry=Africa/Conakry
+pref.timezone.Africa.Dakar=Africa/Dakar
+pref.timezone.Africa.Dar_es_Salaam=Africa/Dar es Salaam
+pref.timezone.Africa.Djibouti=Africa/Djibouti
+pref.timezone.Africa.Douala=Africa/Douala
+pref.timezone.Africa.El_Aaiun=Africa/El Aaiun
+pref.timezone.Africa.Freetown=Africa/Freetown
+pref.timezone.Africa.Gaborone=Africa/Gaborone
+pref.timezone.Africa.Harare=Africa/Harare
+pref.timezone.Africa.Johannesburg=Africa/Johannesburg
+pref.timezone.Africa.Kampala=Africa/Kampala
+pref.timezone.Africa.Khartoum=Africa/Khartoum
+pref.timezone.Africa.Kigali=Africa/Kigali
+pref.timezone.Africa.Kinshasa=Africa/Kinshasa
+pref.timezone.Africa.Lagos=Africa/Lagos
+pref.timezone.Africa.Libreville=Africa/Libreville
+pref.timezone.Africa.Lome=Africa/Lome
+pref.timezone.Africa.Luanda=Africa/Luanda
+pref.timezone.Africa.Lubumbashi=Africa/Lubumbashi
+pref.timezone.Africa.Lusaka=Africa/Lusaka
+pref.timezone.Africa.Malabo=Africa/Malabo
+pref.timezone.Africa.Maputo=Africa/Maputo
+pref.timezone.Africa.Maseru=Africa/Maseru
+pref.timezone.Africa.Mbabane=Africa/Mbabane
+pref.timezone.Africa.Mogadishu=Africa/Mogadishu
+pref.timezone.Africa.Monrovia=Africa/Monrovia
+pref.timezone.Africa.Nairobi=Africa/Nairobi
+pref.timezone.Africa.Ndjamena=Africa/Ndjamena
+pref.timezone.Africa.Niamey=Africa/Niamey
+pref.timezone.Africa.Nouakchott=Africa/Nouakchott
+pref.timezone.Africa.Ouagadougou=Africa/Ouagadougou
+pref.timezone.Africa.Porto-Novo=Africa/Porto-Novo
+pref.timezone.Africa.Sao_Tome=Africa/Sao Tome
+pref.timezone.Africa.Tripoli=Africa/Tripoli
+pref.timezone.Africa.Tunis=Africa/Tunis
+pref.timezone.Africa.Windhoek=Africa/Windhoek
+pref.timezone.America.Adak=America/Adak
+pref.timezone.America.Anchorage=America/Anchorage
+pref.timezone.America.Anguilla=America/Anguilla
+pref.timezone.America.Antigua=America/Antigua
+pref.timezone.America.Araguaina=America/Araguaina
+pref.timezone.America.Argentina.Buenos_Aires=America/Argentina/Buenos Aires
+pref.timezone.America.Argentina.Catamarca=America/Argentina/Catamarca
+pref.timezone.America.Argentina.Cordoba=America/Argentina/Cordoba
+pref.timezone.America.Argentina.Jujuy=America/Argentina/Jujuy
+pref.timezone.America.Argentina.La_Rioja=America/Argentina/La Rioja
+pref.timezone.America.Argentina.Mendoza=America/Argentina/Mendoza
+pref.timezone.America.Argentina.Rio_Gallegos=America/Argentina/Rio Gallegos
+pref.timezone.America.Argentina.San_Juan=America/Argentina/San Juan
+pref.timezone.America.Argentina.Tucuman=America/Argentina/Tucuman
+pref.timezone.America.Argentina.Ushuaia=America/Argentina/Ushuaia
+pref.timezone.America.Aruba=America/Aruba
+pref.timezone.America.Asuncion=America/Asuncion
+pref.timezone.America.Atikokan=America/Atikokan
+pref.timezone.America.Bahia=America/Bahia
+pref.timezone.America.Barbados=America/Barbados
+pref.timezone.America.Belem=America/Belem
+pref.timezone.America.Belize=America/Belize
+pref.timezone.America.Blanc-Sablon=America/Blanc-Sablon
+pref.timezone.America.Boa_Vista=America/Boa Vista
+pref.timezone.America.Bogota=America/Bogota
+pref.timezone.America.Boise=America/Boise
+pref.timezone.America.Cambridge_Bay=America/Cambridge Bay
+pref.timezone.America.Campo_Grande=America/Campo Grande
+pref.timezone.America.Cancun=America/Cancun
+pref.timezone.America.Caracas=America/Caracas
+pref.timezone.America.Cayenne=America/Cayenne
+pref.timezone.America.Cayman=America/Cayman
+pref.timezone.America.Chicago=America/Chicago
+pref.timezone.America.Chihuahua=America/Chihuahua
+pref.timezone.America.Costa_Rica=America/Costa Rica
+pref.timezone.America.Cuiaba=America/Cuiaba
+pref.timezone.America.Curacao=America/Curacao
+pref.timezone.America.Danmarkshavn=America/Danmarkshavn
+pref.timezone.America.Dawson=America/Dawson
+pref.timezone.America.Dawson_Creek=America/Dawson Creek
+pref.timezone.America.Denver=America/Denver
+pref.timezone.America.Detroit=America/Detroit
+pref.timezone.America.Dominica=America/Dominica
+pref.timezone.America.Edmonton=America/Edmonton
+pref.timezone.America.Eirunepe=America/Eirunepe
+pref.timezone.America.El_Salvador=America/El Salvador
+pref.timezone.America.Fortaleza=America/Fortaleza
+pref.timezone.America.Glace_Bay=America/Glace Bay
+pref.timezone.America.Godthab=America/Godthab
+pref.timezone.America.Goose_Bay=America/Goose Bay
+pref.timezone.America.Grand_Turk=America/Grand Turk
+pref.timezone.America.Grenada=America/Grenada
+pref.timezone.America.Guadeloupe=America/Guadeloupe
+pref.timezone.America.Guatemala=America/Guatemala
+pref.timezone.America.Guayaquil=America/Guayaquil
+pref.timezone.America.Guyana=America/Guyana
+pref.timezone.America.Halifax=America/Halifax
+pref.timezone.America.Havana=America/Havana
+pref.timezone.America.Hermosillo=America/Hermosillo
+pref.timezone.America.Indiana.Indianapolis=America/Indiana/Indianapolis
+pref.timezone.America.Indiana.Knox=America/Indiana/Knox
+pref.timezone.America.Indiana.Marengo=America/Indiana/Marengo
+pref.timezone.America.Indiana.Petersburg=America/Indiana/Petersburg
+pref.timezone.America.Indiana.Vevay=America/Indiana/Vevay
+pref.timezone.America.Indiana.Vincennes=America/Indiana/Vincennes
+pref.timezone.America.Inuvik=America/Inuvik
+pref.timezone.America.Iqaluit=America/Iqaluit
+pref.timezone.America.Jamaica=America/Jamaica
+pref.timezone.America.Juneau=America/Juneau
+pref.timezone.America.Kentucky.Louisville=America/Kentucky/Louisville
+pref.timezone.America.Kentucky.Monticello=America/Kentucky/Monticello
+pref.timezone.America.La_Paz=America/La Paz
+pref.timezone.America.Lima=America/Lima
+pref.timezone.America.Los_Angeles=America/Los Angeles
+pref.timezone.America.Maceio=America/Maceio
+pref.timezone.America.Managua=America/Managua
+pref.timezone.America.Manaus=America/Manaus
+pref.timezone.America.Martinique=America/Martinique
+pref.timezone.America.Mazatlan=America/Mazatlan
+pref.timezone.America.Menominee=America/Menominee
+pref.timezone.America.Merida=America/Merida
+pref.timezone.America.Mexico_City=America/Mexico City
+pref.timezone.America.Miquelon=America/Miquelon
+pref.timezone.America.Moncton=America/Moncton
+pref.timezone.America.Monterrey=America/Monterrey
+pref.timezone.America.Montevideo=America/Montevideo
+pref.timezone.America.Montreal=America/Montreal
+pref.timezone.America.Montserrat=America/Montserrat
+pref.timezone.America.Nassau=America/Nassau
+pref.timezone.America.New_York=America/New York
+pref.timezone.America.Nipigon=America/Nipigon
+pref.timezone.America.Nome=America/Nome
+pref.timezone.America.Noronha=America/Noronha
+pref.timezone.America.North_Dakota.Center=America/North Dakota/Center
+pref.timezone.America.North_Dakota.New_Salem=America/North Dakota/New Salem
+pref.timezone.America.Panama=America/Panama
+pref.timezone.America.Pangnirtung=America/Pangnirtung
+pref.timezone.America.Paramaribo=America/Paramaribo
+pref.timezone.America.Phoenix=America/Phoenix
+pref.timezone.America.Port-au-Prince=America/Port-au-Prince
+pref.timezone.America.Port_of_Spain=America/Port of Spain
+pref.timezone.America.Porto_Velho=America/Porto Velho
+pref.timezone.America.Puerto_Rico=America/Puerto Rico
+pref.timezone.America.Rainy_River=America/Rainy River
+pref.timezone.America.Rankin_Inlet=America/Rankin Inlet
+pref.timezone.America.Recife=America/Recife
+pref.timezone.America.Regina=America/Regina
+pref.timezone.America.Rio_Branco=America/Rio Branco
+pref.timezone.America.Santiago=America/Santiago
+pref.timezone.America.Santo_Domingo=America/Santo Domingo
+pref.timezone.America.Sao_Paulo=America/Sao Paulo
+pref.timezone.America.Scoresbysund=America/Scoresbysund
+pref.timezone.America.Shiprock=America/Shiprock
+pref.timezone.America.St_Johns=America/St. Johns
+pref.timezone.America.St_Kitts=America/St. Kitts
+pref.timezone.America.St_Lucia=America/St. Lucia
+pref.timezone.America.St_Thomas=America/St. Thomas
+pref.timezone.America.St_Vincent=America/St. Vincent
+pref.timezone.America.Swift_Current=America/Swift Current
+pref.timezone.America.Tegucigalpa=America/Tegucigalpa
+pref.timezone.America.Thule=America/Thule
+pref.timezone.America.Thunder_Bay=America/Thunder Bay
+pref.timezone.America.Tijuana=America/Tijuana
+pref.timezone.America.Toronto=America/Toronto
+pref.timezone.America.Tortola=America/Tortola
+pref.timezone.America.Vancouver=America/Vancouver
+pref.timezone.America.Whitehorse=America/Whitehorse
+pref.timezone.America.Winnipeg=America/Winnipeg
+pref.timezone.America.Yakutat=America/Yakutat
+pref.timezone.America.Yellowknife=America/Yellowknife
+pref.timezone.Antarctica.Casey=Antarctica/Casey
+pref.timezone.Antarctica.Davis=Antarctica/Davis
+pref.timezone.Antarctica.DumontDUrville=Antarctica/DumontDUrville
+pref.timezone.Antarctica.Mawson=Antarctica/Mawson
+pref.timezone.Antarctica.McMurdo=Antarctica/McMurdo
+pref.timezone.Antarctica.Palmer=Antarctica/Palmer
+pref.timezone.Antarctica.Rothera=Antarctica/Rothera
+pref.timezone.Antarctica.South_Pole=Antarctica/South Pole
+pref.timezone.Antarctica.Syowa=Antarctica/Syowa
+pref.timezone.Antarctica.Vostok=Antarctica/Vostok
+pref.timezone.Arctic.Longyearbyen=Arctic/Longyearbyen
+pref.timezone.Asia.Aden=Asia/Aden
+pref.timezone.Asia.Almaty=Asia/Almaty
+pref.timezone.Asia.Amman=Asia/Amman
+pref.timezone.Asia.Anadyr=Asia/Anadyr
+pref.timezone.Asia.Aqtau=Asia/Aqtau
+pref.timezone.Asia.Aqtobe=Asia/Aqtobe
+pref.timezone.Asia.Ashgabat=Asia/Ashgabat
+pref.timezone.Asia.Baghdad=Asia/Baghdad
+pref.timezone.Asia.Bahrain=Asia/Bahrain
+pref.timezone.Asia.Baku=Asia/Baku
+pref.timezone.Asia.Bangkok=Asia/Bangkok
+pref.timezone.Asia.Beirut=Asia/Beirut
+pref.timezone.Asia.Bishkek=Asia/Bishkek
+pref.timezone.Asia.Brunei=Asia/Brunei
+pref.timezone.Asia.Choibalsan=Asia/Choibalsan
+pref.timezone.Asia.Chongqing=Asia/Chongqing
+pref.timezone.Asia.Colombo=Asia/Colombo
+pref.timezone.Asia.Damascus=Asia/Damascus
+pref.timezone.Asia.Dhaka=Asia/Dhaka
+pref.timezone.Asia.Dili=Asia/Dili
+pref.timezone.Asia.Dubai=Asia/Dubai
+pref.timezone.Asia.Dushanbe=Asia/Dushanbe
+pref.timezone.Asia.Gaza=Asia/Gaza
+pref.timezone.Asia.Harbin=Asia/Harbin
+pref.timezone.Asia.Hong_Kong=Asia/Hong Kong
+pref.timezone.Asia.Hovd=Asia/Hovd
+pref.timezone.Asia.Irkutsk=Asia/Irkutsk
+pref.timezone.Asia.Istanbul=Asia/Istanbul
+pref.timezone.Asia.Jakarta=Asia/Jakarta
+pref.timezone.Asia.Jayapura=Asia/Jayapura
+pref.timezone.Asia.Jerusalem=Asia/Jerusalem
+pref.timezone.Asia.Kabul=Asia/Kabul
+pref.timezone.Asia.Kamchatka=Asia/Kamchatka
+pref.timezone.Asia.Karachi=Asia/Karachi
+pref.timezone.Asia.Kashgar=Asia/Kashgar
+pref.timezone.Asia.Kathmandu=Asia/Kathmandu
+pref.timezone.Asia.Krasnoyarsk=Asia/Krasnoyarsk
+pref.timezone.Asia.Kuala_Lumpur=Asia/Kuala Lumpur
+pref.timezone.Asia.Kuching=Asia/Kuching
+pref.timezone.Asia.Kuwait=Asia/Kuwait
+pref.timezone.Asia.Macau=Asia/Macau
+pref.timezone.Asia.Magadan=Asia/Magadan
+pref.timezone.Asia.Makassar=Asia/Makassar
+pref.timezone.Asia.Manila=Asia/Manila
+pref.timezone.Asia.Muscat=Asia/Muscat
+pref.timezone.Asia.Nicosia=Asia/Nicosia
+pref.timezone.Asia.Novosibirsk=Asia/Novosibirsk
+pref.timezone.Asia.Omsk=Asia/Omsk
+pref.timezone.Asia.Oral=Asia/Oral
+pref.timezone.Asia.Phnom_Penh=Asia/Phnom Penh
+pref.timezone.Asia.Pontianak=Asia/Pontianak
+pref.timezone.Asia.Pyongyang=Asia/Pyongyang
+pref.timezone.Asia.Qatar=Asia/Qatar
+pref.timezone.Asia.Qyzylorda=Asia/Qyzylorda
+pref.timezone.Asia.Rangoon=Asia/Rangoon
+pref.timezone.Asia.Riyadh=Asia/Riyadh
+pref.timezone.Asia.Sakhalin=Asia/Sakhalin
+pref.timezone.Asia.Samarkand=Asia/Samarkand
+pref.timezone.Asia.Seoul=Asia/Seoul
+pref.timezone.Asia.Shanghai=Asia/Shanghai
+pref.timezone.Asia.Singapore=Asia/Singapore
+pref.timezone.Asia.Taipei=Asia/Taipei
+pref.timezone.Asia.Tashkent=Asia/Tashkent
+pref.timezone.Asia.Tbilisi=Asia/Tbilisi
+pref.timezone.Asia.Tehran=Asia/Tehran
+pref.timezone.Asia.Thimphu=Asia/Thimphu
+pref.timezone.Asia.Tokyo=Asia/Tokyo
+pref.timezone.Asia.Ulaanbaatar=Asia/Ulaanbaatar
+pref.timezone.Asia.Urumqi=Asia/Urumqi
+pref.timezone.Asia.Vientiane=Asia/Vientiane
+pref.timezone.Asia.Vladivostok=Asia/Vladivostok
+pref.timezone.Asia.Yakutsk=Asia/Yakutsk
+pref.timezone.Asia.Yekaterinburg=Asia/Yekaterinburg
+pref.timezone.Asia.Yerevan=Asia/Yerevan
+pref.timezone.Atlantic.Azores=Atlantic/Azores
+pref.timezone.Atlantic.Bermuda=Atlantic/Bermuda
+pref.timezone.Atlantic.Canary=Atlantic/Canary
+pref.timezone.Atlantic.Cape_Verde=Atlantic/Cape Verde
+pref.timezone.Atlantic.Faroe=Atlantic/Faroe
+pref.timezone.Atlantic.Madeira=Atlantic/Madeira
+pref.timezone.Atlantic.Reykjavik=Atlantic/Reykjavik
+pref.timezone.Atlantic.South_Georgia=Atlantic/South Georgia
+pref.timezone.Atlantic.St_Helena=Atlantic/St. Helena
+pref.timezone.Atlantic.Stanley=Atlantic/Stanley
+pref.timezone.Australia.Adelaide=Australia/Adelaide
+pref.timezone.Australia.Brisbane=Australia/Brisbane
+pref.timezone.Australia.Broken_Hill=Australia/Broken Hill
+pref.timezone.Australia.Currie=Australia/Currie
+pref.timezone.Australia.Darwin=Australia/Darwin
+pref.timezone.Australia.Eucla=Australia/Eucla
+pref.timezone.Australia.Hobart=Australia/Hobart
+pref.timezone.Australia.Lindeman=Australia/Lindeman
+pref.timezone.Australia.Lord_Howe=Australia/Lord Howe
+pref.timezone.Australia.Melbourne=Australia/Melbourne
+pref.timezone.Australia.Perth=Australia/Perth
+pref.timezone.Australia.Sydney=Australia/Sydney
+pref.timezone.Europe.Amsterdam=Europe/Amsterdam
+pref.timezone.Europe.Andorra=Europe/Andorra
+pref.timezone.Europe.Athens=Europe/Athens
+pref.timezone.Europe.Belgrade=Europe/Belgrade
+pref.timezone.Europe.Berlin=Europe/Berlin
+pref.timezone.Europe.Bratislava=Europe/Bratislava
+pref.timezone.Europe.Brussels=Europe/Brussels
+pref.timezone.Europe.Bucharest=Europe/Bucharest
+pref.timezone.Europe.Budapest=Europe/Budapest
+pref.timezone.Europe.Chisinau=Europe/Chisinau
+pref.timezone.Europe.Copenhagen=Europe/Copenhagen
+pref.timezone.Europe.Dublin=Europe/Dublin
+pref.timezone.Europe.Gibraltar=Europe/Gibraltar
+pref.timezone.Europe.Guernsey=Europe/Guernsey
+pref.timezone.Europe.Helsinki=Europe/Helsinki
+pref.timezone.Europe.Isle_of_Man=Europe/Isle of Man
+pref.timezone.Europe.Istanbul=Europe/Istanbul
+pref.timezone.Europe.Jersey=Europe/Jersey
+pref.timezone.Europe.Kaliningrad=Europe/Kaliningrad
+pref.timezone.Europe.Kiev=Europe/Kiev
+pref.timezone.Europe.Lisbon=Europe/Lisbon
+pref.timezone.Europe.Ljubljana=Europe/Ljubljana
+pref.timezone.Europe.London=Europe/London
+pref.timezone.Europe.Luxembourg=Europe/Luxembourg
+pref.timezone.Europe.Madrid=Europe/Madrid
+pref.timezone.Europe.Malta=Europe/Malta
+pref.timezone.Europe.Mariehamn=Europe/Mariehamn
+pref.timezone.Europe.Minsk=Europe/Minsk
+pref.timezone.Europe.Monaco=Europe/Monaco
+pref.timezone.Europe.Moscow=Europe/Moscow
+pref.timezone.Europe.Nicosia=Europe/Nicosia
+pref.timezone.Europe.Oslo=Europe/Oslo
+pref.timezone.Europe.Paris=Europe/Paris
+pref.timezone.Europe.Podgorica=Europe/Podgorica
+pref.timezone.Europe.Prague=Europe/Prague
+pref.timezone.Europe.Riga=Europe/Riga
+pref.timezone.Europe.Rome=Europe/Rome
+pref.timezone.Europe.Samara=Europe/Samara
+pref.timezone.Europe.San_Marino=Europe/San Marino
+pref.timezone.Europe.Sarajevo=Europe/Sarajevo
+pref.timezone.Europe.Simferopol=Europe/Simferopol
+pref.timezone.Europe.Skopje=Europe/Skopje
+pref.timezone.Europe.Sofia=Europe/Sofia
+pref.timezone.Europe.Stockholm=Europe/Stockholm
+pref.timezone.Europe.Tallinn=Europe/Tallinn
+pref.timezone.Europe.Tirane=Europe/Tirane
+pref.timezone.Europe.Uzhgorod=Europe/Uzhgorod
+pref.timezone.Europe.Vaduz=Europe/Vaduz
+pref.timezone.Europe.Vatican=Europe/Vatican
+pref.timezone.Europe.Vienna=Europe/Vienna
+pref.timezone.Europe.Vilnius=Europe/Vilnius
+pref.timezone.Europe.Volgograd=Europe/Volgograd
+pref.timezone.Europe.Warsaw=Europe/Warsaw
+pref.timezone.Europe.Zagreb=Europe/Zagreb
+pref.timezone.Europe.Zaporozhye=Europe/Zaporozhye
+pref.timezone.Europe.Zurich=Europe/Zurich
+pref.timezone.Indian.Antananarivo=Indian/Antananarivo
+pref.timezone.Indian.Chagos=Indian/Chagos
+pref.timezone.Indian.Christmas=Indian/Christmas
+pref.timezone.Indian.Cocos=Indian/Cocos
+pref.timezone.Indian.Comoro=Indian/Comoro
+pref.timezone.Indian.Kerguelen=Indian/Kerguelen
+pref.timezone.Indian.Mahe=Indian/Mahe
+pref.timezone.Indian.Maldives=Indian/Maldives
+pref.timezone.Indian.Mauritius=Indian/Mauritius
+pref.timezone.Indian.Mayotte=Indian/Mayotte
+pref.timezone.Indian.Reunion=Indian/Reunion
+pref.timezone.Pacific.Apia=Pacific/Apia
+pref.timezone.Pacific.Auckland=Pacific/Auckland
+pref.timezone.Pacific.Chatham=Pacific/Chatham
+pref.timezone.Pacific.Easter=Pacific/Easter
+pref.timezone.Pacific.Efate=Pacific/Efate
+pref.timezone.Pacific.Enderbury=Pacific/Enderbury
+pref.timezone.Pacific.Fakaofo=Pacific/Fakaofo
+pref.timezone.Pacific.Fiji=Pacific/Fiji
+pref.timezone.Pacific.Funafuti=Pacific/Funafuti
+pref.timezone.Pacific.Galapagos=Pacific/Galapagos
+pref.timezone.Pacific.Gambier=Pacific/Gambier
+pref.timezone.Pacific.Guadalcanal=Pacific/Guadalcanal
+pref.timezone.Pacific.Guam=Pacific/Guam
+pref.timezone.Pacific.Honolulu=Pacific/Honolulu
+pref.timezone.Pacific.Johnston=Pacific/Johnston
+pref.timezone.Pacific.Kiritimati=Pacific/Kiritimati
+pref.timezone.Pacific.Kosrae=Pacific/Kosrae
+pref.timezone.Pacific.Kwajalein=Pacific/Kwajalein
+pref.timezone.Pacific.Majuro=Pacific/Majuro
+pref.timezone.Pacific.Marquesas=Pacific/Marquesas
+pref.timezone.Pacific.Midway=Pacific/Midway
+pref.timezone.Pacific.Nauru=Pacific/Nauru
+pref.timezone.Pacific.Niue=Pacific/Niue
+pref.timezone.Pacific.Norfolk=Pacific/Norfolk
+pref.timezone.Pacific.Noumea=Pacific/Noumea
+pref.timezone.Pacific.Pago_Pago=Pacific/Pago Pago
+pref.timezone.Pacific.Palau=Pacific/Palau
+pref.timezone.Pacific.Pitcairn=Pacific/Pitcairn
+pref.timezone.Pacific.Ponape=Pacific/Ponape
+pref.timezone.Pacific.Port_Moresby=Pacific/Port Moresby
+pref.timezone.Pacific.Rarotonga=Pacific/Rarotonga
+pref.timezone.Pacific.Saipan=Pacific/Saipan
+pref.timezone.Pacific.Tahiti=Pacific/Tahiti
+pref.timezone.Pacific.Tarawa=Pacific/Tarawa
+pref.timezone.Pacific.Tongatapu=Pacific/Tongatapu
+pref.timezone.Pacific.Truk=Pacific/Truk
+pref.timezone.Pacific.Wake=Pacific/Wake
+pref.timezone.Pacific.Wallis=Pacific/Wallis
+
+# the following have been missing
+pref.timezone.America.Indiana.Tell_City=America/Indiana/Tell City
+pref.timezone.America.Indiana.Winamac=America/Indiana/Winamac
+pref.timezone.America.Marigot=America/Marigot
+pref.timezone.America.Resolute=America/Resolute
+pref.timezone.America.St_Barthelemy=America/St. Barthelemy
+
+# added with 2008d:
+pref.timezone.America.Argentina.San_Luis=America/Argentina/San Luis
+pref.timezone.America.Santarem=America/Santarem
+pref.timezone.Asia.Ho_Chi_Minh=Asia/Ho Chi Minh
+pref.timezone.Asia.Kolkata=Asia/Kolkata
+
+# added with 2008i:
+pref.timezone.America.Argentina.Salta=America/Argentina/Salta
+
+# added with 2010i
+pref.timezone.America.Matamoros=America/Matamoros
+pref.timezone.America.Ojinaga=America/Ojinaga
+pref.timezone.America.Santa_Isabel=America/Santa Isabel
+pref.timezone.Antarctica.Macquarie=Antarctica/Macquarie
+pref.timezone.Asia.Novokuznetsk=Asia/Novokuznetsk
+
+#added with 2011b
+pref.timezone.America.Bahia_Banderas=America/Bahia Banderas
+pref.timezone.America.North_Dakota.Beulah=America/North Dakota/Beulah
+pref.timezone.Pacific.Chuuk=Pacific/Chuuk
+pref.timezone.Pacific.Pohnpei=Pacific/Pohnpei
+
+#added with 2011n
+pref.timezone.Africa.Juba=Africa/Juba
+pref.timezone.America.Kralendijk=America/Kralendijk
+pref.timezone.America.Lower_Princes=America/Lower Princes
+pref.timezone.America.Metlakatla=America/Metlakatla
+pref.timezone.America.Sitka=America/Sitka
+pref.timezone.Asia.Hebron=Asia/Hebron
+
+#added with 2013a
+pref.timezone.America.Creston=America/Creston
+pref.timezone.Asia.Khandyga=Asia/Khandyga
+pref.timezone.Asia.Ust-Nera=Asia/Ust-Nera
+pref.timezone.Europe.Busingen=Europe/Busingen
+
+#added with 2014b
+pref.timezone.Antarctica.Troll=Antarctica/Troll
+
+#added with 2014j
+pref.timezone.Asia.Chita=Asia/Chita
+pref.timezone.Asia.Srednekolymsk=Asia/Srednekolymsk
+pref.timezone.Pacific.Bougainville=Pacific/Bougainville
+
+#added with 2.2015g
+pref.timezone.America.Fort_Nelson=America/Fort Nelson
+
+#added with 2.2016b
+pref.timezone.Europe.Ulyanovsk=Europe/Ulyanovsk
+pref.timezone.Europe.Astrakhan=Europe/Astrakhan
+pref.timezone.Asia.Barnaul=Asia/Barnaul
+
+#added with 2.2016i
+pref.timezone.Asia.Yangon=Asia/Yangon
+pref.timezone.Asia.Tomsk=Asia/Tomsk
+pref.timezone.Asia.Famagusta=Asia/Famagusta
+pref.timezone.Europe.Kirov=Europe/Kirov
+
+#added with 2.2016j
+pref.timezone.Europe.Saratov=Europe/Saratov
+pref.timezone.Asia.Atyrau=Asia/Atyrau
+
+#added with 2.2017b
+pref.timezone.America.Punta_Arenas=America/Punta Arenas
+
+#added with 2.2018i
+pref.timezone.Asia.Qostanay=Asia/Qostanay
+
+#added with 2.2020a
+pref.timezone.America.Nuuk=America/Nuuk
+
+#added with 2.2021c
+pref.timezone.Pacific.Kanton=Pacific/Kanton
+
+#added with 2.2022b
+pref.timezone.Europe.Kyiv=Europe/Kyiv