summaryrefslogtreecommitdiffstats
path: root/l10n-ru/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'l10n-ru/calendar')
-rw-r--r--l10n-ru/calendar/README.txt3
-rw-r--r--l10n-ru/calendar/calendar/calendar-context-menus.ftl7
-rw-r--r--l10n-ru/calendar/calendar/calendar-delete-prompt.ftl41
-rw-r--r--l10n-ru/calendar/calendar/calendar-editable-item.ftl30
-rw-r--r--l10n-ru/calendar/calendar/calendar-event-dialog-reminder.ftl10
-rw-r--r--l10n-ru/calendar/calendar/calendar-ics-file-dialog.ftl49
-rw-r--r--l10n-ru/calendar/calendar/calendar-invitation-panel.ftl96
-rw-r--r--l10n-ru/calendar/calendar/calendar-invitations-dialog.ftl10
-rw-r--r--l10n-ru/calendar/calendar/calendar-itip-identity-dialog.ftl8
-rw-r--r--l10n-ru/calendar/calendar/calendar-print.ftl17
-rw-r--r--l10n-ru/calendar/calendar/calendar-summary-dialog.ftl15
-rw-r--r--l10n-ru/calendar/calendar/calendar-uri-redirect-dialog.ftl11
-rw-r--r--l10n-ru/calendar/calendar/calendar-widgets.ftl9
-rw-r--r--l10n-ru/calendar/calendar/category-dialog.ftl7
-rw-r--r--l10n-ru/calendar/calendar/preferences.ftl192
-rw-r--r--l10n-ru/calendar/chrome/calendar/calendar-alarms.properties39
-rw-r--r--l10n-ru/calendar/chrome/calendar/calendar-event-dialog-attendees.properties15
-rw-r--r--l10n-ru/calendar/chrome/calendar/calendar-event-dialog.dtd433
-rw-r--r--l10n-ru/calendar/chrome/calendar/calendar-event-dialog.properties541
-rw-r--r--l10n-ru/calendar/chrome/calendar/calendar-extract.properties294
-rw-r--r--l10n-ru/calendar/chrome/calendar/calendar-invitations-dialog.dtd19
-rw-r--r--l10n-ru/calendar/chrome/calendar/calendar-invitations-dialog.properties10
-rw-r--r--l10n-ru/calendar/chrome/calendar/calendar-occurrence-prompt.dtd7
-rw-r--r--l10n-ru/calendar/chrome/calendar/calendar-occurrence-prompt.properties63
-rw-r--r--l10n-ru/calendar/chrome/calendar/calendar.dtd411
-rw-r--r--l10n-ru/calendar/chrome/calendar/calendar.properties696
-rw-r--r--l10n-ru/calendar/chrome/calendar/calendarCreation.dtd51
-rw-r--r--l10n-ru/calendar/chrome/calendar/calendarCreation.properties6
-rw-r--r--l10n-ru/calendar/chrome/calendar/categories.properties7
-rw-r--r--l10n-ru/calendar/chrome/calendar/dateFormat.properties146
-rw-r--r--l10n-ru/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd19
-rw-r--r--l10n-ru/calendar/chrome/calendar/global.dtd54
-rw-r--r--l10n-ru/calendar/chrome/calendar/menuOverlay.dtd50
-rw-r--r--l10n-ru/calendar/chrome/calendar/migration.dtd9
-rw-r--r--l10n-ru/calendar/chrome/calendar/migration.properties13
-rw-r--r--l10n-ru/calendar/chrome/calendar/provider-uninstall.dtd12
-rw-r--r--l10n-ru/calendar/chrome/calendar/timezones.properties489
-rw-r--r--l10n-ru/calendar/chrome/lightning/lightning-toolbar.dtd51
-rw-r--r--l10n-ru/calendar/chrome/lightning/lightning.dtd114
-rw-r--r--l10n-ru/calendar/chrome/lightning/lightning.properties201
-rw-r--r--l10n-ru/calendar/lightning-l10n.js23
41 files changed, 4278 insertions, 0 deletions
diff --git a/l10n-ru/calendar/README.txt b/l10n-ru/calendar/README.txt
new file mode 100644
index 0000000000..927fc142f2
--- /dev/null
+++ b/l10n-ru/calendar/README.txt
@@ -0,0 +1,3 @@
+For information about installing, running and configuring Sunbird
+including a list of known issues and troubleshooting information,
+refer to: http://www.mozilla.org/projects/calendar/
diff --git a/l10n-ru/calendar/calendar/calendar-context-menus.ftl b/l10n-ru/calendar/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000..89c450c5b9
--- /dev/null
+++ b/l10n-ru/calendar/calendar/calendar-context-menus.ftl
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-item-context-menu-modify-menuitem =
+ .label = Изменить
+ .accesskey = м
diff --git a/l10n-ru/calendar/calendar/calendar-delete-prompt.ftl b/l10n-ru/calendar/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000..2188c5a98b
--- /dev/null
+++ b/l10n-ru/calendar/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,41 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-delete-event-prompt-title =
+ { $count ->
+ [one] Удалить событие
+ [few] Удалить события
+ *[many] Удалить события
+ }
+calendar-delete-event-prompt-message =
+ { $count ->
+ [one] Вы действительно хотите удалить это { $count } событие?
+ [few] Вы действительно хотите удалить эти { $count } события?
+ *[many] Вы действительно хотите удалить эти { $count } событий?
+ }
+calendar-delete-task-prompt-title =
+ { $count ->
+ [one] Удалить задачу
+ [few] Удалить задачи
+ *[many] Удалить задачи
+ }
+calendar-delete-task-prompt-message =
+ { $count ->
+ [one] Вы действительно хотите удалить эту { $count } задачу?
+ [few] Вы действительно хотите удалить эти { $count } задачи?
+ *[many] Вы действительно хотите удалить эти { $count } задач?
+ }
+calendar-delete-item-prompt-title =
+ { $count ->
+ [one] Удалить элемент
+ [few] Удалить элементы
+ *[many] Удалить элементы
+ }
+calendar-delete-item-prompt-message =
+ { $count ->
+ [one] Вы действительно хотите удалить этот { $count } элемент?
+ [few] Вы действительно хотите удалить эти { $count } элемента?
+ *[many] Вы действительно хотите удалить эти { $count } элементов?
+ }
+calendar-delete-prompt-disable-message = Не спрашивать в следующий раз.
diff --git a/l10n-ru/calendar/calendar/calendar-editable-item.ftl b/l10n-ru/calendar/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000..91913b52b2
--- /dev/null
+++ b/l10n-ru/calendar/calendar/calendar-editable-item.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-editable-item-privacy-icon-private =
+ .alt = Приватность: Непубличное событие
+calendar-editable-item-privacy-icon-confidential =
+ .alt = Приватность: Показывать только дату и время
+calendar-editable-item-recurrence =
+ .alt = Повторение
+calendar-editable-item-recurrence-exception =
+ .alt = Исключение повторения
+calendar-editable-item-todo-icon-task =
+ .alt = Задача
+calendar-editable-item-todo-icon-completed-task =
+ .alt = Выполненная задача
+calendar-editable-item-multiday-event-icon-start =
+ .alt = Многодневное мероприятие начинается
+calendar-editable-item-multiday-event-icon-continue =
+ .alt = Многодневное мероприятие продолжается
+calendar-editable-item-multiday-event-icon-end =
+ .alt = Многодневное мероприятие заканчивается
+calendar-editable-item-reminder-icon-alarm =
+ .alt = Напоминание запланировано
+calendar-editable-item-reminder-icon-suppressed-alarm =
+ .alt = Напоминание запланировано, но в настоящее время отключено
+calendar-editable-item-reminder-icon-email =
+ .alt = Запланировано напоминание по электронной почте
+calendar-editable-item-reminder-icon-audio =
+ .alt = Запланировано звуковое напоминание
diff --git a/l10n-ru/calendar/calendar/calendar-event-dialog-reminder.ftl b/l10n-ru/calendar/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000..0df22f7968
--- /dev/null
+++ b/l10n-ru/calendar/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-event-reminder-icon-display =
+ .alt = Показать напоминание
+calendar-event-reminder-icon-email =
+ .alt = Отправить письмо
+calendar-event-reminder-icon-audio =
+ .alt = Воспроизвести звуковое напоминание
diff --git a/l10n-ru/calendar/calendar/calendar-ics-file-dialog.ftl b/l10n-ru/calendar/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000..306867b936
--- /dev/null
+++ b/l10n-ru/calendar/calendar/calendar-ics-file-dialog.ftl
@@ -0,0 +1,49 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-ics-file-window-2 =
+ .title = Импорт событий и задач календаря
+calendar-ics-file-dialog-import-event-button-label = Импортировать событие
+calendar-ics-file-dialog-import-task-button-label = Импортировать задачу
+calendar-ics-file-dialog-2 =
+ .buttonlabelaccept = Импортировать всё
+calendar-ics-file-accept-button-ok-label = OK
+calendar-ics-file-cancel-button-close-label = Закрыть
+calendar-ics-file-dialog-message-2 = Импорт из файла:
+calendar-ics-file-dialog-calendar-menu-label = Импорт в календарь:
+calendar-ics-file-dialog-items-loading-message =
+ .value = Загрузка элементов…
+calendar-ics-file-dialog-search-input =
+ .placeholder = Фильтр элементов…
+calendar-ics-file-dialog-sort-start-ascending =
+ .label = Сортировать по дате начала (от первого до последнего)
+calendar-ics-file-dialog-sort-start-descending =
+ .label = Сортировать по дате начала (от последнего до первого)
+# "A > Z" is used as a concise way to say "alphabetical order".
+# You may replace it with something appropriate to your language.
+calendar-ics-file-dialog-sort-title-ascending =
+ .label = Сортировать в алфавитном порядке
+# "Z > A" is used as a concise way to say "reverse alphabetical order".
+# You may replace it with something appropriate to your language.
+calendar-ics-file-dialog-sort-title-descending =
+ .label = Сортировать в обратном алфавитном порядке
+calendar-ics-file-dialog-progress-message = Идёт импорт…
+calendar-ics-file-import-success = Импорт успешно произведён!
+calendar-ics-file-import-error = Произошла ошибка, импорт выполнить не удалось.
+calendar-ics-file-import-complete = Импорт завершён.
+calendar-ics-file-import-duplicates =
+ { $duplicatesCount ->
+ [1] Проигнорирован один элемент, так как он уже есть в календаре.
+ [one] Проигнорирован { $duplicatesCount } элемент, так как он уже есть в календаре.
+ [few] Проигнорировано { $duplicatesCount } элемента, так как они уже есть в календаре.
+ *[many] Проигнорировано { $duplicatesCount } элементов, так как они уже есть в календаре.
+ }
+calendar-ics-file-import-errors =
+ { $errorsCount ->
+ [1] Не удалось импортировать один элемент. Посмотрите подробности в Консоли ошибок.
+ [one] Не удалось импортировать { $errorsCount } элемент. Посмотрите подробности в Консоли ошибок.
+ [few] Не удалось импортировать { $errorsCount } элемента. Посмотрите подробности в Консоли ошибок.
+ *[many] Не удалось импортировать { $errorsCount } элементов. Посмотрите подробности в Консоли ошибок.
+ }
+calendar-ics-file-dialog-no-calendars = Ни в один календарь нельзя импортировать события или задачи.
diff --git a/l10n-ru/calendar/calendar/calendar-invitation-panel.ftl b/l10n-ru/calendar/calendar/calendar-invitation-panel.ftl
new file mode 100644
index 0000000000..1dbddaafc0
--- /dev/null
+++ b/l10n-ru/calendar/calendar/calendar-invitation-panel.ftl
@@ -0,0 +1,96 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $organizer (String) - The participant that created the original invitation.
+calendar-invitation-panel-intro = { $organizer } приглашает вас:
+# Variables:
+# $organizer (String) - The participant that updated the original invitation.
+calendar-invitation-panel-intro-update = { $organizer } обновил:
+# Variables:
+# $organizer (String) - The participant that cancelled the invitation.
+calendar-invitation-panel-intro-cancel = { $organizer } отменил:
+# Variables:
+# $summary (String) - A short summary or title of the event.
+calendar-invitation-panel-title = { $summary }
+calendar-invitation-panel-action-button = Сохранить
+calendar-invitation-panel-save-button = Сохранить
+calendar-invitation-panel-view-button = Просмотреть
+calendar-invitation-panel-update-button = Обновить
+calendar-invitation-panel-delete-button = Удалить
+calendar-invitation-panel-accept-button = Да
+calendar-invitation-panel-decline-button = Нет
+calendar-invitation-panel-tentative-button = Возможно
+calendar-invitation-panel-reply-status = * Вы ещё не решили или не ответили
+calendar-invitation-panel-prop-title-when = Когда:
+calendar-invitation-panel-prop-title-location = Место:
+# Variables:
+# $dayOfWeek (String) - The day of the week for a given date.
+# $date (String) - The date example: Tuesday, February 24, 2022.
+calendar-invitation-datetime-date = { $dayOfWeek }, { $date }
+# Variables:
+# $time (String) - The time part of a datetime using the "short" timeStyle.
+# $timezone (String) - The timezone info for the datetime.
+calendar-invitation-datetime-time = { $time } ({ $timezone })
+# Example: Friday, September 16, 2022
+# Variables:
+# $startDate (String) - The date (without time) the event starts on.
+calendar-invitation-interval-all-day = { $startDate }
+# Example: September 16, 2022 – September 16, 2023
+# $startMonth (String) - The month the interval starts.
+# $startDay (String) - The day of the month the interval starts.
+# $startYear (String) - The year the interval starts.
+# $endMonth (String) - The month the interval ends.
+# $endDay (String) - The day of the month the interval ends.
+# $endYear (String) - The year the interval ends.
+calendar-invitation-interval-all-day-between-years = { $startDay } { $startMonth } { $startYear } – { $endDay } { $endMonth } { $endYear }
+# Example: September 16 – 20, 2022
+# $month (String) - The month the interval is in.
+# $startDay (String) - The day of the month the interval starts.
+# $endDay (String) - The day of the month the interval ends.
+# $year (String) - The year the interval is in.
+calendar-invitation-interval-all-day-in-month = { $startDay } – { $endDay } { $month } { $year }
+# Example: September 16 – October 20, 2022
+# $startMonth (String) - The month the interval starts.
+# $startDay (String) - The day of the month the interval starts.
+# $endDay (String) - The day of the month the interval ends.
+# $year (String) - The year the interval is in.
+calendar-invitation-interval-all-day-between-months = { $startDay } { $startMonth } – { $endDay } { $endMonth } { $year }
+# Example: Friday, September 16, 2022 15:00 America/Port of Spain
+# $startDate (String) - The date the interval starts.
+# $startTime (String) - The time the interval starts.
+# $timezone (String) - The timezone the interval is in.
+calendar-invitation-interval-same-date-time = { $startDate } <b>{ $startTime }</b> { $timezone }
+# Example: Friday, September 16, 2022 14:00 – 16:00 America/Port of Spain
+# $startDate (String) - The date the interval starts.
+# $startTime (String) - The time the interval starts.
+# $endTime (String) - The time the interval ends.
+# $timezone (String) - The timezone the interval is in.
+calendar-invitation-interval-same-day = { $startDate } <b>{ $startTime }</b> – <b>{ $endTime }</b> { $timezone }
+# Example: Friday, September 16, 2022 14:00 – Tuesday, September 20, 2022 16:00 America/Port of Spain
+# $startDate (String) - The date the interval starts.
+# $startTime (String) - The time the interval starts.
+# $startDate (String) - The date the interval ends.
+# $endTime (String) - The time the interval ends.
+# $timezone (String) - The timezone the interval is in.
+calendar-invitation-interval-several-days = { $startDate } <b>{ $startTime }</b> – { $endDate } <b>{ $endTime }</b> { $timezone }
+calendar-invitation-panel-prop-title-recurrence = Повторы:
+calendar-invitation-panel-prop-title-attendees = Участники:
+calendar-invitation-panel-prop-title-description = Описание:
+# Variables:
+# $count (Number) - The number of attendees with the "ACCEPTED" participation status.
+calendar-invitation-panel-partstat-accepted = { $count } да
+# Variables:
+# $count (Number) - The number of attendees with the "DECLINED" participation status.
+calendar-invitation-panel-partstat-declined = { $count } нет
+# Variables:
+# $count (Number) - The number of attendees with the "TENTATIVE" participation status.
+calendar-invitation-panel-partstat-tentative = { $count } возможно
+# Variables:
+# $count (Number) - The number of attendees with the "NEEDS-ACTION" participation status.
+calendar-invitation-panel-partstat-needs-action = { $count } не решили
+# Variables:
+# $count (Number) - The total number of attendees.
+calendar-invitation-panel-partstat-total = { $count } участников
+calendar-invitation-panel-prop-title-attachments = Вложения:
diff --git a/l10n-ru/calendar/calendar/calendar-invitations-dialog.ftl b/l10n-ru/calendar/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000..bc1f997f8b
--- /dev/null
+++ b/l10n-ru/calendar/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-invitation-current-participation-status-icon-accepted =
+ .alt = В настоящее время принято
+calendar-invitation-current-participation-status-icon-declined =
+ .alt = В настоящее время отклонено
+calendar-invitation-current-participation-status-icon-needs-action =
+ .alt = В настоящее время не решено
diff --git a/l10n-ru/calendar/calendar/calendar-itip-identity-dialog.ftl b/l10n-ru/calendar/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000..092341a177
--- /dev/null
+++ b/l10n-ru/calendar/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-itip-identity-dialog-title = Не пригласили?
+calendar-itip-identity-warning = Вы ещё не в списке гостей.
+calendar-itip-identity-label = Ответить как:
+calendar-itip-identity-label-none = Связать это событие с:
diff --git a/l10n-ru/calendar/calendar/calendar-print.ftl b/l10n-ru/calendar/calendar/calendar-print.ftl
new file mode 100644
index 0000000000..a2af7ab08e
--- /dev/null
+++ b/l10n-ru/calendar/calendar/calendar-print.ftl
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-print-layout-label = Макет
+calendar-print-layout-list = Список
+calendar-print-layout-month-grid = Сетка месяца
+calendar-print-layout-week-planner = Недельный план
+calendar-print-filter-label = Что печатать
+calendar-print-filter-events = События
+calendar-print-filter-tasks = Задачи
+calendar-print-filter-completedtasks = Завершённые задачи
+calendar-print-filter-taskswithnoduedate = Бессрочные задачи
+calendar-print-range-from = С
+calendar-print-range-to = По
+calendar-print-back-button = Назад
+calendar-print-next-button = Далее
diff --git a/l10n-ru/calendar/calendar/calendar-summary-dialog.ftl b/l10n-ru/calendar/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000..d30e63e800
--- /dev/null
+++ b/l10n-ru/calendar/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-summary-dialog-edit-button =
+ .label = Изменить
+ .accesskey = м
+calendar-summary-dialog-edit-menu-button =
+ .label = Изменить
+edit-button-context-menu-this-occurrence =
+ .label = Изменить только это повторение
+ .accesskey = о
+edit-button-context-menu-all-occurrences =
+ .label = Изменить все повторения
+ .accesskey = е
diff --git a/l10n-ru/calendar/calendar/calendar-uri-redirect-dialog.ftl b/l10n-ru/calendar/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000..8d50209c59
--- /dev/null
+++ b/l10n-ru/calendar/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-uri-redirect-window =
+ .title = Перенаправление URI календаря
+calendar-uri-redirect-description =
+ Сервер перенаправляет URI для календаря «{ $calendarName }».
+ Принять перенаправление и начать использовать новый URI для этого календаря?
+calendar-uri-redirect-original-uri-label = Текущий URI:
+calendar-uri-redirect-target-uri-label = Перенаправление на новый URI:
diff --git a/l10n-ru/calendar/calendar/calendar-widgets.ftl b/l10n-ru/calendar/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000..e4a8e3a072
--- /dev/null
+++ b/l10n-ru/calendar/calendar/calendar-widgets.ftl
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-deactivated-notification-events = Все календари в настоящее время отключены. Включите существующий календарь или добавьте новый для создания и редактирования событий.
+calendar-deactivated-notification-tasks = Все календари в настоящее время отключены. Включите существующий календарь или добавьте новый для создания и редактирования задач.
+calendar-notifications-label = Отображать уведомления о предстоящих событиях
+calendar-add-notification-button =
+ .label = Добавить уведомление
diff --git a/l10n-ru/calendar/calendar/category-dialog.ftl b/l10n-ru/calendar/calendar/category-dialog.ftl
new file mode 100644
index 0000000000..b2618952fa
--- /dev/null
+++ b/l10n-ru/calendar/calendar/category-dialog.ftl
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+category-name-label = Название
+category-color-label =
+ .label = Использовать цвет
diff --git a/l10n-ru/calendar/calendar/preferences.ftl b/l10n-ru/calendar/calendar/preferences.ftl
new file mode 100644
index 0000000000..db60c62a18
--- /dev/null
+++ b/l10n-ru/calendar/calendar/preferences.ftl
@@ -0,0 +1,192 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-title = Календарь
+calendar-title-reminder = Напоминания
+calendar-title-notification = Уведомления
+calendar-title-category = Категории
+dateformat-label =
+ .value = Формат даты:
+ .accesskey = Ф
+# $date (String) - the formatted example date
+dateformat-long =
+ .label = Полный: { $date }
+# $date (String) - the formatted example date
+dateformat-short =
+ .label = Краткий: { $date }
+use-system-timezone-radio-button =
+ .label = Использовать часовой пояс системы
+set-timezone-manually-radio-button =
+ .label = Установить часовой пояс вручную
+timezone-label =
+ .value = Часовой пояс:
+weekstart-label =
+ .value = Первый день недели:
+ .accesskey = е
+day-1-name =
+ .label = Воскресенье
+day-2-name =
+ .label = Понедельник
+day-3-name =
+ .label = Вторник
+day-4-name =
+ .label = Среда
+day-5-name =
+ .label = Четверг
+day-6-name =
+ .label = Пятница
+day-7-name =
+ .label = Суббота
+show-weeknumber-label =
+ .label = Показывать номер недели в обзорах и минимесяце
+ .accesskey = о
+workdays-label =
+ .value = Рабочие дни:
+day-1-checkbox =
+ .label = Вс
+ .accesskey = В
+day-2-checkbox =
+ .label = Пн
+ .accesskey = н
+day-3-checkbox =
+ .label = Вт
+ .accesskey = т
+day-4-checkbox =
+ .label = Ср
+ .accesskey = р
+day-5-checkbox =
+ .label = Чт
+ .accesskey = Ч
+day-6-checkbox =
+ .label = Пт
+ .accesskey = П
+day-7-checkbox =
+ .label = Сб
+ .accesskey = С
+dayweek-legend = Обзоры дня и недели
+visible-hours-label =
+ .value = Показывать:
+ .accesskey = з
+visible-hours-end-label =
+ .value = часов одновременно
+day-start-label =
+ .value = День начинается в:
+ .accesskey = а
+day-end-label =
+ .value = День заканчивается в:
+ .accesskey = и
+midnight-label =
+ .label = Полночь
+noon-label =
+ .label = Полдень
+location-checkbox =
+ .label = Отображать расположение
+ .accesskey = а
+multiweek-legend = Обзор по неделям
+number-of-weeks-label =
+ .value = Количество недель в обзоре (включая предыдущие недели):
+ .accesskey = К
+week-0-label =
+ .label = нет
+week-1-label =
+ .label = 1 неделя
+week-2-label =
+ .label = 2 недели
+week-3-label =
+ .label = 3 недели
+week-4-label =
+ .label = 4 недели
+week-5-label =
+ .label = 5 недель
+week-6-label =
+ .label = 6 недель
+previous-weeks-label =
+ .value = Количество предыдущих недель в обзоре:
+ .accesskey = о
+todaypane-legend = Мероприятия
+agenda-days =
+ .value = Отображать в повестке:
+ .accesskey = в
+event-task-legend = События и задачи
+default-length-label =
+ .value = Продолжительность события или задачи по умолчанию:
+ .accesskey = ж
+task-start-label =
+ .value = Дата начала:
+task-start-1-label =
+ .label = Нет
+task-start-2-label =
+ .label = В начале дня
+task-start-3-label =
+ .label = В конце дня
+task-start-4-label =
+ .label = Завтра
+task-start-5-label =
+ .label = На следующей неделе
+task-start-6-label =
+ .label = Относительно текущего времени
+task-start-7-label =
+ .label = Относительно начала
+task-start-8-label =
+ .label = Относительно следующего часа
+task-due-label =
+ .value = Срок:
+edit-intab-label =
+ .label = Редактировать события и задачи во вкладке, а не в диалоговом окне.
+ .accesskey = а
+prompt-delete-label =
+ .label = Запрашивать перед удалением событий и задач.
+ .accesskey = ш
+accessibility-legend = Специальные возможности
+accessibility-colors-label =
+ .label = Оптимизировать цвета для людей с ограниченными возможностями
+ .accesskey = п
+reminder-legend = При наступлении времени оповещения:
+reminder-play-checkbox =
+ .label = Проигрывать звук
+ .accesskey = з
+reminder-play-alarm-button =
+ .label = Воспроизвести
+ .accesskey = и
+reminder-default-sound-label =
+ .label = По умолчанию
+ .accesskey = м
+reminder-custom-sound-label =
+ .label = Использовать следующий звуковой файл
+ .accesskey = й
+reminder-browse-sound-label =
+ .label = Обзор…
+ .accesskey = б
+reminder-dialog-label =
+ .label = Отображать окно оповещения
+ .accesskey = к
+missed-reminder-label =
+ .label = Отображать пропущенные оповещения для доступных для записи календарей
+ .accesskey = а
+reminder-default-legend = Параметры по умолчанию для оповещений
+default-snooze-label =
+ .value = По умолчанию откладывать на:
+ .accesskey = ы
+event-alarm-label =
+ .value = Оповещения о событиях:
+ .accesskey = с
+alarm-on-label =
+ .label = Включить
+alarm-off-label =
+ .label = Отключить
+task-alarm-label =
+ .value = Оповещения о задачах:
+ .accesskey = з
+event-alarm-time-label =
+ .value = Оповещать о событии до его наступления за:
+ .accesskey = б
+task-alarm-time-label =
+ .value = Оповещать о задаче до её наступления за:
+ .accesskey = ч
+calendar-notifications-customize-label = Уведомления можно настроить для каждого календаря в окне свойств календаря.
+category-new-label = Новая категория
+category-edit-label = Изменить категорию
+category-overwrite-title = Предупреждение: Одинаковые названия
+category-overwrite = Категория с таким названием уже существует. Вы хотите переписать её?
+category-blank-warning = Вы должны указать название категории.
diff --git a/l10n-ru/calendar/chrome/calendar/calendar-alarms.properties b/l10n-ru/calendar/chrome/calendar/calendar-alarms.properties
new file mode 100644
index 0000000000..5a5fa97f66
--- /dev/null
+++ b/l10n-ru/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=%1$S %2$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 напоминания на событие.;Выбранный календарь имеет ограничение в #1 напоминаний на событие.
+reminderErrorMaxCountReachedTask=Выбранный календарь имеет ограничение в #1 напоминание на задачу.;Выбранный календарь имеет ограничение в #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-ru/calendar/chrome/calendar/calendar-event-dialog-attendees.properties b/l10n-ru/calendar/chrome/calendar/calendar-event-dialog-attendees.properties
new file mode 100644
index 0000000000..d3536b7fad
--- /dev/null
+++ b/l10n-ru/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-ru/calendar/chrome/calendar/calendar-event-dialog.dtd b/l10n-ru/calendar/chrome/calendar/calendar-event-dialog.dtd
new file mode 100644
index 0000000000..d439ebed6b
--- /dev/null
+++ b/l10n-ru/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 "х">
+
+<!ENTITY newevent.from.label "С" >
+<!ENTITY newevent.to.label "По" >
+
+<!ENTITY newevent.status.label "Состояние" >
+<!ENTITY newevent.status.accesskey "я" >
+<!ENTITY newevent.eventStatus.none.label "Не указано" >
+<!ENTITY newevent.eventStatus.none.accesskey "Н" >
+<!ENTITY newevent.todoStatus.none.label "Не указано" >
+<!ENTITY newevent.eventStatus.cancelled.label "Отменено" >
+<!ENTITY newevent.eventStatus.cancelled.accesskey "О" >
+<!ENTITY newevent.todoStatus.cancelled.label "Отменено" >
+<!ENTITY newevent.status.tentative.label "Возможно" >
+<!ENTITY newevent.status.tentative.accesskey "з" >
+<!ENTITY newevent.status.confirmed.label "Подтверждено" >
+<!ENTITY newevent.status.confirmed.accesskey "П" >
+<!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 "&#37; завершено">
+
+<!-- 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 "в">
+<!ENTITY event.attendees.notifyundisclosed.label "Разделить приглашения по участникам">
+<!ENTITY event.attendees.notifyundisclosed.accesskey "з">
+<!ENTITY event.attendees.notifyundisclosed.tooltip "Эта настройка позволяет отправить эл.письмо с приглашением каждому участнику по отдельности. Каждое приглашение индивидуально и другие участники не раскрываются.">
+<!ENTITY event.attendees.disallowcounter.label "Запретить встречные предложения">
+<!ENTITY event.attendees.disallowcounter.accesskey "п">
+<!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 "С">
+<!ENTITY event.menu.item.new.event.label "Событие">
+<!ENTITY event.menu.item.new.event.accesskey "о">
+<!ENTITY event.menu.item.new.task.label "Задача">
+<!ENTITY event.menu.item.new.task.accesskey "д">
+<!ENTITY event.menu.item.new.message.label "Сообщение">
+<!ENTITY event.menu.item.new.message.accesskey "б">
+<!ENTITY event.menu.item.new.contact.label "Карточку адресной книги">
+<!ENTITY event.menu.item.new.contact.accesskey "К">
+<!ENTITY event.menu.item.close.label "Закрыть">
+<!ENTITY event.menu.item.close.accesskey "З">
+
+<!-- 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 "х">
+<!ENTITY event.menu.item.save.tab.accesskey "н">
+
+<!-- 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 "а">
+<!ENTITY event.menu.item.saveandclose.tab.accesskey "и">
+
+<!ENTITY event.menu.item.delete.label "Удалить…">
+<!ENTITY event.menu.item.delete.accesskey "У">
+<!ENTITY event.menu.item.page.setup.label "Параметры страницы">
+<!ENTITY event.menu.item.page.setup.accesskey "а">
+<!ENTITY event.menu.item.print.label "Печать">
+<!ENTITY event.menu.item.print.accesskey "П">
+
+<!ENTITY event.menu.edit.label "Правка">
+<!ENTITY event.menu.edit.accesskey "П">
+<!ENTITY event.menu.edit.undo.label "Отменить">
+<!ENTITY event.menu.edit.undo.accesskey "О">
+<!ENTITY event.menu.edit.redo.label "Повторить">
+<!ENTITY event.menu.edit.redo.accesskey "т">
+<!ENTITY event.menu.edit.cut.label "Вырезать">
+<!ENTITY event.menu.edit.cut.accesskey "В">
+<!ENTITY event.menu.edit.copy.label "Копировать">
+<!ENTITY event.menu.edit.copy.accesskey "К">
+<!ENTITY event.menu.edit.paste.label "Вставить">
+<!ENTITY event.menu.edit.paste.accesskey "с">
+<!ENTITY event.menu.edit.select.all.label "Выделить всё">
+<!ENTITY event.menu.edit.select.all.accesskey "ы">
+
+<!ENTITY event.menu.view.label "Вид">
+<!ENTITY event.menu.view.accesskey "В">
+<!ENTITY event.menu.view.toolbars.label "Панели инструментов">
+<!ENTITY event.menu.view.toolbars.accesskey "П">
+<!ENTITY event.menu.view.toolbars.event.label "Панель событий">
+<!ENTITY event.menu.view.toolbars.event.accesskey "с">
+<!ENTITY event.menu.view.toolbars.customize.label "Настроить…">
+<!ENTITY event.menu.view.toolbars.customize.accesskey "Н">
+<!ENTITY event.menu.view.showlink.label "Показать связанные ссылки">
+<!ENTITY event.menu.view.showlink.accesskey "о">
+
+<!ENTITY event.menu.options.label "Настройки">
+<!ENTITY event.menu.options.accesskey "Н">
+<!ENTITY event.menu.options.attendees.label "Пригласить участников…">
+<!ENTITY event.menu.options.attendees.accesskey "П">
+<!ENTITY event.menu.options.timezone2.label "Часовой пояс">
+<!ENTITY event.menu.options.timezone2.accesskey "Ч">
+<!ENTITY event.menu.options.priority2.label "Приоритет">
+<!ENTITY event.menu.options.priority2.accesskey "р">
+<!ENTITY event.menu.options.priority.notspecified.label "Не определен">
+<!ENTITY event.menu.options.priority.notspecified.accesskey "о">
+<!ENTITY event.menu.options.priority.low.label "Низкий">
+<!ENTITY event.menu.options.priority.low.accesskey "и">
+<!ENTITY event.menu.options.priority.normal.label "Обычный">
+<!ENTITY event.menu.options.priority.normal.accesskey "б">
+<!ENTITY event.menu.options.priority.high.label "Высокий">
+<!ENTITY event.menu.options.priority.high.accesskey "ы">
+<!ENTITY event.menu.options.privacy.label "Приватность">
+<!ENTITY event.menu.options.privacy.accesskey "а">
+<!ENTITY event.menu.options.privacy.public.label "Публичное событие">
+<!ENTITY event.menu.options.privacy.public.accesskey "у">
+<!ENTITY event.menu.options.privacy.confidential.label "Показывать только дату и время">
+<!ENTITY event.menu.options.privacy.confidential.accesskey "з">
+<!ENTITY event.menu.options.privacy.private.label "Личное событие">
+<!ENTITY event.menu.options.privacy.private.accesskey "Л">
+<!ENTITY event.menu.options.show.time.label "Показывать время как">
+<!ENTITY event.menu.options.show.time.accesskey "т">
+<!ENTITY event.menu.options.show.time.busy.label "Занято">
+<!ENTITY event.menu.options.show.time.busy.accesskey "я">
+<!ENTITY event.menu.options.show.time.free.label "Свободно">
+<!ENTITY event.menu.options.show.time.free.accesskey "в">
+
+<!ENTITY event.invite.attendees.label "Пригласить участников…">
+<!ENTITY event.invite.attendees.accesskey "П">
+<!ENTITY event.email.attendees.label "Создать сообщение для всех участников…">
+<!ENTITY event.email.attendees.accesskey "С">
+<!ENTITY event.email.tentative.attendees.label "Создать сообщение для неопределившихся участников…">
+<!ENTITY event.email.tentative.attendees.accesskey "о">
+<!ENTITY event.remove.attendees.label2 "Удалить всех участников">
+<!ENTITY event.remove.attendees.accesskey "а">
+<!ENTITY event.remove.attendee.label "Удалить участника">
+<!ENTITY event.remove.attendee.accesskey "л">
+
+<!-- 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 "ж">
+<!ENTITY counter.button.proposal.tooltip2 "Поля события будут заполнены с использованием значений из встречного предложения, только сохранение с или без дополнительных изменений соответственно уведомит всех участников">
+<!ENTITY counter.button.original.label "Использовать оригинальные данные">
+<!ENTITY counter.button.original.accesskey "л">
+<!ENTITY counter.button.original.tooltip2 "Полям будут присвоены значения из исходного события, прежде чем было сделано встречное предложение">
+
+<!-- Main page -->
+<!ENTITY event.title.textbox.label "Название:" >
+<!ENTITY event.title.textbox.accesskey "з">
+<!ENTITY event.location.label "Место:" >
+<!ENTITY event.location.accesskey "М">
+<!ENTITY event.categories.label "Категория:">
+<!ENTITY event.categories.accesskey "К">
+<!ENTITY event.categories.textbox.label "Добавить новую категорию" >
+<!ENTITY event.calendar.label "Календарь:" >
+<!ENTITY event.calendar.accesskey "а">
+<!ENTITY event.attendees.label "Участники:" >
+<!ENTITY event.attendees.accesskey "У">
+<!ENTITY event.alldayevent.label "Весь день" >
+<!ENTITY event.alldayevent.accesskey "д">
+<!ENTITY event.from.label "Начало:" >
+<!ENTITY event.from.accesskey "ч">
+<!ENTITY task.from.label "Начало:" >
+<!ENTITY task.from.accesskey "л">
+<!ENTITY event.to.label "Конец:" >
+<!ENTITY event.to.accesskey "о">
+<!ENTITY task.to.label "Срок:" >
+<!ENTITY task.to.accesskey "р">
+<!ENTITY task.status.label "Состояние:" >
+<!ENTITY task.status.accesskey "т">
+<!ENTITY event.repeat.label "Повтор:" >
+<!ENTITY event.repeat.accesskey "П">
+<!ENTITY event.until.label "До:">
+<!ENTITY event.until.accesskey "о">
+<!ENTITY event.reminder.label "Напоминание:" >
+<!ENTITY event.reminder.accesskey "и">
+<!ENTITY event.description.label "Описание:" >
+<!ENTITY event.description.accesskey "е">
+<!ENTITY event.attachments.label "Вложения:" >
+<!ENTITY event.attachments.accesskey "В" >
+<!ENTITY event.attachments.menubutton.label "Прикрепить">
+<!ENTITY event.attachments.menubutton.accesskey "п">
+<!ENTITY event.attachments.url.label "Веб-страницу…">
+<!ENTITY event.attachments.url.accesskey "ц">
+<!ENTITY event.attachments.popup.remove.label "Удалить" >
+<!ENTITY event.attachments.popup.remove.accesskey "ь" >
+<!ENTITY event.attachments.popup.open.label "Открыть" >
+<!ENTITY event.attachments.popup.open.accesskey "ы" >
+<!ENTITY event.attachments.popup.removeAll.label "Удалить всё" >
+<!ENTITY event.attachments.popup.removeAll.accesskey "с" >
+<!ENTITY event.attachments.popup.attachPage.label "Прикрепить веб-страницу…" >
+<!ENTITY event.attachments.popup.attachPage.accesskey "б" >
+<!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 "Каждые 2 недели">
+<!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-ru/calendar/chrome/calendar/calendar-event-dialog.properties b/l10n-ru/calendar/chrome/calendar/calendar-event-dialog.properties
new file mode 100644
index 0000000000..bddda2c873
--- /dev/null
+++ b/l10n-ru/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=nounclass3
+repeatDetailsDay2=Понедельник
+repeatDetailsDay2Nounclass=nounclass1
+repeatDetailsDay3=Вторник
+repeatDetailsDay3Nounclass=nounclass1
+repeatDetailsDay4=Среду
+repeatDetailsDay4Nounclass=nounclass2
+repeatDetailsDay5=Четверг
+repeatDetailsDay5Nounclass=nounclass1
+repeatDetailsDay6=Пятницу
+repeatDetailsDay6Nounclass=nounclass2
+repeatDetailsDay7=Субботу
+repeatDetailsDay7Nounclass=nounclass2
+
+# 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 каждого месяца;%1$S каждого #2 месяца
+monthlyRuleNthOfEveryNounclass2=%1$S каждого месяца;%1$S каждого #2 месяца
+
+# 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 каждого месяца;каждый %1$S каждого #2 месяца
+monthlyEveryOfEveryNounclass2=каждую %1$S каждого месяца;каждую %1$S каждого #2 месяца
+
+# 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 каждого месяца;%1$S каждого #2 месяца
+
+# 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=каждого %2$S %1$S;каждые #3 года %2$S %1$S
+
+# LOCALIZATION NOTE (yearlyNthOnNthOfNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# Translate these strings according to noun class/gender of weekday (%2$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - ordinal with article and noun class/gender corresponding to weekday
+# %2$S - weekday
+# %3$S - month
+# #4 - yearly interval
+# e.g. "the second Monday of every March"
+# e.g "every 3 years the second Monday of March"
+yearlyNthOnNthOfNounclass1=в %1$S %2$S каждого %3$S;каждые #4 года в %1$S %2$S %3$S
+yearlyNthOnNthOfNounclass2=в %1$S %2$S каждого %3$S;каждые #4 года в %1$S %2$S %3$S
+
+# LOCALIZATION NOTE (yearlyOnEveryNthOfNthNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - weekday
+# %2$S - month
+# #3 - yearly interval
+# e.g. "every Thursday of March"
+# e.g "every 3 years on every Thursday of March"
+yearlyOnEveryNthOfNthNounclass1=каждый %1$S %2$S;каждые #3 года в каждый %1$S %2$S
+yearlyOnEveryNthOfNthNounclass2=каждая %1$S %2$S;каждые #3 года в каждую %1$S %2$S
+
+#LOCALIZATION NOTE (yearlyEveryDayOf):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# This string describes part of a yearly rule which includes every day of a month.
+# %1$S - month
+# #2 - yearly interval
+# e.g. "every day of December"
+# e.g. "every 3 years every day of December"
+yearlyEveryDayOf=каждый день %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#5 раз начиная с %2$S\nс %3$S по %4$S.;Происходит %1$S\n#5 раз начиная с %2$S\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#3 раз начиная с %2$S.;Происходит %1$S\n#3 раз начиная с %2$S.
+
+# LOCALIZATION NOTE (repeatDetailsUntil):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event end date (e.g. mm/gg/yyyy)
+# %4$S - event start time (e.g. hh:mm (PM/AM))
+# %5$S - event end time (e.g. hh:mm (PM/AM))
+# e.g. with weeklyNthOn:
+# "Occurs every 2 weeks on Sunday and Friday
+# effective 1/1/2009 until 1/1/2010
+# from 5:00 PM to 6:00 PM"
+repeatDetailsUntil=Происходит %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=С
+itemMenuLabelTask=Задача
+itemMenuAccesskeyTask2=З
+
+emailSubjectReply=Re: %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 вложение?;Вы действительно хотите удалить #1 вложения?;Вы действительно хотите удалить #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 %4$S %3$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-ru/calendar/chrome/calendar/calendar-extract.properties b/l10n-ru/calendar/chrome/calendar/calendar-extract.properties
new file mode 100644
index 0000000000..8d21b9552f
--- /dev/null
+++ b/l10n-ru/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 =
+
+# LOCALIZATION NOTE (end.prefix):
+# datetimes with these in front are extracted as end times
+end.prefix = по | до
+
+# 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 = на прошлой неделе | отправлено | взамен | > | не
+
+# 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 = matches numbers 1-31 and number.x
+# should not have "#1" as this would match any single number in email to a time
+from.ordinal.date =
+
+# LOCALIZATION NOTE (until.ordinal.date):
+# #1 = matches numbers 1-31 and number.x
+until.ordinal.date =
+
+from.noon = полудня
+until.noon =полудня
+
+# LOCALIZATION NOTE (from.hour):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should not have "#1" as this would match any single number in email to a time
+from.hour = в #1 | около #1 | #1 - | #1 по
+
+# LOCALIZATION NOTE (until.hour):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour = - #1 | до #1 | по #1
+
+# LOCALIZATION NOTE (from.hour.am):
+# #1 = matches numbers 0-23 and number.0-number.23
+from.hour.am =
+
+# LOCALIZATION NOTE (until.hour.am):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour.am =
+
+# LOCALIZATION NOTE (from.hour.pm):
+# #1 = matches numbers 0-23 and number.0-number.23
+from.hour.pm =
+
+# LOCALIZATION NOTE (until.hour.pm):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour.pm =
+
+# LOCALIZATION NOTE (from.half.hour.before):
+# denotes times 30 minutes before next full hour
+from.half.hour.before = за полчаса до #1
+
+# LOCALIZATION NOTE (until.half.hour.before):
+# denotes times 30 minutes before next full hour
+until.half.hour.before =
+
+# LOCALIZATION NOTE (from.half.hour.after):
+# denotes times 30 minutes after last full hour
+from.half.hour.after = полчаса после #1
+
+# LOCALIZATION NOTE (until.half.hour.after):
+# denotes times 30 minutes after last full hour
+until.half.hour.after =
+
+# LOCALIZATION NOTE (from.hour.minutes):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+from.hour.minutes = #1:#2 | с #1#2
+
+# LOCALIZATION NOTE (until.hour.minutes):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+until.hour.minutes =#1:#2 | по #1#2
+
+# LOCALIZATION NOTE (from.hour.minutes.am):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+from.hour.minutes.am =
+
+# LOCALIZATION NOTE (until.hour.minutes.am):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+until.hour.minutes.am =
+
+# LOCALIZATION NOTE (from.hour.minutes.pm):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+from.hour.minutes.pm =
+
+# LOCALIZATION NOTE (until.hour.minutes.pm):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+until.hour.minutes.pm =
+
+# LOCALIZATION NOTE (from.monthname.day):
+# #1 = matches numbers 1-31 and number.x
+# #2 = matches monthname
+from.monthname.day = #1 #2 | #2 #1
+
+# LOCALIZATION NOTE (until.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+until.monthname.day =
+
+# LOCALIZATION NOTE (from.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+from.month.day = #2.#1
+
+# LOCALIZATION NOTE (until.month.day):
+# #1 = matches numbers 1-31 and number.x
+# #2 = matches numbers 1-12
+until.month.day =
+
+# LOCALIZATION NOTE (from.year.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+# #3 = matches 2/4 numbers
+from.year.month.day = #1.#2.#3 | #3-#2-#1 | #1-#2-#3
+
+# LOCALIZATION NOTE (until.year.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+# #3 = matches 2/4 numbers
+until.year.month.day =
+
+# LOCALIZATION NOTE (from.year.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+# #3 = matches 2/4 numbers
+from.year.monthname.day = #1 #2 #3 | #1 #2, #3
+
+# LOCALIZATION NOTE (until.year.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+# #3 = matches 2/4 numbers
+until.year.monthname.day =
+
+# LOCALIZATION NOTE (duration.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (duration.minutes):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.minutes = #1 минута | #1 минуты | #1 минут | #1 мин
+
+# LOCALIZATION NOTE (duration.hours):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.hours = #1 час | #1 часа | #1 часов
+
+# LOCALIZATION NOTE (duration.days):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.days = #1 день | #1 дня | #1 дней
+
+# 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 = первый | первого
+number.2 = второй | второго
+number.3 = третий | третьего
+number.4 = четвертый | четвертого
+number.5 = пятый | пятого
+number.6 = шестой | шестого
+number.7 = седьмой | седьмого
+number.8 = восьмой | восьмого
+number.9 = девятый| девятого
+number.10 = десятый | десятого
+number.11 = одиннадцатый | одиннадцатого
+number.12 = двенадцатый | двенадцатого
+number.13 = тринадцатый | тринадцатого
+number.14 = четырнадцатый | четырнадцатого
+number.15 = пятнадцатый | пятнадцатого
+number.16 = шестнадцатый | шестнадцатого
+number.17 = семнадцатый | семнадцатого
+number.18 = восемнадцатый | восемнадцатого
+number.19 = девятнадцатый | девятнадцатого
+number.20 = двадцатый | двадцатого
+number.21 = двадцать первый | двадцать первого
+number.22 = двадцать второй | двадцать второго
+number.23 = двадцать третий | двадцать третьего
+number.24 = двадцать четвертый | двадцать четвертого
+number.25 = двадцать пятый | двадцать пятого
+number.26 = двадцать шестой | двадцать шестого
+number.27 = двадцать седьмой | двадцать седьмого
+number.28 = двадцать восьмой | двадцать восьмого
+number.29 = двадцать девятый | двадцать девятого
+number.30 = тридцатый | тридцатого
+number.31 = тридцать первый| тридцать первого
+
+# LOCALIZATION NOTE (alphabet):
+# list all lower and uppercase letters if your language has an alphabet
+# otherwise leave it empty
+alphabet = абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
diff --git a/l10n-ru/calendar/chrome/calendar/calendar-invitations-dialog.dtd b/l10n-ru/calendar/chrome/calendar/calendar-invitations-dialog.dtd
new file mode 100644
index 0000000000..724988e333
--- /dev/null
+++ b/l10n-ru/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-ru/calendar/chrome/calendar/calendar-invitations-dialog.properties b/l10n-ru/calendar/chrome/calendar/calendar-invitations-dialog.properties
new file mode 100644
index 0000000000..a6edf520ec
--- /dev/null
+++ b/l10n-ru/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-ru/calendar/chrome/calendar/calendar-occurrence-prompt.dtd b/l10n-ru/calendar/chrome/calendar/calendar-occurrence-prompt.dtd
new file mode 100644
index 0000000000..c1490192b5
--- /dev/null
+++ b/l10n-ru/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 "т">
+<!ENTITY buttons.allfollowing.accesskey "о">
+<!ENTITY buttons.parent.accesskey "л">
diff --git a/l10n-ru/calendar/chrome/calendar/calendar-occurrence-prompt.properties b/l10n-ru/calendar/chrome/calendar/calendar-occurrence-prompt.properties
new file mode 100644
index 0000000000..7eca60d8e3
--- /dev/null
+++ b/l10n-ru/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=повторяющаяся задача
+
+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-ru/calendar/chrome/calendar/calendar.dtd b/l10n-ru/calendar/chrome/calendar/calendar.dtd
new file mode 100644
index 0000000000..14536d7ca0
--- /dev/null
+++ b/l10n-ru/calendar/chrome/calendar/calendar.dtd
@@ -0,0 +1,411 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- General -->
+<!ENTITY calendar.calendar.label "Календарь">
+<!ENTITY calendar.calendar.accesskey "К">
+
+<!ENTITY calendar.newevent.button.tooltip "Создать новое событие" >
+<!ENTITY calendar.newtask.button.tooltip "Создать новую задачу" >
+
+<!ENTITY calendar.unifinder.todoitems.label "Задачи" >
+
+<!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 "&#37; завершено">
+<!ENTITY calendar.unifinder.tree.percentcomplete.tooltip2 "Сортировка по &#37; завершенности">
+<!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 "С" >
+<!ENTITY calendar.prevday.accesskey "П" >
+<!ENTITY calendar.nextweek.label "Следующая неделя" >
+<!ENTITY calendar.prevweek.label "Предыдущая неделя" >
+<!ENTITY calendar.nextweek.accesskey "С" >
+<!ENTITY calendar.prevweek.accesskey "П" >
+<!ENTITY calendar.nextmonth.label "Следующий месяц" >
+<!ENTITY calendar.prevmonth.label "Предыдущий месяц" >
+<!ENTITY calendar.nextmonth.accesskey "С" >
+<!ENTITY calendar.prevmonth.accesskey "П" >
+
+<!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 "П">
+
+<!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 "Т" >
+<!ENTITY calendar.displaytodos.checkbox.label "Задачи в текущем обзоре" >
+<!ENTITY calendar.displaytodos.checkbox.accesskey "З" >
+<!ENTITY calendar.completedtasks.checkbox.label "Показать выполненные задачи" >
+<!ENTITY calendar.completedtasks.checkbox.accesskey "П" >
+
+<!ENTITY calendar.orientation.label "Повернуть обзор" >
+<!ENTITY calendar.orientation.accesskey "у" >
+
+<!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 "В">
+<!ENTITY calendar.task.filter.today.label "Сегодня">
+<!ENTITY calendar.task.filter.today.accesskey "С">
+<!ENTITY calendar.task.filter.next7days.label "Следующие семь дней">
+<!ENTITY calendar.task.filter.next7days.accesskey "л">
+<!ENTITY calendar.task.filter.notstarted.label "Неначатые задачи">
+<!ENTITY calendar.task.filter.notstarted.accesskey "Н">
+<!ENTITY calendar.task.filter.overdue.label "Просроченные задачи">
+<!ENTITY calendar.task.filter.overdue.accesskey "П">
+<!ENTITY calendar.task.filter.completed.label "Выполненные задачи">
+<!ENTITY calendar.task.filter.completed.accesskey "ы">
+<!ENTITY calendar.task.filter.open.label "Невыполненные задачи">
+<!ENTITY calendar.task.filter.open.accesskey "е">
+
+<!-- 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 "Т">
+
+<!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 "О">
+<!ENTITY calendar.context.modifyorviewtask.label "Открыть задачу…">
+<!ENTITY calendar.context.modifyorviewtask.accesskey "т">
+<!ENTITY calendar.context.newevent.label "Новое событие…">
+<!ENTITY calendar.context.newevent.accesskey "с">
+<!ENTITY calendar.context.newtodo.label "Новая задача…">
+<!ENTITY calendar.context.newtodo.accesskey "а">
+<!ENTITY calendar.context.deletetask.label "Удалить задачу">
+<!ENTITY calendar.context.deletetask.accesskey "У">
+<!ENTITY calendar.context.deleteevent.label "Удалить событие">
+<!ENTITY calendar.context.deleteevent.accesskey "б">
+<!ENTITY calendar.context.cutevent.label "Вырезать">
+<!ENTITY calendar.context.cutevent.accesskey "В">
+<!ENTITY calendar.context.copyevent.label "Копировать">
+<!ENTITY calendar.context.copyevent.accesskey "К">
+<!ENTITY calendar.context.pasteevent.label "Вставить">
+<!ENTITY calendar.context.pasteevent.accesskey "ь">
+<!ENTITY calendar.context.button.label "Мероприятия">
+<!ENTITY calendar.context.button.accesskey "я">
+
+<!ENTITY calendar.context.attendance.menu.label "Участники">
+<!ENTITY calendar.context.attendance.menu.accesskey "ч">
+<!ENTITY calendar.context.attendance.occurrence.label "Этот повтор">
+<!ENTITY calendar.context.attendance.all2.label "Все серии событий">
+<!ENTITY calendar.context.attendance.send.label "Отправить уведомление сейчас">
+<!ENTITY calendar.context.attendance.send.accesskey "п">
+<!ENTITY calendar.context.attendance.dontsend.label "Не отправлять уведомление">
+<!ENTITY calendar.context.attendance.dontsend.accesskey "е">
+
+<!ENTITY calendar.context.attendance.occ.accepted.accesskey "и">
+<!ENTITY calendar.context.attendance.occ.accepted.label "Принято">
+<!ENTITY calendar.context.attendance.occ.tentative.accesskey "н">
+<!ENTITY calendar.context.attendance.occ.tentative.label "Ориентировочно принято">
+<!ENTITY calendar.context.attendance.occ.declined.accesskey "л">
+<!ENTITY calendar.context.attendance.occ.declined.label "Отклонено">
+<!ENTITY calendar.context.attendance.occ.delegated.accesskey "е">
+<!ENTITY calendar.context.attendance.occ.delegated.label "Делегировано">
+<!ENTITY calendar.context.attendance.occ.needsaction.accesskey "ж">
+<!ENTITY calendar.context.attendance.occ.needsaction.label "В ожидании действия">
+<!ENTITY calendar.context.attendance.occ.inprogress.accesskey "с">
+<!ENTITY calendar.context.attendance.occ.inprogress.label "В процессе">
+<!ENTITY calendar.context.attendance.occ.completed.accesskey "ш">
+<!ENTITY calendar.context.attendance.occ.completed.label "Завершено">
+
+<!ENTITY calendar.context.attendance.all.accepted.accesskey "я">
+<!ENTITY calendar.context.attendance.all.accepted.label "Принято">
+<!ENTITY calendar.context.attendance.all.tentative.accesskey "т">
+<!ENTITY calendar.context.attendance.all.tentative.label "Ориентировочно принято">
+<!ENTITY calendar.context.attendance.all.declined.accesskey "к">
+<!ENTITY calendar.context.attendance.all.declined.label "Отклонено">
+<!ENTITY calendar.context.attendance.all.delegated.accesskey "е">
+<!ENTITY calendar.context.attendance.all.delegated.label "Делегировано">
+<!ENTITY calendar.context.attendance.all.needsaction.accesskey "е">
+<!ENTITY calendar.context.attendance.all.needsaction.label "В ожидании действия">
+<!ENTITY calendar.context.attendance.all.inprogress.accesskey "п">
+<!ENTITY calendar.context.attendance.all.inprogress.label "В процессе">
+<!ENTITY calendar.context.attendance.all.completed.accesskey "о">
+<!ENTITY calendar.context.attendance.all.completed.label "Завершено">
+
+<!-- Task Context Menu -->
+<!ENTITY calendar.context.progress.label "Прогресс">
+<!ENTITY calendar.context.progress.accesskey "г">
+<!ENTITY calendar.context.priority.label "Важность">
+<!ENTITY calendar.context.priority.accesskey "В">
+<!ENTITY calendar.context.postpone.label "Отложить задачу">
+<!ENTITY calendar.context.postpone.accesskey "О">
+
+<!ENTITY percnt "&#38;#37;" ><!--=percent sign-->
+
+<!ENTITY calendar.context.markcompleted.label "Отметить выполненные">
+<!ENTITY calendar.context.markcompleted.accesskey "О">
+
+<!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 "о">
+<!ENTITY priority.level.low "Низкий">
+<!ENTITY priority.level.low.accesskey "Н">
+<!ENTITY priority.level.normal "Средний">
+<!ENTITY priority.level.normal.accesskey "С">
+<!ENTITY priority.level.high "Высокий">
+<!ENTITY priority.level.high.accesskey "В">
+
+<!ENTITY calendar.context.postpone.1hour.label "1 час">
+<!ENTITY calendar.context.postpone.1hour.accesskey "ч">
+<!ENTITY calendar.context.postpone.1day.label "1 день">
+<!ENTITY calendar.context.postpone.1day.accesskey "д">
+<!ENTITY calendar.context.postpone.1week.label "1 неделю">
+<!ENTITY calendar.context.postpone.1week.accesskey "н">
+
+<!ENTITY calendar.copylink.label "Копировать ссылку">
+<!ENTITY calendar.copylink.accesskey "К">
+
+<!-- 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 "Н">
+<!ENTITY calendar.context.findcalendar.label "Найти календарь…" >
+<!ENTITY calendar.context.findcalendar.accesskey "а" >
+<!ENTITY calendar.context.deleteserver2.label "Удалить данные календаря…">
+<!ENTITY calendar.context.deleteserver2.accesskey "л">
+
+<!-- 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 "е">
+<!ENTITY calendar.context.unsubscribeserver.label "Отписаться от календаря…">
+<!ENTITY calendar.context.unsubscribeserver.accesskey "п">
+<!ENTITY calendar.context.synccalendars.label "Синхронизировать календари">
+<!ENTITY calendar.context.synccalendars.accesskey "и">
+<!ENTITY calendar.context.publish.label "Опубликовать календарь…">
+<!ENTITY calendar.context.publish.accesskey "к">
+<!ENTITY calendar.context.export.label "Экспортировать календарь…">
+<!ENTITY calendar.context.export.accesskey "Э">
+<!ENTITY calendar.context.properties.label "Свойства">
+<!ENTITY calendar.context.properties.accesskey "С">
+
+<!-- LOCALIZATION NOTE (calendar.context.showcalendar.accesskey)
+ This is the access key used for the showCalendar string -->
+<!ENTITY calendar.context.showcalendar.accesskey "а">
+
+<!-- LOCALIZATION NOTE (calendar.context.hidecalendar.accesskey)
+ This is the access key used for the hideCalendar string -->
+<!ENTITY calendar.context.hidecalendar.accesskey "ы">
+
+<!-- LOCALIZATION NOTE (calendar.context.showonly.accesskey)
+ This is the access key used for the showOnlyCalendar string -->
+<!ENTITY calendar.context.showonly.accesskey "з">
+<!ENTITY calendar.context.showall.label "Показать все календари">
+<!ENTITY calendar.context.showall.accesskey "е">
+
+<!ENTITY calendar.context.convertmenu.label "Преобразовать в">
+<!ENTITY calendar.context.convertmenu.accesskey.mail "П">
+<!ENTITY calendar.context.convertmenu.accesskey.calendar "П">
+<!ENTITY calendar.context.convertmenu.event.label "Событие…">
+<!ENTITY calendar.context.convertmenu.event.accesskey "о">
+<!ENTITY calendar.context.convertmenu.message.label "Сообщение…">
+<!ENTITY calendar.context.convertmenu.message.accesskey "С">
+<!ENTITY calendar.context.convertmenu.task.label "Задачу…">
+<!ENTITY calendar.context.convertmenu.task.accesskey "З">
+
+<!ENTITY calendar.tasks.view.minimonth.label "Календарик">
+<!ENTITY calendar.tasks.view.minimonth.accesskey "К">
+
+<!ENTITY calendar.tasks.view.calendarlist.label "Список календарей">
+<!ENTITY calendar.tasks.view.calendarlist.accesskey "п">
+
+<!ENTITY calendar.tasks.view.filtertasks.label "Отфильтровать задачи">
+<!ENTITY calendar.tasks.view.filtertasks.accesskey "ф">
+
+<!-- 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.wcap.label "Сервер календарей Sun Java System (WCAP)">
+<!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.enabled.label "Включите этот календарь">
+<!ENTITY calendarproperties.enabled2.label "Включить этот календарь">
+<!ENTITY calendarproperties.forceDisabled.label "Провайдер для этого календаря не найден. Зачастую это происходит после отключения или удаления специальных дополнений.">
+<!ENTITY calendarproperties.unsubscribe.label "Отменить подписку">
+<!ENTITY calendarproperties.unsubscribe.accesskey "О">
+
+<!-- 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-ru/calendar/chrome/calendar/calendar.properties b/l10n-ru/calendar/chrome/calendar/calendar.properties
new file mode 100644
index 0000000000..86d6ddc6d8
--- /dev/null
+++ b/l10n-ru/calendar/chrome/calendar/calendar.properties
@@ -0,0 +1,696 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Default name for new events
+newEvent=Новое событие
+
+# 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 Calendar
+
+# LOCALIZATION NOTE (timezoneError):
+# used for an error message like 'An unknown and undefined timezone was found while reading c:\Mycalendarfile.ics'
+# %1$S will be replaced with the path to a file
+timezoneError=Во время чтения %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=Неизвестный часовой пояс "%1$S" в "%2$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=Выполнено:
+
+#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)
+filterHtml=Web Page (%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=Произошла ошибка при декодировании iCalendar (ics) файла, как файла в кодировке UTF-8. Убедитесь, что этот файл, включающий символы и буквы со знаком ударения, действительно использует кодировку 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=Europe/Kaliningrad, Europe/Minsk, Europe/Moscow, Europe/Samara, Asia/Yekaterinburg, Asia/Omsk, Asia/Almaty, Asia/Krasnoyarsk, Asia/Irkutsk, Asia/Yakutsk, Asia/Vladivostok, Asia/Magadan, Asia/Kamchatka
+
+# 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с внутренним часовым поясом в ZoneInfo «%2$S».
+
+# "Skipping Operating System timezone 'Pacific/New_Country'."
+# Testing note: not easily testable. May occur someday if (non-windows)
+# OS uses different version of ZoneInfo database which has a timezone name
+# that is not included in our current ZoneInfo database (or if the mapping
+# mapping from windows to ZoneInfo timezone ids does).
+SkippingOSTimezone=Пропустить часовой пояс «%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В ZoneInfo нет данных о часовом поясе, соответствующем часовому поясу операционной системы.
+
+# "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=Этот часовой пояс ZoneInfo почти совпадает с часовым поясом операционной системы. Для этого\nправила даты перехода между летним и стандартным временем отличаются от дат перехода в часовом\nпоясе операционной системы не более чем на неделю. Могут возникнуть расхождения в данных, такие,\nкак различные даты начала, различные правила, или приближения для правил не-григорианских календарей.
+
+TZSeemsToMatchOS=Этот часовой пояс ZoneInfo возможно совпадает в этом году с часовым поясом операционной системы.
+
+# LOCALIZATION NOTE (TZFromOS):
+# used for a display of a chosen timezone
+# %1$S will be replaced with the name of a timezone
+TZFromOS=Этот часовой пояс ZoneInfo был выбран на основе идентификатора часового пояса «%1$S»\n операционной системы.
+
+# Localization note (TZFromLocale): Substitute name of your locale language.
+TZFromLocale=Этот часовой пояс ZoneInfo был выбран на основе соответствия часового пояса операционной системы\nc наиболее подходящими часовыми поясами для\nинтернет-пользователей, использующих русский язык.
+
+TZFromKnownTimezones=Этот часовой пояс ZoneInfo был выбран на основе соответствия часового пояса операционной системы\nc известными часовыми поясами в алфавитном порядке их идентификатора.
+
+# Print Layout
+tasksWithNoDueDate = Бессрочные задачи
+
+# Providers
+caldavName=CalDAV
+compositeName=Composite
+icsName=iCalendar (ICS)
+memoryName=Temporary (memory)
+storageName=Local (SQLite)
+
+# Used in created html code for export
+htmlPrefixTitle=Название
+htmlPrefixWhen=Когда
+htmlPrefixLocation=Место
+htmlPrefixDescription=Описание
+htmlTaskCompleted=%1$S (завершено)
+
+# Categories
+addCategory=Добавить категорию
+multipleCategories=Множественные категории
+
+today=Сегодня
+tomorrow=Завтра
+yesterday=Вчера
+
+#Today pane
+eventsonly=События
+eventsandtasks=События и задачи
+tasksonly=Задачи
+shortcalendarweek=КН
+
+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 напоминание;#1 напоминания;#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=Default Mozilla Description
+alarmDefaultSummary=Default Mozilla Summary
+
+# LOCALIZATION NOTE (alarmSnoozeLimitExceeded): Semi-colon list of plural
+# forms.
+alarmSnoozeLimitExceeded=Вы не можете отложить будильник больше чем на #1 месяц.;Вы не можете отложить будильник больше чем на #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=Проверка календаря %1$S из %2$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=Нд: %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=Нд: %1$S-%2$S
+
+# LOCALIZATION NOTE (multiweekViewWeek):
+# Used for displaying the week number in the first day box of every week
+# in multiweek and month views.
+# It allows to localize the label with the week number in case your locale
+# requires it.
+# Take into account that this label is placed in the same room of the day label
+# inside the day boxes, exactly on left side, hence a possible string shouldn't
+# be too long otherwise it will create confusion between the week number and
+# the day number other than a possible crop when the window is resized.
+#
+# %1$S is a number from 1 to 53 that represents the week number.
+multiweekViewWeek=Нед. %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 день;#1 дня;#1 дней
+dueInHours=#1 час;#1 часа;#1 часов
+dueInLessThanOneHour=< 1 часа
+
+# LOCALIZATION NOTE (monthInYear):
+# used for display of Month-dates like 'December 2008'
+# %1$S will be replaced with name of the month
+# %2$S will be replaced with the year
+monthInYear=%1$S %2$S
+
+# LOCALIZATION NOTE (monthInYear.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+monthInYear.monthFormat=nominative
+
+# LOCALIZATION NOTE (formatDateLong):
+# used for display dates in long format like 'Mon 15 Oct 2008' when it's
+# impossible to retrieve the formatatted date from the OS.
+# %1$S will be replaced with name of the day in short format;
+# %2$S will be replaced with the day-index of the month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties);
+# %3$S will be replaced with the name of the month in short format;
+# %4$S will be replaced with the year.
+formatDateLong=%1$S %2$S %3$S %4$S
+
+# LOCALIZATION NOTE (dayHeaderLabel):
+# used for display the labels in the header of the days in day/week views in short
+# or long format. For example: 'Monday 6 Oct.' or 'Mon. 6 Oct.'
+# %1$S will be replaced with name of the day in short or long format
+# %2$S will be replaced with the day-index of the month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties), plus the name
+# of the month in short format (the day/month order depends on the OS settings).
+dayHeaderLabel=%1$S %2$S
+
+# LOCALIZATION NOTE (daysIntervalInMonth):
+# used for display of intervals in the form of 'March 3 - 9, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %4$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalInMonth=%2$S – %3$S %1$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=genitive
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths):
+# used for display of intervals in the form 'September 29 - October 5, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with name of the month of the end date
+# %4$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %5$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenMonths=%2$S %1$S – %4$S %3$S %5$S
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalBetweenMonths.monthFormat=genitive
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears):
+# used for display of intervals in the form 'December 29, 2008 - January 4, 2009'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the year of the start date
+# %4$S will be replaced with name of the month of the end date
+# %5$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %6$S will be replaced with the year of the end date
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenYears=%2$S %1$S %3$S – %5$S %4$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=genitive
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDateTime):
+# used for intervals where end is equals to start
+# displayed form is '5 Jan 2006 13:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+datetimeIntervalOnSameDateTime=%1$S %2$S
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDay):
+# used for intervals where end is on the same day as start, so we can leave out the
+# end date but still include end time
+# displayed form is '5 Jan 2006 13:00 - 17:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the time of the end date
+datetimeIntervalOnSameDay=%1$S %2$S – %3$S
+
+# LOCALIZATION NOTE (datetimeIntervalOnSeveralDays):
+# used for intervals spanning multiple days by including date and time
+# displayed form is '5 Jan 2006 13:00 - 7 Jan 2006 9:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the date of the end date
+# %4$S will be replaced with the time of the end date
+datetimeIntervalOnSeveralDays=%1$S %2$S – %3$S %4$S
+
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDate):
+# used for task without start and due date
+# (showed only in exported calendar in Html format)
+datetimeIntervalTaskWithoutDate= нет даты начала и срока
+# 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=Удалить задачу
+deleteTaskAccesskey=У
+deleteItemLabel=Удалить элемент
+deleteItemAccesskey=У
+deleteEventLabel=Удалить событие
+deleteEventAccesskey=У
+
+calendarPropertiesEveryMinute=Каждую минуту;Каждые #1 минуты;Каждые #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 минуты;#1 минут
+unitHours=#1 час;#1 часов;#1 часов
+unitDays=#1 день;#1 дня;#1 дней
+unitWeeks=#1 неделя;#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=Отменить эти изменения
+
+# Accessible description of a grid calendar with no selected date
+minimonthNoSelectedDate=Дата не выбрана
diff --git a/l10n-ru/calendar/chrome/calendar/calendarCreation.dtd b/l10n-ru/calendar/chrome/calendar/calendarCreation.dtd
new file mode 100644
index 0000000000..c46ca64b3d
--- /dev/null
+++ b/l10n-ru/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 "з">
+
+<!ENTITY buttons.find.label "Найти календари">
+<!ENTITY buttons.find.accesskey "и">
+
+<!ENTITY buttons.back.label "Назад">
+<!ENTITY buttons.back.accesskey "а">
+
+<!ENTITY buttons.subscribe.label "Подписаться">
+<!ENTITY buttons.subscribe.accesskey "с">
+
+<!ENTITY calendartype.label "Тип календаря:">
+<!ENTITY location.label "Адрес:">
+<!ENTITY location.placeholder "URL или имя хоста сервера календаря">
+
+<!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-ru/calendar/chrome/calendar/calendarCreation.properties b/l10n-ru/calendar/chrome/calendar/calendarCreation.properties
new file mode 100644
index 0000000000..89eea71773
--- /dev/null
+++ b/l10n-ru/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-ru/calendar/chrome/calendar/categories.properties b/l10n-ru/calendar/chrome/calendar/categories.properties
new file mode 100644
index 0000000000..1eddc5df73
--- /dev/null
+++ b/l10n-ru/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-ru/calendar/chrome/calendar/dateFormat.properties b/l10n-ru/calendar/chrome/calendar/dateFormat.properties
new file mode 100644
index 0000000000..984ee9243b
--- /dev/null
+++ b/l10n-ru/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-ru/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd b/l10n-ru/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd
new file mode 100644
index 0000000000..4d053d7a40
--- /dev/null
+++ b/l10n-ru/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 "Д">
+<!ENTITY reminder.remove.label "Удалить">
+<!ENTITY reminder.remove.accesskey "У">
+
+<!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-ru/calendar/chrome/calendar/global.dtd b/l10n-ru/calendar/chrome/calendar/global.dtd
new file mode 100644
index 0000000000..66929692e3
--- /dev/null
+++ b/l10n-ru/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 "В">
+<!ENTITY day.2.Ddd "Пн" >
+<!ENTITY day.2.Ddd.accesskey "н">
+<!ENTITY day.3.Ddd "Вт" >
+<!ENTITY day.3.Ddd.accesskey "т">
+<!ENTITY day.4.Ddd "Ср" >
+<!ENTITY day.4.Ddd.accesskey "р">
+<!ENTITY day.5.Ddd "Чт" >
+<!ENTITY day.5.Ddd.accesskey "Ч">
+<!ENTITY day.6.Ddd "Пт" >
+<!ENTITY day.6.Ddd.accesskey "П">
+<!ENTITY day.7.Ddd "Сб" >
+<!ENTITY day.7.Ddd.accesskey "С">
+
+<!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-ru/calendar/chrome/calendar/menuOverlay.dtd b/l10n-ru/calendar/chrome/calendar/menuOverlay.dtd
new file mode 100644
index 0000000000..b372681481
--- /dev/null
+++ b/l10n-ru/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 "с">
+
+<!ENTITY event.new.task "Новая задача…">
+<!ENTITY event.new.task.accesskey "д">
+
+<!ENTITY calendar.import.label "Импорт…">
+<!ENTITY calendar.import.accesskey "И">
+
+<!ENTITY calendar.export.label "Экспорт календаря…">
+<!ENTITY calendar.export.accesskey "Э">
+
+<!ENTITY calendar.publish.label "Публикация…">
+<!ENTITY calendar.publish.accesskey "у">
+
+<!ENTITY calendar.deletecalendar.label "Удалить выбранный календарь…">
+<!ENTITY calendar.deletecalendar.accesskey "а">
+<!ENTITY calendar.unsubscribecalendar.label "Отписаться от выбранного календаря…">
+<!ENTITY calendar.unsubscribecalendar.accesskey "п">
+
+<!-- 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 "и">
+
+
+<!ENTITY calendar.menu.customize.label "Настроить…">
+<!ENTITY calendar.menu.customize.accesskey "Н">
+
+<!ENTITY showUnifinderCmd.label "Найти события">
+<!ENTITY showUnifinderCmd.accesskey "й">
+<!ENTITY showUnifinderCmd.tooltip "Переключение отображения панели поиска событий">
+
+<!ENTITY calendar.displaytodos.checkbox.label "Показывать задачи в календаре">
+<!ENTITY calendar.displaytodos.checkbox.accesskey "П">
+
+<!ENTITY goTodayCmd.label "Сегодня">
+<!ENTITY goTodayCmd.accesskey "С">
+
+<!ENTITY showCurrentView.label "Текущий обзор">
+<!ENTITY showCurrentView.accesskey "Т">
+
+<!ENTITY calendar.properties.label "Свойства календаря…">
+<!ENTITY calendar.properties.accesskey "в">
diff --git a/l10n-ru/calendar/chrome/calendar/migration.dtd b/l10n-ru/calendar/chrome/calendar/migration.dtd
new file mode 100644
index 0000000000..43c99a1b53
--- /dev/null
+++ b/l10n-ru/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-ru/calendar/chrome/calendar/migration.properties b/l10n-ru/calendar/chrome/calendar/migration.properties
new file mode 100644
index 0000000000..6ef8c3a370
--- /dev/null
+++ b/l10n-ru/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 = У вас установлено старое расширение Mozilla Calendar, которое несовместимо с Lightning. Оно будет отключено и %1$S будет перезапущен.
diff --git a/l10n-ru/calendar/chrome/calendar/provider-uninstall.dtd b/l10n-ru/calendar/chrome/calendar/provider-uninstall.dtd
new file mode 100644
index 0000000000..2b5d003633
--- /dev/null
+++ b/l10n-ru/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 "О">
+<!ENTITY providerUninstall.cancel.label "Сохранить дополнение">
+<!ENTITY providerUninstall.cancel.accesskey "С">
+<!ENTITY providerUninstall.preName.label "Вы запросили удаление или отключение:">
+<!ENTITY providerUninstall.postName.label "Это приведет к тому, что календари представленные ниже будут отключены.">
+<!ENTITY providerUninstall.reinstallNote.label "Если вы не планируете переустанавливать этот провайдер, вы можете отказаться от подписки на календари этого провайдера.">
diff --git a/l10n-ru/calendar/chrome/calendar/timezones.properties b/l10n-ru/calendar/chrome/calendar/timezones.properties
new file mode 100644
index 0000000000..b55f9df5a8
--- /dev/null
+++ b/l10n-ru/calendar/chrome/calendar/timezones.properties
@@ -0,0 +1,489 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+pref.timezone.floating=Локальное время
+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=Europe/Волгоград
+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=Америка/Кралендейк
+pref.timezone.America.Lower_Princes=Америка/Ловер Принцес
+pref.timezone.America.Metlakatla=Америка/Метлакатла
+pref.timezone.America.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=Антарктика/Тролл
+
+#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=Америка/Нуук
+
+#added with 2.2021c
+pref.timezone.Pacific.Kanton=Океания/Кантон
+
+#added with 2.2022b
+pref.timezone.Europe.Kyiv=Европа/Киев
diff --git a/l10n-ru/calendar/chrome/lightning/lightning-toolbar.dtd b/l10n-ru/calendar/chrome/lightning/lightning-toolbar.dtd
new file mode 100644
index 0000000000..b6d0def444
--- /dev/null
+++ b/l10n-ru/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 "к">
+<!ENTITY lightning.toolbar.task.name "Панель задач">
+<!ENTITY lightning.toolbar.task.name.accesskey "з">
+
+<!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 "к">
+<!ENTITY lightning.toolbar.task.label "Задачи">
+<!ENTITY lightning.toolbar.task.tooltip "Переключиться на вкладку задач">
+<!ENTITY lightning.toolbar.task.accesskey "з">
+
+<!-- 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 "Д">
+<!ENTITY lightning.toolbar.week.label "Неделя">
+<!ENTITY lightning.toolbar.week.accesskey "Н">
+<!ENTITY lightning.toolbar.multiweek.label "По неделям">
+<!ENTITY lightning.toolbar.multiweek.accesskey "П">
+<!ENTITY lightning.toolbar.month.label "Месяц">
+<!ENTITY lightning.toolbar.month.accesskey "М">
+<!-- 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 "к">
+<!ENTITY lightning.toolbar.calendarpane.label "Показать панель календаря">
+<!ENTITY lightning.toolbar.calendarpane.accesskey "П">
diff --git a/l10n-ru/calendar/chrome/lightning/lightning.dtd b/l10n-ru/calendar/chrome/lightning/lightning.dtd
new file mode 100644
index 0000000000..0f0e10202f
--- /dev/null
+++ b/l10n-ru/calendar/chrome/lightning/lightning.dtd
@@ -0,0 +1,114 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- WARNING! This file contains UTF-8 encoded characters!
+ - If this ==> … <== doesn't look like an ellipsis (three dots in a row),
+ - your editor isn't using UTF-8 encoding and may munge up the document!
+ -->
+
+<!-- Tools menu -->
+<!ENTITY lightning.preferencesLabel "Календарь">
+
+<!-- New menu popup in File menu -->
+<!ENTITY lightning.menupopup.new.event.label "Событие…">
+<!ENTITY lightning.menupopup.new.event.accesskey "С">
+<!ENTITY lightning.menupopup.new.task.label "Задача…">
+<!ENTITY lightning.menupopup.new.task.accesskey "З">
+<!ENTITY lightning.menupopup.new.calendar.label "Календарь…">
+<!ENTITY lightning.menupopup.new.calendar.accesskey "К">
+
+<!-- Open menu popup in File menu -->
+<!ENTITY lightning.menupopup.open.calendar.label "Файлы календаря…">
+<!ENTITY lightning.menupopup.open.calendar.accesskey "Ф">
+
+<!-- View Menu -->
+<!ENTITY lightning.menu.view.calendar.label "Календарь">
+<!ENTITY lightning.menu.view.calendar.accesskey "К">
+<!ENTITY lightning.menu.view.tasks.label "Задачи">
+<!ENTITY lightning.menu.view.tasks.accesskey "З">
+
+<!-- Events and Tasks menu -->
+<!ENTITY lightning.menu.eventtask.label "События и задачи">
+<!ENTITY lightning.menu.eventtask.accesskey "и">
+
+<!-- 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 "Эта настройка доступна только в том случае, если сервер календаря сам отправляет эл.письма с приглашениями. Её включение позволит вернуться к стандартной отправке эл.писем с приглашениями, а не поручать это серверу.">
+
+<!-- The notifications settings in the properties dialog -->
+<!ENTITY lightning.calendarproperties.notifications.label "Уведомления">
+<!ENTITY lightning.calendarproperties.globalNotifications.label "Глобальные настройки уведомлений…">
+
+<!-- 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 "о">
+<!ENTITY todaypane.showMiniday.label "Показывать день">
+<!ENTITY todaypane.showMiniday.accesskey "к">
+<!ENTITY todaypane.showNone.label "Ничего не показывать">
+<!ENTITY todaypane.showNone.accesskey "Н">
+<!ENTITY todaypane.showTodayPane.label "Показывать Мероприятия">
+<!ENTITY todaypane.showTodayPane.accesskey "М">
+<!ENTITY todaypane.statusButton.label "Мероприятия">
diff --git a/l10n-ru/calendar/chrome/lightning/lightning.properties b/l10n-ru/calendar/chrome/lightning/lightning.properties
new file mode 100644
index 0000000000..58e35ded29
--- /dev/null
+++ b/l10n-ru/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
+
+# 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=Если вы хотите использовать этот календарь для хранений приглашений другим людям или от других людей, вам следует указать ниже адрес электронной почты.
diff --git a/l10n-ru/calendar/lightning-l10n.js b/l10n-ru/calendar/lightning-l10n.js
new file mode 100644
index 0000000000..6480dd97c3
--- /dev/null
+++ b/l10n-ru/calendar/lightning-l10n.js
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#filter substitution
+
+# the default day to start the week on
+#0=Sunday 1=Monday 2=Tuesday 3=Wednesday 4=Thursday 5=Friday 6=Saturday
+pref("calendar.week.start", 1);
+
+# default days off (not in work week)
+pref("calendar.week.d0sundaysoff", true);
+pref("calendar.week.d1mondaysoff", false);
+pref("calendar.week.d2tuesdaysoff", false);
+pref("calendar.week.d3wednesdaysoff", false);
+pref("calendar.week.d4thursdaysoff", false);
+pref("calendar.week.d5fridaysoff", false);
+pref("calendar.week.d6saturdaysoff", true);
+
+pref("general.useragent.locale", "@AB_CD@");
+
+# categories
+pref("calendar.categories.names", "Годовщины,Дни рождения,Бизнес,Звонки,Клиенты,Конкурсы,Заказчики,Избранное,Ответы,Подарки,Отпуск,Идеи,Доходы,Разное,Личное,Проекты,Праздники,Встречи,Поставщики,Путешествия,Каникулы");