summaryrefslogtreecommitdiffstats
path: root/l10n-th/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'l10n-th/calendar')
-rw-r--r--l10n-th/calendar/calendar/calendar-context-menus.ftl7
-rw-r--r--l10n-th/calendar/calendar/calendar-delete-prompt.ftl17
-rw-r--r--l10n-th/calendar/calendar/calendar-editable-item.ftl16
-rw-r--r--l10n-th/calendar/calendar/calendar-event-dialog-reminder.ftl8
-rw-r--r--l10n-th/calendar/calendar/calendar-ics-file-dialog.ftl41
-rw-r--r--l10n-th/calendar/calendar/calendar-invitation-panel.ftl12
-rw-r--r--l10n-th/calendar/calendar/calendar-summary-dialog.ftl15
-rw-r--r--l10n-th/calendar/calendar/calendar-uri-redirect-dialog.ftl11
-rw-r--r--l10n-th/calendar/calendar/calendar-widgets.ftl6
-rw-r--r--l10n-th/calendar/calendar/category-dialog.ftl7
-rw-r--r--l10n-th/calendar/calendar/preferences.ftl186
-rw-r--r--l10n-th/calendar/chrome/calendar/calendar-alarms.properties39
-rw-r--r--l10n-th/calendar/chrome/calendar/calendar-event-dialog-attendees.properties15
-rw-r--r--l10n-th/calendar/chrome/calendar/calendar-event-dialog.dtd428
-rw-r--r--l10n-th/calendar/chrome/calendar/calendar-event-dialog.properties541
-rw-r--r--l10n-th/calendar/chrome/calendar/calendar-extract.properties294
-rw-r--r--l10n-th/calendar/chrome/calendar/calendar-invitations-dialog.dtd19
-rw-r--r--l10n-th/calendar/chrome/calendar/calendar-invitations-dialog.properties10
-rw-r--r--l10n-th/calendar/chrome/calendar/calendar-occurrence-prompt.dtd7
-rw-r--r--l10n-th/calendar/chrome/calendar/calendar-occurrence-prompt.properties53
-rw-r--r--l10n-th/calendar/chrome/calendar/calendar.dtd411
-rw-r--r--l10n-th/calendar/chrome/calendar/calendar.properties794
-rw-r--r--l10n-th/calendar/chrome/calendar/calendarCreation.dtd51
-rw-r--r--l10n-th/calendar/chrome/calendar/calendarCreation.properties6
-rw-r--r--l10n-th/calendar/chrome/calendar/categories.properties7
-rw-r--r--l10n-th/calendar/chrome/calendar/dateFormat.properties146
-rw-r--r--l10n-th/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd19
-rw-r--r--l10n-th/calendar/chrome/calendar/global.dtd54
-rw-r--r--l10n-th/calendar/chrome/calendar/menuOverlay.dtd50
-rw-r--r--l10n-th/calendar/chrome/calendar/migration.dtd9
-rw-r--r--l10n-th/calendar/chrome/calendar/migration.properties13
-rw-r--r--l10n-th/calendar/chrome/calendar/provider-uninstall.dtd12
-rw-r--r--l10n-th/calendar/chrome/calendar/timezones.properties483
-rw-r--r--l10n-th/calendar/chrome/lightning/lightning-toolbar.dtd51
-rw-r--r--l10n-th/calendar/chrome/lightning/lightning.dtd110
-rw-r--r--l10n-th/calendar/chrome/lightning/lightning.properties165
36 files changed, 4113 insertions, 0 deletions
diff --git a/l10n-th/calendar/calendar/calendar-context-menus.ftl b/l10n-th/calendar/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000..8590881a84
--- /dev/null
+++ b/l10n-th/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-th/calendar/calendar/calendar-delete-prompt.ftl b/l10n-th/calendar/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000..19eac46559
--- /dev/null
+++ b/l10n-th/calendar/calendar/calendar-delete-prompt.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-delete-event-prompt-title =
+ { $count ->
+ *[other] ลบเหตุการณ์
+ }
+calendar-delete-task-prompt-title =
+ { $count ->
+ *[other] ลบงาน
+ }
+calendar-delete-item-prompt-title =
+ { $count ->
+ *[other] ลบรายการ
+ }
+calendar-delete-prompt-disable-message = ไม่ต้องถามฉันอีก
diff --git a/l10n-th/calendar/calendar/calendar-editable-item.ftl b/l10n-th/calendar/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000..402ca59ef7
--- /dev/null
+++ b/l10n-th/calendar/calendar/calendar-editable-item.ftl
@@ -0,0 +1,16 @@
+# 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 = งานที่เสร็จสมบูรณ์
diff --git a/l10n-th/calendar/calendar/calendar-event-dialog-reminder.ftl b/l10n-th/calendar/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000..49938cb404
--- /dev/null
+++ b/l10n-th/calendar/calendar/calendar-event-dialog-reminder.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-event-reminder-icon-display =
+ .alt = แสดงการแจ้งเตือน
+calendar-event-reminder-icon-email =
+ .alt = ส่งอีเมล
diff --git a/l10n-th/calendar/calendar/calendar-ics-file-dialog.ftl b/l10n-th/calendar/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000..941485cbbe
--- /dev/null
+++ b/l10n-th/calendar/calendar/calendar-ics-file-dialog.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-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 = ตกลง
+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 = เรียงตามวันเริ่ม (หัวถึงท้าย)
+# "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 ->
+ *[other] { $duplicatesCount } รายการถูกเพิกเฉยเนื่องจากมีอยู่ในปฏิทินปลายทางแล้ว
+ }
+calendar-ics-file-import-errors =
+ { $errorsCount ->
+ *[other] ไม่สามารถนำเข้า { $errorsCount } รายการได้ ตรวจสอบคอนโซลข้อผิดพลาดสำหรับรายละเอียด
+ }
+calendar-ics-file-dialog-no-calendars = ไม่มีปฏิทินที่สามารถนำเข้าเหตุการณ์หรืองานได้
diff --git a/l10n-th/calendar/calendar/calendar-invitation-panel.ftl b/l10n-th/calendar/calendar/calendar-invitation-panel.ftl
new file mode 100644
index 0000000000..b6da2245e9
--- /dev/null
+++ b/l10n-th/calendar/calendar/calendar-invitation-panel.ftl
@@ -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/.
+
+calendar-invitation-panel-action-button = บันทึก
+calendar-invitation-panel-accept-button = ใช่
+calendar-invitation-panel-decline-button = ไม่
+calendar-invitation-panel-tentative-button = อาจจะ
+calendar-invitation-panel-prop-title-when = เมื่อ:
+calendar-invitation-panel-prop-title-location = ตำแหน่งที่ตั้ง:
+calendar-invitation-panel-prop-title-attendees = ผู้เข้าร่วม:
+calendar-invitation-panel-prop-title-description = คำอธิบาย:
diff --git a/l10n-th/calendar/calendar/calendar-summary-dialog.ftl b/l10n-th/calendar/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000..e41ce04597
--- /dev/null
+++ b/l10n-th/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 = E
+calendar-summary-dialog-edit-menu-button =
+ .label = แก้ไข
+edit-button-context-menu-this-occurrence =
+ .label = แก้ไขเหตุการณ์นี้เท่านั้น
+ .accesskey = t
+edit-button-context-menu-all-occurrences =
+ .label = แก้ไขเหตุการณ์ทั้งหมด
+ .accesskey = a
diff --git a/l10n-th/calendar/calendar/calendar-uri-redirect-dialog.ftl b/l10n-th/calendar/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000..3a4c4694e2
--- /dev/null
+++ b/l10n-th/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-th/calendar/calendar/calendar-widgets.ftl b/l10n-th/calendar/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000..aa4e8c09be
--- /dev/null
+++ b/l10n-th/calendar/calendar/calendar-widgets.ftl
@@ -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/.
+
+calendar-deactivated-notification-events = ปฏิทินทั้งหมดถูกปิดใช้งานในขณะนี้ ให้เปิดใช้งานปฏิทินที่มีอยู่หรือเพิ่มปฏิทินใหม่เพื่อสร้างและแก้ไขเหตุการณ์
+calendar-deactivated-notification-tasks = ปฏิทินทั้งหมดถูกปิดใช้งานในขณะนี้ ให้เปิดใช้งานปฏิทินที่มีอยู่หรือเพิ่มปฏิทินใหม่เพื่อสร้างและแก้ไขงาน
diff --git a/l10n-th/calendar/calendar/category-dialog.ftl b/l10n-th/calendar/calendar/category-dialog.ftl
new file mode 100644
index 0000000000..314c04be70
--- /dev/null
+++ b/l10n-th/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-th/calendar/calendar/preferences.ftl b/l10n-th/calendar/calendar/preferences.ftl
new file mode 100644
index 0000000000..d1885ecc86
--- /dev/null
+++ b/l10n-th/calendar/calendar/preferences.ftl
@@ -0,0 +1,186 @@
+# 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-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 }
+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 = บานหน้าต่างวันนี้
+# Note: "Upcoming" is the name of a section and the translation must match the
+# translation of that section name (calendar.upcoming.button.label). Also,
+# it should be upper case (as a proper name) if the target language permits.
+soon-label =
+ .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 = ท
+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 = อ
+category-new-label = หมวดหมู่ใหม่
+category-edit-label = แก้ไขหมวดหมู่
+category-overwrite-title = คำเตือน: ชื่อซ้ำกัน
+category-overwrite = มีหมวดหมู่ชื่อนั้นแล้ว คุณต้องการเขียนทับหรือไม่?
+category-blank-warning = คุณต้องป้อนชื่อหมวดหมู่
diff --git a/l10n-th/calendar/chrome/calendar/calendar-alarms.properties b/l10n-th/calendar/chrome/calendar/calendar-alarms.properties
new file mode 100644
index 0000000000..be5d58af64
--- /dev/null
+++ b/l10n-th/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 การเตือนความจำต่อเหตุการณ์เท่านั้น
+reminderErrorMaxCountReachedTask=ปฏิทินที่เลือกจำกัดเพียง #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-th/calendar/chrome/calendar/calendar-event-dialog-attendees.properties b/l10n-th/calendar/chrome/calendar/calendar-event-dialog-attendees.properties
new file mode 100644
index 0000000000..d1e27541af
--- /dev/null
+++ b/l10n-th/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-th/calendar/chrome/calendar/calendar-event-dialog.dtd b/l10n-th/calendar/chrome/calendar/calendar-event-dialog.dtd
new file mode 100644
index 0000000000..004e967fff
--- /dev/null
+++ b/l10n-th/calendar/chrome/calendar/calendar-event-dialog.dtd
@@ -0,0 +1,428 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY event.title.label "แก้ไขรายการ" >
+
+<!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 "รายปักษ์">
+<!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.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-th/calendar/chrome/calendar/calendar-event-dialog.properties b/l10n-th/calendar/chrome/calendar/calendar-event-dialog.properties
new file mode 100644
index 0000000000..d8668e3174
--- /dev/null
+++ b/l10n-th/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=ทุก #2 สัปดาห์ที่ %1$S
+weeklyNthOnNounclass2=ทุก #2 สัปดาห์ที่ %1$S
+
+# LOCALIZATION NOTE (weeklyEveryNth):
+# Edit recurrence window -> Recurrence pattern -> Weekly repeat rules
+# #1 - interval
+# e.g. "every 5 weeks"
+weeklyEveryNth=ทุก #1 สัปดาห์
+
+# LOCALIZATION NOTE ('repeatDetailsDay...' and 'repeatDetailsDay...Nounclass'):
+# Week days names and week days noun classes (feminine/masculine grammatical
+# gender) for languages that need different localization when weekdays nouns
+# have different noun classes (genders).
+# For every weekday, in 'repeatDetailsDay...Nounclass' strings write:
+# "nounclass1" for languages with grammatical genders -> MASCULINE gender;
+# for languages with noun classes -> a noun class;
+# for languages without noun classes or grammatical gender.
+#
+# "nounclass2" for languages with grammatical genders -> FEMININE gender;
+# for languages with noun classes -> a different noun class.
+#
+# "nounclass3", "nounclass4" and so on for languages that need more than two
+# noun classes for weekdays. In this case add corresponding
+# rule string with "Nounclass..." suffix and ordinal string
+# "repeatOrdinalxNounclass..."
+# Will be used rule strings with "Nounclass..." suffix corresponding to the
+# following strings if there is a weekday in the rule string.
+repeatDetailsDay1=วันอาทิตย์
+repeatDetailsDay1Nounclass=nounclass1
+repeatDetailsDay2=วันจันทร์
+repeatDetailsDay2Nounclass=nounclass1
+repeatDetailsDay3=วันอังคาร
+repeatDetailsDay3Nounclass=nounclass1
+repeatDetailsDay4=วันพุธ
+repeatDetailsDay4Nounclass=nounclass1
+repeatDetailsDay5=วันพฤหัสบดี
+repeatDetailsDay5Nounclass=nounclass1
+repeatDetailsDay6=วันศุกร์
+repeatDetailsDay6Nounclass=nounclass1
+repeatDetailsDay7=วันเสาร์
+repeatDetailsDay7Nounclass=nounclass1
+
+# LOCALIZATION NOTE (repeatDetailsAnd)
+# Used to show a number of weekdays in a list
+# i.e. "Sunday, Monday, Tuesday " + and + " Wednesday"
+repeatDetailsAnd=และ
+
+# LOCALIZATION NOTE (monthlyRuleNthOfEveryNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# Translate these strings according to noun class/gender of weekday (%2$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - list of weekdays with ordinal, article and noun class/gender
+# (ordinal and weekday of every element in the list follow the order
+# and the rule of ordinalWeekdayOrder string)
+# #2 - interval
+# e.g. "the first Monday and the last Friday of every 3 months"
+monthlyRuleNthOfEveryNounclass1=%1$S ของทุก #2 เดือน
+monthlyRuleNthOfEveryNounclass2=%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=%2$S %1$S
+
+# LOCALIZATION NOTE (monthlyEveryOfEveryNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - list of single weekdays and/or weekdays with ordinal, article and
+# noun class/gender when rule contains also specific day in the month
+# #2 - interval
+# e.g. "every Monday, Tuesday and the second Sunday of every month"
+monthlyEveryOfEveryNounclass1=ทุก %1$S ของทุก #2 เดือน
+monthlyEveryOfEveryNounclass2=ทุก %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
+
+# LOCALIZATION NOTE (monthlyDaysOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - it's the string monthlyDaysOfNth_day: day of month or a sequence of days
+# of month, possibly followed by an ordinal symbol, separated with commas;
+# #2 - monthly interval
+# e.g. "days 3, 6, 9 and 12 of every 3 months"
+monthlyDaysOfNth=%1$S ของทุก #2 เดือน
+
+# 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=ทุก #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=ทุก #4 ปีที่ %2$S %1$S ของ %3$S
+yearlyNthOnNthOfNounclass2=ทุก #4 ปีที่ %2$S %1$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=ทุก #3 ปีในทุก %1$S ของ %2$S
+yearlyOnEveryNthOfNthNounclass2=ทุก #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=ทุก #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 occurrence times: number
+# e.g. with monthlyRuleNthOfEvery:
+# "Occurs the first Sunday of every 3 month
+# only on 1/1/2009"
+# from 5:00 PM to 6:00 PM"
+# "Occurs the first Sunday of every 3 month
+# effective 1/1/2009 for 5 times
+# from 5:00 PM to 6:00 PM"
+repeatCount=เกิดขึ้น%1$S\nมีผลตั้งแต่ %2$S เป็นเวลา #5 ครั้ง\nตั้งแต่ %3$S ถึง %4$S
+
+# LOCALIZATION NOTE (repeatCountAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# #3 - event occurrence times: number
+# e.g. with monthlyRuleNthOfEvery:
+# "Occurs the first Sunday of every 3 month
+# only on 1/1/2009"
+# "Occurs the first Sunday of every 3 month
+# effective 1/1/2009 for 5 times"
+repeatCountAllDay=เกิดขึ้น%1$S\nมีผลตั้งแต่ %2$S เป็นเวลา #3 ครั้ง
+
+# LOCALIZATION NOTE (repeatDetailsUntil):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event end date (e.g. mm/gg/yyyy)
+# %4$S - event start time (e.g. hh:mm (PM/AM))
+# %5$S - event end time (e.g. hh:mm (PM/AM))
+# e.g. with weeklyNthOn:
+# "Occurs every 2 weeks on Sunday and Friday
+# effective 1/1/2009 until 1/1/2010
+# from 5:00 PM to 6:00 PM"
+repeatDetailsUntil=เกิดขึ้น%1$S\nมีผลตั้งแต่ %2$S จนถึง %3$S\nตั้งแต่ %4$S ถึง %5$S
+
+# LOCALIZATION NOTE (repeatDetailsUntilAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event end date (e.g. mm/gg/yyyy)
+# e.g. with monthlyDaysOfNth and all day event:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009 until 1/1/2010"
+repeatDetailsUntilAllDay=เกิดขึ้น%1$S\nมีผลตั้งแต่ %2$S จนถึง %3$S
+
+# LOCALIZATION NOTE (repeatDetailsInfinite):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event start time (e.g. hh:mm (PM/AM))
+# %4$S - event end time (e.g. hh:mm (PM/AM))
+# e.g. with monthlyDaysOfNth:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009
+# from 5:00 PM to 6:00 PM"
+repeatDetailsInfinite=เกิดขึ้น%1$S\nมีผลตั้งแต่ %2$S\nตั้งแต่ %3$S ถึง %4$S
+
+# LOCALIZATION NOTE (repeatDetailsInfiniteAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# e.g. with monthlyDaysOfNth and all day event:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009"
+repeatDetailsInfiniteAllDay=เกิดขึ้น%1$S\nมีผลตั้งแต่ %2$S
+
+# LOCALIZATION NOTE (monthlyLastDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# A monthly rule with one or more days of the month (monthlyDaysOfNth) and the
+# string "the last day" of the month.
+# e.g.: "Occurs day 15, 20, 25 and the last day of every 3 months"
+monthlyLastDay=วันสุดท้าย
+
+# LOCALIZATION NOTE (ruleTooComplex):
+# This string is shown in the repeat details area if our code can't handle the
+# complexity of the recurrence rule yet.
+ruleTooComplex=คลิกที่นี่สำหรับรายละเอียด
+
+# LOCALIZATION NOTE (ruleTooComplexSummary):
+# This string is shown in the event summary dialog if our code can't handle the
+# complexity of the recurrence rule yet.
+ruleTooComplexSummary=ไม่ทราบรายละเอียดการทำซ้ำ
+
+# differences between the dialog for an Event or a Task
+newEvent=เหตุการณ์ใหม่
+newTask=งานใหม่
+itemMenuLabelEvent=เหตุการณ์
+itemMenuAccesskeyEvent2=ห
+itemMenuLabelTask=งาน
+itemMenuAccesskeyTask2=ง
+
+emailSubjectReply=ตอบกลับ: %1$S
+
+# Link Location Dialog
+specifyLinkLocation=โปรดระบุตำแหน่งที่ตั้งลิงก์
+enterLinkLocation=ป้อนหน้าเว็บหรือตำแหน่งที่ตั้งเอกสาร
+
+summaryDueTaskLabel=ครบกำหนด:
+
+# Attach File Dialog
+attachViaFilelink=ไฟล์ที่ใช้ %1$S
+selectAFile=โปรดเลือกไฟล์ที่จะแนบ
+removeCalendarsTitle=เอาไฟล์แนบออก
+
+# LOCALIZATION NOTE (removeAttachmentsText): Semi-colon list of plural forms for
+# prompting attachment removal.
+# See http://developer.mozilla.org/en/Localization_and_Plurals
+removeAttachmentsText=คุณต้องการเอา #1 ไฟล์แนบออกหรือไม่?
+
+# Recurrence Dialog Widget Order
+# LOCALIZATION NOTE: You can change the order of below params
+# Edit recurrence window -> Recurrence pattern -> Repeat monthly
+# %1$S - ordinal with article, %2$S - weekday
+# e.g. "the First Saturday"
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+monthlyOrder=%2$S %1$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=%2$S %1$S %3$S %4$S
+
+# LOCALIZATION NOTE (pluralForWeekdays):
+# This string allows to set the use of weekdays nouns in plural form for
+# languages that need them in sentences like "every Monday" or "every Sunday
+# of March" etc.
+# Rule strings involved by this setting are:
+# - weeklyNthOn (only the first part) e.g. "every Sunday"
+# - monthlyEveryOfEvery
+# e.g. "every Monday of every month;every Monday every 2 months"
+# - yearlyOnEveryNthOfNth
+# e.g. "every Friday of March;every 2 years on every Friday of March"
+# In your local write:
+# "true" if sentences like those above need weekday in plural form;
+# "false" if sentences like those above don't need weekday in plural form;
+pluralForWeekdays=ผิด
+
+# 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 assignment 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-th/calendar/chrome/calendar/calendar-extract.properties b/l10n-th/calendar/chrome/calendar/calendar-extract.properties
new file mode 100644
index 0000000000..2972e73bc0
--- /dev/null
+++ b/l10n-th/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 = ชั้น | : | อีเมล | > | % | บาท | THB | ฿ | ดอลลาร์ | USD | $
+
+# 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 = วันที่ #1
+
+# 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 | ตั้งแต่ #1
+
+# LOCALIZATION NOTE (from.hour.am):
+# #1 = matches numbers 0-23 and number.0-number.23
+from.hour.am = #1 นาฬิกาก่อนเที่ยง | #1 am | #1 a.m
+
+# LOCALIZATION NOTE (until.hour.am):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour.am =
+
+# LOCALIZATION NOTE (from.hour.pm):
+# #1 = matches numbers 0-23 and number.0-number.23
+from.hour.pm = #1 นาฬิกาหลังเที่ยง | #1 pm | #1 p.m
+
+# 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 =
+
+# LOCALIZATION NOTE (from.hour.minutes.am):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+from.hour.minutes.am = #1:#2 ก่อนเที่ยง | #1:#2 am | #1:#2 a.m
+
+# LOCALIZATION NOTE (until.hour.minutes.am):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+until.hour.minutes.am =
+
+# LOCALIZATION NOTE (from.hour.minutes.pm):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+from.hour.minutes.pm = #1:#2 หลังเที่ยง | #1:#2 pm | #1:#2 p.m | #1:#2 p
+
+# LOCALIZATION NOTE (until.hour.minutes.pm):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+until.hour.minutes.pm =
+
+# LOCALIZATION NOTE (from.monthname.day):
+# #1 = matches numbers 1-31 and number.x
+# #2 = matches monthname
+from.monthname.day = #1 #2 | วันที่ #1 #2
+
+# LOCALIZATION NOTE (until.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+until.monthname.day =
+
+# LOCALIZATION NOTE (from.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+from.month.day = #1/#2
+
+# 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 | #3-#2-#1
+
+# LOCALIZATION NOTE (until.year.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+# #3 = matches 2/4 numbers
+until.year.month.day =
+
+# LOCALIZATION NOTE (from.year.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+# #3 = matches 2/4 numbers
+from.year.monthname.day = #1 #2 #3 | วันที่ #1 #2 #3 | #3-#2-#1
+
+# LOCALIZATION NOTE (until.year.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+# #3 = matches 2/4 numbers
+until.year.monthname.day =
+
+# LOCALIZATION NOTE (duration.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (duration.minutes):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.minutes = #1 นาที | #1 น.
+
+# LOCALIZATION NOTE (duration.hours):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.hours = #1 ชั่วโมง | #1 ชม.
+
+# LOCALIZATION NOTE (duration.days):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.days = #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-th/calendar/chrome/calendar/calendar-invitations-dialog.dtd b/l10n-th/calendar/chrome/calendar/calendar-invitations-dialog.dtd
new file mode 100644
index 0000000000..2b09df0f35
--- /dev/null
+++ b/l10n-th/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-th/calendar/chrome/calendar/calendar-invitations-dialog.properties b/l10n-th/calendar/chrome/calendar/calendar-invitations-dialog.properties
new file mode 100644
index 0000000000..70c46cdf70
--- /dev/null
+++ b/l10n-th/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-th/calendar/chrome/calendar/calendar-occurrence-prompt.dtd b/l10n-th/calendar/chrome/calendar/calendar-occurrence-prompt.dtd
new file mode 100644
index 0000000000..74b3bba25c
--- /dev/null
+++ b/l10n-th/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-th/calendar/chrome/calendar/calendar-occurrence-prompt.properties b/l10n-th/calendar/chrome/calendar/calendar-occurrence-prompt.properties
new file mode 100644
index 0000000000..edd6ae9045
--- /dev/null
+++ b/l10n-th/calendar/chrome/calendar/calendar-occurrence-prompt.properties
@@ -0,0 +1,53 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+header.isrepeating.event.label=เป็นเหตุการณ์ที่เกิดซ้ำ
+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=แก้ไขงานที่เกิดซ้ำ
+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-th/calendar/chrome/calendar/calendar.dtd b/l10n-th/calendar/chrome/calendar/calendar.dtd
new file mode 100644
index 0000000000..c337e79d9d
--- /dev/null
+++ b/l10n-th/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 Calendar Server (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-th/calendar/chrome/calendar/calendar.properties b/l10n-th/calendar/chrome/calendar/calendar.properties
new file mode 100644
index 0000000000..75bda53d83
--- /dev/null
+++ b/l10n-th/calendar/chrome/calendar/calendar.properties
@@ -0,0 +1,794 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Misc. strings in JS
+
+# LOCALIZATION NOTE (PrintPreviewWindowTitle):
+# %1$S will be replaced with the title of a html frame
+PrintPreviewWindowTitle=ตัวอย่างก่อนพิมพ์ของ %1$S
+Untitled=ไม่มีชื่อ
+
+# Default name for new events
+newEvent=เหตุการณ์ใหม่
+
+# Titles for the event/task dialog
+newEventDialog=เหตุการณ์ใหม่
+editEventDialog=แก้ไขเหตุการณ์
+newTaskDialog=งานใหม่
+editTaskDialog=แก้ไขงาน
+
+# Do you want to save changes?
+askSaveTitleEvent=บันทึกเหตุการณ์
+askSaveTitleTask=บันทึกงาน
+askSaveMessageEvent=ยังไม่ได้บันทึกเหตุการณ์ คุณต้องการบันทึกเหตุการณ์หรือไม่?
+askSaveMessageTask=ยังไม่ได้บันทึกงาน คุณต้องการบันทึกงานหรือไม่?
+
+# Event Dialog Warnings
+warningEndBeforeStart=วันที่สิ้นสุดที่คุณป้อนเกิดก่อนวันที่เริ่ม
+warningUntilDateBeforeStart=จนถึงวันที่เกิดก่อนวันที่เริ่ม
+
+# The name of the calendar provided with the application by default
+homeCalendarName=หน้าแรก
+
+# The name given to a calendar if an opened calendar has an empty filename
+untitledCalendarName=ปฏิทินไม่มีชื่อ
+
+# Event status: Tentative, Confirmed, Cancelled
+# ToDo task status: NeedsAction, InProcess, Completed, Cancelled
+statusTentative =ไม่แน่นอน
+statusConfirmed =ยืนยันแล้ว
+eventStatusCancelled=ยกเลิกแล้ว
+todoStatusCancelled =ยกเลิกแล้ว
+statusNeedsAction =ต้องการการกระทำ
+statusInProcess =อยู่ระหว่างดำเนินการ
+statusCompleted =เสร็จสมบูรณ์
+
+# Task priority, these should match the priority.level.* labels in calendar.dtd
+highPriority=สูง
+normalPriority=ปกติ
+lowPriority=ต่ำ
+
+importPrompt=คุณต้องการนำเข้ารายการเหล่านี้จากปฏิทินใด?
+exportPrompt=คุณต้องการส่งออกปฏิทินใด?
+pastePrompt=คุณต้องการวางลงในปฏิทินใดที่เขียนได้ปัจจุบันของคุณ?
+publishPrompt=คุณต้องการเผยแพร่ปฏิทินใด?
+
+# LOCALIZATION NOTE (pasteEventAlso): The users pasting operation includes among
+# others also a meeting invitation - this is used as a affix in
+# pasteNotifyAbout
+pasteEventAlso=การวางของคุณมีการประชุม
+# LOCALIZATION NOTE (pasteEventsAlso): The users pasting operation includes among
+# others also several meeting invitations - this is used as a affix in
+# pasteNotifyAbout
+pasteEventsAlso=การวางของคุณมีการประชุม
+# LOCALIZATION NOTE (pasteTaskAlso): The users pasting operation includes among
+# others also an assigned task - this is used as a affix in pasteNotifyAbout
+pasteTaskAlso=การวางของคุณมีงานที่มอบหมาย
+# LOCALIZATION NOTE (pasteTasksAlso): The users pasting operation include among
+# others also several assigned tasks - this is used as a affix in
+# pasteNotifyAbout
+pasteTasksAlso=การวางของคุณมีงานที่มอบหมาย
+# LOCALIZATION NOTE (pasteItemsAlso): The users pasting operation includes among
+# others also assigned task(s) and meeting invitation(s) - this is used as a affix
+# in pasteNotifyAbout
+pasteItemsAlso=การวางของคุณมีการประชุมและงานที่มอบหมาย
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting a meeting -
+# this is used as a affix in pasteNotifyAbout
+pasteEventOnly=คุณกำลังวางการประชุม
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several meetings -
+# this is used as a affix in pasteNotifyAbout
+pasteEventsOnly=คุณกำลังวางการประชุม
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting an assigned task -
+# this is used as a affix in pasteNotifyAbout
+pasteTaskOnly=คุณกำลังวางงานที่มอบหมาย
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several assigned
+# tasks - this is used as a affix in pasteNotifyAbout
+pasteTasksOnly=คุณกำลังวางงานที่มอบหมาย
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting assigned task(s) and
+# meeting(s) - this is used as a affix in pasteNotifyAbout
+pasteItemsOnly=คุณกำลังวางการประชุมและงานที่มอบหมาย
+
+# LOCALIZATION NOTE (pasteNotifyAbout): Text displayed if pasting an invitation
+# or assigned task
+# %1$S - pasteEvent* or pasteTask*
+pasteNotifyAbout=%1$S - คุณต้องการส่งการอัปเดตให้กับทุกคนที่เกี่ยวข้องหรือไม่?
+
+# LOCALIZATION NOTE (pasteAndNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteAndNotifyLabel=วางแล้วส่งตอนนี้
+# LOCALIZATION NOTE (pasteDontNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteDontNotifyLabel=วางโดยไม่ส่ง
+
+# LOCALIZATION NOTE (importItemsFailed):
+# %1$S will be replaced with number of failed items
+# %2$S will be replaced with last error code / error string
+importItemsFailed=ไม่สามารถนำเข้า %1$S รายการ ข้อผิดพลาดสุดท้ายคือ: %2$S
+# LOCALIZATION NOTE (noItemsInCalendarFile2):
+# %1$S will be replaced with file path
+noItemsInCalendarFile2=ไม่สามารถนำเข้าจาก %1$S ได้ ไม่มีรายการที่นำเข้าได้ในไฟล์นี้
+
+#spaces needed at the end of the following lines
+eventDescription=คำอธิบาย:
+
+unableToRead=ไม่สามารถอ่านจากไฟล์:
+unableToWrite=ไม่สามารถเขียนไปยังไฟล์:
+defaultFileName=MozillaCalEvents
+HTMLTitle=ปฏิทิน Mozilla
+
+# LOCALIZATION NOTE (timezoneError):
+# used for an error message like 'An unknown and undefined timezone was found while reading c:\Mycalendarfile.ics'
+# %1$S will be replaced with the path to a file
+timezoneError=พบเขตเวลาที่ไม่ทราบและไม่ได้ระบุขณะอ่าน %1$S
+
+# LOCALIZATION NOTE (duplicateError):
+# %1$S will be replaced with number of duplicate items
+# %2$S will be replaced with a file path pointing to a calendar
+duplicateError=%1$S รายการถูกเพิกเฉยเนื่องจากมีอยู่แล้วทั้งในปฏิทินปลายทางและ %2$S
+
+unableToCreateProvider=เกิดข้อผิดพลาดในการเตรียมปฏิทินที่ตั้งอยู่ที่ %1$S สำหรับใช้งาน และจะไม่สามารถใช้งานได้
+
+# Sample: Unknown timezone "USPacific" in "Dentist Appt". Using the 'floating' local timezone instead: 2008/02/28 14:00:00
+unknownTimezoneInItem=ไม่รู้จักเขตเวลา "%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=เสร็จสมบูรณ์:
+
+# Tooltips for attendees and organizer in event and summary dialog
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendee.combined): tooltip for itip icon in summary/event dialog.
+# Given an attendee loungeexample.org of type room is a mandatory participant and has accepted the
+# invitation, the tooltip would be:
+# lounge@example.org (room) is a required participant. lounge@example.org has confirmed attendance.
+# %1$S - value of dialog.tooltip.attendeeRole2.*
+# %2$S - value of dialog.tooltip.attendeePartStat2.*
+dialog.tooltip.attendee.combined=%1$S %2$S
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.CHAIR): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.CHAIR=%1$S เป็นประธานในเหตุการณ์นี้
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.NON-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.NON-PARTICIPANT=%1$S เป็นผู้ไม่เข้าร่วม
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.OPT-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.OPT-PARTICIPANT=%1$S เป็นผู้เข้าร่วมที่ไม่จำเป็น
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.REQ-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.REQ-PARTICIPANT=%1$S เป็นผู้เข้าร่วมที่จำเป็น
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.ACCEPTED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.ACCEPTED=%1$S ได้ยืนยันการเข้าร่วม
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.DECLINED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.DECLINED=%1$S ได้ปฏิเสธการเข้าร่วม
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.DELEGATED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.DELEGATED=%1$S ได้มอบหมายให้ผู้อื่นเข้าร่วม
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.NEEDS-ACTION): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.NEEDS-ACTION=%1$S ยังต้องการให้ตอบกลับ
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.TENTATIVE): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.TENTATIVE=%1$S ได้ยืนยันการเข้าร่วมอย่างไม่แน่นอน
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.INDIVIDUAL): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing individual attendee
+dialog.tooltip.attendeeUserType2.INDIVIDUAL=%1$S
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.GROUP): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a group (e.g. a distribution list)
+dialog.tooltip.attendeeUserType2.GROUP=%1$S (กลุ่ม)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.RESOURCE): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a resource (e.g. projector)
+dialog.tooltip.attendeeUserType2.RESOURCE=%1$S (ทรัพยากร)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.ROOM): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a room
+dialog.tooltip.attendeeUserType2.ROOM=%1$S (ห้อง)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.UNKNOWN): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing an attendee of unknown type
+dialog.tooltip.attendeeUserType2.UNKNOWN=%1$S
+
+#File commands and dialogs
+New=ใหม่
+Open=เปิด
+filepickerTitleImport=นำเข้า
+filepickerTitleExport=ส่งออก
+
+# Filters for export/import/open file picker. %1$S will be replaced with
+# wildmat used to filter files by extension, such as (*.html; *.htm).
+filterIcs=iCalendar (%1$S)
+filterXml=เอกสาร XML (%1$S)
+filterHtml=หน้าเว็บ (%1$S)
+filterOutlookCsv=ค่าที่คั่นด้วยเครื่องหมายจุลภาคของ Outlook (%1$S)
+
+# Remote calendar errors
+genericErrorTitle=เกิดข้อผิดพลาด
+httpPutError=การเผยแพร่ไฟล์ปฏิทินล้มเหลว\nรหัสสถานะ: %1$S: %2$S
+otherPutError=การเผยแพร่ไฟล์ปฏิทินล้มเหลว\nรหัสสถานะ: 0x%1$S
+
+# LOCALIZATION NOTE (readOnlyMode):
+# used for an message like 'There has been an error reading data for calendar: Home. It has been...'
+# %1$S will be replaced with the name of a calendar
+readOnlyMode=มีปัญหาในการอ่านข้อมูลสำหรับปฏิทิน: %1$S ซึ่งได้ถูกกำหนดให้เปิดในโหมดอ่านอย่างเดียว เนื่องจากการเปลี่ยนแปลงกับปฏิทินนี้อาจจะส่งผลให้ข้อมูลสูญหายได้ คุณสามารถเปลี่ยนการตั้งค่านี้ได้โดยเลือก 'แก้ไขปฏิทิน'
+
+# LOCALIZATION NOTE (disabledMode):
+# used for an message like 'There has been an error reading data for calendar: Home. It has been...'
+# %1$S will be replaced with the name of a calendar
+disabledMode=มีปัญหาในการอ่านข้อมูลสำหรับปฏิทิน: %1$S ซึ่งได้ถูกปิดใช้งานจนกว่าจะสามารถใช้ได้อย่างปลอดภัย
+
+# LOCALIZATION NOTE (minorError):
+# used for an message like 'There has been an error reading data for calendar: Home. However this...'
+# %1$S will be replaced with the name of a calendar
+minorError=มีปัญหาในการอ่านข้อมูลสำหรับปฏิทิน: %1$S แต่ข้อผิดพลาดนี้ไม่ถือว่าร้ายแรงมากนัก ดังนั้นโปรแกรมจะพยายามดำเนินการต่อ
+
+# LOCALIZATION NOTE (stillReadOnlyError):
+# used for an message like 'There has been an error reading data for calendar: Home.'
+# %1$S will be replaced with the name of a calendar
+stillReadOnlyError=เกิดข้อผิดพลาดในการอ่านข้อมูลสำหรับปฏิทิน: %1$S
+utf8DecodeError=เกิดข้อผิดพลาดขณะถอดรหัสไฟล์ 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=America/New_York, America/Chicago, America/Denver, America/Phoenix, America/Los_Angeles, America/Anchorage, America/Adak, Pacific/Honolulu, America/Puerto_Rico, America/Halifax, America/Mexico_City, America/Argentina/Buenos_Aires, America/Sao_Paulo, Europe/London, Europe/Paris, Asia/Singapore, Asia/Tokyo, Africa/Lagos, Africa/Johannesburg, Africa/Nairobi, Australia/Brisbane, Australia/Sydney, Pacific/Auckland
+
+# Guessed Timezone errors and warnings.
+# Testing note:
+# * remove preference for calendar.timezone.default in userprofile/prefs.js
+# * repeat
+# - set OS timezone to a city (windows: click right on clock in taskbar)
+# - restart
+# - observe guess in error console and verify whether guessed timezone city
+# makes sense for OS city.
+#
+# 'Warning: Operating system timezone "E. South America Standard Time"
+# no longer matches ZoneInfo timezone "America/Sao_Paulo".'
+# Testing notes:
+# - Brasil DST change dates are set every year by decree, so likely out of sync.
+# - Only appears on OSes from which timezone can be obtained
+# (windows; or TZ env var, /etc/localtime target path, or line in
+# /etc/timezone or /etc/sysconfig/clock contains ZoneInfo timezone id).
+# - Windows: turning off "Automatically adjust clock for daylight saving time"
+# can also trigger this warning.
+WarningOSTZNoMatch=คำเตือน: เขตเวลาของระบบปฏิบัติการ "%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อย่างมากหนึ่งสัปดาห์\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"
+
+# Localization note (TZFromLocale): Substitute name of your locale language.
+TZFromLocale=เขตเวลา ZoneInfo นี้ถูกเลือกให้ตรงกับเขตเวลาของระบบปฏิบัติการที่แนะนำสำหรับผู้ใช้\nอินเทอร์เน็ตที่ใช้ภาษาไทย
+
+TZFromKnownTimezones=เขตเวลา ZoneInfo นี้ถูกเลือกให้ตรงกับเขตเวลาของระบบปฏิบัติการด้วยเขตเวลาที่รู้จักตาม\nลำดับตัวอักษรของ id เขตเวลา
+
+# Print Layout
+formatListName = รายการ
+weekPrinterName = การวางแผนรายสัปดาห์
+monthPrinterName = ตารางรายเดือน
+tasksWithNoDueDate = งานที่ไม่มีวันครบกำหนด
+
+# Providers
+caldavName=CalDAV
+compositeName=Composite
+icsName=iCalendar (ICS)
+memoryName=ชั่วคราว (หน่วยความจำ)
+storageName=ในเครื่อง (SQLite)
+
+# Used in created html code for list layout print and html export
+htmlPrefixTitle=ชื่อเรื่อง
+htmlPrefixWhen=เมื่อ
+htmlPrefixLocation=ตำแหน่งที่ตั้ง
+htmlPrefixDescription=คำอธิบาย
+htmlTaskCompleted=%1$S (เสร็จสมบูรณ์)
+
+# Categories
+addCategory=เพิ่มหมวดหมู่
+multipleCategories=หลายหมวดหมู่
+
+today=วันนี้
+tomorrow=พรุ่งนี้
+yesterday=เมื่อวานนี้
+
+#Today pane
+eventsonly=เหตุการณ์
+eventsandtasks=เหตุการณ์และงาน
+tasksonly=งาน
+shortcalendarweek=สัปดาห์
+
+go=ไป
+
+# Some languages have different conjugations of 'next' and 'last'. If yours
+# does not, simply repeat the value. This will be used with day names, as in
+# 'next Sunday'.
+next1=ถัดไป
+next2=ถัดไป
+last1=สุดท้าย
+last2=สุดท้าย
+
+# Alarm Dialog
+# LOCALIZATION NOTE (alarmWindowTitle.label): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+alarmWindowTitle.label=#1 การเตือนความจำ
+
+# LOCALIZATION NOTE (alarmStarts):
+# used for a display the start of an alarm like 'Starts: Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmStarts=เริ่ม: %1$S
+
+# LOCALIZATION NOTE (alarmTodayAt):
+# used for a display the date-time of an alarm like 'Today at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmTodayAt=วันนี้ที่ %1$S
+
+# LOCALIZATION NOTE (alarmTomorrowAt):
+# used for a display the date-time of an alarm like 'Tomorrow at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmTomorrowAt=พรุ่งนี้ที่ %1$S
+
+# LOCALIZATION NOTE (alarmYesterdayAt):
+# used for a display the date-time of an alarm like 'Yesterday at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmYesterdayAt=เมื่อวานนี้ที่ %1$S
+
+# Alarm interface strings
+# LOCALIZATION NOTE: These strings do not get displayed. They are only visible
+# when exporting an item with i.e a DISPLAY alarm, that doesn't have a
+# description set, or an EMAIL alarm that doesn't have a summary set.
+alarmDefaultDescription=คำอธิบาย Mozilla เริ่มต้น
+alarmDefaultSummary=บทสรุป Mozilla เริ่มต้น
+
+# LOCALIZATION NOTE (alarmSnoozeLimitExceeded): Semi-colon list of plural
+# forms.
+alarmSnoozeLimitExceeded=คุณไม่สามารถเลื่อนการเตือนเป็นเวลามากกว่า #1 เดือนได้
+
+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 (abbreviationOfWeek):
+# Used for displaying the week number in the first day box of every week
+# in multiweek and month views.
+# It allows to localize the label with the week number in case your locale
+# requires it.
+# Take into account that this label is placed in the same room of the day label
+# inside the day boxes, exactly on left side, hence a possible string shouldn't
+# be too long otherwise it will create confusion between the week number and
+# the day number other than a possible crop when the window is resized.
+#
+# %1$S is a number from 1 to 53 that represents the week number.
+abbreviationOfWeek=%1$S
+
+# Task tree, "Due In" column.
+# LOCALIZATION NOTE (dueInDays, dueInHours): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+dueInDays=#1 วัน
+dueInHours=#1 ชั่วโมง
+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=nominative
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths):
+# used for display of intervals in the form 'September 29 - October 5, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with name of the month of the end date
+# %4$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %5$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenMonths=%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=nominative
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears):
+# used for display of intervals in the form 'December 29, 2008 - January 4, 2009'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the year of the start date
+# %4$S will be replaced with name of the month of the end date
+# %5$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %6$S will be replaced with the year of the end date
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenYears=%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=nominative
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDateTime):
+# used for intervals where end is equals to start
+# displayed form is '5 Jan 2006 13:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+datetimeIntervalOnSameDateTime=%1$S %2$S
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDay):
+# used for intervals where end is on the same day as start, so we can leave out the
+# end date but still include end time
+# displayed form is '5 Jan 2006 13:00 - 17:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the time of the end date
+datetimeIntervalOnSameDay=%1$S %2$S – %3$S
+
+# LOCALIZATION NOTE (datetimeIntervalOnSeveralDays):
+# used for intervals spanning multiple days by including date and time
+# displayed form is '5 Jan 2006 13:00 - 7 Jan 2006 9:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the date of the end date
+# %4$S will be replaced with the time of the end date
+datetimeIntervalOnSeveralDays=%1$S %2$S – %3$S %4$S
+
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDate):
+# used for task without start and due date
+# (showed only in exported calendar in Html format)
+datetimeIntervalTaskWithoutDate= ไม่มีวันเริ่มหรือครบกำหนด
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDueDate):
+# used for intervals in task with only start date
+# displayed form is 'start date 5 Jan 2006 13:00'
+# (showed only in exported calendar in Html format)
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+datetimeIntervalTaskWithoutDueDate=วันที่เริ่ม %1$S %2$S
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutStartDate):
+# used for intervals in task with only due date
+# displayed form is 'due date 5 Jan 2006 13:00'
+# (showed only in exported calendar in Html format)
+# %1$S will be replaced with the date of the due date
+# %2$S will be replaced with the time of the due date
+datetimeIntervalTaskWithoutStartDate=วันที่ครบกำหนด %1$S %2$S
+
+# LOCALIZATION NOTE (dragLabelTasksWithOnlyEntryDate
+# dragLabelTasksWithOnlyDueDate)
+# Labels that appear while dragging a task with only
+# entry date OR due date
+dragLabelTasksWithOnlyEntryDate=เวลาเริ่ม
+dragLabelTasksWithOnlyDueDate=ครบกำหนดที่
+
+deleteTaskLabel=ลบงาน
+deleteTaskMessage=คุณต้องการลบงานนี้หรือไม่?
+deleteTaskAccesskey=ล
+deleteItemLabel=ลบ
+deleteItemMessage=คุณต้องการลบรายการนี้หรือไม่?
+deleteItemAccesskey=ล
+deleteEventLabel=ลบเหตุการณ์
+deleteEventMessage=คุณต้องการลบเหตุการณ์นี้หรือไม่?
+deleteEventAccesskey=ล
+
+calendarPropertiesEveryMinute=ทุก #1 นาที
+
+# LOCALIZATION NOTE (extractUsing)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+extractUsing=กำลังใช้ %1$S
+
+# LOCALIZATION NOTE (extractUsingRegion)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+# %2$S will be replaced with region like US in en-US
+extractUsingRegion=กำลังใช้ %1$S (%2$S)
+
+# LOCALIZATION NOTE (unit)
+# Used to determine the correct plural form of a unit
+unitMinutes=#1 นาที
+unitHours=#1 ชั่วโมง
+unitDays=#1 วัน
+unitWeeks=#1 สัปดาห์
+
+# LOCALIZATION NOTE (showCalendar)
+# Used in calendar list context menu
+# %1$S will be replaced with the calendar name
+# uses the access key calendar.context.togglevisible.accesskey
+showCalendar=แสดง %1$S
+hideCalendar=ซ่อน %1$S
+# uses the access key calendar.context.showonly.accesskey
+showOnlyCalendar=แสดง %1$S เท่านั้น
+
+# LOCALIZATION NOTE (modifyConflict)
+# Used by the event dialog to resolve item modification conflicts.
+modifyConflictPromptTitle=ข้อขัดแย้งการปรับเปลี่ยนรายการ
+modifyConflictPromptMessage=รายการที่กำลังจะถูกแก้ไขในกล่องโต้ตอบได้ถูกปรับเปลี่ยนตั้งแต่เมื่อถูกเปิด
+modifyConflictPromptButton1=เขียนทับการเปลี่ยนแปลงอื่น ๆ
+modifyConflictPromptButton2=ละทิ้งการเปลี่ยนแปลงเหล่านี้
+
+# LOCALIZATION_NOTE(dialog.attendee.append.delegatedFrom): this is appended behind an attendee name
+# in the tooltip and the visible name for an attendee in the event summary dialog - don't add
+# leading or trailing whitespaces here
+# %1$S - a single delegatee or a comma separated list of delegatees
+# delegation is different from simple invitation forwarding - in case of delegation the original
+# invited attendee gets replaced
+dialog.attendee.append.delegatedFrom=(มอบหมายแล้วจาก %1$S)
+# LOCALIZATION_NOTE(dialog.attendee.append.delegatedTo): this is appended behind an attendee name
+# in the tooltip for an attendee in the event summary dialog - don't add leading or trailing
+# whitespaces here
+# delegation is different from simple invitation forwarding - in case of delegation the original
+# invited attendee gets replaced
+dialog.attendee.append.delegatedTo=(มอบหมายแล้วถึง %1$S)
+
+# Accessible description of a grid calendar with no selected date
+minimonthNoSelectedDate=ไม่ได้เลือกวันที่
diff --git a/l10n-th/calendar/chrome/calendar/calendarCreation.dtd b/l10n-th/calendar/chrome/calendar/calendarCreation.dtd
new file mode 100644
index 0000000000..dd74b929c9
--- /dev/null
+++ b/l10n-th/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-th/calendar/chrome/calendar/calendarCreation.properties b/l10n-th/calendar/chrome/calendar/calendarCreation.properties
new file mode 100644
index 0000000000..a2d649e7fa
--- /dev/null
+++ b/l10n-th/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-th/calendar/chrome/calendar/categories.properties b/l10n-th/calendar/chrome/calendar/categories.properties
new file mode 100644
index 0000000000..e4fb8c88e3
--- /dev/null
+++ b/l10n-th/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-th/calendar/chrome/calendar/dateFormat.properties b/l10n-th/calendar/chrome/calendar/dateFormat.properties
new file mode 100644
index 0000000000..a49a313543
--- /dev/null
+++ b/l10n-th/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-th/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd b/l10n-th/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd
new file mode 100644
index 0000000000..4c57836ccb
--- /dev/null
+++ b/l10n-th/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-th/calendar/chrome/calendar/global.dtd b/l10n-th/calendar/chrome/calendar/global.dtd
new file mode 100644
index 0000000000..b9ea1cb59f
--- /dev/null
+++ b/l10n-th/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-th/calendar/chrome/calendar/menuOverlay.dtd b/l10n-th/calendar/chrome/calendar/menuOverlay.dtd
new file mode 100644
index 0000000000..5e48430999
--- /dev/null
+++ b/l10n-th/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-th/calendar/chrome/calendar/migration.dtd b/l10n-th/calendar/chrome/calendar/migration.dtd
new file mode 100644
index 0000000000..1edbc394cf
--- /dev/null
+++ b/l10n-th/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-th/calendar/chrome/calendar/migration.properties b/l10n-th/calendar/chrome/calendar/migration.properties
new file mode 100644
index 0000000000..0fd0b21071
--- /dev/null
+++ b/l10n-th/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-th/calendar/chrome/calendar/provider-uninstall.dtd b/l10n-th/calendar/chrome/calendar/provider-uninstall.dtd
new file mode 100644
index 0000000000..a63ca4e9ca
--- /dev/null
+++ b/l10n-th/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-th/calendar/chrome/calendar/timezones.properties b/l10n-th/calendar/chrome/calendar/timezones.properties
new file mode 100644
index 0000000000..e41aae7533
--- /dev/null
+++ b/l10n-th/calendar/chrome/calendar/timezones.properties
@@ -0,0 +1,483 @@
+# 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=ยุโรป/โวลโกกราด
+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=อเมริกา/นุก
diff --git a/l10n-th/calendar/chrome/lightning/lightning-toolbar.dtd b/l10n-th/calendar/chrome/lightning/lightning-toolbar.dtd
new file mode 100644
index 0000000000..f29a873f81
--- /dev/null
+++ b/l10n-th/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-th/calendar/chrome/lightning/lightning.dtd b/l10n-th/calendar/chrome/lightning/lightning.dtd
new file mode 100644
index 0000000000..68679162bf
--- /dev/null
+++ b/l10n-th/calendar/chrome/lightning/lightning.dtd
@@ -0,0 +1,110 @@
+<!-- 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 "ตัวเลือกนี้จะใช้ได้เฉพาะในกรณีที่เซิร์ฟเวอร์ปฏิทินจัดการการจัดกำหนดการเท่านั้น การเปิดใช้งานจะช่วยให้สามารถถอยกลับไปใช้การจัดกำหนดการตามอีเมลมาตรฐานแทนที่จะปล่อยไว้ที่เซิร์ฟเวอร์ได้">
+
+<!-- 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-th/calendar/chrome/lightning/lightning.properties b/l10n-th/calendar/chrome/lightning/lightning.properties
new file mode 100644
index 0000000000..2ac484eccc
--- /dev/null
+++ b/l10n-th/calendar/chrome/lightning/lightning.properties
@@ -0,0 +1,165 @@
+# 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/.
+
+# 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
+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(noIdentitySelectedNotification):
+noIdentitySelectedNotification=หากคุณต้องการใช้ปฏิทินนี้เพื่อเก็บคำเชิญถึงหรือจากบุคคลอื่น คุณควรกำหนดข้อมูลประจำตัวอีเมลด้านล่าง