summaryrefslogtreecommitdiffstats
path: root/l10n-zh-CN/calendar/chrome
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /l10n-zh-CN/calendar/chrome
parentInitial commit. (diff)
downloadfirefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz
firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'l10n-zh-CN/calendar/chrome')
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/calendar-alarms.properties39
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/calendar-event-dialog-attendees.properties15
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/calendar-event-dialog.dtd433
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/calendar-event-dialog.properties541
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/calendar-extract.properties294
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/calendar-invitations-dialog.dtd19
-rw-r--r--l10n-zh-CN/calendar/chrome/calendar/calendar-invitations-dialog.properties10
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/calendar-occurrence-prompt.dtd7
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/calendar-occurrence-prompt.properties63
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd14
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/calendar.dtd407
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/calendar.properties794
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/calendarCreation.dtd51
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/calendarCreation.properties6
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/categories.properties7
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/dateFormat.properties146
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd19
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/global.dtd54
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/menuOverlay.dtd50
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/migration.dtd9
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/migration.properties13
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/provider-uninstall.dtd12
-rwxr-xr-xl10n-zh-CN/calendar/chrome/calendar/timezones.properties488
-rwxr-xr-xl10n-zh-CN/calendar/chrome/lightning/lightning-toolbar.dtd51
-rwxr-xr-xl10n-zh-CN/calendar/chrome/lightning/lightning.dtd116
-rwxr-xr-xl10n-zh-CN/calendar/chrome/lightning/lightning.properties201
26 files changed, 3859 insertions, 0 deletions
diff --git a/l10n-zh-CN/calendar/chrome/calendar/calendar-alarms.properties b/l10n-zh-CN/calendar/chrome/calendar/calendar-alarms.properties
new file mode 100755
index 0000000000..5cb3cca16c
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/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=%2$S %1$S
+reminderTitleAtStartEvent=当事件开始时
+reminderTitleAtStartTask=当任务开始时
+reminderTitleAtEndEvent=当事件结束时
+reminderTitleAtEndTask=当任务结束时
+
+# 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=暂缓 %1$S 提醒
+
+reminderCustomOriginBeginBeforeEvent=在事项开始之前
+reminderCustomOriginBeginAfterEvent=在事项开始之后
+reminderCustomOriginEndBeforeEvent=在事项结束之前
+reminderCustomOriginEndAfterEvent=在事项结束之后
+reminderCustomOriginBeginBeforeTask=在任务开始之前
+reminderCustomOriginBeginAfterTask=在任务开始之后
+reminderCustomOriginEndBeforeTask=在任务结束之前
+reminderCustomOriginEndAfterTask=在任务结束之后
+
+reminderErrorMaxCountReachedEvent=当前选中的日历限制为每个事件设置最多 #1 个提醒。;当前选中的日历限制为每个事件设置最多 #1 个提醒。
+reminderErrorMaxCountReachedTask=当前选中的日历限制为每个任务设置最多 #1 个提醒。;当前选中的日历限制为每个任务设置最多 #1 个提醒。
+
+# 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=只读日历的提醒现在只能被取消,不能被推迟,“%1$S”按钮只能够推迟可更改日历的提醒。
+# LOCALIZATION NOTE (reminderDisabledSnoozeButtonTooltip)
+# This tooltip is only displayed, if the button is disabled
+reminderDisabledSnoozeButtonTooltip=只读日历不支持推迟提醒
diff --git a/l10n-zh-CN/calendar/chrome/calendar/calendar-event-dialog-attendees.properties b/l10n-zh-CN/calendar/chrome/calendar/calendar-event-dialog-attendees.properties
new file mode 100755
index 0000000000..9ab2b4a7c3
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/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 = 必须参与者
+event.attendee.role.optional = 可选参与者
+event.attendee.role.nonparticipant = 非参与者
+event.attendee.role.chair = 主席
+event.attendee.role.unknown = 未知参与者 (%1$S)
+
+event.attendee.usertype.individual = 个人
+event.attendee.usertype.group = 群组
+event.attendee.usertype.resource = 资源
+event.attendee.usertype.room = 房间
+event.attendee.usertype.unknown = 未知类型 (%1$S)
diff --git a/l10n-zh-CN/calendar/chrome/calendar/calendar-event-dialog.dtd b/l10n-zh-CN/calendar/chrome/calendar/calendar-event-dialog.dtd
new file mode 100755
index 0000000000..f0b5e1d12e
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/calendar/calendar-event-dialog.dtd
@@ -0,0 +1,433 @@
+<!-- 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 "编辑项目" >
+
+<!ENTITY event.dialog.keepDurationButton.tooltip "更改截止时间时保持连续性">
+<!ENTITY event.dialog.keepDurationButton.accesskey "K">
+
+<!ENTITY newevent.from.label "从" >
+<!ENTITY newevent.to.label "到" >
+
+<!ENTITY newevent.status.label "状态" >
+<!ENTITY newevent.status.accesskey "S" >
+<!ENTITY newevent.eventStatus.none.label "未指定" >
+<!ENTITY newevent.eventStatus.none.accesskey "o" >
+<!ENTITY newevent.todoStatus.none.label "未指定" >
+<!ENTITY newevent.eventStatus.cancelled.label "已取消" >
+<!ENTITY newevent.eventStatus.cancelled.accesskey "n" >
+<!ENTITY newevent.todoStatus.cancelled.label "已取消" >
+<!ENTITY newevent.status.tentative.label "暂定" >
+<!ENTITY newevent.status.tentative.accesskey "T" >
+<!ENTITY newevent.status.confirmed.label "已确认" >
+<!ENTITY newevent.status.confirmed.accesskey "C" >
+<!ENTITY newevent.status.needsaction.label "将处理" >
+<!ENTITY newevent.status.inprogress.label "处理中" >
+<!ENTITY newevent.status.completed.label "已完成" >
+
+<!-- The following entity is for New Task dialog only -->
+<!ENTITY newtodo.percentcomplete.label "&#037; 完成">
+
+<!-- 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 "通知参与者">
+<!ENTITY event.attendees.notify.accesskey "f">
+<!ENTITY event.attendees.notifyundisclosed.label "分别邀请各参与者">
+<!ENTITY event.attendees.notifyundisclosed.accesskey "x">
+<!ENTITY event.attendees.notifyundisclosed.tooltip "此选项将分别为每个参与者发送一封邀请信。每封邀请信只包含收件方,而不会披露其他参与者。">
+<!ENTITY event.attendees.disallowcounter.label "不允许计数">
+<!ENTITY event.attendees.disallowcounter.accesskey "a">
+<!ENTITY event.attendees.disallowcounter.tooltip "表示您不接受计数提案">
+
+<!-- Keyboard Shortcuts -->
+<!ENTITY event.dialog.new.event.key2 "I">
+<!ENTITY event.dialog.new.task.key2 "D">
+<!ENTITY event.dialog.new.message.key2 "N">
+<!ENTITY event.dialog.close.key "W">
+<!ENTITY event.dialog.save.key "S">
+<!ENTITY event.dialog.saveandclose.key "L">
+<!ENTITY event.dialog.print.key "P">
+<!ENTITY event.dialog.undo.key "Z">
+<!ENTITY event.dialog.redo.key "Y">
+<!ENTITY event.dialog.cut.key "X">
+<!ENTITY event.dialog.copy.key "C">
+<!ENTITY event.dialog.paste.key "V">
+<!ENTITY event.dialog.select.all.key "A">
+
+<!-- Menubar -->
+<!ENTITY event.menu.item.new.label "新建">
+<!ENTITY event.menu.item.new.accesskey "N">
+<!ENTITY event.menu.item.new.event.label "事件">
+<!ENTITY event.menu.item.new.event.accesskey "E">
+<!ENTITY event.menu.item.new.task.label "任务">
+<!ENTITY event.menu.item.new.task.accesskey "T">
+<!ENTITY event.menu.item.new.message.label "消息">
+<!ENTITY event.menu.item.new.message.accesskey "M">
+<!ENTITY event.menu.item.new.contact.label "通讯录联系人">
+<!ENTITY event.menu.item.new.contact.accesskey "C">
+<!ENTITY event.menu.item.close.label "关闭">
+<!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 "保存">
+<!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 "保存并关闭">
+<!ENTITY event.menu.item.saveandclose.accesskey "l">
+<!ENTITY event.menu.item.saveandclose.tab.accesskey "z">
+
+<!ENTITY event.menu.item.delete.label "删除…">
+<!ENTITY event.menu.item.delete.accesskey "D">
+<!ENTITY event.menu.item.page.setup.label "页面设置">
+<!ENTITY event.menu.item.page.setup.accesskey "u">
+<!ENTITY event.menu.item.print.label "打印">
+<!ENTITY event.menu.item.print.accesskey "P">
+
+<!ENTITY event.menu.edit.label "编辑">
+<!ENTITY event.menu.edit.accesskey "E">
+<!ENTITY event.menu.edit.undo.label "撤消">
+<!ENTITY event.menu.edit.undo.accesskey "U">
+<!ENTITY event.menu.edit.redo.label "重做">
+<!ENTITY event.menu.edit.redo.accesskey "R">
+<!ENTITY event.menu.edit.cut.label "剪切">
+<!ENTITY event.menu.edit.cut.accesskey "t">
+<!ENTITY event.menu.edit.copy.label "复制">
+<!ENTITY event.menu.edit.copy.accesskey "C">
+<!ENTITY event.menu.edit.paste.label "粘贴">
+<!ENTITY event.menu.edit.paste.accesskey "P">
+<!ENTITY event.menu.edit.select.all.label "全选">
+<!ENTITY event.menu.edit.select.all.accesskey "A">
+
+<!ENTITY event.menu.view.label "视图">
+<!ENTITY event.menu.view.accesskey "V">
+<!ENTITY event.menu.view.toolbars.label "工具栏">
+<!ENTITY event.menu.view.toolbars.accesskey "T">
+<!ENTITY event.menu.view.toolbars.event.label "事件工具栏">
+<!ENTITY event.menu.view.toolbars.event.accesskey "E">
+<!ENTITY event.menu.view.toolbars.customize.label "定制">
+<!ENTITY event.menu.view.toolbars.customize.accesskey "C">
+<!ENTITY event.menu.view.showlink.label "显示相关链接">
+<!ENTITY event.menu.view.showlink.accesskey "R">
+
+<!ENTITY event.menu.options.label "选项">
+<!ENTITY event.menu.options.accesskey "O">
+<!ENTITY event.menu.options.attendees.label "邀请参与者…">
+<!ENTITY event.menu.options.attendees.accesskey "I">
+<!ENTITY event.menu.options.timezone2.label "显示时区">
+<!ENTITY event.menu.options.timezone2.accesskey "z">
+<!ENTITY event.menu.options.priority2.label "优先级">
+<!ENTITY event.menu.options.priority2.accesskey "y">
+<!ENTITY event.menu.options.priority.notspecified.label "未指定">
+<!ENTITY event.menu.options.priority.notspecified.accesskey "o">
+<!ENTITY event.menu.options.priority.low.label "低">
+<!ENTITY event.menu.options.priority.low.accesskey "L">
+<!ENTITY event.menu.options.priority.normal.label "普通">
+<!ENTITY event.menu.options.priority.normal.accesskey "N">
+<!ENTITY event.menu.options.priority.high.label "高">
+<!ENTITY event.menu.options.priority.high.accesskey "H">
+<!ENTITY event.menu.options.privacy.label "隐私">
+<!ENTITY event.menu.options.privacy.accesskey "P">
+<!ENTITY event.menu.options.privacy.public.label "公开事件">
+<!ENTITY event.menu.options.privacy.public.accesskey "u">
+<!ENTITY event.menu.options.privacy.confidential.label "只显示时间和日期">
+<!ENTITY event.menu.options.privacy.confidential.accesskey "S">
+<!ENTITY event.menu.options.privacy.private.label "私人事件">
+<!ENTITY event.menu.options.privacy.private.accesskey "r">
+<!ENTITY event.menu.options.show.time.label "把时间段显示为">
+<!ENTITY event.menu.options.show.time.accesskey "T">
+<!ENTITY event.menu.options.show.time.busy.label "繁忙">
+<!ENTITY event.menu.options.show.time.busy.accesskey "B">
+<!ENTITY event.menu.options.show.time.free.label "空闲">
+<!ENTITY event.menu.options.show.time.free.accesskey "F">
+
+<!ENTITY event.invite.attendees.label "邀请参与者…">
+<!ENTITY event.invite.attendees.accesskey "I">
+<!ENTITY event.email.attendees.label "编写邮件给所有的参与者…">
+<!ENTITY event.email.attendees.accesskey "A">
+<!ENTITY event.email.tentative.attendees.label "编写邮件给待定的参与者…">
+<!ENTITY event.email.tentative.attendees.accesskey "U">
+<!ENTITY event.remove.attendees.label2 "移除所有参与者">
+<!ENTITY event.remove.attendees.accesskey "q">
+<!ENTITY event.remove.attendee.label "移除参与者">
+<!ENTITY event.remove.attendee.accesskey "e">
+
+<!-- Toolbar -->
+<!ENTITY event.toolbar.save.label2 "保存">
+<!ENTITY event.toolbar.saveandclose.label "保存并关闭">
+<!ENTITY event.toolbar.delete.label "删除">
+<!ENTITY event.toolbar.attendees.label "邀请参与者">
+<!ENTITY event.toolbar.privacy.label "隐私">
+
+<!ENTITY event.toolbar.save.tooltip2 "保存">
+<!ENTITY event.toolbar.saveandclose.tooltip "保存并关闭">
+<!ENTITY event.toolbar.delete.tooltip "删除">
+<!ENTITY event.toolbar.attendees.tooltip "邀请参与者">
+<!ENTITY event.toolbar.attachments.tooltip "添加附件">
+<!ENTITY event.toolbar.privacy.tooltip "更改隐私设定">
+<!ENTITY event.toolbar.priority.tooltip "更改优先级">
+<!ENTITY event.toolbar.status.tooltip "更改状态">
+<!ENTITY event.toolbar.freebusy.tooltip "更改忙/闲时间">
+
+<!-- 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 "应用提案">
+<!ENTITY counter.button.proposal.accesskey "p">
+<!ENTITY counter.button.proposal.tooltip2 "事件字段将会填入反对意见,不论是否有附加更改,保存后才会通知所有参与者">
+<!ENTITY counter.button.original.label "应用原始数据">
+<!ENTITY counter.button.original.accesskey "r">
+<!ENTITY counter.button.original.tooltip2 "此字段将填入提出反对意见前原始事件的内容">
+
+<!-- Main page -->
+<!ENTITY event.title.textbox.label "标题:" >
+<!ENTITY event.title.textbox.accesskey "i">
+<!ENTITY event.location.label "位置:" >
+<!ENTITY event.location.accesskey "L">
+<!ENTITY event.categories.label "分类:">
+<!ENTITY event.categories.accesskey "y">
+<!ENTITY event.categories.textbox.label "添加新分类" >
+<!ENTITY event.calendar.label "日历:" >
+<!ENTITY event.calendar.accesskey "C">
+<!ENTITY event.attendees.label "参与者:" >
+<!ENTITY event.attendees.accesskey "I">
+<!ENTITY event.alldayevent.label "全天事件" >
+<!ENTITY event.alldayevent.accesskey "d">
+<!ENTITY event.from.label "开始:" >
+<!ENTITY event.from.accesskey "S">
+<!ENTITY task.from.label "开始:" >
+<!ENTITY task.from.accesskey "B">
+<!ENTITY event.to.label "结束:" >
+<!ENTITY event.to.accesskey "n">
+<!ENTITY task.to.label "截止时间:" >
+<!ENTITY task.to.accesskey "u">
+<!ENTITY task.status.label "状态:" >
+<!ENTITY task.status.accesskey "a">
+<!ENTITY event.repeat.label "重复:" >
+<!ENTITY event.repeat.accesskey "R">
+<!ENTITY event.until.label "直到:">
+<!ENTITY event.until.accesskey "i">
+<!ENTITY event.reminder.label "提醒:" >
+<!ENTITY event.reminder.accesskey "m">
+<!ENTITY event.description.label "描述:" >
+<!ENTITY event.description.accesskey "p">
+<!ENTITY event.attachments.label "附件:" >
+<!ENTITY event.attachments.accesskey "h" >
+<!ENTITY event.attachments.menubutton.label "附加">
+<!ENTITY event.attachments.menubutton.accesskey "A">
+<!ENTITY event.attachments.url.label "网页 (W)...">
+<!ENTITY event.attachments.url.accesskey "W">
+<!ENTITY event.attachments.popup.remove.label "移除" >
+<!ENTITY event.attachments.popup.remove.accesskey "R" >
+<!ENTITY event.attachments.popup.open.label "打开" >
+<!ENTITY event.attachments.popup.open.accesskey "O" >
+<!ENTITY event.attachments.popup.removeAll.label "全部移除" >
+<!ENTITY event.attachments.popup.removeAll.accesskey "A" >
+<!ENTITY event.attachments.popup.attachPage.label "附加网页…" >
+<!ENTITY event.attachments.popup.attachPage.accesskey "W" >
+<!ENTITY event.url.label "相关链接:" >
+<!ENTITY event.priority2.label "优先级:">
+
+<!ENTITY event.reminder.none.label "无提醒" >
+<!ENTITY event.reminder.0minutes.before.label "0 分钟前" >
+<!ENTITY event.reminder.5minutes.before.label "5 分钟之前" >
+<!ENTITY event.reminder.15minutes.before.label "15 分钟之前" >
+<!ENTITY event.reminder.30minutes.before.label "30 分钟之前" >
+<!ENTITY event.reminder.1hour.before.label "1 小时之前" >
+<!ENTITY event.reminder.2hours.before.label "2 小时之前" >
+<!ENTITY event.reminder.12hours.before.label "12小时之前" >
+<!ENTITY event.reminder.1day.before.label "1 天前" >
+<!ENTITY event.reminder.2days.before.label "2 天之前" >
+<!ENTITY event.reminder.1week.before.label "1 周之前" >
+<!ENTITY event.reminder.custom.label "定制…" >
+
+<!ENTITY event.reminder.multiple.label "多重提醒器…" >
+
+<!ENTITY event.statusbarpanel.freebusy.label "标记时间为:">
+<!ENTITY event.statusbarpanel.privacy.label "隐私政策:">
+
+<!-- Recurrence dialog -->
+<!ENTITY recurrence.title.label "编辑重复事件">
+
+<!ENTITY event.repeat.does.not.repeat.label "不重复">
+<!ENTITY event.repeat.daily.label "每天">
+<!ENTITY event.repeat.weekly.label "每周">
+<!ENTITY event.repeat.every.weekday.label "每个周末">
+<!ENTITY event.repeat.bi.weekly.label "每两周">
+<!ENTITY event.repeat.monthly.label "每月">
+<!ENTITY event.repeat.yearly.label "每年">
+<!ENTITY event.repeat.custom.label "定制…">
+
+<!ENTITY event.recurrence.pattern.label "重复模式">
+<!ENTITY event.recurrence.occurs.label "重复" >
+<!ENTITY event.recurrence.day.label "每日" >
+<!ENTITY event.recurrence.week.label "每周" >
+<!ENTITY event.recurrence.month.label "每月" >
+<!ENTITY event.recurrence.year.label "每年" >
+
+<!ENTITY event.recurrence.pattern.every.label "每" >
+<!ENTITY repeat.units.days.both "天" >
+<!ENTITY event.recurrence.pattern.every.weekday.label "每个工作周" >
+
+<!ENTITY event.recurrence.pattern.weekly.every.label "每" >
+<!ENTITY repeat.units.weeks.both "周" >
+<!ENTITY event.recurrence.on.label "在:" >
+
+<!ENTITY event.recurrence.pattern.monthly.every.label "每" >
+<!ENTITY repeat.units.months.both "月" >
+<!ENTITY event.recurrence.monthly.every.label "每" >
+<!ENTITY event.recurrence.monthly.first.label "第一">
+<!ENTITY event.recurrence.monthly.second.label "第二">
+<!ENTITY event.recurrence.monthly.third.label "第三">
+<!ENTITY event.recurrence.monthly.fourth.label "第四">
+<!ENTITY event.recurrence.monthly.fifth.label "第五">
+<!ENTITY event.recurrence.monthly.last.label "最后">
+<!ENTITY event.recurrence.pattern.monthly.week.1.label "星期天" >
+<!ENTITY event.recurrence.pattern.monthly.week.2.label "星期一" >
+<!ENTITY event.recurrence.pattern.monthly.week.3.label "星期二" >
+<!ENTITY event.recurrence.pattern.monthly.week.4.label "星期三" >
+<!ENTITY event.recurrence.pattern.monthly.week.5.label "星期四" >
+<!ENTITY event.recurrence.pattern.monthly.week.6.label "星期五" >
+<!ENTITY event.recurrence.pattern.monthly.week.7.label "星期六" >
+<!ENTITY event.recurrence.repeat.dayofmonth.label "天/月">
+<!ENTITY event.recurrence.repeat.recur.label "重复间隔天数">
+
+<!ENTITY event.recurrence.every.label "每:" >
+<!ENTITY repeat.units.years.both "年" >
+<!ENTITY event.recurrence.pattern.yearly.every.month.label "每" >
+
+<!-- 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 "一月" >
+<!ENTITY event.recurrence.pattern.yearly.month.2.label "二月" >
+<!ENTITY event.recurrence.pattern.yearly.month.3.label "三月" >
+<!ENTITY event.recurrence.pattern.yearly.month.4.label "四月" >
+<!ENTITY event.recurrence.pattern.yearly.month.5.label "五月" >
+<!ENTITY event.recurrence.pattern.yearly.month.6.label "六月" >
+<!ENTITY event.recurrence.pattern.yearly.month.7.label "七月" >
+<!ENTITY event.recurrence.pattern.yearly.month.8.label "八月" >
+<!ENTITY event.recurrence.pattern.yearly.month.9.label "九月" >
+<!ENTITY event.recurrence.pattern.yearly.month.10.label "十月" >
+<!ENTITY event.recurrence.pattern.yearly.month.11.label "十一月" >
+<!ENTITY event.recurrence.pattern.yearly.month.12.label "十二月" >
+<!ENTITY event.recurrence.yearly.every.label "每">
+<!ENTITY event.recurrence.yearly.first.label "第一">
+<!ENTITY event.recurrence.yearly.second.label "第二">
+<!ENTITY event.recurrence.yearly.third.label "第三">
+<!ENTITY event.recurrence.yearly.fourth.label "第四">
+<!ENTITY event.recurrence.yearly.fifth.label "第五">
+<!ENTITY event.recurrence.yearly.last.label "最后">
+<!ENTITY event.recurrence.pattern.yearly.week.1.label "星期天" >
+<!ENTITY event.recurrence.pattern.yearly.week.2.label "星期一" >
+<!ENTITY event.recurrence.pattern.yearly.week.3.label "星期二" >
+<!ENTITY event.recurrence.pattern.yearly.week.4.label "星期三" >
+<!ENTITY event.recurrence.pattern.yearly.week.5.label "星期四" >
+<!ENTITY event.recurrence.pattern.yearly.week.6.label "星期五" >
+<!ENTITY event.recurrence.pattern.yearly.week.7.label "星期六" >
+<!ENTITY event.recurrence.pattern.yearly.day.label "日" >
+<!ENTITY event.recurrence.of.label "之" >
+<!ENTITY event.recurrence.pattern.yearly.month2.1.label "一月" >
+<!ENTITY event.recurrence.pattern.yearly.month2.2.label "二月" >
+<!ENTITY event.recurrence.pattern.yearly.month2.3.label "三月" >
+<!ENTITY event.recurrence.pattern.yearly.month2.4.label "四月" >
+<!ENTITY event.recurrence.pattern.yearly.month2.5.label "五月" >
+<!ENTITY event.recurrence.pattern.yearly.month2.6.label "六月" >
+<!ENTITY event.recurrence.pattern.yearly.month2.7.label "七月" >
+<!ENTITY event.recurrence.pattern.yearly.month2.8.label "八月" >
+<!ENTITY event.recurrence.pattern.yearly.month2.9.label "九月" >
+<!ENTITY event.recurrence.pattern.yearly.month2.10.label "十月" >
+<!ENTITY event.recurrence.pattern.yearly.month2.11.label "十一月" >
+<!ENTITY event.recurrence.pattern.yearly.month2.12.label "十二月" >
+
+<!ENTITY event.recurrence.range.label "重复发生的范围">
+<!ENTITY event.recurrence.forever.label "无结束日期" >
+<!ENTITY event.recurrence.repeat.for.label "创建" >
+<!ENTITY event.recurrence.appointments.label "指派" >
+<!ENTITY event.repeat.until.label "重复直到" >
+<!ENTITY event.recurrence.preview.label "预览">
+
+<!-- Attendees dialog -->
+<!ENTITY invite.title.label "邀请参与者">
+<!ENTITY event.organizer.label "组织者">
+<!ENTITY event.freebusy.suggest.slot "建议时间间距:">
+<!ENTITY event.freebusy.button.next.slot "下一段空闲">
+<!ENTITY event.freebusy.button.previous.slot "上一段空闲">
+<!ENTITY event.freebusy.zoom "缩放:">
+<!ENTITY event.freebusy.legend.free "空闲" >
+<!ENTITY event.freebusy.legend.busy "繁忙" >
+<!ENTITY event.freebusy.legend.busy_tentative "暂定" >
+<!ENTITY event.freebusy.legend.busy_unavailable "不在办公室" >
+<!ENTITY event.freebusy.legend.unknown "无信息" >
+<!ENTITY event.attendee.role.required "必须参与者">
+<!ENTITY event.attendee.role.optional "可选参与者">
+<!ENTITY event.attendee.role.chair "主席">
+<!ENTITY event.attendee.role.nonparticipant "非参与者">
+<!ENTITY event.attendee.usertype.individual "个人">
+<!ENTITY event.attendee.usertype.group "群组">
+<!ENTITY event.attendee.usertype.resource "资源">
+<!ENTITY event.attendee.usertype.room "房间">
+<!ENTITY event.attendee.usertype.unknown "未知的">
+
+<!-- Timezone dialog -->
+<!ENTITY timezone.title.label "请指定时区">
+<!ENTITY event.timezone.custom.label "更多时区…">
+
+<!-- Read-Only dialog -->
+<!ENTITY read.only.general.label "常规">
+<!ENTITY read.only.title.label "标题:">
+<!ENTITY read.only.calendar.label "日历:">
+<!ENTITY read.only.event.start.label "开始日期:">
+<!ENTITY read.only.task.start.label "开始日期:">
+<!ENTITY read.only.event.end.label "截止日期:">
+<!ENTITY read.only.task.due.label "截止时间:">
+<!ENTITY read.only.repeat.label "重复:">
+<!ENTITY read.only.location.label "位置:">
+<!ENTITY read.only.category.label "分类:">
+<!ENTITY read.only.organizer.label "组织:">
+<!ENTITY read.only.reply.label "重复:">
+<!ENTITY read.only.accept.label "我将参加">
+<!ENTITY read.only.decline.label "我不参加">
+<!ENTITY read.only.tentative.label "我可能参加">
+<!ENTITY read.only.needs.action.label "稍后确认">
+<!ENTITY read.only.reminder.label "提醒:">
+<!ENTITY read.only.attachments.label "附件:">
+<!ENTITY read.only.attendees.label "参与者">
+<!ENTITY read.only.description.label "描述">
+<!ENTITY read.only.link.label "相关链接">
+
+<!-- Summary dialog -->
+<!ENTITY summary.dialog.saveclose.label "保存并关闭">
+<!ENTITY summary.dialog.saveclose.tooltiptext "保存变更并关闭窗口,但不更改参与状态、不发送回复">
+<!ENTITY summary.dialog.accept.label "接受">
+<!ENTITY summary.dialog.accept.tooltiptext "接受邀请">
+<!ENTITY summary.dialog.tentative.label "暂定">
+<!ENTITY summary.dialog.tentative.tooltiptext "暂时接受邀请">
+<!ENTITY summary.dialog.decline.label "拒绝">
+<!ENTITY summary.dialog.decline.tooltiptext "拒绝邀请">
+<!ENTITY summary.dialog.dontsend.label "不要发送回复">
+<!ENTITY summary.dialog.dontsend.tooltiptext "变更您的参与状态而不发送回复给组织者,并关闭窗口">
+<!ENTITY summary.dialog.send.label "立刻发送回复">
+<!ENTITY summary.dialog.send.tooltiptext "发送回复给组织者,并关闭窗口">
diff --git a/l10n-zh-CN/calendar/chrome/calendar/calendar-event-dialog.properties b/l10n-zh-CN/calendar/chrome/calendar/calendar-event-dialog.properties
new file mode 100755
index 0000000000..36b11d6019
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/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=每天;每 #1 天
+repeatDetailsRuleDaily4=每周日
+
+# 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=每 %1$S;每 #2 周的 %1$S
+weeklyNthOnNounclass2=每 %1$S;每 #2 周的 %1$S
+
+# LOCALIZATION NOTE (weeklyEveryNth):
+# Edit recurrence window -> Recurrence pattern -> Weekly repeat rules
+# #1 - interval
+# e.g. "every 5 weeks"
+weeklyEveryNth=每周;每 #1 周
+
+# 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=星期天
+repeatDetailsDay1Nounclass=nounclass1
+repeatDetailsDay2=星期一
+repeatDetailsDay2Nounclass=nounclass1
+repeatDetailsDay3=星期二
+repeatDetailsDay3Nounclass=nounclass1
+repeatDetailsDay4=星期三
+repeatDetailsDay4Nounclass=nounclass1
+repeatDetailsDay5=星期四
+repeatDetailsDay5Nounclass=nounclass1
+repeatDetailsDay6=星期五
+repeatDetailsDay6Nounclass=nounclass1
+repeatDetailsDay7=星期六
+repeatDetailsDay7Nounclass=nounclass1
+
+# LOCALIZATION NOTE (repeatDetailsAnd)
+# Used to show a number of weekdays in a list
+# i.e. "Sunday, Monday, Tuesday " + and + " Wednesday"
+repeatDetailsAnd=并且
+
+# 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;每 #2 个月的 %1$S
+monthlyRuleNthOfEveryNounclass2=每月的 %1$S;每 #2 个月的 %1$S
+
+# 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=每月的 %1$S;每 #2 月的 %1$S
+monthlyEveryOfEveryNounclass2=每月的 %1$S;每 #2 月的 %1$S
+
+# 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=第 %1$S 日;第 %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;每 #2 个月的 %1$S
+
+# 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=每月最后一天; 每 #1 月最后一天
+
+# 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=每月的每天;每第 #2 个月的每天
+
+# 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=第一
+repeatOrdinal2Nounclass1=第二
+repeatOrdinal3Nounclass1=第三
+repeatOrdinal4Nounclass1=第四
+repeatOrdinal5Nounclass1=第五
+repeatOrdinal-1Nounclass1=最后
+repeatOrdinal1Nounclass2=第一
+repeatOrdinal2Nounclass2=第二
+repeatOrdinal3Nounclass2=第三
+repeatOrdinal4Nounclass2=第四
+repeatOrdinal5Nounclass2=第五
+repeatOrdinal-1Nounclass2=最后
+
+# 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=每 %1$S %2$S;每 #3 年中的 %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=每 %3$S 的 %1$S %2$S;每 #4 年 %3$S 的 %1$S %2$S
+yearlyNthOnNthOfNounclass2=每 %3$S 的 %1$S %2$S;每 #4 年 %3$S 的 %1$S %2$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=%2$S 的每个 %1$S;每 #3 年中 %2$S 的每个 %1$S
+yearlyOnEveryNthOfNthNounclass2=%2$S 的每个 %1$S;每 #3 年中 %2$S 的每个 %1$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=%1$S 月的每一天;每 #2 年的 %1$S 月的每一天
+
+repeatDetailsMonth1=一月
+repeatDetailsMonth2=二月
+repeatDetailsMonth3=三月
+repeatDetailsMonth4=四月
+repeatDetailsMonth5=五月
+repeatDetailsMonth6=六月
+repeatDetailsMonth7=七月
+repeatDetailsMonth8=八月
+repeatDetailsMonth9=九月
+repeatDetailsMonth10=十月
+repeatDetailsMonth11=十一月
+repeatDetailsMonth12=十二月
+
+# LOCALIZATION NOTE (repeatCount):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event start time (e.g. hh:mm (PM/AM))
+# %4$S - event end time (e.g. hh:mm (PM/AM))
+# #5 - event occurence times: number
+# e.g. with monthlyRuleNthOfEvery:
+# "Occurs the first Sunday of every 3 month
+# only on 1/1/2009"
+# from 5:00 PM to 6:00 PM"
+# "Occurs the first Sunday of every 3 month
+# effective 1/1/2009 for 5 times
+# from 5:00 PM to 6:00 PM"
+repeatCount=发生 %1$S\n有效期从 %2$S 开始重复 #5 次\n从 %3$S 到 %4$S时间段;发生 %1$S\n有效期从 %2$S 开始重复 #5 次\n从 %3$S 到 %4$S时间段。
+
+# LOCALIZATION NOTE (repeatCountAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# #3 - event occurence times: number
+# e.g. with monthlyRuleNthOfEvery:
+# "Occurs the first Sunday of every 3 month
+# only on 1/1/2009"
+# "Occurs the first Sunday of every 3 month
+# effective 1/1/2009 for 5 times"
+repeatCountAllDay=发生 %1$S\n生效日 %2$S 重复 #3 次。;发生 %1$S\n生效日 %2$S 重复 #3 次。
+
+# 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=发生 %1$S\n有效期从 %2$S 到 %3$S\n从 %4$S 到 %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=发生 %1$S\n有效期从 %2$S 到 %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=发生 %1$S\n生效日 %2$S\n从 %3$S 到 %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=发生 %1$S\n 生效日 %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=最后一天
+
+# 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=单击此处查看详细信息
+
+# 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=未知的详细重复信息
+
+# differences between the dialog for an Event or a Task
+newEvent=新建事件
+newTask=新任务
+itemMenuLabelEvent=事件
+itemMenuAccesskeyEvent2=F
+itemMenuLabelTask=任务
+itemMenuAccesskeyTask2=F
+
+emailSubjectReply=回复: %1$S
+
+# Link Location Dialog
+specifyLinkLocation=请指定链接位置
+enterLinkLocation=输入网页地址或文档位置。
+
+summaryDueTaskLabel=期限:
+
+# Attach File Dialog
+attachViaFilelink=使用文件 %1$S
+selectAFile=请选择要附加的文件
+removeCalendarsTitle=移除附件
+
+# LOCALIZATION NOTE (removeAttachmentsText): Semi-colon list of plural forms for
+# prompting attachment removal.
+# See http://developer.mozilla.org/en/Localization_and_Plurals
+removeAttachmentsText=您确定要移除 #1 个附件吗?
+
+# 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=星期天
+repeatDetailsDay2Plural=星期一
+repeatDetailsDay3Plural=星期二
+repeatDetailsDay4Plural=星期三
+repeatDetailsDay5Plural=星期四
+repeatDetailsDay6Plural=星期五
+repeatDetailsDay7Plural=星期六
+
+# 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=永远
+
+# 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=最后一天
+
+# 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 已接受该邀请,但做了一个计数提案:
+
+# 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 已拒绝该邀请,但做了一个计数提案:
+
+# 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 已委托他人代为参与此邀请,但提出了反对意见:
+
+# 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 尚未决定是否参加和做计数提案:
+
+# 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 已暂且接受该邀请并做了计数提案:
+
+# LOCALIZATION NOTE (counterOnPreviousVersionNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+counterOnPreviousVersionNotification=这是一个此事件以前版本的计数提案。
+
+# LOCALIZATION NOTE (counterOnCounterDisallowedNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+counterOnCounterDisallowedNotification=您不允许在发出邀请时计数。
+
+# LOCALIZATION NOTE (eventAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation
+eventAccepted=您已接受此邀请
+
+# LOCALIZATION NOTE (eventTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation tentatively
+eventTentative=您已暂时接受此邀请
+
+# LOCALIZATION NOTE (eventDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the event invitation
+eventDeclined=您已拒绝此邀请
+
+# 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=您已委托他人代为参与此邀请
+
+# LOCALIZATION NOTE (eventNeedsAction) - this will be displayed as notification
+# in the summary dialog if the user hasn't yet responded to an invitation
+eventNeedsAction=您尚未回复此邀请
+
+# LOCALIZATION NOTE (taskAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the assigned task
+taskAccepted=您已接受此任务
+
+# LOCALIZATION NOTE (taskTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted tentatively the assigned task
+taskTentative=您已暂时接受此任务
+
+# LOCALIZATION NOTE (taskDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the assigned task
+taskDeclined=您已拒绝此任务
+
+# LOCALIZATION NOTE (taskDelegated) - this will be displayed as notification
+# in the summary dialog if the user has delegated his/her assignement to one or
+# more others (without attending / working on it his/herself)
+taskDelegated=您已委托他人代为完成此任务
+
+# 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=您尚未回复此任务
+
+# LOCALIZATION NOTE (taskInProgress) - this will be displayed as notification
+# in the summary dialog if the user is working on an assigned task
+taskInProgress=您已开始进行此任务
+
+# 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=您已完成此任务
+
+# 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=发送并关闭
+
+# 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=通知参与人员并关闭
+
+# 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=保存并发送
+
+# 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=保存并通知参与人员
+
+# 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=保存并发送
+
+# 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=发送并关闭
+
+# 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=与会者(%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=附件(%1$S 项):
diff --git a/l10n-zh-CN/calendar/chrome/calendar/calendar-extract.properties b/l10n-zh-CN/calendar/chrome/calendar/calendar-extract.properties
new file mode 100755
index 0000000000..206949a8ca
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/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 | 截止日期为 | 截止日期:
+
+# 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 = 上周 | 已发送 | 电邮 | 电子邮件 | 代替 | > | unfortunately | in | 不是
+
+# LOCALIZATION NOTE (no.datetime.suffix):
+# datetimes followed by these won't be used
+no.datetime.suffix = 楼 | 层 | : | 电邮 | 电子邮件 | > | % | 元 | 美元 | $
+
+# LOCALIZATION NOTE (from.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (from.today):
+# must not be empty!
+from.today = 今天 | 今日 | 本日
+
+from.tomorrow = 明天
+# LOCALIZATION NOTE (until.*):
+# can be a list of values, separate variants by |
+until.tomorrow =至明天 | 至明日 | 迄明天 | 迄明日 | 明天为止 | 明日为止 | 隔夜
+
+# LOCALIZATION NOTE (from.ordinal.date):
+# %1$S = matches numbers 1-31 and number.x
+# should not have "%1$S" as this would match any single number in email to a time
+from.ordinal.date = %1$Sst | %1$Snd | %1$Srd | %1$Sth
+
+# LOCALIZATION NOTE (until.ordinal.date):
+# %1$S = matches numbers 1-31 and number.x
+until.ordinal.date =第 %1$S | %1$S 日 | %1$S 号
+
+from.noon = 中午
+until.noon =中午 | 正午
+
+# LOCALIZATION NOTE (from.hour):
+# %1$S = matches numbers 0-23 and number.0-number.23
+# should not have "%1$S" as this would match any single number in email to a time
+from.hour = 在 %1$S | 大约 %1$S | %1$S - | %1$S 至
+
+# LOCALIZATION NOTE (until.hour):
+# %1$S = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour = - %1$S | 至 %1$S | 直到 %1$S | 到 %1$S
+
+# LOCALIZATION NOTE (from.hour.am):
+# %1$S = matches numbers 0-23 and number.0-number.23
+from.hour.am = 上午 %1$S 点 | 上午 %1$S 时
+
+# LOCALIZATION NOTE (until.hour.am):
+# %1$S = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour.am =上午 %1$S 时 | 上午 %1$S 点 | 早上 %1$S 时 | 早上 %1$S 点 | 凌晨 %1$S 点 | 凌晨 %1$S 时 | %1$S am | %1$S AM | %1$S a.m.
+
+# LOCALIZATION NOTE (from.hour.pm):
+# %1$S = matches numbers 0-23 and number.0-number.23
+from.hour.pm = 下午 %1$S 点 | 下午 %1$S 时 | 下午 %1$S 时
+
+# LOCALIZATION NOTE (until.hour.pm):
+# %1$S = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour.pm =下午 %1$S 点 | 下午 %1$S 时 | %1$S p.m. | %1$S PM | 晚上 %1$S 点 | 晚上 %1$S 时
+
+# LOCALIZATION NOTE (from.half.hour.before):
+# denotes times 30 minutes before next full hour
+from.half.hour.before = %1$S 之前的半小时
+
+# LOCALIZATION NOTE (until.half.hour.before):
+# denotes times 30 minutes before next full hour
+until.half.hour.before =%1$S 点前半小时
+
+# LOCALIZATION NOTE (from.half.hour.after):
+# denotes times 30 minutes after last full hour
+from.half.hour.after = %1$S 半小时后
+
+# LOCALIZATION NOTE (until.half.hour.after):
+# denotes times 30 minutes after last full hour
+until.half.hour.after =%1$S 点半
+
+# LOCALIZATION NOTE (from.hour.minutes):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+from.hour.minutes = %1$S:%2$S | 在 %1$S%2$S
+
+# LOCALIZATION NOTE (until.hour.minutes):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+until.hour.minutes =%1$S:%2$S | 于 %$S%2$S | 的 %1$S:%2$S
+
+# LOCALIZATION NOTE (from.hour.minutes.am):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+from.hour.minutes.am = 上午 %1$S:%2$S | 上午 %1$S:%2$S
+
+# LOCALIZATION NOTE (until.hour.minutes.am):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+until.hour.minutes.am =上午 %1$S:%2$S | 早上 %1$S:%2$S | 早上 %1$S 点 %2$S 分 | 上午 %1$S 点 %2$S 分 | 凌晨 %1$S 点 %2$S 分 | 中午 %1$S 点 %2$S 分 | 早上 %1$S 时 %2$S 分 | 上午 %1$S 时 %2$S 分 | 凌晨 %1$S 时 %2$S 分 | %1$S:%2$S a.m. | %1$S:%2$S am | %1$S:%2$S AM
+
+# LOCALIZATION NOTE (from.hour.minutes.pm):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+from.hour.minutes.pm = 下午 %1$S:%2$S | 下午 %1$S:%2$S |下午 %1$S:%2$S
+
+# LOCALIZATION NOTE (until.hour.minutes.pm):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+until.hour.minutes.pm =到下午 %1$S:%2$S | 到晚上 %1$S:%2$S | 到下午 %1$S 点 %2$S 分 | 到晚上 %1$S 点 %2$S 分 | %1$S:%2$S pm | %1$S:%2$S PM | %1$S:%2$S p.m.
+
+# LOCALIZATION NOTE (from.monthname.day):
+# %1$S = matches numbers 1-31 and number.x
+# %2$S = matches monthname
+from.monthname.day = %1$S %2$S | %2$S %1$S | %2$S %1$Sst | %2$S %1$Snd | %2$S %1$Srd | %2$S %1$Sth | %1$Sst of %2$S | %1$Snd of %2$S | %1$Srd of %2$S | %1$Sth of %2$S
+
+# LOCALIZATION NOTE (until.monthname.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches monthname
+until.monthname.day =到 %2$S 月 %1$S 日 | 至 %2$S 月 %1$S 日 | 到 %2$S 月 %1$S 号 | 至 %2$S 月 %1$S 号 | %2$S 月 %1$S 号止 | %2$S 月 %1$S 号前 | %2$S 月 %1$S 日止 | %2$S 月 %1$S 日前| 到 %2$S/%1$S | 至 %2$S/%1$S | %2$S/%1$S 止 | %2$S/%1$S 前| ~ %2$S/%1$S | - %2$S/%1$S
+
+# LOCALIZATION NOTE (from.month.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches numbers 1-12
+from.month.day = %2$S/%1$S
+
+# LOCALIZATION NOTE (until.month.day):
+# %1$S = matches numbers 1-31 and number.x
+# %2$S = matches numbers 1-12
+until.month.day =
+
+# LOCALIZATION NOTE (from.year.month.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches numbers 1-12
+# %3$S = matches 2/4 numbers
+from.year.month.day = %2$S/%1$S/%3$S | %3$S/%2$S/%1$S | %3$S-%2$S-%1$S
+
+# LOCALIZATION NOTE (until.year.month.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches numbers 1-12
+# %3$S = matches 2/4 numbers
+until.year.month.day =至 %3$S/%2$S/%1$S | 至 %3$S-%2$S-%1$S | %3$S/%2$S/%1$S 前 | %3$S/%2$S/%1$S 止 | %3$S/%2$S/%1$S 为止
+
+# LOCALIZATION NOTE (from.year.monthname.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches monthname
+# %3$S = matches 2/4 numbers
+from.year.monthname.day = %1$S %2$S %3$S | %1$Sst %2$S %3$S | %1$Snd %2$S %3$S | %1$Srd %2$S %3$S | %1$Sth %2$S %3$S | %2$S %1$S, %3$S | %3$S-%2$S-%1$S
+
+# LOCALIZATION NOTE (until.year.monthname.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches monthname
+# %3$S = matches 2/4 numbers
+until.year.monthname.day =至 %3$S/%2$S/%1$S | 至 %3$S-%2$S-%1$S | %3$S/%2$S/%1$S 前 | %3$S/%2$S/%1$S 止 | %3$S/%2$S/%1$S 为止
+
+# LOCALIZATION NOTE (duration.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (duration.minutes):
+# %1$S = matches 1/2 numbers and number.0 - and number.31
+duration.minutes = %1$S 分钟 | %1$S 分 | %1$S 分
+
+# LOCALIZATION NOTE (duration.hours):
+# %1$S = matches 1/2 numbers and number.0 - and number.31
+duration.hours = %1$S 小时 | %1$S 小时
+
+# LOCALIZATION NOTE (duration.days):
+# %1$S = matches 1/2 numbers and number.0 - and number.31
+duration.days = %1$S 天
+
+# LOCALIZATION NOTE (month.*):
+# can be a list of values, separate variants by |
+month.1 = 一月
+month.2 = 二月
+month.3 = 三月
+month.4 = 四月
+month.5 = 五月
+month.6 = 六月
+month.7 = 七月
+month.8 = 八月
+month.9 = 九月
+month.10 = 十月
+month.11 = 十一月
+month.12 = 十二月
+
+# 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 = 周日 | 星期日 | 星期天 | 礼拜天 | 礼拜日
+from.weekday.1 = 周一 | 星期一 | 礼拜一
+from.weekday.2 = 周二 | 星期二 | 礼拜二
+from.weekday.3 = 周三 | 星期三 | 礼拜三
+from.weekday.4 = 周四 | 星期四 | 礼拜四
+from.weekday.5 = 周五 | 星期五 | 礼拜五
+from.weekday.6 = 周六 | 星期六 | 礼拜六
+
+# 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 = 零 | 〇
+number.1 = 1 | 1日
+number.2 = 2 | 2日
+number.3 = 3 | 3日
+number.4 = 4 | 4日
+number.5 = 5 | 5日
+number.6 = 6 | 6日
+number.7 = 7 | 7日
+number.8 = 8 | 8日
+number.9 = 9 | 9日
+number.10 = 10 | 10日
+number.11 = 11 | 11日
+number.12 = 12 | 12日
+number.13 = 13 | 13日
+number.14 = 14 | 14日
+number.15 = 15 | 15日
+number.16 = 16 | 16日
+number.17 = 17 | 17日
+number.18 = 18 | 18日
+number.19 = 19 | 19日
+number.20 = 20 | 20日
+number.21 = 21 | 21日
+number.22 = 22 | 22日
+number.23 = 23 | 23日
+number.24 = 24 | 24日
+number.25 = 25 | 25日
+number.26 = 26 | 26日
+number.27 = 27 | 27日
+number.28 = 28 | 28日
+number.29 = 29 | 29日
+number.30 = 30 | 30日
+number.31 = 31 | 31日
+
+# LOCALIZATION NOTE (alphabet):
+# list all lower and uppercase letters if your language has an alphabet
+# otherwise leave it empty
+alphabet = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
diff --git a/l10n-zh-CN/calendar/chrome/calendar/calendar-invitations-dialog.dtd b/l10n-zh-CN/calendar/chrome/calendar/calendar-invitations-dialog.dtd
new file mode 100755
index 0000000000..d2b9eef31f
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/calendar/calendar-invitations-dialog.dtd
@@ -0,0 +1,19 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<!-- Calendar Invitations Dialog -->
+
+<!ENTITY calendar.invitations.dialog.invitations.text "邀请">
+<!ENTITY calendar.invitations.dialog.statusmessage.updating.text "更新邀请列表。">
+<!ENTITY calendar.invitations.dialog.statusmessage.noinvitations.text "没有发现未确认的邀请。">
+<!-- Calendar Invitations List -->
+
+<!ENTITY calendar.invitations.list.accept.button.label "接受">
+<!ENTITY calendar.invitations.list.decline.button.label "拒绝">
+<!ENTITY calendar.invitations.list.recurrentevent.text "重复事件">
+<!ENTITY calendar.invitations.list.alldayevent.text "全天事件">
+<!ENTITY calendar.invitations.list.location.text "位置:">
+<!ENTITY calendar.invitations.list.organizer.text "组织者:">
+<!ENTITY calendar.invitations.list.attendee.text "参与者:">
+<!ENTITY calendar.invitations.list.none.text "无">
diff --git a/l10n-zh-CN/calendar/chrome/calendar/calendar-invitations-dialog.properties b/l10n-zh-CN/calendar/chrome/calendar/calendar-invitations-dialog.properties
new file mode 100644
index 0000000000..e0cac9c963
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/calendar/calendar-invitations-dialog.properties
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+allday-event=全天事件
+recurrent-event=重复事件
+location=位置:%S
+organizer=组织者:%S
+attendee=参与者:%S
+none=无
diff --git a/l10n-zh-CN/calendar/chrome/calendar/calendar-occurrence-prompt.dtd b/l10n-zh-CN/calendar/chrome/calendar/calendar-occurrence-prompt.dtd
new file mode 100755
index 0000000000..5864a9335f
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/calendar/calendar-occurrence-prompt.dtd
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY buttons.occurrence.accesskey "t">
+<!ENTITY buttons.allfollowing.accesskey "f">
+<!ENTITY buttons.parent.accesskey "a">
diff --git a/l10n-zh-CN/calendar/chrome/calendar/calendar-occurrence-prompt.properties b/l10n-zh-CN/calendar/chrome/calendar/calendar-occurrence-prompt.properties
new file mode 100755
index 0000000000..443d49dd5d
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/calendar/calendar-occurrence-prompt.properties
@@ -0,0 +1,63 @@
+# 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=是一个重复事件
+header.isrepeating.task.label=是一个重复任务\u0020
+
+header.containsrepeating.event.label=包含重复事件
+header.containsrepeating.task.label=包含重复任务
+header.containsrepeating.mixed.label=包含不同类型的重复项目
+
+windowtitle.event.copy=复制重复事件
+windowtitle.task.copy=复制重复任务
+windowtitle.mixed.copy=复制重复项目
+windowtitle.event.cut=剪切重复事件
+windowtitle.task.cut=剪切重复任务
+windowtitle.mixed.cut=剪切重复项目
+windowtitle.event.delete=删除重复事件
+windowtitle.task.delete=删除重复任务
+windowtitle.mixed.delete=删除重复项目
+windowtitle.event.edit=编辑重复事件
+windowtitle.task.edit=编辑重复任务
+
+buttons.occurrence.delete.label=只删除当前事项
+buttons.occurrence.edit.label=只编辑当前事项
+
+buttons.allfollowing.delete.label=删除当前和将来的重复事项
+buttons.allfollowing.edit.label=编辑当前和将来的重复事项
+
+buttons.parent.delete.label=删除所有重复事项
+buttons.parent.edit.label=编辑所有重复事项
+windowtitle.mixed.edit=编辑重复项目
+windowtitle.multipleitems=已选择项目
+
+buttons.single.occurrence.copy.label=只复制此次
+buttons.single.occurrence.cut.label=只剪切此次
+buttons.single.occurrence.delete.label=只删除此次
+buttons.single.occurrence.edit.label=只编辑此次
+
+buttons.multiple.occurrence.copy.label=只复制选中的重复事项
+buttons.multiple.occurrence.cut.label=只剪切选中的重复事项
+buttons.multiple.occurrence.delete.label=只删除选中的重复事项
+buttons.multiple.occurrence.edit.label=只编辑选中的重复事项
+
+buttons.single.allfollowing.copy.label=复制当前和将来的重复事项
+buttons.single.allfollowing.cut.label=剪切当前和将来的重复事项
+buttons.single.allfollowing.delete.label=删除当前和将来的重复事项
+buttons.single.allfollowing.edit.label=编辑当前和将来的重复事项
+
+buttons.multiple.allfollowing.copy.label=复制选中和将来的重复事项
+buttons.multiple.allfollowing.cut.label=剪切选中和将来的重复事项
+buttons.multiple.allfollowing.delete.label=删除选中和将来的重复事项
+buttons.multiple.allfollowing.edit.label=编辑选中和将来的重复事项
+
+buttons.single.parent.copy.label=复制所有重复事项
+buttons.single.parent.cut.label=剪切所有重复事项
+buttons.single.parent.delete.label=删除所有重复事项
+buttons.single.parent.edit.label=编辑所有重复事项
+
+buttons.multiple.parent.copy.label=复制选中项的所有重复事项
+buttons.multiple.parent.cut.label=剪切选中项的所有重复事项
+buttons.multiple.parent.delete.label=删除选中项的所有重复事项
+buttons.multiple.parent.edit.label=编辑选中项的所有重复事项
diff --git a/l10n-zh-CN/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd b/l10n-zh-CN/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd
new file mode 100755
index 0000000000..493f933ee7
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd
@@ -0,0 +1,14 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<!-- Calendar Subscriptions Dialog -->
+
+<!ENTITY calendar.subscriptions.dialog.title "订阅日历">
+<!ENTITY calendar.subscriptions.dialog.search.label.value "显示日历内容:">
+<!ENTITY calendar.subscriptions.dialog.search.button.label "搜索">
+<!ENTITY calendar.subscriptions.dialog.select.label.value "选择要订阅的日历:">
+<!ENTITY calendar.subscriptions.dialog.subscribe.button.label "订阅">
+<!ENTITY calendar.subscriptions.dialog.unsubscribe.button.label "取消订阅">
+<!ENTITY calendar.subscriptions.dialog.statusmessage.busy.label "搜索…">
+<!ENTITY calendar.subscriptions.dialog.statusmessage.nomatches.label "未找到匹配项。">
diff --git a/l10n-zh-CN/calendar/chrome/calendar/calendar.dtd b/l10n-zh-CN/calendar/chrome/calendar/calendar.dtd
new file mode 100755
index 0000000000..cbbd8ecab7
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/calendar/calendar.dtd
@@ -0,0 +1,407 @@
+<!-- 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 "日历">
+<!ENTITY calendar.calendar.accesskey "C">
+
+<!ENTITY calendar.newevent.button.tooltip "创建新的事件" >
+<!ENTITY calendar.newtask.button.tooltip "创建新的任务" >
+
+<!ENTITY calendar.unifinder.showcompletedtodos.label "显示已完成任务">
+
+<!ENTITY calendar.today.button.label "今天">
+<!ENTITY calendar.tomorrow.button.label "明天">
+<!ENTITY calendar.upcoming.button.label "即将到来">
+
+<!ENTITY calendar.events.filter.all.label "所有事件">
+<!ENTITY calendar.events.filter.today.label "今日事件">
+<!ENTITY calendar.events.filter.future.label "全部未来事件">
+<!ENTITY calendar.events.filter.current.label "已选日期">
+<!ENTITY calendar.events.filter.currentview.label "当前视图中的事件">
+<!ENTITY calendar.events.filter.next7Days.label "后7天事件">
+<!ENTITY calendar.events.filter.next14Days.label "后14天事件">
+<!ENTITY calendar.events.filter.next31Days.label "后31天事件">
+<!ENTITY calendar.events.filter.thisCalendarMonth.label "本月事件">
+
+<!-- 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 "完成">
+<!ENTITY calendar.unifinder.tree.done.tooltip2 "按完成状态排序">
+<!ENTITY calendar.unifinder.tree.priority.label "优先">
+<!ENTITY calendar.unifinder.tree.priority.tooltip2 "按优先级排序">
+<!ENTITY calendar.unifinder.tree.title.label "标题">
+<!ENTITY calendar.unifinder.tree.title.tooltip2 "按标题排序">
+<!ENTITY calendar.unifinder.tree.percentcomplete.label "&#037; 完成">
+<!ENTITY calendar.unifinder.tree.percentcomplete.tooltip2 "按完成百分比排序">
+<!ENTITY calendar.unifinder.tree.startdate.label "开始">
+<!ENTITY calendar.unifinder.tree.startdate.tooltip2 "按开始日期排序">
+<!ENTITY calendar.unifinder.tree.enddate.label "结束">
+<!ENTITY calendar.unifinder.tree.enddate.tooltip2 "按结束日期排序">
+<!ENTITY calendar.unifinder.tree.duedate.label "期限">
+<!ENTITY calendar.unifinder.tree.duedate.tooltip2 "按到期日期排序">
+<!ENTITY calendar.unifinder.tree.completeddate.label "已完成">
+<!ENTITY calendar.unifinder.tree.completeddate.tooltip2 "按完成日期排序">
+<!ENTITY calendar.unifinder.tree.categories.label "类别">
+<!ENTITY calendar.unifinder.tree.categories.tooltip2 "按分类排序">
+<!ENTITY calendar.unifinder.tree.location.label "位置">
+<!ENTITY calendar.unifinder.tree.location.tooltip2 "按位置排序">
+<!ENTITY calendar.unifinder.tree.status.label "状态">
+<!ENTITY calendar.unifinder.tree.status.tooltip2 "按状态排序">
+<!ENTITY calendar.unifinder.tree.calendarname.label "日历名称">
+<!ENTITY calendar.unifinder.tree.calendarname.tooltip2 "按日历名称排序">
+<!ENTITY calendar.unifinder.tree.duration.label "期限">
+<!ENTITY calendar.unifinder.tree.duration.tooltip2 "按剩余时限排序">
+<!ENTITY calendar.unifinder.close.tooltip "关闭事件搜索和事件列表">
+
+<!ENTITY calendar.today.button.tooltip "转至今日" >
+<!ENTITY calendar.todaypane.button.tooltip "显示今日窗格" >
+
+<!ENTITY calendar.day.button.tooltip "切换到日视图" >
+<!ENTITY calendar.week.button.tooltip "切换到周视图" >
+<!ENTITY calendar.month.button.tooltip "切换到月视图" >
+<!ENTITY calendar.multiweek.button.tooltip "切换到多周视图" >
+
+<!ENTITY calendar.nextday.label "后一天" >
+<!ENTITY calendar.prevday.label "前一天" >
+<!ENTITY calendar.nextday.accesskey "x" >
+<!ENTITY calendar.prevday.accesskey "s" >
+<!ENTITY calendar.nextweek.label "后一周" >
+<!ENTITY calendar.prevweek.label "前一周" >
+<!ENTITY calendar.nextweek.accesskey "x" >
+<!ENTITY calendar.prevweek.accesskey "s" >
+<!ENTITY calendar.nextmonth.label "后一月" >
+<!ENTITY calendar.prevmonth.label "前一月" >
+<!ENTITY calendar.nextmonth.accesskey "x" >
+<!ENTITY calendar.prevmonth.accesskey "s" >
+
+<!ENTITY calendar.navigation.nextday.tooltip "下一日" >
+<!ENTITY calendar.navigation.prevday.tooltip "上一日" >
+<!ENTITY calendar.navigation.nextweek.tooltip "下一周" >
+<!ENTITY calendar.navigation.prevweek.tooltip "上一周" >
+<!ENTITY calendar.navigation.nextmonth.tooltip "下一月" >
+<!ENTITY calendar.navigation.prevmonth.tooltip "上一月" >
+
+<!ENTITY calendar.newevent.button.label "新建事件" >
+<!ENTITY calendar.newtask.button.label "新建任务" >
+<!ENTITY calendar.print.button.label "打印" >
+<!ENTITY calendar.print.button.accesskey "P">
+
+<!ENTITY calendar.day.button.label "日" >
+<!ENTITY calendar.week.button.label "周" >
+<!ENTITY calendar.month.button.label "月" >
+<!ENTITY calendar.multiweek.button.label "多周" >
+<!ENTITY calendar.onlyworkday.checkbox.label "仅显示工作日" >
+<!ENTITY calendar.onlyworkday.checkbox.accesskey "r" >
+<!ENTITY calendar.displaytodos.checkbox.label "显示任务" >
+<!ENTITY calendar.displaytodos.checkbox.accesskey "k" >
+<!ENTITY calendar.completedtasks.checkbox.label "显示已完成任务" >
+<!ENTITY calendar.completedtasks.checkbox.accesskey "c" >
+
+<!ENTITY calendar.orientation.label "循环视图" >
+<!ENTITY calendar.orientation.accesskey "o" >
+
+<!ENTITY calendar.search.options.searchfor "包含">
+
+<!ENTITY calendar.list.header.label "日历">
+
+<!ENTITY calendar.task.filter.title.label "显示">
+<!ENTITY calendar.task.filter.all.label "所有">
+<!ENTITY calendar.task.filter.all.accesskey "A">
+<!ENTITY calendar.task.filter.today.label "今天">
+<!ENTITY calendar.task.filter.today.accesskey "T">
+<!ENTITY calendar.task.filter.next7days.label "往后七天">
+<!ENTITY calendar.task.filter.next7days.accesskey "N">
+<!ENTITY calendar.task.filter.notstarted.label "未开始任务">
+<!ENTITY calendar.task.filter.notstarted.accesskey "a">
+<!ENTITY calendar.task.filter.overdue.label "过期的任务">
+<!ENTITY calendar.task.filter.overdue.accesskey "O">
+<!ENTITY calendar.task.filter.completed.label "已完成的任务">
+<!ENTITY calendar.task.filter.completed.accesskey "C">
+<!ENTITY calendar.task.filter.open.label "未完成任务">
+<!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 "当前任务">
+<!ENTITY calendar.task.filter.current.accesskey "u">
+
+<!ENTITY calendar.task-details.title.label "标题">
+<!ENTITY calendar.task-details.organizer.label "从">
+<!ENTITY calendar.task-details.priority.label "优先级">
+<!ENTITY calendar.task-details.priority.low.label "低">
+<!ENTITY calendar.task-details.priority.normal.label "普通">
+<!ENTITY calendar.task-details.priority.high.label "高">
+<!ENTITY calendar.task-details.status.label "状态">
+<!ENTITY calendar.task-details.category.label "分类">
+<!ENTITY calendar.task-details.repeat.label "重复">
+<!ENTITY calendar.task-details.attachments.label "附件">
+<!ENTITY calendar.task-details.start.label "开始日期">
+<!ENTITY calendar.task-details.due.label "截止日期">
+
+<!ENTITY calendar.task.category.button.tooltip "任务分类">
+<!ENTITY calendar.task.complete.button.tooltip "标记选中的任务为已完成">
+<!ENTITY calendar.task.priority.button.tooltip "改变优先级">
+
+<!ENTITY calendar.task.text-filter.textbox.emptytext.base1 "过滤任务 #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 "打开">
+<!ENTITY calendar.context.modifyorviewitem.accesskey "O">
+<!ENTITY calendar.context.modifyorviewtask.label "打开任务…">
+<!ENTITY calendar.context.modifyorviewtask.accesskey "O">
+<!ENTITY calendar.context.newevent.label "新建事件…">
+<!ENTITY calendar.context.newevent.accesskey "N">
+<!ENTITY calendar.context.newtodo.label "新建任务…">
+<!ENTITY calendar.context.newtodo.accesskey "k">
+<!ENTITY calendar.context.deletetask.label "删除任务">
+<!ENTITY calendar.context.deletetask.accesskey "l">
+<!ENTITY calendar.context.deleteevent.label "删除事件">
+<!ENTITY calendar.context.deleteevent.accesskey "l">
+<!ENTITY calendar.context.cutevent.label "剪切">
+<!ENTITY calendar.context.cutevent.accesskey "t">
+<!ENTITY calendar.context.copyevent.label "复制">
+<!ENTITY calendar.context.copyevent.accesskey "C">
+<!ENTITY calendar.context.pasteevent.label "粘贴">
+<!ENTITY calendar.context.pasteevent.accesskey "P">
+<!ENTITY calendar.context.button.label "今日窗格">
+<!ENTITY calendar.context.button.accesskey "T">
+
+<!ENTITY calendar.context.attendance.menu.label "出席者">
+<!ENTITY calendar.context.attendance.menu.accesskey "d">
+<!ENTITY calendar.context.attendance.occurrence.label "此事件">
+<!ENTITY calendar.context.attendance.all2.label "完整系列">
+<!ENTITY calendar.context.attendance.send.label "立刻发送通知">
+<!ENTITY calendar.context.attendance.send.accesskey "S">
+<!ENTITY calendar.context.attendance.dontsend.label "不要发送通知">
+<!ENTITY calendar.context.attendance.dontsend.accesskey "D">
+
+<!ENTITY calendar.context.attendance.occ.accepted.accesskey "A">
+<!ENTITY calendar.context.attendance.occ.accepted.label "已接受">
+<!ENTITY calendar.context.attendance.occ.tentative.accesskey "y">
+<!ENTITY calendar.context.attendance.occ.tentative.label "暂时接受">
+<!ENTITY calendar.context.attendance.occ.declined.accesskey "c">
+<!ENTITY calendar.context.attendance.occ.declined.label "已拒绝">
+<!ENTITY calendar.context.attendance.occ.delegated.accesskey "g">
+<!ENTITY calendar.context.attendance.occ.delegated.label "已委托他人">
+<!ENTITY calendar.context.attendance.occ.needsaction.accesskey "S">
+<!ENTITY calendar.context.attendance.occ.needsaction.label "尚须处理">
+<!ENTITY calendar.context.attendance.occ.inprogress.accesskey "I">
+<!ENTITY calendar.context.attendance.occ.inprogress.label "进行中">
+<!ENTITY calendar.context.attendance.occ.completed.accesskey "C">
+<!ENTITY calendar.context.attendance.occ.completed.label "已完成">
+
+<!ENTITY calendar.context.attendance.all.accepted.accesskey "e">
+<!ENTITY calendar.context.attendance.all.accepted.label "已接受">
+<!ENTITY calendar.context.attendance.all.tentative.accesskey "v">
+<!ENTITY calendar.context.attendance.all.tentative.label "暂时接受">
+<!ENTITY calendar.context.attendance.all.declined.accesskey "d">
+<!ENTITY calendar.context.attendance.all.declined.label "已拒绝">
+<!ENTITY calendar.context.attendance.all.delegated.accesskey "l">
+<!ENTITY calendar.context.attendance.all.delegated.label "已委托他人">
+<!ENTITY calendar.context.attendance.all.needsaction.accesskey "l">
+<!ENTITY calendar.context.attendance.all.needsaction.label "尚须处理">
+<!ENTITY calendar.context.attendance.all.inprogress.accesskey "p">
+<!ENTITY calendar.context.attendance.all.inprogress.label "进行中">
+<!ENTITY calendar.context.attendance.all.completed.accesskey "m">
+<!ENTITY calendar.context.attendance.all.completed.label "已完成">
+
+<!-- Task Context Menu -->
+<!ENTITY calendar.context.progress.label "进度">
+<!ENTITY calendar.context.progress.accesskey "P">
+<!ENTITY calendar.context.priority.label "优先级">
+<!ENTITY calendar.context.priority.accesskey "r">
+<!ENTITY calendar.context.postpone.label "推迟任务">
+<!ENTITY calendar.context.postpone.accesskey "s">
+
+<!ENTITY percnt "&#38;#37;" ><!--=percent sign-->
+
+<!ENTITY calendar.context.markcompleted.label "标记为已完成">
+<!ENTITY calendar.context.markcompleted.accesskey "o">
+
+<!ENTITY progress.level.0 "已完成 0&percnt;">
+<!ENTITY progress.level.0.accesskey "0">
+<!ENTITY progress.level.25 "已完成 25&percnt;">
+<!ENTITY progress.level.25.accesskey "2">
+<!ENTITY progress.level.50 "已完成 50&percnt;">
+<!ENTITY progress.level.50.accesskey "5">
+<!ENTITY progress.level.75 "已完成 75&percnt;">
+<!ENTITY progress.level.75.accesskey "7">
+<!ENTITY progress.level.100 "已完成 100&percnt;">
+<!ENTITY progress.level.100.accesskey "1">
+
+<!ENTITY priority.level.none "未指定">
+<!ENTITY priority.level.none.accesskey "s">
+<!ENTITY priority.level.low "低">
+<!ENTITY priority.level.low.accesskey "L">
+<!ENTITY priority.level.normal "普通">
+<!ENTITY priority.level.normal.accesskey "N">
+<!ENTITY priority.level.high "高">
+<!ENTITY priority.level.high.accesskey "H">
+
+<!ENTITY calendar.context.postpone.1hour.label "1小时">
+<!ENTITY calendar.context.postpone.1hour.accesskey "H">
+<!ENTITY calendar.context.postpone.1day.label "1天">
+<!ENTITY calendar.context.postpone.1day.accesskey "D">
+<!ENTITY calendar.context.postpone.1week.label "1 周">
+<!ENTITY calendar.context.postpone.1week.accesskey "W">
+
+<!ENTITY calendar.copylink.label "复制链接地址">
+<!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 "删除">
+
+<!-- Server Context Menu -->
+<!ENTITY calendar.context.newserver.label "新建日历…">
+<!ENTITY calendar.context.newserver.accesskey "N">
+<!ENTITY calendar.context.findcalendar.label "查找日历…" >
+<!ENTITY calendar.context.findcalendar.accesskey "F" >
+<!ENTITY calendar.context.deleteserver2.label "删除日历…">
+<!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 "删除日历…">
+<!ENTITY calendar.context.removeserver.accesskey "R">
+<!ENTITY calendar.context.unsubscribeserver.label "取消订阅日历…">
+<!ENTITY calendar.context.unsubscribeserver.accesskey "U">
+<!ENTITY calendar.context.synccalendars.label "同步日历">
+<!ENTITY calendar.context.synccalendars.accesskey "S">
+<!ENTITY calendar.context.publish.label "发布日历…">
+<!ENTITY calendar.context.publish.accesskey "b">
+<!ENTITY calendar.context.export.label "导出日历…">
+<!ENTITY calendar.context.export.accesskey "E">
+<!ENTITY calendar.context.properties.label "属性">
+<!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 "显示所有日历">
+<!ENTITY calendar.context.showall.accesskey "A">
+
+<!ENTITY calendar.context.convertmenu.label "转换到">
+<!ENTITY calendar.context.convertmenu.accesskey.mail "n">
+<!ENTITY calendar.context.convertmenu.accesskey.calendar "v">
+<!ENTITY calendar.context.convertmenu.event.label "事件…">
+<!ENTITY calendar.context.convertmenu.event.accesskey "E">
+<!ENTITY calendar.context.convertmenu.message.label "消息…">
+<!ENTITY calendar.context.convertmenu.message.accesskey "M">
+<!ENTITY calendar.context.convertmenu.task.label "任务…">
+<!ENTITY calendar.context.convertmenu.task.accesskey "T">
+
+<!ENTITY calendar.tasks.view.minimonth.label "小月历">
+<!ENTITY calendar.tasks.view.minimonth.accesskey "M">
+
+<!ENTITY calendar.tasks.view.calendarlist.label "日历列表">
+<!ENTITY calendar.tasks.view.calendarlist.accesskey "L">
+
+<!ENTITY calendar.tasks.view.filtertasks.label "过滤任务">
+<!ENTITY calendar.tasks.view.filtertasks.accesskey "F">
+
+<!-- Calendar Alarm Dialog -->
+
+<!ENTITY calendar.alarm.location.label "位置:" >
+<!ENTITY calendar.alarm.details.label "细节…" >
+
+<!ENTITY calendar.alarm.snoozefor.label "暂缓" >
+<!ENTITY calendar.alarm.snoozeallfor.label "全部暂缓" >
+<!ENTITY calendar.alarm.title.label "日历提醒" >
+<!ENTITY calendar.alarm.dismiss.label "解除" >
+<!ENTITY calendar.alarm.dismissall.label "全部解除" >
+
+<!ENTITY calendar.alarm.snooze.5minutes.label "5分钟" >
+<!ENTITY calendar.alarm.snooze.10minutes.label "10分钟" >
+<!ENTITY calendar.alarm.snooze.15minutes.label "15分钟" >
+<!ENTITY calendar.alarm.snooze.30minutes.label "30分钟" >
+<!ENTITY calendar.alarm.snooze.45minutes.label "45分钟" >
+<!ENTITY calendar.alarm.snooze.1hour.label "1小时" >
+<!ENTITY calendar.alarm.snooze.2hours.label "2小时" >
+<!ENTITY calendar.alarm.snooze.1day.label "1天" >
+
+<!-- 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 "取消暂缓">
+
+<!-- Calendar Server Dialog -->
+<!ENTITY calendar.server.dialog.title.edit "编辑日历">
+<!ENTITY calendar.server.dialog.name.label "日历名称:">
+
+<!-- Calendar Properties -->
+<!ENTITY calendarproperties.color.label "颜色:">
+<!ENTITY calendarproperties.webdav.label "iCalendar (ICS)">
+<!ENTITY calendarproperties.caldav.label "CalDAV">
+<!ENTITY calendarproperties.format.label "格式:">
+<!ENTITY calendarproperties.location.label "位置:">
+<!ENTITY calendarproperties.refreshInterval.label "刷新日历:">
+<!ENTITY calendarproperties.refreshInterval.manual.label "手动">
+<!ENTITY calendarproperties.name.label "名称:">
+<!ENTITY calendarproperties.readonly.label "只读">
+<!ENTITY calendarproperties.firealarms.label "显示提醒">
+<!ENTITY calendarproperties.cache3.label "离线支持">
+<!ENTITY calendarproperties.enabled2.label "启用此日历">
+<!ENTITY calendarproperties.forceDisabled.label "未找到该日历的提供者。通常是由于您禁用或者卸载了某些附加组件。">
+<!ENTITY calendarproperties.unsubscribe.label "取消订阅">
+<!ENTITY calendarproperties.unsubscribe.accesskey "U">
+
+<!-- Calendar Publish Dialog -->
+<!ENTITY calendar.publish.dialog.title "发布日历">
+<!ENTITY calendar.publish.url.label "发布 URL">
+<!ENTITY calendar.publish.publish.button "发布">
+<!ENTITY calendar.publish.close.button "关闭">
+
+<!ENTITY calendar.publish.example.url.description "例如 http://www.myserver.com/webdav/test.ics">
+
+<!-- Select Calendar Dialog -->
+<!ENTITY calendar.select.dialog.title "选择日历">
+
+<!-- Calendar Printing -->
+<!ENTITY calendar.print.window.title "打印日历">
+<!ENTITY calendar.print.title.label "标题:">
+<!ENTITY calendar.print.layout.label "布局:">
+<!ENTITY calendar.print.range.label "打印内容">
+<!ENTITY calendar.print.currentView2.label "当前视图">
+<!ENTITY calendar.print.selectedEventsAndTasks.label "选中的事件/任务">
+<!ENTITY calendar.print.tasks.label "任务">
+<!ENTITY calendar.print.events.label "事件">
+<!ENTITY calendar.print.custom.label "自定义日期范围:">
+<!ENTITY calendar.print.from.label "从:">
+<!ENTITY calendar.print.to.label "至:">
+<!ENTITY calendar.print.settingsGroup.label "打印设置">
+<!ENTITY calendar.print.optionsGroup.label "选项">
+<!ENTITY calendar.print.taskswithnoduedate.label "未指定完成日期的任务">
+<!ENTITY calendar.print.completedtasks.label "已完成的任务">
+
+<!-- Error reporting -->
+<!ENTITY calendar.error.detail "详细信息…">
+<!ENTITY calendar.error.code "错误码:">
+<!ENTITY calendar.error.description "描述:">
+<!ENTITY calendar.error.title "发生错误">
+
+<!-- Extract buttons in message header -->
+<!ENTITY calendar.extract.event.button "作为事件添加">
+<!ENTITY calendar.extract.task.button "作为任务添加">
+<!ENTITY calendar.extract.event.button.tooltip "从消息中提取日历信息并作为事件添加到你的日历中">
+<!ENTITY calendar.extract.task.button.tooltip "从消息中提取日历信息并作为任务添加到你的日历中">
diff --git a/l10n-zh-CN/calendar/chrome/calendar/calendar.properties b/l10n-zh-CN/calendar/chrome/calendar/calendar.properties
new file mode 100755
index 0000000000..0aa62d5d3d
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/calendar/calendar.properties
@@ -0,0 +1,794 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Misc. strings in JS
+
+# LOCALIZATION NOTE (PrintPreviewWindowTitle):
+# %1$S will be replaced with the title of a html frame
+PrintPreviewWindowTitle=打印预览: %1$S
+Untitled=无标题
+
+# Default name for new events
+newEvent=新建事件
+
+# Titles for the event/task dialog
+newEventDialog=新建事件
+editEventDialog=编辑事件
+newTaskDialog=新建任务
+editTaskDialog=编辑任务
+
+# Do you want to save changes?
+askSaveTitleEvent=保存事件
+askSaveTitleTask=保存任务
+askSaveMessageEvent=事件还未保存,您想保存吗?
+askSaveMessageTask=任务还未保存,您想保存吗?
+
+# Event Dialog Warnings
+warningEndBeforeStart=您输入的结束日期早于开始日期
+warningUntilDateBeforeStart=截止日期在开始日期之前
+
+# The name of the calendar provided with the application by default
+homeCalendarName=主日历
+
+# The name given to a calendar if an opened calendar has an empty filename
+untitledCalendarName=无标题日历
+
+# Event status: Tentative, Confirmed, Cancelled
+# ToDo task status: NeedsAction, InProcess, Completed, Cancelled
+statusTentative =暂定
+statusConfirmed =已确认
+eventStatusCancelled=已取消
+todoStatusCancelled =已取消
+statusNeedsAction =需处理
+statusInProcess =进行中
+statusCompleted =已完成
+
+# Task priority, these should match the priority.level.* labels in calendar.dtd
+highPriority=高
+normalPriority=普通
+lowPriority=低
+
+importPrompt=您想把这些条目导入到哪个日历?
+exportPrompt=您想导出哪个日历?
+pastePrompt=您想粘贴到哪个当前可写的日历?
+publishPrompt=您想发布哪个日历?
+
+# LOCALIZATION NOTE (pasteEventAlso): The users pasting operation includes among
+# others also a meeting invitation - this is used as a affix in
+# pasteNotifyAbout
+pasteEventAlso=您粘贴的内容涉及一场会议
+# LOCALIZATION NOTE (pasteEventsAlso): The users pasting operation includes among
+# others also several meeting invitations - this is used as a affix in
+# pasteNotifyAbout
+pasteEventsAlso=您粘贴的内容涉及多场会议
+# LOCALIZATION NOTE (pasteTaskAlso): The users pasting operation includes among
+# others also an assigned task - this is used as a affix in pasteNotifyAbout
+pasteTaskAlso=您粘贴的内容涉及已指派他人处理的任务
+# LOCALIZATION NOTE (pasteTasksAlso): The users pasting operation include among
+# others also several assigned tasks - this is used as a affix in
+# pasteNotifyAbout
+pasteTasksAlso=您粘贴的内容涉及已指派他人处理的任务
+# 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=您粘贴的内容涉及会议和已指派他人处理的任务
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting a meeting -
+# this is used as a affix in pasteNotifyAbout
+pasteEventOnly=您粘贴的是会议信息
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several meetings -
+# this is used as a affix in pasteNotifyAbout
+pasteEventsOnly=您粘贴的是会议信息
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting an assigned task -
+# this is used as a affix in pasteNotifyAbout
+pasteTaskOnly=您粘贴的是已指派他人处理的任务
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several assigned
+# tasks - this is used as a affix in pasteNotifyAbout
+pasteTasksOnly=您粘贴的是已指派他人处理的任务
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting assigned task(s) and
+# meeting(s) - this is used as a affix in pasteNotifyAbout
+pasteItemsOnly=您粘贴的是会议信息和已指派他人处理的任务
+
+# LOCALIZATION NOTE (pasteNotifyAbout): Text displayed if pasting an invitation
+# or assigned task
+# %1$S - pasteEvent* or pasteTask*
+pasteNotifyAbout=%1$S - 要提醒所有相关人员有变更吗?
+
+# LOCALIZATION NOTE (pasteAndNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteAndNotifyLabel=粘贴并立刻发送
+# LOCALIZATION NOTE (pasteDontNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteDontNotifyLabel=仅粘贴
+
+# 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 个条目导入失败。 最后一个错误为: %2$S
+# LOCALIZATION NOTE (noItemsInCalendarFile2):
+# %1$S will be replaced with file path
+noItemsInCalendarFile2=无法从 %1$S 导入。这个文件里没有可供导入的项目。
+
+#spaces needed at the end of the following lines
+eventDescription=描述:
+
+unableToRead=不能读取文件:
+unableToWrite=不能写入文件:
+defaultFileName=MozillaCalEvents
+HTMLTitle=Mozilla 日历
+
+# LOCALIZATION NOTE (timezoneError):
+# used for an error message like 'An unknown and undefined timezone was found while reading c:\Mycalendarfile.ics'
+# %1$S will be replaced with the path to a file
+timezoneError=在读取 %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 个条目被忽略,因为它们同时存在于目标日历和 %2$S。
+
+unableToCreateProvider=准备使用位于 %1$S 的日历时发生了错误。 它将无法使用。
+
+# Sample: Unknown timezone "USPacific" in "Dentist Appt". Using the 'floating' local timezone instead: 2008/02/28 14:00:00
+unknownTimezoneInItem=未知 "%2$S" 中的时区 "%1$S"。按‘浮动’本地时区处理:%3$S
+TimezoneErrorsAlertTitle=时区错误
+TimezoneErrorsSeeConsole=参见错误控制台:未知时区按‘浮动’本地时区处理。
+
+# The following strings are for the prompt to delete/unsubscribe from the calendar
+removeCalendarTitle=移除日历
+removeCalendarButtonDelete=删除日历
+removeCalendarButtonUnsubscribe=取消订阅
+
+# LOCALIZATION NOTE (removeCalendarMessageDeleteOrUnsubscribe): Shown for
+# calendar where both deleting and unsubscribing is possible.
+# %1$S: The name of a calendar
+removeCalendarMessageDeleteOrUnsubscribe=您是否要移除日历“%1$S”?取消订阅将会从清单中移除该日历,而删除则会移除该日历并永久清除其数据。
+
+# LOCALIZATION NOTE (removeCalendarMessageDelete): Shown for calendar where
+# deleting is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageDelete=您真的想要永久删除日历“%1$S”吗?
+
+# LOCALIZATION NOTE (removeCalendarMessageUnsubscribe): Shown for calendar
+# where unsubscribing is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageUnsubscribe=您确定要取消订阅日历“%1$S”吗?
+
+WeekTitle=周 %1$S
+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=您配置文件中的日历数据已由新版 %1$S 更新,与此版本的 %1$S 不兼容。已创建名为“%2$S”的备份文件,并使用新创建的数据文件以继续。
+
+# List of events or todos (unifinder)
+eventUntitled=无标题
+
+# Tooltips of events or todos
+tooltipTitle=标题:
+tooltipLocation=位置:
+# 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=日期:
+# event calendar name
+tooltipCalName=日历名称:
+# event status: tentative, confirmed, cancelled
+tooltipStatus=状态:
+# event organizer
+tooltipOrganizer=组织者:
+# task/todo fields
+# start date time, due date time, task priority number, completed date time
+tooltipStart=开始:
+tooltipDue=期限:
+tooltipPriority=优先级:
+tooltipPercent=% 完成:
+tooltipCompleted=已完成:
+
+# Tooltips for attendees and organizer in event and summary dialog
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendee.combined): tooltip for itip icon in summary/event dialog.
+# Given an attendee loungeexample.org of type room is a mandatory participant and has accepted the
+# invitation, the tooltip would be:
+# lounge@example.org (room) is a required participant. lounge@example.org has confirmed attendance.
+# %1$S - value of dialog.tooltip.attendeeRole2.*
+# %2$S - value of dialog.tooltip.attendeePartStat2.*
+dialog.tooltip.attendee.combined=%1$S %2$S
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.CHAIR): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.CHAIR=%1$S 主持活动。
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.NON-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.NON-PARTICIPANT=%1$S 非参与者。
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.OPT-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.OPT-PARTICIPANT=%1$S 是一名可选参与者。
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.REQ-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.REQ-PARTICIPANT=%1$S 是一名必需参与者。
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.ACCEPTED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.ACCEPTED=%1$S 已确认参加。
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.DECLINED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.DECLINED=%1$S 已确定不会参加。
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.DELEGATED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.DELEGATED=%1$S 已委托他人参与。
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.NEEDS-ACTION): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.NEEDS-ACTION=%1$S 仍需回复。
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.TENTATIVE): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.TENTATIVE=%1$S 已初步确认参加。
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.INDIVIDUAL): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing individual attendee
+dialog.tooltip.attendeeUserType2.INDIVIDUAL=%1$S
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.GROUP): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a group (e.g. a distribution list)
+dialog.tooltip.attendeeUserType2.GROUP=%1$S (组)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.RESOURCE): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a resource (e.g. projector)
+dialog.tooltip.attendeeUserType2.RESOURCE=%1$S (资源)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.ROOM): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a room
+dialog.tooltip.attendeeUserType2.ROOM=%1$S (房间)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.UNKNOWN): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing an attendee of unknown type
+dialog.tooltip.attendeeUserType2.UNKNOWN=%1$S
+
+#File commands and dialogs
+New=新建
+Open=打开
+filepickerTitleImport=导入
+filepickerTitleExport=导出
+
+# Filters for export/import/open file picker. %1$S will be replaced with
+# wildmat used to filter files by extension, such as (*.html; *.htm).
+filterIcs=iCalendar (%1$S)
+filterXml=XML 文件 (%1$S)
+filterHtml=网页 (%1$S)
+filterOutlookCsv=Outlook 逗号分隔 (%1$S)
+
+# Remote calendar errors
+genericErrorTitle=发生错误
+httpPutError=发布日历文件失败。\n状态码: %1$S: %2$S
+otherPutError=发布日历文件失败。\n状态码: 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=读取日历(%1$S)数据时发生错误。它已经被设为只读模式,因此对该日历的变更可能会造成数据丢失。您可以通过选择“编辑日历”改变该设置。
+
+# 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=读取日历(%1$S)数据时出现错误。 它将一直被禁用,直到能安全使用为止。
+
+# 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=读取日历(%1$S)数据时出现错误。但是,该错误并不严重,因此程序将尝试继续。
+
+# 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=读取日历(%1$S)数据时出现错误。
+utf8DecodeError=以 UTF-8 解码 iCalendar (ics) 文件发生错误。请检查该文件,包括符号和读音符号,是否都是用 UTF-8 编码的。
+icsMalformedError=验证 iCalendar (ics) 文件失败。检查该文件符合 iCalendar (ics) 文件的语法。
+itemModifiedOnServerTitle=在服务器上的项目发生变化
+itemModifiedOnServer=在服务器上的这个项目最近已被变更。\n
+modifyWillLoseData=如果提交您的变更,那么服务器上进行的修改将被覆盖
+deleteWillLoseData=如果删除这个项目,那么服务器上进行的修改也将丢失。
+updateFromServer=放弃更改并重新加载
+proceedModify=继续提交我的更改
+proceedDelete=一律删除
+dav_notDav=在 %1$S 的资源是否不是一个 DAV 集合或不可用
+dav_davNotCaldav=在 %1$S 的资源是一个 DAV 集合,但不是 CalDAV 日历
+itemPutError=保存项目至服务器时发生错误。
+itemDeleteError=从服务器上删除项目时发生错误。
+caldavRequestError=发送邀请时发生了错误!
+caldavResponseError=发送回复时发生了错误!
+caldavRequestStatusCode=状态码:%1$S
+caldavRequestStatusCodeStringGeneric=此请求无法处理。
+caldavRequestStatusCodeString400=此请求包含语法错误并且无法处理。
+caldavRequestStatusCodeString403=用户缺少所需权限来执行该请求。
+caldavRequestStatusCodeString404=找不到资源。
+caldavRequestStatusCodeString409=资源冲突。
+caldavRequestStatusCodeString412=不满足前提条件。
+caldavRequestStatusCodeString500=内部服务器错误。
+caldavRequestStatusCodeString502=错误网关(代理配置?)。
+caldavRequestStatusCodeString503=内部服务器错误(服务器临时停机?)。
+caldavRedirectTitle=更新日历 %1$S 的位置?
+caldavRedirectText=%1$S 的请求将被重定向至新的位置,您想要将地址更改为下列值吗?
+caldavRedirectDisableCalendar=禁用日历
+
+
+# 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=Asia/Shanghai
+
+# 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=警告: 操作系统时区 "%1$S" \n与内置时区信息 "%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=忽略操作系统时区 '%1$S'。
+
+# "Skipping locale timezone 'America/New_Yawk'."
+# Testing note: Skipping occurs if a likelyTimezone id is unknown or misspelled.
+SkippingLocaleTimezone=忽略本地时区 '%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=警告: 使用“动态”时区。 \n没有和操作系统中的时区数据相匹配的时区信息。
+
+# "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=警告: 使用猜测的时区\n %1$S (UTC%2$S)。\n%3$S\n%4$S
+
+# Testing note: "Almost match" timezones include Cairo on W2k.
+TZAlmostMatchesOSDifferAtMostAWeek=这个时区信息比较匹配操作系统时区。 \n按此规则, 下一次白天与标准时间的转换从操作系统时区转换过来相差最多一周。 \n这可能会存在数据上的矛盾, 如不同的开始时间, \n或不同的规则, 或非标准公历估算规则。
+
+TZSeemsToMatchOS=这个时区信息似乎匹配操作系统中当前年的时区。
+
+# LOCALIZATION NOTE (TZFromOS):
+# used for a display of a chosen timezone
+# %1$S will be replaced with the name of a timezone
+TZFromOS=这个时区信息中的时区已根据操作系统时区决定\n识别码 "%1$S"。
+
+# Localization note (TZFromLocale): Substitute name of your locale language.
+TZFromLocale=这个时区信息中的时区是基于匹配\n操作系统时区和简体中文网络用户可能位于的时区而选择的。
+
+TZFromKnownTimezones=这个时区信息中的时区是基于匹配\n操作系统时区和按字母排序的时区代码中的已知时区而选择的。
+
+# Print Layout
+formatListName = 列表
+weekPrinterName = 周计划器
+monthPrinterName = 月表格
+tasksWithNoDueDate = 未指定完成日期的任务
+
+# Providers
+caldavName=CalDAV
+compositeName=组合
+icsName=iCalendar (ICS)
+memoryName=临时 (内存)
+storageName=本地 (SQLite)
+
+# Used in created html code for list layout print and html export
+htmlPrefixTitle=标题
+htmlPrefixWhen=时间
+htmlPrefixLocation=位置
+htmlPrefixDescription=描述
+htmlTaskCompleted=%1$S (已完成)
+
+# Categories
+addCategory=添加类别
+multipleCategories=多重分类
+
+today=今天
+tomorrow=明天
+yesterday=昨天
+
+#Today pane
+eventsonly=事件
+eventsandtasks=事件和任务
+tasksonly=任务
+shortcalendarweek=CW
+
+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=下次
+next2=下次
+last1=最近
+last2=最近
+
+# Alarm Dialog
+# LOCALIZATION NOTE (alarmWindowTitle.label): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+alarmWindowTitle.label=#1 个提醒
+
+# 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=始于: %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=于今天 %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=于明天 %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=于昨天 %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=默认 Mozilla 描述
+alarmDefaultSummary=默认 Mozilla 概括
+
+# LOCALIZATION NOTE (alarmSnoozeLimitExceeded): Semi-colon list of plural
+# forms.
+alarmSnoozeLimitExceeded=您不能将提醒推迟超过 #1 个月;您不能将提醒推迟超过 #1 个月
+
+taskDetailsStatusNeedsAction=需要动作
+
+# 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%%
+taskDetailsStatusCompleted=已经完成
+
+# 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=在 %1$S 完成
+taskDetailsStatusCancelled=已经取消
+
+gettingCalendarInfoCommon=检查日历中…
+
+# 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=检查日历 %2$S 的 %1$S
+
+# LOCALIZATION NOTE (errorCode):
+# %1$S will be replaced with the number of an error code
+errorCode=错误代码: %1$S
+
+# LOCALIZATION NOTE (errorDescription):
+# %1$S will be replaced with the description of an error
+errorDescription=描述: %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=写入日历 %1$S 时出错!下方写有详情。
+
+# LOCALIZATION NOTE (errorWritingDetails):
+# This will be displayed in the detail section of the error dialog
+errorWritingDetails=如果您在推迟或取消一个提醒后看到此消息,并且这是您不想向其添加或编辑事件的日历,则可将此日历标记为只读,以免将来出现类似情况。如果要这么做,请在日历或任务视图的列表中右键单击此日历,设定日历的属性。
+
+# 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=日历 %1$S 暂时不可用
+
+# 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=日历 %1$S 为只读
+
+taskEditInstructions=点击此处添加新任务
+taskEditInstructionsReadonly=请选择一个可写的日历
+taskEditInstructionsCapability=请选择一个支持任务的日历
+
+eventDetailsStartDate=开始:
+eventDetailsEndDate=结束:
+
+# 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=日历周: %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=日历周 %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 (abbreviationOfWeek):
+# Used for displaying the week number in the first day box of every week
+# in multiweek and month views.
+# It allows to localize the label with the week number in case your locale
+# requires it.
+# Take into account that this label is placed in the same room of the day label
+# inside the day boxes, exactly on left side, hence a possible string shouldn't
+# be too long otherwise it will create confusion between the week number and
+# the day number other than a possible crop when the window is resized.
+#
+# %1$S is a number from 1 to 53 that represents the week number.
+abbreviationOfWeek=%1$S
+
+# 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 天
+dueInHours=#1 小时;#1 小时
+dueInLessThanOneHour=< 一小时
+
+# 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=%4$S 年 %3$S %2$S 日 %1$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=%2$S %1$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= 不设置开始时间或截至时间
+# 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=开始时间 %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=截止时间 %1$S %2$S
+
+# LOCALIZATION NOTE (dragLabelTasksWithOnlyEntryDate
+# dragLabelTasksWithOnlyDueDate)
+# Labels that appear while dragging a task with only
+# entry date OR due date
+dragLabelTasksWithOnlyEntryDate=开始时间
+dragLabelTasksWithOnlyDueDate=终止于
+
+deleteTaskLabel=删除任务
+deleteTaskMessage=你确实要删除这个任务?
+deleteTaskAccesskey=l
+deleteItemLabel=删除
+deleteItemMessage=你确实要删除这个项目?
+deleteItemAccesskey=l
+deleteEventLabel=删除事件
+deleteEventMessage=你确实要删除这个事件?
+deleteEventAccesskey=l
+
+calendarPropertiesEveryMinute=每分钟;每 #1 分钟
+
+# LOCALIZATION NOTE (extractUsing)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+extractUsing=使用 %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=正在使用 %1$S (%2$S)
+
+# LOCALIZATION NOTE (unit)
+# Used to determine the correct plural form of a unit
+unitMinutes=#1 分钟;#1 分钟
+unitHours=#1 小时;#1 小时
+unitDays=#1 天;#1 天
+unitWeeks=#1 周;#1 周
+
+# 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=显示 %1$S
+hideCalendar=隐藏 %1$S
+# uses the access key calendar.context.showonly.accesskey
+showOnlyCalendar=仅显示 %1$S
+
+# LOCALIZATION NOTE (modifyConflict)
+# Used by the event dialog to resolve item modification conflicts.
+modifyConflictPromptTitle=条目修改冲突
+modifyConflictPromptMessage=此条目在开启对话框之后已被修改。
+modifyConflictPromptButton1=覆盖其他改动
+modifyConflictPromptButton2=舍弃这些改动
+
+# LOCALIZATION_NOTE(dialog.attendee.append.delegatedFrom): this is appended behind an attendee name
+# in the tooltip and the visible name for an attendee in the event summary dialog - don't add
+# leading or trailing whitespaces here
+# %1$S - a single delegatee or a comma separated list of delegatees
+# delegation is different from simple invitation forwarding - in case of delegation the original
+# invited attendee gets replaced
+dialog.attendee.append.delegatedFrom=(由 %1$S 委托)
+# LOCALIZATION_NOTE(dialog.attendee.append.delegatedTo): this is appended behind an attendee name
+# in the tooltip for an attendee in the event summary dialog - don't add leading or trailing
+# whitespaces here
+# delegation is different from simple invitation forwarding - in case of delegation the original
+# invited attendee gets replaced
+dialog.attendee.append.delegatedTo=(委托给 %1$S)
+
+# Accessible description of a grid calendar with no selected date
+minimonthNoSelectedDate=未选择日期
diff --git a/l10n-zh-CN/calendar/chrome/calendar/calendarCreation.dtd b/l10n-zh-CN/calendar/chrome/calendar/calendarCreation.dtd
new file mode 100755
index 0000000000..3b1c5f09bc
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/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 "创建新日历" >
+<!ENTITY wizard.label "创建一个新日历" >
+<!ENTITY wizard.description "定位您的日历" >
+
+<!ENTITY initialpage.description "您的日历可以保存在您的电脑上,或者是可远程存取的服务器上,或者是与朋友或合作者共享的服务器上。" >
+<!ENTITY initialpage.computer.label "保存在我的电脑中">
+<!ENTITY initialpage.network.label "保存在网络上">
+
+<!ENTITY locationpage.description "提供为访问您的远程日历所必需的信息" >
+<!ENTITY locationpage.login.description "可选:输入用户名和密码" >
+<!ENTITY locationpage.username.label "用户名:" >
+<!ENTITY locationpage.password.label "密码:" >
+
+<!ENTITY custompage.shortdescription "自定义您的日历" >
+<!ENTITY custompage.longdescription "您可以给日历取一个昵称,也可以给事件设置不同的颜色" >
+
+<!ENTITY finishpage.shortdescription "日历已创建" >
+<!ENTITY finishpage.longdescription "您的日历已成功创建。" >
+
+<!-- Below are new strings for the revised new calendar dialog. The above strings should be
+ removed/renamed later on -->
+
+<!ENTITY sourcetabs.other.label "其他">
+
+<!ENTITY buttons.create.label "新建日历">
+<!ENTITY buttons.create.accesskey "r">
+
+<!ENTITY buttons.find.label "寻找日历">
+<!ENTITY buttons.find.accesskey "F">
+
+<!ENTITY buttons.back.label "返回">
+<!ENTITY buttons.back.accesskey "B">
+
+<!ENTITY buttons.subscribe.label "订阅">
+<!ENTITY buttons.subscribe.accesskey "S">
+
+<!ENTITY calendartype.label "日历类型:">
+<!ENTITY location.label "位置:">
+<!ENTITY location.placeholder "日历服务器的网址或主机名称">
+
+<!ENTITY network.nocredentials.label "此网址无须输入账号密码">
+<!ENTITY network.loading.description "请稍等,我们正在检测您的日历。">
+<!ENTITY network.notfound.description "未能在此位置找到日历。请检查设置。">
+<!ENTITY network.authfail.description "您输入的账号密码未被接受。请检查设置。">
+
+<!ENTITY network.subscribe.single.description "请选择您要订阅的日历。">
+<!ENTITY network.subscribe.multiple.description "此位置有几种不同类型的日历。请先选择要订阅的日历类型,再勾选要订阅的日历。">
diff --git a/l10n-zh-CN/calendar/chrome/calendar/calendarCreation.properties b/l10n-zh-CN/calendar/chrome/calendar/calendarCreation.properties
new file mode 100755
index 0000000000..13a0556c23
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/calendar/calendarCreation.properties
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+error.invalidUri=请输入一个有效位置。
+error.alreadyExists=您已经订阅了在此位置的日历。
diff --git a/l10n-zh-CN/calendar/chrome/calendar/categories.properties b/l10n-zh-CN/calendar/chrome/calendar/categories.properties
new file mode 100755
index 0000000000..471382e438
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/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=纪念,生日,商务,通讯,客人,竞争,客户,收藏,跟进,礼物,假日,点子,问题,会议,杂项,私人,项目,法定假日,状态,供应商,旅行,休假
diff --git a/l10n-zh-CN/calendar/chrome/calendar/dateFormat.properties b/l10n-zh-CN/calendar/chrome/calendar/dateFormat.properties
new file mode 100755
index 0000000000..b0bbe74a2b
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/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=一月
+month.2.name=二月
+month.3.name=三月
+month.4.name=四月
+month.5.name=五月
+month.6.name=六月
+month.7.name=七月
+month.8.name=八月
+month.9.name=九月
+month.10.name=十月
+month.11.name=十一月
+month.12.name=十二月
+
+# 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=一月
+month.2.genitive=二月
+month.3.genitive=三月
+month.4.genitive=四月
+month.5.genitive=五月
+month.6.genitive=六月
+month.7.genitive=七月
+month.8.genitive=八月
+month.9.genitive=九月
+month.10.genitive=十月
+month.11.genitive=十一月
+month.12.genitive=十二月
+
+month.1.Mmm=一月
+month.2.Mmm=二月
+month.3.Mmm=三月
+month.4.Mmm=四月
+month.5.Mmm=五月
+month.6.Mmm=六月
+month.7.Mmm=七月
+month.8.Mmm=八月
+month.9.Mmm=九月
+month.10.Mmm=十月
+month.11.Mmm=十一月
+month.12.Mmm=十二月
+
+day.1.name=星期天
+day.2.name=星期一
+day.3.name=星期二
+day.4.name=星期三
+day.5.name=星期四
+day.6.name=星期五
+day.7.name=星期六
+
+day.1.Mmm=周日
+day.2.Mmm=周一
+day.3.Mmm=周二
+day.4.Mmm=周三
+day.5.Mmm=周四
+day.6.Mmm=周五
+day.7.Mmm=周六
+
+# Can someone tell me why we're not counting from zero?
+day.1.short=日
+day.2.short=一
+day.3.short=二
+day.4.short=三
+day.5.short=四
+day.6.short=五
+day.7.short=六
+
+# 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=中午
+midnight=午夜
+
+AllDay=全天
+Repeating=(正在重复)
diff --git a/l10n-zh-CN/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd b/l10n-zh-CN/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd
new file mode 100755
index 0000000000..788dafe342
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/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 "设置提醒">
+<!ENTITY reminder.add.label "添加">
+<!ENTITY reminder.add.accesskey "A">
+<!ENTITY reminder.remove.label "移除">
+<!ENTITY reminder.remove.accesskey "R">
+
+<!ENTITY reminder.reminderDetails.label "提醒器详细信息">
+<!ENTITY reminder.action.label "选择提醒动作">
+
+<!ENTITY reminder.action.alert.label "显示一个警示">
+<!ENTITY reminder.action.email.label "发送一封邮件">
+
+<!ENTITY alarm.units.minutes "分钟" >
+<!ENTITY alarm.units.hours "小时" >
+<!ENTITY alarm.units.days "天" >
diff --git a/l10n-zh-CN/calendar/chrome/calendar/global.dtd b/l10n-zh-CN/calendar/chrome/calendar/global.dtd
new file mode 100755
index 0000000000..cec73ff8bd
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/calendar/global.dtd
@@ -0,0 +1,54 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY time.midnight "午夜" >
+<!ENTITY time.noon "中午" >
+
+<!-- Day Names -->
+<!-- LOCALIZATION NOTE : Accesskeys for day.1.Ddd to day.7.Ddd are currently
+ only used in Preferences > Views > Workweek groupbox -->
+<!ENTITY day.1.Ddd "日" >
+<!ENTITY day.1.Ddd.accesskey "S">
+<!ENTITY day.2.Ddd "一" >
+<!ENTITY day.2.Ddd.accesskey "M">
+<!ENTITY day.3.Ddd "二" >
+<!ENTITY day.3.Ddd.accesskey "T">
+<!ENTITY day.4.Ddd "三" >
+<!ENTITY day.4.Ddd.accesskey "W">
+<!ENTITY day.5.Ddd "四" >
+<!ENTITY day.5.Ddd.accesskey "h">
+<!ENTITY day.6.Ddd "五" >
+<!ENTITY day.6.Ddd.accesskey "F">
+<!ENTITY day.7.Ddd "六" >
+<!ENTITY day.7.Ddd.accesskey "a">
+
+<!ENTITY day.1.name "星期日" >
+<!ENTITY day.2.name "星期一" >
+<!ENTITY day.3.name "星期二" >
+<!ENTITY day.4.name "星期三" >
+<!ENTITY day.5.name "星期四" >
+<!ENTITY day.6.name "星期五" >
+<!ENTITY day.7.name "星期六" >
+
+<!ENTITY month.1.name "一月" >
+<!ENTITY month.2.name "二月" >
+<!ENTITY month.3.name "三月" >
+<!ENTITY month.4.name "四月" >
+<!ENTITY month.5.name "五月" >
+<!ENTITY month.6.name "六月" >
+<!ENTITY month.7.name "七月" >
+<!ENTITY month.8.name "八月" >
+<!ENTITY month.9.name "九月" >
+<!ENTITY month.10.name "十月" >
+<!ENTITY month.11.name "十一月" >
+<!ENTITY month.12.name "十二月" >
+
+<!ENTITY onemonthbackward.tooltip "上一月" >
+<!ENTITY onemonthforward.tooltip "下一月" >
+<!ENTITY oneyearbackward.tooltip "前一年" >
+<!ENTITY oneyearforward.tooltip "后一年" >
+<!ENTITY showToday.tooltip "转至今日">
+<!ENTITY onedayforward.tooltip "下一日">
+<!ENTITY onedaybackward.tooltip "延后一天">
+<!ENTITY showselectedday.tooltip "显示所选日期的事件">
diff --git a/l10n-zh-CN/calendar/chrome/calendar/menuOverlay.dtd b/l10n-zh-CN/calendar/chrome/calendar/menuOverlay.dtd
new file mode 100755
index 0000000000..8a4acb5d91
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/calendar/menuOverlay.dtd
@@ -0,0 +1,50 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Event Menu -->
+<!ENTITY event.new.event "新事件…">
+<!ENTITY event.new.event.accesskey "N">
+
+<!ENTITY event.new.task "新建任务…">
+<!ENTITY event.new.task.accesskey "k">
+
+<!ENTITY calendar.import.label "导入…">
+<!ENTITY calendar.import.accesskey "I">
+
+<!ENTITY calendar.export.label "导出…">
+<!ENTITY calendar.export.accesskey "E">
+
+<!ENTITY calendar.publish.label "发布…">
+<!ENTITY calendar.publish.accesskey "b">
+
+<!ENTITY calendar.deletecalendar.label "删除选中日历…">
+<!ENTITY calendar.deletecalendar.accesskey "D">
+<!ENTITY calendar.unsubscribecalendar.label "取消订阅选中的日历…">
+<!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 "移除选中的日历…">
+<!ENTITY calendar.removecalendar.accesskey "R">
+
+
+<!ENTITY calendar.menu.customize.label "自定义…">
+<!ENTITY calendar.menu.customize.accesskey "C">
+
+<!ENTITY showUnifinderCmd.label "查找事件">
+<!ENTITY showUnifinderCmd.accesskey "F">
+<!ENTITY showUnifinderCmd.tooltip "切换查找事件窗格">
+
+<!ENTITY calendar.displaytodos.checkbox.label "在日历上显示任务">
+<!ENTITY calendar.displaytodos.checkbox.accesskey "T">
+
+<!ENTITY goTodayCmd.label "今天">
+<!ENTITY goTodayCmd.accesskey "T">
+
+<!ENTITY showCurrentView.label "当前视图">
+<!ENTITY showCurrentView.accesskey "V">
+
+<!ENTITY calendar.properties.label "日历属性…">
+<!ENTITY calendar.properties.accesskey "C">
diff --git a/l10n-zh-CN/calendar/chrome/calendar/migration.dtd b/l10n-zh-CN/calendar/chrome/calendar/migration.dtd
new file mode 100755
index 0000000000..5fe528b8ec
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/calendar/migration.dtd
@@ -0,0 +1,9 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY migration.title "&brandFullName;: 数据导入">
+<!ENTITY migration.welcome "欢迎">
+<!ENTITY migration.importing "导入">
+<!ENTITY migration.list.description "&brandShortName; 可以从很多常用应用软件中导入日历数据,数据来自于您电脑中所发现的以下应用软件,请选择您想导入数据的软件。">
+<!ENTITY migration.progress.description "导入所选数据">
diff --git a/l10n-zh-CN/calendar/chrome/calendar/migration.properties b/l10n-zh-CN/calendar/chrome/calendar/migration.properties
new file mode 100755
index 0000000000..141367df64
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/calendar/migration.properties
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+migratingApp = 迁移 %1$S…
+
+# The next two lines are duplicated from migration.dtd until there is branding
+# for lightning
+migrationTitle = %1$S: 数据导入
+migrationDescription=%1$S 可以从很多常用应用软件中导入日历数据,数据来自于您电脑中所发现的以下应用软件,请选择您想导入数据的软件。
+finished = 完成
+disableExtTitle = 发现不兼容扩展
+disableExtText = 您安装了不兼容 Lightning 的旧版 Mozilla 日历扩展。 它将被禁用并且 %1$S 将重新启动。
diff --git a/l10n-zh-CN/calendar/chrome/calendar/provider-uninstall.dtd b/l10n-zh-CN/calendar/chrome/calendar/provider-uninstall.dtd
new file mode 100755
index 0000000000..68e17e04b7
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/calendar/provider-uninstall.dtd
@@ -0,0 +1,12 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY providerUninstall.title "卸载一个提供者">
+<!ENTITY providerUninstall.accept.label "取消订阅选中的项目">
+<!ENTITY providerUninstall.accept.accesskey "U">
+<!ENTITY providerUninstall.cancel.label "保留附加组件">
+<!ENTITY providerUninstall.cancel.accesskey "K">
+<!ENTITY providerUninstall.preName.label "你已要求卸载或禁用:">
+<!ENTITY providerUninstall.postName.label "以下日历将被禁用。">
+<!ENTITY providerUninstall.reinstallNote.label "除非计划重新安装这个提供者,否则你可以选择取消订阅来自这个提供者的日历。">
diff --git a/l10n-zh-CN/calendar/chrome/calendar/timezones.properties b/l10n-zh-CN/calendar/chrome/calendar/timezones.properties
new file mode 100755
index 0000000000..19c52922be
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/calendar/timezones.properties
@@ -0,0 +1,488 @@
+# 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/.
+
+# extension:
+extensions.calendar-timezones@mozilla.org.name=用于 Mozilla Calendar 的时区定义
+extensions.calendar-timezones@mozilla.org.description=Lightning 所需的时区定义
+extensions.calendar-timezones@mozilla.org.creator=Mozilla Calendar 项目
+
+pref.timezone.floating=本地时间
+pref.timezone.UTC=UTC/GMT
+
+# I've derived this list out of timezones.dtd
+# - replaced '_' with ' ' on value side
+# - corrected 'St xyz' to 'St. xyz'
+
+# timezone names:
+pref.timezone.Africa.Abidjan=非洲/阿必尚
+pref.timezone.Africa.Accra=非洲/阿克拉
+pref.timezone.Africa.Addis_Ababa=非洲/亚的斯亚贝巴
+pref.timezone.Africa.Algiers=非洲/阿尔及尔
+pref.timezone.Africa.Asmara=非洲/阿斯马拉
+pref.timezone.Africa.Bamako=非洲/巴马科
+pref.timezone.Africa.Bangui=非洲/班基
+pref.timezone.Africa.Banjul=非洲/班竹
+pref.timezone.Africa.Bissau=非洲/比索
+pref.timezone.Africa.Blantyre=非洲/布兰泰尔
+pref.timezone.Africa.Brazzaville=非洲/布拉萨
+pref.timezone.Africa.Bujumbura=非洲/布琼布拉
+pref.timezone.Africa.Cairo=非洲/开罗
+pref.timezone.Africa.Casablanca=非洲/卡萨布兰卡
+pref.timezone.Africa.Ceuta=非洲/休达
+pref.timezone.Africa.Conakry=非洲/科纳克里
+pref.timezone.Africa.Dakar=非洲/达喀尔
+pref.timezone.Africa.Dar_es_Salaam=非洲/达累斯萨拉姆
+pref.timezone.Africa.Djibouti=非洲/吉布地
+pref.timezone.Africa.Douala=非洲/杜瓦拉
+pref.timezone.Africa.El_Aaiun=非洲/阿尤恩
+pref.timezone.Africa.Freetown=非洲/自由城
+pref.timezone.Africa.Gaborone=非洲/嘉伯帕里
+pref.timezone.Africa.Harare=非洲/哈拉雷
+pref.timezone.Africa.Johannesburg=非洲/约翰内斯堡
+pref.timezone.Africa.Kampala=非洲/坎帕拉
+pref.timezone.Africa.Khartoum=非洲/喀土穆
+pref.timezone.Africa.Kigali=非洲/奇佳利
+pref.timezone.Africa.Kinshasa=非洲/金夏沙
+pref.timezone.Africa.Lagos=非洲/拉哥斯
+pref.timezone.Africa.Libreville=非洲/自由市
+pref.timezone.Africa.Lome=非洲/洛梅
+pref.timezone.Africa.Luanda=非洲/卢安达
+pref.timezone.Africa.Lubumbashi=非洲/卢本巴希
+pref.timezone.Africa.Lusaka=非洲/路沙卡
+pref.timezone.Africa.Malabo=非洲/马拉博
+pref.timezone.Africa.Maputo=非洲/马普托
+pref.timezone.Africa.Maseru=非洲/马塞鲁
+pref.timezone.Africa.Mbabane=非洲/墨巴本
+pref.timezone.Africa.Mogadishu=非洲/摩加迪休
+pref.timezone.Africa.Monrovia=非洲/蒙罗维亚
+pref.timezone.Africa.Nairobi=非洲/内罗毕
+pref.timezone.Africa.Ndjamena=非洲/恩嘉美纳
+pref.timezone.Africa.Niamey=非洲/尼亚美
+pref.timezone.Africa.Nouakchott=非洲/诺克少
+pref.timezone.Africa.Ouagadougou=非洲/瓦加杜古
+pref.timezone.Africa.Porto-Novo=非洲/新港
+pref.timezone.Africa.Sao_Tome=非洲/圣多美和普林西比
+pref.timezone.Africa.Tripoli=非洲/的黎波里
+pref.timezone.Africa.Tunis=非洲/突尼斯
+pref.timezone.Africa.Windhoek=非洲/文德霍克
+pref.timezone.America.Adak=美洲/埃达克
+pref.timezone.America.Anchorage=美洲/安克里治
+pref.timezone.America.Anguilla=美洲/安圭拉
+pref.timezone.America.Antigua=美洲/安堤瓜
+pref.timezone.America.Araguaina=美洲/阿拉瓜因那
+pref.timezone.America.Argentina.Buenos_Aires=美洲/阿根廷/布宜诺斯艾利斯
+pref.timezone.America.Argentina.Catamarca=美洲/阿拉瓜依纳/卡塔马卡
+pref.timezone.America.Argentina.Cordoba=美洲/阿拉瓜依纳/科多巴
+pref.timezone.America.Argentina.Jujuy=美洲/阿拉瓜依纳/胡胡伊
+pref.timezone.America.Argentina.La_Rioja=美洲/阿根廷/里欧哈
+pref.timezone.America.Argentina.Mendoza=美洲/阿拉瓜依纳/门多萨
+pref.timezone.America.Argentina.Rio_Gallegos=美洲/阿根廷/里约戈斯
+pref.timezone.America.Argentina.San_Juan=美洲/阿根廷/圣胡安
+pref.timezone.America.Argentina.Tucuman=美洲/阿拉瓜依纳/图库曼
+pref.timezone.America.Argentina.Ushuaia=美洲/阿拉瓜依纳/乌斯怀亚
+pref.timezone.America.Aruba=美洲/阿卢巴
+pref.timezone.America.Asuncion=美洲/亚松森
+pref.timezone.America.Atikokan=美洲/安大略
+pref.timezone.America.Bahia=美洲/巴伊亚
+pref.timezone.America.Barbados=美洲/巴贝多
+pref.timezone.America.Belem=美洲/巴连姆
+pref.timezone.America.Belize=美洲/贝里斯
+pref.timezone.America.Blanc-Sablon=美洲/布朗萨布隆
+pref.timezone.America.Boa_Vista=美洲/博阿维斯塔
+pref.timezone.America.Bogota=美洲/波哥大
+pref.timezone.America.Boise=美洲/波伊西
+pref.timezone.America.Cambridge_Bay=美洲/剑桥湾
+pref.timezone.America.Campo_Grande=美洲/坎普
+pref.timezone.America.Cancun=美洲/坎库恩
+pref.timezone.America.Caracas=美洲/卡拉卡斯
+pref.timezone.America.Cayenne=美洲/卡宴
+pref.timezone.America.Cayman=美洲/开曼
+pref.timezone.America.Chicago=美洲/芝加哥
+pref.timezone.America.Chihuahua=美洲/彻瓦瓦
+pref.timezone.America.Costa_Rica=美洲/哥斯达黎加
+pref.timezone.America.Cuiaba=美洲/圭亚巴
+pref.timezone.America.Curacao=美洲/库拉桑
+pref.timezone.America.Danmarkshavn=美洲/格陵兰
+pref.timezone.America.Dawson=美洲/道森
+pref.timezone.America.Dawson_Creek=美洲/道森克里克
+pref.timezone.America.Denver=美洲/丹佛
+pref.timezone.America.Detroit=美洲/底特律
+pref.timezone.America.Dominica=美洲/多米尼加
+pref.timezone.America.Edmonton=美洲/埃德蒙顿
+pref.timezone.America.Eirunepe=美洲/艾鲁内佩
+pref.timezone.America.El_Salvador=美洲/萨尔瓦多
+pref.timezone.America.Fortaleza=美洲/福塔莱萨
+pref.timezone.America.Glace_Bay=美洲/格雷斯贝
+pref.timezone.America.Godthab=美洲/高特哈
+pref.timezone.America.Goose_Bay=美洲/鹅湾
+pref.timezone.America.Grand_Turk=美洲/大特克
+pref.timezone.America.Grenada=美洲/格瑞纳达
+pref.timezone.America.Guadeloupe=美洲/瓜德洛佩
+pref.timezone.America.Guatemala=美洲/危地马拉
+pref.timezone.America.Guayaquil=美洲/瓜亚基尔
+pref.timezone.America.Guyana=美洲/盖亚那
+pref.timezone.America.Halifax=美洲/哈利法克斯
+pref.timezone.America.Havana=美洲/哈瓦那
+pref.timezone.America.Hermosillo=美洲/艾尔莫西欧
+pref.timezone.America.Indiana.Indianapolis=美洲/印第安纳州/印第安纳波里
+pref.timezone.America.Indiana.Knox=美洲/印第安纳州/纳克斯
+pref.timezone.America.Indiana.Marengo=美洲/印第安纳州/马伦戈
+pref.timezone.America.Indiana.Petersburg=美洲/印地安那州/彼得堡
+pref.timezone.America.Indiana.Vevay=美洲/印第安纳州/伟威
+pref.timezone.America.Indiana.Vincennes=美洲/印地安那州/温森斯
+pref.timezone.America.Inuvik=美洲/伊纽维克
+pref.timezone.America.Iqaluit=美洲/伊卡鲁伊特
+pref.timezone.America.Jamaica=美洲/牙买加
+pref.timezone.America.Juneau=美洲/朱诺
+pref.timezone.America.Kentucky.Louisville=美洲/肯塔基州/路易维尔
+pref.timezone.America.Kentucky.Monticello=美洲/肯塔基州/蒙地却罗
+pref.timezone.America.La_Paz=美洲/拉巴斯
+pref.timezone.America.Lima=美洲/利马
+pref.timezone.America.Los_Angeles=美洲/洛杉矶
+pref.timezone.America.Maceio=美洲/墨塞欧
+pref.timezone.America.Managua=美洲/马拿瓜
+pref.timezone.America.Manaus=美洲/玛瑙斯
+pref.timezone.America.Martinique=美洲/马汀尼克
+pref.timezone.America.Mazatlan=美洲/马塞特兰
+pref.timezone.America.Menominee=美洲/门诺米尼
+pref.timezone.America.Merida=美洲/梅里达
+pref.timezone.America.Mexico_City=美洲/墨西哥城
+pref.timezone.America.Miquelon=美洲/密克朗
+pref.timezone.America.Moncton=美洲/蒙克顿
+pref.timezone.America.Monterrey=美洲/蒙特瑞
+pref.timezone.America.Montevideo=美洲/蒙特维多
+pref.timezone.America.Montreal=美洲/蒙特娄
+pref.timezone.America.Montserrat=美洲/蒙塞拉特
+pref.timezone.America.Nassau=美洲/拿梭
+pref.timezone.America.New_York=美洲/纽约
+pref.timezone.America.Nipigon=美洲/尼埤岗
+pref.timezone.America.Nome=美洲/诺姆
+pref.timezone.America.Noronha=美洲/诺若尼亚
+pref.timezone.America.North_Dakota.Center=美洲/北达科他州/中心
+pref.timezone.America.North_Dakota.New_Salem=美洲/北达科他州/新塞勒姆
+pref.timezone.America.Panama=美洲/巴拿马
+pref.timezone.America.Pangnirtung=美洲/潘尼尔东
+pref.timezone.America.Paramaribo=美洲/巴拉马利波
+pref.timezone.America.Phoenix=美洲/凤凰城
+pref.timezone.America.Port-au-Prince=美洲/太子港
+pref.timezone.America.Port_of_Spain=美洲/西班牙港口
+pref.timezone.America.Porto_Velho=美洲/波多韦柳
+pref.timezone.America.Puerto_Rico=美洲/波多黎各
+pref.timezone.America.Rainy_River=美洲/雨季河
+pref.timezone.America.Rankin_Inlet=美洲/兰进
+pref.timezone.America.Recife=美洲/瑞西佛
+pref.timezone.America.Regina=美洲/瑞杰那
+pref.timezone.America.Rio_Branco=美洲/里约布兰科
+pref.timezone.America.Santiago=美洲/圣地亚哥
+pref.timezone.America.Santo_Domingo=美洲/圣多明各
+pref.timezone.America.Sao_Paulo=美洲/圣保罗
+pref.timezone.America.Scoresbysund=美洲/史科斯比孙
+pref.timezone.America.Shiprock=美洲/船岩
+pref.timezone.America.St_Johns=美洲/圣.约翰
+pref.timezone.America.St_Kitts=美洲/圣.基茨
+pref.timezone.America.St_Lucia=美洲/圣.圣卢西亚
+pref.timezone.America.St_Thomas=美洲/圣.托马斯
+pref.timezone.America.St_Vincent=美洲/圣.郑海泉
+pref.timezone.America.Swift_Current=美洲/斯威夫特卡伦特
+pref.timezone.America.Tegucigalpa=美洲/德古斯加巴
+pref.timezone.America.Thule=美洲/图里
+pref.timezone.America.Thunder_Bay=美洲/桑德贝
+pref.timezone.America.Tijuana=美洲/提亚瓦讷
+pref.timezone.America.Toronto=美洲/多伦多
+pref.timezone.America.Tortola=美洲/托尔托拉
+pref.timezone.America.Vancouver=美洲/温哥华
+pref.timezone.America.Whitehorse=美洲/白马
+pref.timezone.America.Winnipeg=美洲/温尼伯
+pref.timezone.America.Yakutat=美洲/亚库特
+pref.timezone.America.Yellowknife=美洲/黄刀
+pref.timezone.Antarctica.Casey=南极洲/卡西
+pref.timezone.Antarctica.Davis=南极洲/戴维斯
+pref.timezone.Antarctica.DumontDUrville=南极洲/迪蒙.迪尔维尔
+pref.timezone.Antarctica.Mawson=南极洲/墨生
+pref.timezone.Antarctica.McMurdo=南极洲/麦克莫多
+pref.timezone.Antarctica.Palmer=南极洲/帕尔莫
+pref.timezone.Antarctica.Rothera=南极洲/罗瑟拉
+pref.timezone.Antarctica.South_Pole=南极洲/南极点
+pref.timezone.Antarctica.Syowa=南极洲/昭和
+pref.timezone.Antarctica.Vostok=南极洲/东方
+pref.timezone.Arctic.Longyearbyen=北极/朗伊尔城
+pref.timezone.Asia.Aden=亚洲/亚丁
+pref.timezone.Asia.Almaty=亚洲/阿拉木图
+pref.timezone.Asia.Amman=亚洲/安曼
+pref.timezone.Asia.Anadyr=亚洲/阿纳德尔
+pref.timezone.Asia.Aqtau=亚洲/阿克套
+pref.timezone.Asia.Aqtobe=亚洲/阿克托贝
+pref.timezone.Asia.Ashgabat=亚洲/阿什喀巴得
+pref.timezone.Asia.Baghdad=亚洲/巴格达
+pref.timezone.Asia.Bahrain=亚洲/巴林
+pref.timezone.Asia.Baku=亚洲/巴库
+pref.timezone.Asia.Bangkok=亚洲/曼谷
+pref.timezone.Asia.Beirut=亚洲/贝鲁特
+pref.timezone.Asia.Bishkek=亚洲/比什凯克
+pref.timezone.Asia.Brunei=亚洲/文莱
+pref.timezone.Asia.Choibalsan=亚洲/乔巴山
+pref.timezone.Asia.Chongqing=亚洲/重庆
+pref.timezone.Asia.Colombo=亚洲/科伦坡
+pref.timezone.Asia.Damascus=亚洲/大马士革
+pref.timezone.Asia.Dhaka=亚洲/达卡
+pref.timezone.Asia.Dili=亚洲/帝力
+pref.timezone.Asia.Dubai=亚洲/杜拜
+pref.timezone.Asia.Dushanbe=亚洲/杜桑贝
+pref.timezone.Asia.Gaza=亚洲/迦萨
+pref.timezone.Asia.Harbin=亚洲/哈尔滨
+pref.timezone.Asia.Hong_Kong=亚洲/香港
+pref.timezone.Asia.Hovd=亚洲/科布多
+pref.timezone.Asia.Irkutsk=亚洲/伊尔库茨克
+pref.timezone.Asia.Istanbul=亚洲/伊斯坦堡
+pref.timezone.Asia.Jakarta=亚洲/雅加达
+pref.timezone.Asia.Jayapura=亚洲/嘉雅浦拉
+pref.timezone.Asia.Jerusalem=亚洲/耶路撒冷
+pref.timezone.Asia.Kabul=亚洲/喀布尔
+pref.timezone.Asia.Kamchatka=亚洲/堪察加
+pref.timezone.Asia.Karachi=亚洲/喀拉蚩
+pref.timezone.Asia.Kashgar=亚洲/喀什噶尔
+pref.timezone.Asia.Kathmandu=亚洲/加德满都
+pref.timezone.Asia.Krasnoyarsk=亚洲/克拉斯诺亚尔斯克
+pref.timezone.Asia.Kuala_Lumpur=亚洲/吉隆坡
+pref.timezone.Asia.Kuching=亚洲/古晋
+pref.timezone.Asia.Kuwait=亚洲/科威特
+pref.timezone.Asia.Macau=亚洲/澳门
+pref.timezone.Asia.Magadan=亚洲/马加丹
+pref.timezone.Asia.Makassar=亚洲/马卡萨
+pref.timezone.Asia.Manila=亚洲/马尼拉
+pref.timezone.Asia.Muscat=亚洲/马斯喀特
+pref.timezone.Asia.Nicosia=亚洲/尼科西亚
+pref.timezone.Asia.Novosibirsk=亚洲/新西伯利亚
+pref.timezone.Asia.Omsk=亚洲/鄂木斯克
+pref.timezone.Asia.Oral=亚洲/欧乐
+pref.timezone.Asia.Phnom_Penh=亚洲/金边
+pref.timezone.Asia.Pontianak=亚洲/坤甸
+pref.timezone.Asia.Pyongyang=亚洲/平壤
+pref.timezone.Asia.Qatar=亚洲/卡达
+pref.timezone.Asia.Qyzylorda=亚洲/克孜勒奥尔达
+pref.timezone.Asia.Rangoon=亚洲/仰光
+pref.timezone.Asia.Riyadh=亚洲/利雅得
+pref.timezone.Asia.Sakhalin=亚洲/萨哈林
+pref.timezone.Asia.Samarkand=亚洲/撒马尔罕
+pref.timezone.Asia.Seoul=亚洲/首尔
+pref.timezone.Asia.Shanghai=亚洲/上海
+pref.timezone.Asia.Singapore=亚洲/新加坡
+pref.timezone.Asia.Taipei=亚洲/台北
+pref.timezone.Asia.Tashkent=亚洲/塔什干
+pref.timezone.Asia.Tbilisi=亚洲/第比利斯
+pref.timezone.Asia.Tehran=亚洲/德黑兰
+pref.timezone.Asia.Thimphu=亚洲/辛布
+pref.timezone.Asia.Tokyo=亚洲/东京
+pref.timezone.Asia.Ulaanbaatar=亚洲/乌兰巴托
+pref.timezone.Asia.Urumqi=亚洲/乌鲁木齐
+pref.timezone.Asia.Vientiane=亚洲/永珍
+pref.timezone.Asia.Vladivostok=亚洲/海参崴
+pref.timezone.Asia.Yakutsk=亚洲/雅库次克
+pref.timezone.Asia.Yekaterinburg=亚洲/叶卡捷琳堡
+pref.timezone.Asia.Yerevan=亚洲/叶里温
+pref.timezone.Atlantic.Azores=大西洋/亚速尔群岛
+pref.timezone.Atlantic.Bermuda=大西洋/百慕达
+pref.timezone.Atlantic.Canary=大西洋/卡纳里群岛
+pref.timezone.Atlantic.Cape_Verde=大西洋/佛得角
+pref.timezone.Atlantic.Faroe=大西洋地区/法罗群岛
+pref.timezone.Atlantic.Madeira=大西洋/马德拉群岛
+pref.timezone.Atlantic.Reykjavik=大西洋/雷克雅维克
+pref.timezone.Atlantic.South_Georgia=大西洋/南格鲁吉亚
+pref.timezone.Atlantic.St_Helena=大西洋/圣.赫勒拿岛
+pref.timezone.Atlantic.Stanley=大西洋/史坦利岛
+pref.timezone.Australia.Adelaide=澳大利亚/阿德雷德
+pref.timezone.Australia.Brisbane=澳大利亚/布利斯班
+pref.timezone.Australia.Broken_Hill=澳大利亚/布罗肯山
+pref.timezone.Australia.Currie=澳大利亚/柯里
+pref.timezone.Australia.Darwin=澳大利亚/达尔文市
+pref.timezone.Australia.Eucla=澳大利亚/尤克拉
+pref.timezone.Australia.Hobart=澳大利亚/哈巴特
+pref.timezone.Australia.Lindeman=澳大利亚/林德曼
+pref.timezone.Australia.Lord_Howe=澳大利亚/豪勋爵
+pref.timezone.Australia.Melbourne=澳大利亚/墨尔本
+pref.timezone.Australia.Perth=澳大利亚/伯斯
+pref.timezone.Australia.Sydney=澳大利亚/雪梨
+pref.timezone.Europe.Amsterdam=欧洲/阿姆斯特丹
+pref.timezone.Europe.Andorra=欧洲/安道尔
+pref.timezone.Europe.Athens=欧洲/雅典
+pref.timezone.Europe.Belgrade=欧洲/贝尔格勒
+pref.timezone.Europe.Berlin=欧洲/柏林
+pref.timezone.Europe.Bratislava=欧洲/布拉第斯拉瓦
+pref.timezone.Europe.Brussels=欧洲/布鲁塞尔
+pref.timezone.Europe.Bucharest=欧洲/布加勒斯特
+pref.timezone.Europe.Budapest=欧洲/布达佩斯
+pref.timezone.Europe.Chisinau=欧洲/基希那乌
+pref.timezone.Europe.Copenhagen=欧洲/哥本哈根
+pref.timezone.Europe.Dublin=欧洲/都柏林
+pref.timezone.Europe.Gibraltar=欧洲/直布罗陀
+pref.timezone.Europe.Guernsey=欧洲/根西岛
+pref.timezone.Europe.Helsinki=欧洲/赫尔辛基
+pref.timezone.Europe.Isle_of_Man=欧洲/马恩岛
+pref.timezone.Europe.Istanbul=欧洲/伊斯坦堡
+pref.timezone.Europe.Jersey=欧洲/泽西
+pref.timezone.Europe.Kaliningrad=欧洲/加里宁格勒
+pref.timezone.Europe.Kiev=欧洲/基辅
+pref.timezone.Europe.Lisbon=欧洲/里斯本
+pref.timezone.Europe.Ljubljana=欧洲/卢布雅那
+pref.timezone.Europe.London=欧洲/伦敦
+pref.timezone.Europe.Luxembourg=欧洲/卢森堡
+pref.timezone.Europe.Madrid=欧洲/马德里
+pref.timezone.Europe.Malta=欧洲/马耳他
+pref.timezone.Europe.Mariehamn=欧洲/玛丽港
+pref.timezone.Europe.Minsk=欧洲/明斯克
+pref.timezone.Europe.Monaco=欧洲/摩纳哥
+pref.timezone.Europe.Moscow=欧洲/莫斯科
+pref.timezone.Europe.Nicosia=欧洲/尼科西亚
+pref.timezone.Europe.Oslo=欧洲/奥斯陆
+pref.timezone.Europe.Paris=欧洲/巴黎
+pref.timezone.Europe.Podgorica=欧洲/波德戈里察
+pref.timezone.Europe.Prague=欧洲/布拉格
+pref.timezone.Europe.Riga=欧洲/里加
+pref.timezone.Europe.Rome=欧洲/罗马
+pref.timezone.Europe.Samara=欧洲/沙马拉
+pref.timezone.Europe.San_Marino=欧洲/圣马力诺
+pref.timezone.Europe.Sarajevo=欧洲/萨拉耶佛
+pref.timezone.Europe.Simferopol=欧洲/辛菲洛普
+pref.timezone.Europe.Skopje=欧洲/史高彼耶
+pref.timezone.Europe.Sofia=欧洲/索非亚
+pref.timezone.Europe.Stockholm=欧洲/斯德哥尔摩
+pref.timezone.Europe.Tallinn=欧洲/塔林
+pref.timezone.Europe.Tirane=欧洲/地拉那
+pref.timezone.Europe.Uzhgorod=欧洲/乌日戈罗德
+pref.timezone.Europe.Vaduz=欧洲/瓦杜兹
+pref.timezone.Europe.Vatican=欧洲/梵蒂冈
+pref.timezone.Europe.Vienna=欧洲/维也纳
+pref.timezone.Europe.Vilnius=欧洲/维尔拿
+pref.timezone.Europe.Volgograd=欧洲/伏尔加格勒
+pref.timezone.Europe.Warsaw=欧洲/华沙
+pref.timezone.Europe.Zagreb=欧洲/札格勒布
+pref.timezone.Europe.Zaporozhye=欧洲/扎波罗热
+pref.timezone.Europe.Zurich=欧洲/苏黎世
+pref.timezone.Indian.Antananarivo=印度/安塔那那利佛
+pref.timezone.Indian.Chagos=印度/查戈斯
+pref.timezone.Indian.Christmas=印度/圣诞岛
+pref.timezone.Indian.Cocos=印度/可可斯
+pref.timezone.Indian.Comoro=印度/葛摩群岛
+pref.timezone.Indian.Kerguelen=印度/克尔格伦群岛
+pref.timezone.Indian.Mahe=印度/玛黑
+pref.timezone.Indian.Maldives=印度/马尔地夫
+pref.timezone.Indian.Mauritius=印度/模里西斯
+pref.timezone.Indian.Mayotte=印度/马约特岛岛
+pref.timezone.Indian.Reunion=印度/留尼旺岛
+pref.timezone.Pacific.Apia=太平洋/亚庇
+pref.timezone.Pacific.Auckland=太平洋/奥克兰
+pref.timezone.Pacific.Chatham=太平洋/占松
+pref.timezone.Pacific.Easter=太平洋/复活节岛
+pref.timezone.Pacific.Efate=太平洋/伊法提
+pref.timezone.Pacific.Enderbury=太平洋/英德贝里
+pref.timezone.Pacific.Fakaofo=太平洋/法克奥佛
+pref.timezone.Pacific.Fiji=太平洋/斐济
+pref.timezone.Pacific.Funafuti=太平洋/福那富提
+pref.timezone.Pacific.Galapagos=太平洋/加拉帕哥群岛
+pref.timezone.Pacific.Gambier=太平洋/甘毕尔
+pref.timezone.Pacific.Guadalcanal=太平洋/瓜达尔卡纳尔岛
+pref.timezone.Pacific.Guam=太平洋/关岛
+pref.timezone.Pacific.Honolulu=太平洋/檀香山
+pref.timezone.Pacific.Johnston=太平洋/强斯敦
+pref.timezone.Pacific.Kiritimati=太平洋/圣诞岛
+pref.timezone.Pacific.Kosrae=太平洋/科斯莱
+pref.timezone.Pacific.Kwajalein=太平洋/夸加连岛
+pref.timezone.Pacific.Majuro=太平洋/马久罗
+pref.timezone.Pacific.Marquesas=太平洋/马凯萨斯
+pref.timezone.Pacific.Midway=太平洋/中途岛
+pref.timezone.Pacific.Nauru=太平洋/诺鲁
+pref.timezone.Pacific.Niue=太平洋/纽埃岛
+pref.timezone.Pacific.Norfolk=太平洋/诺福克
+pref.timezone.Pacific.Noumea=太平洋/努美雅
+pref.timezone.Pacific.Pago_Pago=太平洋/帕果帕果
+pref.timezone.Pacific.Palau=太平洋/帛琉
+pref.timezone.Pacific.Pitcairn=太平洋/皮特凯恩
+pref.timezone.Pacific.Ponape=太平洋/波那佩
+pref.timezone.Pacific.Port_Moresby=太平洋/莫尔斯比港
+pref.timezone.Pacific.Rarotonga=太平洋/拉罗东加岛
+pref.timezone.Pacific.Saipan=太平洋/塞班岛
+pref.timezone.Pacific.Tahiti=太平洋/大溪地岛
+pref.timezone.Pacific.Tarawa=太平洋/塔拉瓦岛
+pref.timezone.Pacific.Tongatapu=太平洋/东加塔普
+pref.timezone.Pacific.Truk=太平洋/楚克
+pref.timezone.Pacific.Wake=太平洋/威克岛
+pref.timezone.Pacific.Wallis=太平洋/沃利斯
+
+# the following have been missing
+pref.timezone.America.Indiana.Tell_City=美洲/印地安/特尔市
+pref.timezone.America.Indiana.Winamac=美洲/印地安/威纳马克
+pref.timezone.America.Marigot=美洲/马里戈特
+pref.timezone.America.Resolute=美洲/雷索路特
+pref.timezone.America.St_Barthelemy=美洲/圣.巴泰勒米
+
+# added with 2008d:
+pref.timezone.America.Argentina.San_Luis=美洲/阿根廷/圣路易斯
+pref.timezone.America.Santarem=美洲/圣塔伦
+pref.timezone.Asia.Ho_Chi_Minh=亚洲/胡志明市
+pref.timezone.Asia.Kolkata=亚洲/加尔各答
+
+# added with 2008i:
+pref.timezone.America.Argentina.Salta=美洲/阿根廷/萨尔塔
+
+# added with 2010i
+pref.timezone.America.Matamoros=美洲/马塔莫罗斯
+pref.timezone.America.Ojinaga=美洲/吉尼亚加
+pref.timezone.America.Santa_Isabel=美洲/圣伊萨贝尔
+pref.timezone.Antarctica.Macquarie=南极洲/麦格理
+pref.timezone.Asia.Novokuznetsk=亚洲/新库兹涅茨克
+
+#added with 2011b
+pref.timezone.America.Bahia_Banderas=美洲/巴伊亚 班德拉斯
+pref.timezone.America.North_Dakota.Beulah=美洲/北达科他州/以色列
+pref.timezone.Pacific.Chuuk=太平洋/特鲁克群岛
+pref.timezone.Pacific.Pohnpei=太平洋/波纳佩
+
+#added with 2011n
+pref.timezone.Africa.Juba=非洲/朱巴
+pref.timezone.America.Kralendijk=美国/Kralendijk
+pref.timezone.America.Lower_Princes=美洲/Lower Princes
+pref.timezone.America.Metlakatla=美国/Metlakatla
+pref.timezone.America.Sitka=美国/Sitka
+pref.timezone.Asia.Hebron=亚洲/希伯伦
+
+#added with 2013a
+pref.timezone.America.Creston=美洲/克雷斯顿
+pref.timezone.Asia.Khandyga=亚洲/汉德加
+pref.timezone.Asia.Ust-Nera=亚洲/乌斯季挪拉
+pref.timezone.Europe.Busingen=欧洲/比辛根
+
+#added with 2014b
+pref.timezone.Antarctica.Troll=南极洲/Troll
+
+#added with 2014j
+pref.timezone.Asia.Chita=亚洲/赤塔
+pref.timezone.Asia.Srednekolymsk=亚洲/中科雷姆斯克
+pref.timezone.Pacific.Bougainville=太平洋/布干维尔岛
+
+#added with 2.2015g
+pref.timezone.America.Fort_Nelson=美国/纳尔逊堡
+
+#added with 2.2016b
+pref.timezone.Europe.Ulyanovsk=欧洲/乌里扬诺夫斯克
+pref.timezone.Europe.Astrakhan=欧洲/阿斯特拉罕
+pref.timezone.Asia.Barnaul=亚洲/巴尔瑙尔
+
+#added with 2.2016i
+pref.timezone.Asia.Yangon=亚洲/仰光
+pref.timezone.Asia.Tomsk=亚洲/托木斯克
+pref.timezone.Asia.Famagusta=亚洲/法马古斯塔
+pref.timezone.Europe.Kirov=欧洲/基洛夫
+
+#added with 2.2016j
+pref.timezone.Europe.Saratov=欧洲/萨拉托夫
+pref.timezone.Asia.Atyrau=亚洲/阿特劳
+
+#added with 2.2017b
+pref.timezone.America.Punta_Arenas=美洲/蓬塔阿雷纳斯
+
+#added with 2.2018i
+pref.timezone.Asia.Qostanay=亚洲/库斯塔奈
+
+#added with 2.2020a
+pref.timezone.America.Nuuk=美洲 / 努克
diff --git a/l10n-zh-CN/calendar/chrome/lightning/lightning-toolbar.dtd b/l10n-zh-CN/calendar/chrome/lightning/lightning-toolbar.dtd
new file mode 100755
index 0000000000..8658b2f8fe
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/lightning/lightning-toolbar.dtd
@@ -0,0 +1,51 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY lightning.toolbar.calendar.name "日历工具栏">
+<!ENTITY lightning.toolbar.calendar.name.accesskey "C">
+<!ENTITY lightning.toolbar.task.name "任务工具栏">
+<!ENTITY lightning.toolbar.task.name.accesskey "T">
+
+<!ENTITY lightning.toolbar.sync.label "同步">
+<!ENTITY lightning.toolbar.sync.tooltip "重新载入日历并同步变更">
+<!ENTITY lightning.toolbar.delete.label "删除">
+<!ENTITY lightning.toolbar.delete.tooltip "删除选中的事件或任务">
+<!ENTITY lightning.toolbar.edit.label "编辑">
+<!ENTITY lightning.toolbar.edit.tooltip "编辑选中的事件或任务">
+<!ENTITY lightning.toolbar.gototoday.label "转至今日">
+<!ENTITY lightning.toolbar.gototoday.tooltip "转至今天">
+<!ENTITY lightning.toolbar.print.label "打印">
+<!ENTITY lightning.toolbar.print.tooltip "打印事件或任务">
+
+<!-- Mode Toolbar -->
+<!ENTITY lightning.toolbar.calendar.label "日历">
+<!ENTITY lightning.toolbar.calendar.tooltip "切换到日历选项卡">
+<!ENTITY lightning.toolbar.calendar.accesskey "C">
+<!ENTITY lightning.toolbar.task.label "任务">
+<!ENTITY lightning.toolbar.task.tooltip "切换到任务选项卡">
+<!ENTITY lightning.toolbar.task.accesskey "T">
+
+<!-- Toolbar write button -->
+<!ENTITY lightning.toolbar.newevent.label "事件">
+<!ENTITY lightning.toolbar.newevent.tooltip "创建新事件">
+<!ENTITY lightning.toolbar.newtask.label "任务">
+<!ENTITY lightning.toolbar.newtask.tooltip "创建新任务">
+
+<!-- Calendar and Task Mode Toolbar -->
+<!ENTITY lightning.toolbar.day.label "日">
+<!ENTITY lightning.toolbar.day.accesskey "D">
+<!ENTITY lightning.toolbar.week.label "周">
+<!ENTITY lightning.toolbar.week.accesskey "W">
+<!ENTITY lightning.toolbar.multiweek.label "多周">
+<!ENTITY lightning.toolbar.multiweek.accesskey "u">
+<!ENTITY lightning.toolbar.month.label "月">
+<!ENTITY lightning.toolbar.month.accesskey "M">
+<!-- LOCALIZATION NOTE: the same as appmenuButton.label and appmenuButton1.tooltip
+ from messenger.dtd -->
+<!ENTITY lightning.toolbar.appmenuButton.label "应用菜单">
+<!ENTITY lightning.toolbar.appmenuButton1.tooltip "显示 &brandShortName; 菜单">
+<!ENTITY lightning.toolbar.calendarmenu.label "日历窗格">
+<!ENTITY lightning.toolbar.calendarmenu.accesskey "P">
+<!ENTITY lightning.toolbar.calendarpane.label "显示日历窗格">
+<!ENTITY lightning.toolbar.calendarpane.accesskey "P">
diff --git a/l10n-zh-CN/calendar/chrome/lightning/lightning.dtd b/l10n-zh-CN/calendar/chrome/lightning/lightning.dtd
new file mode 100755
index 0000000000..32bc700493
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/lightning/lightning.dtd
@@ -0,0 +1,116 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- WARNING! This file contains UTF-8 encoded characters!
+ - If this ==> … <== doesn't look like an ellipsis (three dots in a row),
+ - your editor isn't using UTF-8 encoding and may munge up the document!
+ -->
+
+<!-- Tools menu -->
+<!ENTITY lightning.preferencesLabel "日历">
+
+<!-- New menu popup in File menu -->
+<!ENTITY lightning.menupopup.new.event.label "事件…">
+<!ENTITY lightning.menupopup.new.event.accesskey "E">
+<!ENTITY lightning.menupopup.new.task.label "任务…">
+<!ENTITY lightning.menupopup.new.task.accesskey "T">
+<!ENTITY lightning.menupopup.new.calendar.label "日历…">
+<!ENTITY lightning.menupopup.new.calendar.accesskey "n">
+
+<!-- Open menu popup in File menu -->
+<!ENTITY lightning.menupopup.open.label "打开">
+<!ENTITY lightning.menupopup.open.accesskey "O">
+<!ENTITY lightning.menupopup.open.message.label "已保存消息…">
+<!ENTITY lightning.menupopup.open.message.accesskey "M">
+
+<!-- Open menu popup in File menu -->
+<!ENTITY lightning.menupopup.open.calendar.label "日历文件…">
+<!ENTITY lightning.menupopup.open.calendar.accesskey "C">
+
+<!-- View Menu -->
+<!ENTITY lightning.menu.view.calendar.label "日历">
+<!ENTITY lightning.menu.view.calendar.accesskey "n">
+<!ENTITY lightning.menu.view.tasks.label "任务">
+<!ENTITY lightning.menu.view.tasks.accesskey "k">
+
+<!-- Events and Tasks menu -->
+<!ENTITY lightning.menu.eventtask.label "事件和任务">
+<!ENTITY lightning.menu.eventtask.accesskey "n">
+
+<!-- properties dialog, calendar creation wizard -->
+<!-- LOCALIZATON NOTE(lightning.calendarproperties.email.label,
+ lightning.calendarproperties.forceEmailScheduling.label)
+ These strings are used in the calendar wizard and the calendar properties dialog, but are only
+ displayed when setting/using a caldav calendar -->
+<!ENTITY lightning.calendarproperties.email.label "电子邮箱:">
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.label "偏好由客户端安排定时发送邮件">
+<!-- LOCALIZATON NOTE(lightning.calendarproperties.forceEmailScheduling.tooltiptext1,
+ lightning.calendarproperties.forceEmailScheduling.tooltiptext2)
+ - tooltiptext1 is used in the calendar wizard when setting a new caldav calendar
+ - tooltiptext2 is used in the calendar properties dialog for caldav calendars -->
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.tooltiptext1 "现在起,必须先在其属性对话框里设置好此日历,并且对应的日历服务器有定时发送功能时,您才能启用这个选项。">
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.tooltiptext2 "此选项仅在日历服务器可以处理定时发送时才能启用。启用后,将不使用日历服务器提供的定时发送功能,而仍使用基于邮件的标准定时发送流程。">
+
+<!-- iMIP Bar (meeting support) -->
+<!ENTITY lightning.imipbar.btnAccept.label "接受">
+<!ENTITY lightning.imipbar.btnAccept2.tooltiptext "接受事件邀请">
+<!ENTITY lightning.imipbar.btnAcceptRecurrences.label "全部接受">
+<!ENTITY lightning.imipbar.btnAcceptRecurrences2.tooltiptext "接受该事件的每次邀请">
+<!ENTITY lightning.imipbar.btnAdd.label "添加">
+<!ENTITY lightning.imipbar.btnAdd.tooltiptext "添加事件到日历">
+<!ENTITY lightning.imipbar.btnDecline.label "谢绝">
+<!ENTITY lightning.imipbar.btnDecline2.tooltiptext "拒绝事件邀请">
+<!ENTITY lightning.imipbar.btnDeclineRecurrences.label "全部拒绝">
+<!ENTITY lightning.imipbar.btnDeclineRecurrences2.tooltiptext "拒绝该事件的每次邀请">
+<!ENTITY lightning.imipbar.btnDeclineCounter.label "拒绝">
+<!ENTITY lightning.imipbar.btnDeclineCounter.tooltiptext "拒绝计数提案">
+<!ENTITY lightning.imipbar.btnDelete.label "删除">
+<!ENTITY lightning.imipbar.btnDelete.tooltiptext "从日历中删除">
+<!ENTITY lightning.imipbar.btnDetails.label "详细信息…">
+<!ENTITY lightning.imipbar.btnDetails.tooltiptext "显示事件详情">
+<!ENTITY lightning.imipbar.btnDoNotShowImipBar.label "不再显示此信息">
+<!ENTITY lightning.imipbar.btnGoToCalendar.label "日历">
+<!ENTITY lightning.imipbar.btnGoToCalendar.tooltiptext "前往日历选项卡">
+<!ENTITY lightning.imipbar.btnMore.label "更多">
+<!ENTITY lightning.imipbar.btnMore.tooltiptext "点击显示更多选项">
+<!ENTITY lightning.imipbar.btnReconfirm2.label "重新确认">
+<!ENTITY lightning.imipbar.btnReconfirm.tooltiptext "发送一个再次确认到组织者">
+<!ENTITY lightning.imipbar.btnReschedule.label "重新安排">
+<!ENTITY lightning.imipbar.btnReschedule.tooltiptext "重新安排该事件">
+<!ENTITY lightning.imipbar.btnSaveCopy.label "保存副本">
+<!ENTITY lightning.imipbar.btnSaveCopy.tooltiptext "在日历中保存一份只回复组织者的独立事件副本,参与者列表被清空。">
+<!ENTITY lightning.imipbar.btnTentative.label "暂定">
+<!ENTITY lightning.imipbar.btnTentative2.tooltiptext "暂时接受事件邀请">
+<!ENTITY lightning.imipbar.btnTentativeRecurrences.label "暂定全部">
+<!ENTITY lightning.imipbar.btnTentativeRecurrences2.tooltiptext "暂时接受该事件的每次邀请">
+<!ENTITY lightning.imipbar.btnUpdate.label "更新">
+<!ENTITY lightning.imipbar.btnUpdate.tooltiptext "更新日历中的事件">
+<!ENTITY lightning.imipbar.description "本信息包含一个事件的邀请。">
+
+<!ENTITY lightning.imipbar.btnSend.label "立刻发送回复">
+<!ENTITY lightning.imipbar.btnSend.tooltiptext "发送回复给组织者">
+<!ENTITY lightning.imipbar.btnSendSeries.tooltiptext "发送针对整个系列的回复给组织者">
+<!ENTITY lightning.imipbar.btnDontSend.label "不要发送回复">
+<!ENTITY lightning.imipbar.btnDontSend.tooltiptext "变更您的参与状态,而不发送回复给组织者">
+<!ENTITY lightning.imipbar.btnDontSendSeries.tooltiptext "变更您在整个系列活动的参与状态,而不发送回复给组织者">
+
+<!-- Lightning specific keybindings -->
+<!ENTITY lightning.keys.event.showCalendar.key "C">
+<!ENTITY lightning.keys.event.showTasks.key "D">
+<!ENTITY lightning.keys.event.new "I">
+<!ENTITY lightning.keys.todo.new "D">
+
+<!-- Account Central page -->
+<!ENTITY lightning.acctCentral.newCalendar.label "创建一个新日历">
+
+<!-- today-pane-specific -->
+<!ENTITY todaypane.showMinimonth.label "显示迷你月历">
+<!ENTITY todaypane.showMinimonth.accesskey "M">
+<!ENTITY todaypane.showMiniday.label "显示迷你日">
+<!ENTITY todaypane.showMiniday.accesskey "D">
+<!ENTITY todaypane.showNone.label "不显示">
+<!ENTITY todaypane.showNone.accesskey "N">
+<!ENTITY todaypane.showTodayPane.label "显示今日窗格">
+<!ENTITY todaypane.showTodayPane.accesskey "o">
+<!ENTITY todaypane.statusButton.label "今日窗格">
diff --git a/l10n-zh-CN/calendar/chrome/lightning/lightning.properties b/l10n-zh-CN/calendar/chrome/lightning/lightning.properties
new file mode 100755
index 0000000000..091eed97ee
--- /dev/null
+++ b/l10n-zh-CN/calendar/chrome/lightning/lightning.properties
@@ -0,0 +1,201 @@
+# 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/.
+
+# addon description:
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.name=Lightning
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.description=整合入电子邮件客户端的日历与排程工具
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.creator=Mozilla Calendar Project
+
+# Lightning branding
+brandShortName=Lightning
+
+# Task mode title
+taskModeApplicationTitle=任务
+
+# Tab titles
+tabTitleCalendar=日历
+tabTitleTasks=任务
+
+# Html event display in message
+imipHtml.header=事件邀请
+imipHtml.summary=标题:
+imipHtml.location=位置:
+imipHtml.when=时间:
+imipHtml.organizer=组织者:
+imipHtml.description=描述:
+# LOCALIZATION_NOTE(imipHtml.attachments): This is a label for one or more (additional) links to
+# documents or websites attached to this event.
+imipHtml.attachments=附件:
+imipHtml.comment=备注:
+imipHtml.attendees=参与者:
+# LOCALIZATION_NOTE(imipHtml.url): This is a label for a reference to an (alternate) online
+# representation of the event (either directly human readable or not).
+imipHtml.url=相关链接:
+imipHtml.canceledOccurrences=已取消事件:
+imipHtml.modifiedOccurrences=已修改事件:
+imipHtml.newLocation=新位置:%1$S
+# LOCALIZATION_NOTE(imipHtml.attendeeDelegatedFrom): this is appended behind an attendee name in the
+# email invitation preview - don't add leading/trailing whitespaces here
+# %1$S - a single delegator or a comma separated list of delegators
+imipHtml.attendeeDelegatedFrom=(由 %1$S 委托)
+# LOCALIZATION_NOTE(imipHtml.attendeeDelegatedTo): this is appended behind an attendee name in the
+# email invitation preview - don't add leading/trailing whitespaces here
+# %1$S - a single delegatee or a comma separated list of delegatees
+imipHtml.attendeeDelegatedTo=(委托给 %1$S)
+
+# LOCALIZATION_NOTE(imipHtml.attendee.combined): tooltip for itip icon in email invitation preview.
+# Given an attendee loungeexample.org of type room is a mandatory participant and has accepted the
+# invitation, the tooltip would be:
+# lounge@example.org (room) is a required participant. lounge@example.org has confirmed attendance.
+# %1$S - value of imipHtml.attendeeRole2.*
+# %2$S - value of imipHtml.attendeePartStat2.*
+imipHtml.attendee.combined=%1$S %2$S
+
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.CHAIR): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.CHAIR=%1$S 主持活动。
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.NON-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.NON-PARTICIPANT=%1$S 非参与者。
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.OPT-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.OPT-PARTICIPANT=%1$S 是一名可选参与者。
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.REQ-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.REQ-PARTICIPANT=%1$S 是一名必需参与者。
+
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.ACCEPTED): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.ACCEPTED=%1$S 已确认参加。
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.DECLINED): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.DECLINED=%1$S 已确定不会参加。
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.DELEGATED): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+# %2$S - single delegatee or comma separated list of delegatees
+# delegation is different from invitation forwarding - in case of the former the original attendee
+# is replaced, while on the latter the receiver may take part additionally
+imipHtml.attendeePartStat2.DELEGATED=%1$S 已委托 %2$S 参与。
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.NEEDS-ACTION): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.NEEDS-ACTION=%1$S 仍需回复。
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.TENTATIVE): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.TENTATIVE=%1$S 已初步确认参加。
+
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.INDIVIDUAL): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name <email address> representing an individual attendee
+imipHtml.attendeeUserType2.INDIVIDUAL=%1$S
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.GROUP): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a group (e.g. a distribution list)
+imipHtml.attendeeUserType2.GROUP=%1$S (组)
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.RESOURCE): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a resource (e.g. projector)
+imipHtml.attendeeUserType2.RESOURCE=%1$S (资源)
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.ROOM): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a room
+imipHtml.attendeeUserType2.ROOM=%1$S (房间)
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.UNKNOWN): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name <email address> representing an attendee of unknown type
+imipHtml.attendeeUserType2.UNKNOWN=%1$S
+
+imipAddedItemToCal2=该事件已添加到您的日历。
+imipCanceledItem2=该事件已从您的日历删除。
+imipUpdatedItem2=该事件已更新。
+imipBarCancelText=此消息包含一个取消事件。
+imipBarCounterErrorText=此消息包含一个计数提案邀请,无法处理。
+imipBarCounterPreviousVersionText=此消息包含一个以前版本的计数提案邀请。
+imipBarCounterText=此消息包含一个计数提案邀请。
+imipBarDisallowedCounterText=此消息包含一个计数提案,尽管您不允许此事件的计数。
+imipBarDeclineCounterText=此消息包含一个对您的计数提案的回复。
+imipBarRefreshText=此消息请求事件更新.
+imipBarPublishText=此消息包含一个事件.
+imipBarRequestText=此消息包含一个事件的邀请。
+imipBarSentText=此消息包含一个已发送事件。
+imipBarSentButRemovedText=此消息包含一个已发送出的但不再在您的日历中的事件。
+imipBarUpdateText=此消息包含一个已经存在的事件。
+imipBarUpdateMultipleText=此消息包含对若干现有事件的更新。
+imipBarUpdateSeriesText=此消息包含对一系列现有活动的更新。
+imipBarAlreadyProcessedText=此消息包含一个已处理事件。
+imipBarProcessedNeedsAction=信息中包含你尚未响应的事件。
+imipBarProcessedMultipleNeedsAction=此消息包含若干您尚未回复的事件。
+imipBarProcessedSeriesNeedsAction=此消息包含一系列您尚未回复的活动。
+imipBarReplyText=此消息包含一个邀请的回复。
+imipBarReplyToNotExistingItem=此消息包含一个回复,提及非您的日历中的事件。                       
+# LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
+# %1$S - datetime of deletion
+imipBarReplyToRecentlyRemovedItem=此消息包含一个回复,提及您的日历中在 %1$S 已移除的事件。
+imipBarUnsupportedText=此消息包含一个 Lightning 无法处理的事件。
+imipBarUnsupportedText2=此消息包含此版本 %1$S 无法处理的事件。
+imipBarProcessingFailed=处理消息失败. 状态: %1$S.
+imipBarCalendarDeactivated=此消息包含事件信息,请启用任一日历即可处理。
+imipBarNotWritable=对邀请的日历配置是不可写的,请检查该日历的属性。
+imipSendMail.title=电子邮件通知
+imipSendMail.text=您想要立即发出通知电子邮件吗?
+imipNoIdentity=无
+imipNoCalendarAvailable=没有可用的可写日历。
+
+itipReplySubject2=回复邀请:%1$S
+itipReplyBodyAccept=%1$S 已经接受了您的事件邀请。
+itipReplyBodyDecline=%1$S 已经拒绝了您的事件邀请。
+itipReplySubjectAccept2=已接受:%1$S
+itipReplySubjectDecline2=拒绝邀请:%1$S
+itipReplySubjectTentative2=暂定:%1$S
+itipRequestSubject2=邀请:%1$S
+itipRequestUpdatedSubject2=已更新:%1$S
+itipRequestBody=%1$S 已经邀请您到 %2$S
+itipCancelSubject2=已取消:%1$S
+itipCancelBody=%1$S 已经取消此事件: « %2$S »
+itipCounterBody=%1$S 为 « %2$S » 做了一份计数提案:
+itipDeclineCounterBody=%1$S 已拒绝您为 « %2$S » 制作的计数提案。
+itipDeclineCounterSubject=计数提案已拒绝:%1$S
+
+confirmProcessInvitation=您最近已删除了此项,请问您确定继续进行此邀请吗?
+confirmProcessInvitationTitle=继续邀请?
+
+invitationsLink.label=邀请: %1$S
+
+# LOCALIZATION_NOTE(binaryComponentKnown): This is shown when Lightning is
+# missing the binary component and knows how to calculate the expected version
+# number. To test, remove the binary component from the components/
+# subdirectory and start Lightning, or force install into a different
+# Thunderbird version. In the last part of the sentence it should be made clear
+# that the user can install e.g. 3.7, 3.7.1 or anything other 3.7.x version
+# %1$S - The Lightning brand name, from the brandShortName string above.
+# %2$S - The current Lightning version
+# %3$S - The expected Lightning version
+binaryComponentKnown=可能是安装了错误版本,无法载入 %1$S 所需的二进制组件。您目前安装了 %1$S %2$S,但应该使用 %3$S 系列版本。
+
+# LOCALIZATION_NOTE(binaryComponentUnknown): This is shown when Lightning is
+# missing the binary component but can't calculate the expected version. This
+# happens in the rare case that Lightning is installed into something other
+# than Thunderbird or Seamonkey. You may link to a different page if you can
+# commit to keeping it up to date, I'd recommend staying with the English page.
+# %1$S - The Lightning brand name, from the brandShortName string above.
+# %2$S - The application brand name, e.g. Postbox
+# %3$S - The application version
+# %3$S - The current Lightning version
+binaryComponentUnknown=可能是安装了错误版本,无法载入 %1$S 所需的二进制组件。您目前在 %2$S %3$S 安装了 %1$S %4$S,若需详细信息,请参见 https://developer.mozilla.org/en/Calendar/Calendar_Versions。
+
+# LOCALIZATION_NOTE(binaryComponentTitle): The title for the dialog that
+# notifies about a version mismatch.
+# %1$S - The Lightning brand name, from the brandShortName string above.
+binaryComponentTitle=%1$S 版本不符合
+
+# LOCALIZATION NOTE(noIdentitySelectedNotification):
+noIdentitySelectedNotification=如果您想用此日历来储存发给别人或别人寄来的邀请,请在下方指定用于这些邮件的身份。