Summary
| Language code | th | |
|---|---|---|
| Aliased language codes | th_th, tha | |
| English name of the language | Thai | |
| Text direction | Left to right | |
| Case sensitivity | Case-insensitive | |
| Number of speakers | 55,936,800 | |
| Plural: Default plural 8747 translations | ||
| Number of plurals | 1 | |
| Plural type | None | |
| Plurals | ||
| Plural formula |
0
|
|
| Plural: Qt Linguist plural 0 translations | ||
| Number of plurals | 1 | |
| Plural type | None | |
| Plurals | ||
| Plural formula |
0
|
|
06/09/2026
String statistics
| Strings percent | Hosted strings | Words percent | Hosted words | Characters percent | Hosted characters | |
|---|---|---|---|---|---|---|
| Total | 1,224,306 | 9,083,293 | 66,057,349 | |||
| Approved | 6% | 82,349 | 5% | 505,343 | 5% | 3,579,528 |
| Waiting for review | 63% | 778,410 | 55% | 5,007,653 | 53% | 35,249,933 |
| Translated | 70% | 860,792 | 60% | 5,513,029 | 58% | 38,829,707 |
| Needs editing | 1% | 298 | 1% | 5,991 | 1% | 80,490 |
| Read-only | 1% | 33 | 1% | 33 | 1% | 246 |
| Failing checks | 1% | 5,037 | 1% | 160,023 | 2% | 1,435,424 |
| Strings with suggestions | 1% | 1 | 1% | 2 | 1% | 16 |
| Untranslated strings | 29% | 363,216 | 39% | 3,564,273 | 41% | 27,147,152 |
Quick numbers
and previous 30 days
Trends of last 30 days
+17%
Hosted words
+100%
+20%
Hosted strings
+100%
−2%
Translated
+72%
+77%
Contributors
+100%
|
Translation changed |
|
|
Translation added |
|
|
Translation changed |
|
|
Translation added |
|
|
Translation changed |
|
|
Translation added |
|
|
Translation added |
|
|
Translation added |
|
|
Translation changed |
|
|
Translation added |
|
<t t-set="customer" t-value=" object.event_id.find_partner_customer()"/>
<t t-set="target_responsible" t-value="object.partner_id == object.event_id.partner_id"/>
<t t-set="target_customer" t-value="object.partner_id == customer"/>
<t t-set="recurrent" t-value="object.recurrence_id and not ctx.get('calendar_template_ignore_recurrence')"/>
<h1 style="font-size: 18px; font-weight: bold; color: #374151; margin-bottom: 28px;">
Invitation
</h1>
<p style="margin: 0;">
<span style="display: block; margin-bottom: 8px;">Hello <t t-out="object.common_name or ''">Wood Corner</t>,</span>
<t t-if="target_customer">
<t t-if="not object.event_id.appointment_type_id.is_always_confirm">
<t t-if="object.event_id.appointment_status == 'booked'">
We're happy to let you know your booking <strong t-out="object.event_id.appointment_type_id.name or ''">Schedule a Demo</strong><t t-if="object.event_id.appointment_type_id.category not in ['custom', 'anytime'] and object.event_id.appointment_type_id.schedule_based_on == 'users'"> with <t t-out="object.event_id.user_id.name or ''">Ready Mat</t></t> has been confirmed.<br/>
</t>
<t t-elif="object.event_id.appointment_status == 'request'">
We've got your booking <strong t-out="object.event_id.appointment_type_id.name or ''">Schedule a Demo</strong><t t-if="object.event_id.appointment_type_id.category not in ['custom', 'anytime'] and object.event_id.appointment_type_id.schedule_based_on == 'users'"> with <t t-out="object.event_id.user_id.name or ''">Ready Mat</t></t>.<br/>
We'll notify you once it's confirmed.
</t>
</t>
<t t-else="">
Your appointment <strong t-out="object.event_id.appointment_type_id.name or ''">Schedule a Demo</strong> <t t-if="object.event_id.appointment_type_id.category not in ['custom', 'anytime'] and object.event_id.appointment_type_id.schedule_based_on == 'users'"> with <t t-out="object.event_id.user_id.name or ''">Ready Mat</t></t> has been booked.
</t>
</t>
<t t-elif="target_responsible">
<t t-if="customer">
<t t-out="customer.name or ''"/> scheduled the following appointment <strong t-out="object.event_id.appointment_type_id.name or ''">Schedule a Demo</strong> with you.
<t t-if="object.event_id.appointment_type_id and object.event_id.appointment_status == 'request'">
It is awaiting confirmation.
</t>
</t>
<t t-else="">
Your appointment <strong t-out="object.event_id.appointment_type_id.name or ''">Schedule a Demo</strong> has been booked.
</t>
</t>
<t t-else="">
You have been invited to the following appointment <strong t-out="object.event_id.appointment_type_id.name or ''">Schedule a Demo</strong>.
</t>
</p>
<div style="text-align: center; padding: 16px 0px 16px 0px;">
<a t-if="not target_responsible and not target_customer" t-attf-href="/calendar/meeting/view?token={{object.access_token}}&id={{object.event_id.id}}" style="display: inline-block; margin-left: 12px; padding: 5px 10px; color: #111827; text-decoration: none; background-color: #E7E9ED; border-radius: 3px; border-radius: 3px">View</a>
<a t-elif="not target_customer" t-attf-href="/mail/view?model=calendar.event&res_id={{object.event_id.id}}" t-attf-style="display: inline-block; margin-left: 12px; padding: 5px 10px; color: #111827; text-decoration: none; background-color: #E7E9ED; border-radius: 3px; border-radius: 3px">View</a>
</div>
<div style="margin: 16px 0 0;">
<h2 t-attf-style="margin-bottom: 12px; font-size: 14px; font-weight: bold; color: {{user.company_id.email_secondary_color or '#875A7B'}};">Details</h2>
<table cellpadding="0" cellspacing="0" border="0" style="font-size: 13px; color: #374151;">
<tr>
<td style="width: 100px; color: #676F7B;">Date & Time</td>
<td style="font-weight: bold;">
<t t-out="format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format='EEEE', lang_code=object.env.lang) or ''">Tuesday</t>
<t t-out="format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format='d', lang_code=object.env.lang) or ''">4</t>
<t t-out="format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format='MMMM y', lang_code=object.env.lang) or ''">May 2021</t>
<t t-if="not object.event_id.allday">
<t t-out="format_time(time=object.event_id.start, tz=object.mail_tz, time_format='short', lang_code=object.env.lang) or ''">11:00 AM</t>
<t t-if="not object.event_id.appointment_type_id.hide_timezone and object.mail_tz">
<span style="font-size: 11px; font-weight: normal;">
(<t t-out="object.mail_tz or ''">Europe/Brussels</t>)
</span>
</t>
</t>
</td>
</tr>
<tr t-if="recurrent">
<td style="width: 100px; padding-top: 6px; color: #676F7B;">When</td>
<td style="padding-top: 6px;"><t t-out="object.recurrence_id.name or ''">Every 1 Weeks, for 3 events</t></td>
</tr>
<tr t-if="not object.event_id.appointment_type_id.hide_duration and not object.event_id.allday and object.event_id.duration">
<td style="width: 100px; padding-top: 6px; color: #676F7B;">Duration</td>
<td style="padding-top: 6px;"><t t-out="('%dH%02d' % (object.event_id.duration,round(object.event_id.duration*60)%60)) or ''">0H30</t></td>
</tr>
<tr t-if="object.event_id.location">
<td style="width: 100px; padding-top: 6px; color: #676F7B; vertical-align: top;">Location</td>
<td style="padding-top: 6px;">
<t t-out="object.event_id.location or ''">Bruxelles</t>
<a target="_blank" t-if="object.event_id.location != object.event_id.appointment_type_id.location_id.name" t-attf-href="http://maps.google.com/maps?oi=map&q={{object.event_id.location}}" style="margin-left: 12px; font-size: 12px; color: #008f8c; text-decoration: underline;">View Map</a>
</td>
</tr>
<tr t-if="object.event_id.appointment_type_id.manage_capacity">
<td style="width: 100px; padding-top: 6px; color: #676F7B;">For</td>
<td style="padding-top: 6px;"><t t-out="object.event_id.total_capacity_reserved"/> people</td>
</tr>
<tr t-if="not object.event_id.appointment_type_id.is_auto_assign and object.event_id.appointment_resource_ids">
<td style="width: 100px; padding-top: 6px; color: #676F7B; vertical-align: top;">Resources</td>
<td style="padding-top: 6px;">
<ul style="padding: 0 15px;">
<li t-foreach="object.event_id.appointment_resource_ids" t-as="resource">
<span style="margin-left:5px" t-out="resource.name or ''">Table 1</span>
</li>
</ul>
</td>
</tr>
<tr t-if="object.event_id.videocall_redirection">
<td style="width: 100px; padding-top: 6px; color: #676F7B;">
<t t-if="object.event_id.videocall_source == 'discuss'">Join with</t>
<t t-else="">Join</t>
</td>
<td style="padding-top: 6px;">
<a t-attf-href="{{ object.event_id.videocall_redirection }}" target="_blank" style="color: #008f8c;">
<t t-if="object.event_id.videocall_source == 'discuss'">Odoo Discuss</t>
<t t-else="">Video meeting</t>
</a>
</td>
</tr>
</table>
</div>
<div style="margin: 32px 0 0;">
<t t-set="max_shown_attendees" t-value="20"/>
<h2 t-attf-style="margin-bottom: 12px; font-size: 14px; font-weight: bold; color: {{user.company_id.email_secondary_color or '#875A7B'}};">Attendees</h2>
<div t-foreach="object.event_id.attendee_ids[:max_shown_attendees]" t-as="attendee" style="margin-bottom: 5px;">
<img t-if="attendee.state" t-attf-src="/calendar/static/src/img/state_{{ attendee.state }}.png" style="border:0; width: 15px; height: 15px; vertical-align: text-bottom;"/>
<t t-if="attendee != object">
<span style="margin-left: 5px" t-out="attendee.common_name or ''">Mitchell Admin</span>
</t>
<t t-else="">
<span style="margin-left:5px">You</span>
</t>
</div>
<div t-if="len(object.event_id.attendee_ids) > max_shown_attendees" style="margin-bottom: 5px;">
... and <t t-out="len(object.event_id.attendee_ids) - max_shown_attendees"/> more
</div>
</div>
<div t-if="not is_html_empty(object.event_id.description)" style="margin: 32px 0 0;">
<h2 t-attf-style="margin-bottom: 12px; font-size: 14px; font-weight: bold; color: {{user.company_id.email_secondary_color or '#875A7B'}};">Description of the event</h2>
<div t-out="object.event_id.description"/>
</div>
<div t-if="target_customer" style="margin: 32px 0 0;">
<h2 t-attf-style="margin-bottom: 12px; font-size: 14px; font-weight: bold; color: {{user.company_id.email_secondary_color or '#875A7B'}};">Make change to this event</h2>
<a t-attf-href="/calendar/meeting/view?token={{object.sudo().access_token}}&id={{object.event_id.id}}" style="color: color: #008f8c; text-decoration: underline;">Reschedule</a>
</div>
<t t-set="upcoming_appointments" t-value="(object.event_id.appointment_booker_id.upcoming_appointment_ids - object.event_id).sorted('start')"/>
<div t-if="upcoming_appointments" style="margin: 32px 0 0;">
<h2 t-attf-style="margin-bottom: 12px; font-size: 14px; font-weight: bold; color: {{user.company_id.email_secondary_color or '#875A7B'}};">Your Other Upcoming Appointment(s)</h2>
<ul style="margin: 6px 0 0; padding: 0 18px;">
<li style="margin-top: 6px;" t-foreach="upcoming_appointments" t-as="upcoming_appointment">
<span t-out="upcoming_appointment.appointment_type_id.name or ''">Technical Demo</span>
<span style="margin: 0 10px;">-</span>
<span t-out="upcoming_appointment.start or ''" t-options="{"widget": "datetime", "format": "medium", "tz_name": object.mail_tz}" style="font-weight: bold;">June 20th, 15:00</span>
<a t-attf-href="/calendar/view/#{upcoming_appointment.access_token}?partner_id=#{appointment_booker_id}" target="_blank" style="margin-left: 10px; font-size: 12px; color: #008f8c; text-decoration: underline;">View Details</a>
</li>
</ul>
</div>
<p style="margin: 32px 0 0;">
Thank you!
<t t-if="object.event_id.user_id.signature">
<span style="display: block; margin-top: 8px;"><t t-out="object.event_id.user_id.signature or ''">Mitchell Admin</t></span>
</t>
</p>
</div>
<t t-set="customer" t-value=" object.event_id.find_partner_customer()"/>
<t t-out="format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format='EEEE', lang_code=object.env.lang) or ''"></t>
<t t-out="format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format='d', lang_code=object.env.lang) or ''"></t>
<t t-out="format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format='MMMM y', lang_code=object.env.lang) or ''"></t>
<t t-if="not object.event_id.allday"> <t t-out="format_time(time=object.event_id.start, tz=object.mail_tz, time_format='short', lang_code=object.env.lang) or ''"></t>
<t t-if="not object.event_id.appointment_type_id.hide_timezone and object.mail_tz"> <span style="font-size: 11px; font-weight: normal;"><t t-out="object.mail_tz or ''"></t> </span>
</t> </t>
</td> </tr>
<tr t-if="recurrent"> <td style="width: 100px; padding-top: 6px; color: #676F7B;"></td>
<td style="padding-top: 6px;"><t t-out="object.recurrence_id.name or ''"></t></td> </tr>
<tr t-if="not object.event_id.appointment_type_id.hide_duration and not object.event_id.allday and object.event_id.duration"> <td style="width: 100px; padding-top: 6px; color: #676F7B;"></td>
<td style="padding-top: 6px;"><t t-out="('%dH%02d' % (object.event_id.duration,round(object.event_id.duration*60)%60)) or ''"></t></td>
<t t-set="target_responsible" t-value="object.partner_id == object.event_id.partner_id"/>
<t t-set="target_customer" t-value="object.partner_id == customer"/>
<t t-set="recurrent" t-value="object.recurrence_id and not ctx.get('calendar_template_ignore_recurrence')"/>
<h1 style="font-size: 18px; font-weight: bold; color: #374151; margin-bottom: 28px;">
คำเชิญ</h1>
<p style="margin: 0;"> <span style="display: block; margin-bottom: 8px;"> สวัสดีค่ะ/ครับ<t t-out="object.common_name or ''">Wood Corner</t>,</span>
<t t-if="target_customer"> <t t-if="not object.event_id.appointment_type_id.is_always_confirm">
<t t-if="object.event_id.appointment_status == 'booked'">
เรามีความยินดีที่จะแจ้งให้คุณทราบว่าการจองของคุณ<strong t-out="object.event_id.appointment_type_id.name or ''">การนัดหมายเพื่อสาธิตการใช้งาน</strong><t t-if="object.event_id.appointment_type_id.category not in ['custom', 'anytime'] and object.event_id.appointment_type_id.schedule_based_on == 'users'"> กับ<t t-out="object.event_id.user_id.name or ''">Ready Mat</t></t> ได้รับการยืนยันแล้ว<br/>
</t>
<t t-elif="object.event_id.appointment_status == 'request'">
เราได้รับการจองของคุณแล้ว<strong t-out="object.event_id.appointment_type_id.name or ''">การนัดหมายเพื่อสาธิตการใช้งาน</strong><t t-if="object.event_id.appointment_type_id.category not in ['custom', 'anytime'] and object.event_id.appointment_type_id.schedule_based_on == 'users'"> กับ<t t-out="object.event_id.user_id.name or ''">Ready Mat</t></t>.<br/>
เราจะแจ้งให้คุณทราบเมื่อได้รับการยืนยันแล้ว
</t>
</t>
<t t-else="">
การนัดหมายของคุณ<strong t-out="object.event_id.appointment_type_id.name or ''">กำหนดการสาธิต</strong> <t t-if="object.event_id.appointment_type_id.category not in ['custom', 'anytime'] and object.event_id.appointment_type_id.schedule_based_on == 'users'"> กับ<t t-out="object.event_id.user_id.name or ''">ได้จอง Ready Mat</t></t> เรียบร้อยแล้ว</t>
</t> <t t-elif="target_responsible">
<t t-if="customer"> <t t-out="customer.name or ''"/> ได้กำหนดการนัดหมายต่อไปนี้<strong t-out="object.event_id.appointment_type_id.name or ''">กำหนดการสาธิต</strong> กับคุณ<t t-if="object.event_id.appointment_type_id and object.event_id.appointment_status == 'request'">
กำลังรอการยืนยัน</t>
</t> <t t-else="">
การนัดหมายของคุณ<strong t-out="object.event_id.appointment_type_id.name or ''">กำหนดการสาธิต</strong> ได้ถูกจองแล้ว</t>
</t> <t t-else="">
คุณได้รับเชิญให้เข้าร่วมการนัดหมายต่อไปนี้<strong t-out="object.event_id.appointment_type_id.name or ''">กำหนดการสาธิต</strong> </t>
</p>
<div style="text-align: center; padding: 16px 0px 16px 0px;">
<a t-if="not target_responsible and not target_customer" t-attf-href="/calendar/meeting/view?token={{object.access_token}}&id={{object.event_id.id}}" style="display: inline-block; margin-left: 12px; padding: 5px 10px; color: #111827; text-decoration: none; background-color: #E7E9ED; border-radius: 3px; border-radius: 3px"> ดู</a>
<a t-elif="not target_customer" t-attf-href="/mail/view?model=calendar.event&res_id={{object.event_id.id}}" t-attf-style="display: inline-block; margin-left: 12px; padding: 5px 10px; color: #111827; text-decoration: none; background-color: #E7E9ED; border-radius: 3px; border-radius: 3px">ดู</a>
</div> <div style="margin: 16px 0 0;">
<h2 t-attf-style="margin-bottom: 12px; font-size: 14px; font-weight: bold; color: {{user.company_id.email_secondary_color or '#875A7B'}};"> รายละเอียด</h2>
<table cellpadding="0" cellspacing="0" border="0" style="font-size: 13px; color: #374151;"> <tr>
<td style="width: 100px; color: #676F7B;"> วันที่& เวลา</td>
<td style="font-weight: bold;">
</tr>
<tr t-if="object.event_id.location">
<td style="width: 100px; padding-top: 6px; color: #676F7B; vertical-align: top;"> ตำแหน่ง</td>
<td style="padding-top: 6px;">
<t t-out="object.event_id.location or ''"> Bruxelles</t>
<a target="_blank" t-if="object.event_id.location != object.event_id.appointment_type_id.location_id.name" t-attf-href="http://maps.google.com/maps?oi=map&q={{object.event_id.location}}" style="margin-left: 12px; font-size: 12px; color: #008f8c; text-decoration: underline;">ดูแผนที่</a>
</td>
</tr>
<tr t-if="object.event_id.appointment_type_id.manage_capacity">
<td style="width: 100px; padding-top: 6px; color: #676F7B;"> สำหรับ</td>
<td style="padding-top: 6px;"><t t-out="object.event_id.total_capacity_reserved"/> คน</td>
</tr>
<tr t-if="not object.event_id.appointment_type_id.is_auto_assign and object.event_id.appointment_resource_ids">
<td style="width: 100px; padding-top: 6px; color: #676F7B; vertical-align: top;"> ทรัพยากร</td>
<td style="padding-top: 6px;">
<ul style="padding: 0 15px;">
<li t-foreach="object.event_id.appointment_resource_ids" t-as="resource">
<span style="margin-left:5px" t-out="resource.name or ''"> โต๊ะที่ 1</span>
</li>
</ul>
</td>
</tr>
<tr t-if="object.event_id.videocall_redirection">
<td style="width: 100px; padding-top: 6px; color: #676F7B;">
<t t-if="object.event_id.videocall_source == 'discuss'"> ร่วมกับ</t>
<t t-else="">ร่วม</t>
</td>
<td style="padding-top: 6px;">
<a t-attf-href="{{ object.event_id.videocall_redirection }}" target="_blank" style="color: #008f8c;">
<t t-if="object.event_id.videocall_source == 'discuss'"> แอปการสนทนา Odoo</t>
<t t-else="">การประชุมทางวิดีโอ</t>
</a>
</td>
</tr>
</table>
</div>
<div style="margin: 32px 0 0;">
<t t-set="max_shown_attendees" t-value="20"/>
<h2 t-attf-style="margin-bottom: 12px; font-size: 14px; font-weight: bold; color: {{user.company_id.email_secondary_color or '#875A7B'}};"> ผู้เข้าร่วม</h2>
<div t-foreach="object.event_id.attendee_ids[:max_shown_attendees]" t-as="attendee" style="margin-bottom: 5px;">
<img t-if="attendee.state" t-attf-src="/calendar/static/src/img/state_{{ attendee.state }}.png" style="border:0; width: 15px; height: 15px; vertical-align: text-bottom;"/>
<t t-if="attendee != object">
<span style="margin-left: 5px" t-out="attendee.common_name or ''"> Mitchell Admin</span>
</t>
<t t-else="">
<span style="margin-left:5px"> คุณ</span>
</t>
</div>
<div t-if="len(object.event_id.attendee_ids) > max_shown_attendees" style="margin-bottom: 5px;">
... และอีก<t t-out="len(object.event_id.attendee_ids) - max_shown_attendees"/> รายการ</div>
</div>
<div t-if="not is_html_empty(object.event_id.description)" style="margin: 32px 0 0;">
<h2 t-attf-style="margin-bottom: 12px; font-size: 14px; font-weight: bold; color: {{user.company_id.email_secondary_color or '#875A7B'}};"> คำอธิบายของกิจกรรม</h2>
<div t-out="object.event_id.description"/>
</div>
<div t-if="target_customer" style="margin: 32px 0 0;">
<h2 t-attf-style="margin-bottom: 12px; font-size: 14px; font-weight: bold; color: {{user.company_id.email_secondary_color or '#875A7B'}};"> แก้ไขกิจกรรมนี้</h2>
<a t-attf-href="/calendar/meeting/view?token={{object.sudo().access_token}}&id={{object.event_id.id}}" style="color: color: #008f8c; text-decoration: underline;">เปลี่ยนกำหนดการ</a>
</div>
<t t-set="upcoming_appointments" t-value="(object.event_id.appointment_booker_id.upcoming_appointment_ids - object.event_id).sorted('start')"/>
<div t-if="upcoming_appointments" style="margin: 32px 0 0;">
<h2 t-attf-style="margin-bottom: 12px; font-size: 14px; font-weight: bold; color: {{user.company_id.email_secondary_color or '#875A7B'}};"> การนัดหมายอื่นที่กำลังจะมาถึงของคุณ</h2>
<ul style="margin: 6px 0 0; padding: 0 18px;">
<li style="margin-top: 6px;" t-foreach="upcoming_appointments" t-as="upcoming_appointment">
<span t-out="upcoming_appointment.appointment_type_id.name or ''"> การสาธิตทางเทคนิค</span>
<span style="margin: 0 10px;">-</span>
<span t-out="upcoming_appointment.start or ''" t-options="{"widget": "datetime", "format": "medium", "tz_name": object.mail_tz}" style="font-weight: bold;">20 มิถุนายน, 15:00 น.</span>
<a t-attf-href="/calendar/view/#{upcoming_appointment.access_token}?partner_id=#{appointment_booker_id}" target="_blank" style="margin-left: 10px; font-size: 12px; color: #008f8c; text-decoration: underline;">ดูรายละเอียดเพิ่มเติม</a>
</li>
</ul>
</div>
<p style="margin: 32px 0 0;">
ขอบคุณค่ะ/ครับ!
<t t-if="object.event_id.user_id.signature">
<span style="display: block; margin-top: 8px;"> <t t-out="object.event_id.user_id.signature or ''"> Mitchell Admin</t></span>
</t>
</p>
<t t-set="target_responsible" t-value="object.partner_id == object.event_id.partner_id"/>
<t t-set="target_customer" t-value="object.partner_id == customer"/>
<t t-set="recurrent" t-value="object.recurrence_id and not ctx.get('calendar_template_ignore_recurrence')"/>
<h1 style="font-size: 18px; font-weight: bold; color: #374151; margin-bottom: 28px;">
คำเชิญ
</h1>
<p style="margin: 0;">
<span style="display: block; margin-bottom: 8px;">สวัสดีค่ะ/ครับ <t t-out="object.common_name or ''">Wood Corner</t>,</span>
<t t-if="target_customer">
<t t-if="not object.event_id.appointment_type_id.is_always_confirm">
<t t-if="object.event_id.appointment_status == 'booked'">
เรามีความยินดีที่จะแจ้งให้คุณทราบว่าการจองของคุณ <strong t-out="object.event_id.appointment_type_id.name or ''">การนัดหมายเพื่อสาธิตการใช้งาน</strong><t t-if="object.event_id.appointment_type_id.category not in ['custom', 'anytime'] and object.event_id.appointment_type_id.schedule_based_on == 'users'"> กับ <t t-out="object.event_id.user_id.name or ''">Ready Mat</t></t> ได้รับการยืนยันแล้ว<br/>
</t>
<t t-elif="object.event_id.appointment_status == 'request'">
เราได้รับการจองของคุณแล้ว <strong t-out="object.event_id.appointment_type_id.name or ''">การนัดหมายเพื่อสาธิตการใช้งาน</strong><t t-if="object.event_id.appointment_type_id.category not in ['custom', 'anytime'] and object.event_id.appointment_type_id.schedule_based_on == 'users'"> กับ <t t-out="object.event_id.user_id.name or ''">Ready Mat</t></t>.<br/>
เราจะแจ้งให้คุณทราบเมื่อได้รับการยืนยันแล้ว
</t>
</t>
<t t-else="">
การนัดหมายของคุณ <strong t-out="object.event_id.appointment_type_id.name or ''">กำหนดการสาธิต</strong> <t t-if="object.event_id.appointment_type_id.category not in ['custom', 'anytime'] and object.event_id.appointment_type_id.schedule_based_on == 'users'"> กับ <t t-out="object.event_id.user_id.name or ''">Ready Mat</t></t> เรียบร้อยแล้ว
</t>
</t>
<t t-elif="target_responsible">
<t t-if="customer">
<t t-out="customer.name or ''"/> ได้กำหนดการนัดหมายต่อไปนี้ <strong t-out="object.event_id.appointment_type_id.name or ''">กำหนดการสาธิต</strong> กับคุณ
<t t-if="object.event_id.appointment_type_id and object.event_id.appointment_status == 'request'">
กำลังรอการยืนยัน
</t>
</t>
<t t-else="">
การนัดหมายของคุณ <strong t-out="object.event_id.appointment_type_id.name or ''">กำหนดการสาธิต</strong> ได้ถูกจองแล้ว
</t>
</t>
<t t-else="">
คุณได้รับเชิญให้เข้าร่วมการนัดหมายต่อไปนี้ <strong t-out="object.event_id.appointment_type_id.name or ''">กำหนดการสาธิต</strong>.
</t>
</p>
<div style="text-align: center; padding: 16px 0px 16px 0px;">
<a t-if="not target_responsible and not target_customer" t-attf-href="/calendar/meeting/view?token={{object.access_token}}&id={{object.event_id.id}}" style="display: inline-block; margin-left: 12px; padding: 5px 10px; color: #111827; text-decoration: none; background-color: #E7E9ED; border-radius: 3px; border-radius: 3px">ดู</a>
<a t-elif="not target_customer" t-attf-href="/mail/view?model=calendar.event&res_id={{object.event_id.id}}" t-attf-style="display: inline-block; margin-left: 12px; padding: 5px 10px; color: #111827; text-decoration: none; background-color: #E7E9ED; border-radius: 3px; border-radius: 3px">ดู</a>
</div>
<div style="margin: 16px 0 0;">
<h2 t-attf-style="margin-bottom: 12px; font-size: 14px; font-weight: bold; color: {{user.company_id.email_secondary_color or '#875A7B'}};">รายละเอียด</h2>
<table cellpadding="0" cellspacing="0" border="0" style="font-size: 13px; color: #374151;">
<tr>
<td style="width: 100px; color: #676F7B;">วัน & เวลา</td>
<td style="font-weight: bold;">
<t t-out="format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format='EEEE', lang_code=object.env.lang) or ''">วันอังคาร</t>
<t t-out="format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format='d', lang_code=object.env.lang) or ''">4</t>
<t t-out="format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format='MMMM y', lang_code=object.env.lang) or ''">พฤษภาคม 2021</t>
<t t-if="not object.event_id.allday">
<t t-out="format_time(time=object.event_id.start, tz=object.mail_tz, time_format='short', lang_code=object.env.lang) or ''">11:00 น.</t>
<t t-if="not object.event_id.appointment_type_id.hide_timezone and object.mail_tz">
<span style="font-size: 11px; font-weight: normal;">
(<t t-out="object.mail_tz or ''">Europe/Brussels</t>)
</span>
</t>
</t>
</td>
</tr>
<tr t-if="recurrent">
<td style="width: 100px; padding-top: 6px; color: #676F7B;">ตอนไหน</td>
<td style="padding-top: 6px;"><t t-out="object.recurrence_id.name or ''">ทุกๆ 1 สัปดาห์ รวม 3 กิจกรรม</t></td>
</tr>
<tr t-if="not object.event_id.appointment_type_id.hide_duration and not object.event_id.allday and object.event_id.duration">
<td style="width: 100px; padding-top: 6px; color: #676F7B;">ระยะเวลา</td>
<td style="padding-top: 6px;"><t t-out="('%dH%02d' % (object.event_id.duration,round(object.event_id.duration*60)%60)) or ''">0H30</t></td>
</tr>
<tr t-if="object.event_id.location">
<td style="width: 100px; padding-top: 6px; color: #676F7B; vertical-align: top;">ตำแหน่ง</td>
<td style="padding-top: 6px;">
<t t-out="object.event_id.location or ''">Bruxelles</t>
<a target="_blank" t-if="object.event_id.location != object.event_id.appointment_type_id.location_id.name" t-attf-href="http://maps.google.com/maps?oi=map&q={{object.event_id.location}}" style="margin-left: 12px; font-size: 12px; color: #008f8c; text-decoration: underline;">ดูแผนที่</a>
</td>
</tr>
<tr t-if="object.event_id.appointment_type_id.manage_capacity">
<td style="width: 100px; padding-top: 6px; color: #676F7B;">สำหรับ</td>
<td style="padding-top: 6px;"><t t-out="object.event_id.total_capacity_reserved"/> คน</td>
</tr>
<tr t-if="not object.event_id.appointment_type_id.is_auto_assign and object.event_id.appointment_resource_ids">
<td style="width: 100px; padding-top: 6px; color: #676F7B; vertical-align: top;">ทรัพยากร</td>
<td style="padding-top: 6px;">
<ul style="padding: 0 15px;">
<li t-foreach="object.event_id.appointment_resource_ids" t-as="resource">
<span style="margin-left:5px" t-out="resource.name or ''">โต๊ะที่ 1</span>
</li>
</ul>
</td>
</tr>
<tr t-if="object.event_id.videocall_redirection">
<td style="width: 100px; padding-top: 6px; color: #676F7B;">
<t t-if="object.event_id.videocall_source == 'discuss'">ร่วมกับ</t>
<t t-else="">ร่วม</t>
</td>
<td style="padding-top: 6px;">
<a t-attf-href="{{ object.event_id.videocall_redirection }}" target="_blank" style="color: #008f8c;">
<t t-if="object.event_id.videocall_source == 'discuss'">แอปการสนทนา Odoo</t>
<t t-else="">การประชุมทางวิดีโอ</t>
</a>
</td>
</tr>
</table>
</div>
<div style="margin: 32px 0 0;">
<t t-set="max_shown_attendees" t-value="20"/>
<h2 t-attf-style="margin-bottom: 12px; font-size: 14px; font-weight: bold; color: {{user.company_id.email_secondary_color or '#875A7B'}};">ผู้เข้าร่วม</h2>
<div t-foreach="object.event_id.attendee_ids[:max_shown_attendees]" t-as="attendee" style="margin-bottom: 5px;">
<img t-if="attendee.state" t-attf-src="/calendar/static/src/img/state_{{ attendee.state }}.png" style="border:0; width: 15px; height: 15px; vertical-align: text-bottom;"/>
<t t-if="attendee != object">
<span style="margin-left: 5px" t-out="attendee.common_name or ''">Mitchell Admin</span>
</t>
<t t-else="">
<span style="margin-left:5px">คุณ</span>
</t>
</div>
<div t-if="len(object.event_id.attendee_ids) > max_shown_attendees" style="margin-bottom: 5px;">
... และอีก <t t-out="len(object.event_id.attendee_ids) - max_shown_attendees"/> รายการ
</div>
</div>
<div t-if="not is_html_empty(object.event_id.description)" style="margin: 32px 0 0;">
<h2 t-attf-style="margin-bottom: 12px; font-size: 14px; font-weight: bold; color: {{user.company_id.email_secondary_color or '#875A7B'}};">คำอธิบายของกิจกรรม</h2>
<div t-out="object.event_id.description"/>
</div>
<div t-if="target_customer" style="margin: 32px 0 0;">
<h2 t-attf-style="margin-bottom: 12px; font-size: 14px; font-weight: bold; color: {{user.company_id.email_secondary_color or '#875A7B'}};">แก้ไขกิจกรรมนี้</h2>
<a t-attf-href="/calendar/meeting/view?token={{object.sudo().access_token}}&id={{object.event_id.id}}" style="color: color: #008f8c; text-decoration: underline;">เปลี่ยนกำหนดการ</a>
</div>
<t t-set="upcoming_appointments" t-value="(object.event_id.appointment_booker_id.upcoming_appointment_ids - object.event_id).sorted('start')"/>
<div t-if="upcoming_appointments" style="margin: 32px 0 0;">
<h2 t-attf-style="margin-bottom: 12px; font-size: 14px; font-weight: bold; color: {{user.company_id.email_secondary_color or '#875A7B'}};">การนัดหมายอื่นที่กำลังจะมาถึงของคุณ</h2>
<ul style="margin: 6px 0 0; padding: 0 18px;">
<li style="margin-top: 6px;" t-foreach="upcoming_appointments" t-as="upcoming_appointment">
<span t-out="upcoming_appointment.appointment_type_id.name or ''">การสาธิตทางเทคนิค</span>
<span style="margin: 0 10px;">-</span>
<span t-out="upcoming_appointment.start or ''" t-options="{"widget": "datetime", "format": "medium", "tz_name": object.mail_tz}" style="font-weight: bold;">20 มิถุนายน 15:00 น</span>
<a t-attf-href="/calendar/view/#{upcoming_appointment.access_token}?partner_id=#{appointment_booker_id}" target="_blank" style="margin-left: 10px; font-size: 12px; color: #008f8c; text-decoration: underline;">ดูรายละเอียดเพิ่มเติม</a>
</li>
</ul>
</div>
<p style="margin: 32px 0 0;">
ขอบคุณค่ะ/ครับ!
<t t-if="object.event_id.user_id.signature">
<span style="display: block; margin-top: 8px;"><t t-out="object.event_id.user_id.signature or ''">Mitchell Admin</t></span>
</t>
</p>
</div>