summaryrefslogtreecommitdiff
path: root/addons/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'addons/calendar')
-rw-r--r--addons/calendar/i18n/cs.po104
-rw-r--r--addons/calendar/i18n/fr.po226
-rw-r--r--addons/calendar/i18n/zh_CN.po159
3 files changed, 435 insertions, 54 deletions
diff --git a/addons/calendar/i18n/cs.po b/addons/calendar/i18n/cs.po
index 6368534465e..d454e724795 100644
--- a/addons/calendar/i18n/cs.po
+++ b/addons/calendar/i18n/cs.po
@@ -10,6 +10,7 @@
# Michal Veselý <michal@veselyberanek.net>, 2020
# trendspotter, 2020
# Rastislav Brencic <rastislav.brencic@azet.sk>, 2020
+# karolína schusterová <karolina.schusterova@vdp.sk>, 2021
#
msgid ""
msgstr ""
@@ -17,7 +18,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-11-16 13:33+0000\n"
"PO-Revision-Date: 2020-09-07 08:11+0000\n"
-"Last-Translator: Rastislav Brencic <rastislav.brencic@azet.sk>, 2020\n"
+"Last-Translator: karolína schusterová <karolina.schusterova@vdp.sk>, 2021\n"
"Language-Team: Czech (https://www.transifex.com/odoo/teams/41243/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -42,12 +43,14 @@ msgid ""
"%(date_start)s at %(time_start)s To\n"
" %(date_end)s at %(time_end)s (%(timezone)s)"
msgstr ""
+"%(date_start)s v %(time_start)s Na\n"
+" %(date_end)s v %(time_end)s (%(timezone)s)"
#. module: calendar
#: code:addons/calendar/models/calendar_event.py:0
#, python-format
msgid "%(day)s at (%(start)s To %(end)s) (%(timezone)s)"
-msgstr ""
+msgstr "%(day)s v (%(start)s Na %(end)s) (%(timezone)s)"
#. module: calendar
#: code:addons/calendar/models/calendar_attendee.py:0
@@ -307,7 +310,7 @@ msgstr "<span> hodin</span>"
#. module: calendar
#: model:ir.model.constraint,message:calendar.constraint_calendar_contacts_user_id_partner_id_unique
msgid "A user cannot have the same contact twice."
-msgstr ""
+msgstr "Uživatel nemůže mít stejný kontakt dvakrát."
#. module: calendar
#. openerp-web
@@ -375,12 +378,12 @@ msgstr "Celý den"
#: code:addons/calendar/models/calendar_event.py:0
#, python-format
msgid "All Day, %(day)s"
-msgstr ""
+msgstr "Celý den, %(day)s"
#. module: calendar
#: model:ir.model.fields.selection,name:calendar.selection__calendar_event__recurrence_update__all_events
msgid "All events"
-msgstr ""
+msgstr "Všechny události"
#. module: calendar
#: model_terms:ir.ui.view,arch_db:calendar.view_calendar_event_form
@@ -413,7 +416,7 @@ msgstr "Dostupnost"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__base_event_id
msgid "Base Event"
-msgstr ""
+msgstr "Základní událost"
#. module: calendar
#: code:addons/calendar/models/calendar_event.py:0
@@ -431,7 +434,7 @@ msgstr "Podle dne"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__byday
msgid "Byday"
-msgstr ""
+msgstr "Během dne"
#. module: calendar
#: model:ir.ui.menu,name:calendar.mail_menu_calendar
@@ -486,6 +489,8 @@ msgid ""
"Choose what to do with other events in the recurrence. Updating All Events "
"is not allowed when dates or time is modified"
msgstr ""
+"Vyberte, co dělat s dalšími událostmi v opakování. Aktualizace všech "
+"událostí není povolena, pokud jsou změněna data nebo čas"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_attendee__common_name
@@ -632,7 +637,7 @@ msgstr "Název modelu dokumentu"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__dtstart
msgid "Dtstart"
-msgstr ""
+msgstr "Dtstart"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__duration
@@ -651,12 +656,12 @@ msgstr "Trvání v minutách"
#: code:addons/calendar/static/src/js/calendar_controller.js:0
#, python-format
msgid "Edit Recurrent event"
-msgstr ""
+msgstr "Upravit opakující se událost"
#. module: calendar
#: model_terms:ir.ui.view,arch_db:calendar.view_calendar_event_form
msgid "Edit recurring event"
-msgstr ""
+msgstr "Upravit opakující se událost"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_attendee__email
@@ -693,7 +698,7 @@ msgstr "Datum ukončení"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__end_type
msgid "End Type"
-msgstr ""
+msgstr "Typ konce"
#. module: calendar
#: model:ir.model.fields.selection,name:calendar.selection__calendar_event__end_type__end_date
@@ -724,7 +729,7 @@ msgstr "Typ schůzky události"
#. module: calendar
#: model:ir.model,name:calendar.model_calendar_recurrence
msgid "Event Recurrence Rule"
-msgstr ""
+msgstr "Pravidlo opakování události"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__display_time
@@ -735,7 +740,7 @@ msgstr "Čas události"
#: code:addons/calendar/models/calendar_recurrence.py:0
#, python-format
msgid "Every %(count)s %(period)s, "
-msgstr ""
+msgstr "Každý %(count)s %(period)s, "
#. module: calendar
#: model:ir.model.fields.selection,name:calendar.selection__calendar_event__privacy__public
@@ -763,7 +768,7 @@ msgstr "Nejprve musíte zvolit datum pozvání."
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__follow_recurrence
msgid "Follow Recurrence"
-msgstr ""
+msgstr "Sledujte opakování"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__message_follower_ids
@@ -795,7 +800,7 @@ msgstr "Čtvrtý"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__fr
msgid "Fr"
-msgstr ""
+msgstr "Fr"
#. module: calendar
#: model:ir.model.fields.selection,name:calendar.selection__calendar_attendee__availability__free
@@ -828,7 +833,7 @@ msgstr "Seskupit podle"
#: code:addons/calendar/models/calendar_event.py:0
#, python-format
msgid "Grouping by %s is not allowed."
-msgstr ""
+msgstr "Seskupení podle %snení povoleno."
#. module: calendar
#: model:ir.model,name:calendar.model_ir_http
@@ -1013,6 +1018,7 @@ msgstr "Schůzka"
msgid ""
"Meeting '%(name)s' starts '%(start_datetime)s' and ends '%(end_datetime)s'"
msgstr ""
+"Setkání '%(name)s' začíná '%(start_datetime)s' a končí '%(end_datetime)s'"
#. module: calendar
#: model_terms:ir.ui.view,arch_db:calendar.view_calendar_event_form
@@ -1068,7 +1074,7 @@ msgstr "Různé"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__mo
msgid "Mo"
-msgstr ""
+msgstr "Mo"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__mo
@@ -1084,7 +1090,7 @@ msgstr "Pondělí"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__month_by
msgid "Month By"
-msgstr ""
+msgstr "Měsíc do"
#. module: calendar
#: model:ir.model.fields.selection,name:calendar.selection__calendar_event__rrule_type__monthly
@@ -1118,7 +1124,7 @@ msgstr "Nezůčastním se."
#. module: calendar
#: model_terms:ir.ui.view,arch_db:calendar.invitation_page_anonymous
msgid "No feedback yet"
-msgstr ""
+msgstr "Zatím žádná zpětná vazba"
#. module: calendar
#: model:ir.model.fields.selection,name:calendar.selection__calendar_alarm__alarm_type__notification
@@ -1128,27 +1134,27 @@ msgstr "Upozornění"
#. module: calendar
#: model:calendar.alarm,name:calendar.alarm_notif_5
msgid "Notification - 1 Days"
-msgstr ""
+msgstr "Oznámení - 1 den"
#. module: calendar
#: model:calendar.alarm,name:calendar.alarm_notif_3
msgid "Notification - 1 Hours"
-msgstr ""
+msgstr "Oznámení - 1 hodina"
#. module: calendar
#: model:calendar.alarm,name:calendar.alarm_notif_1
msgid "Notification - 15 Minutes"
-msgstr ""
+msgstr "Oznámení - 15 minut"
#. module: calendar
#: model:calendar.alarm,name:calendar.alarm_notif_4
msgid "Notification - 2 Hours"
-msgstr ""
+msgstr "Oznámení - 2 hodiny"
#. module: calendar
#: model:calendar.alarm,name:calendar.alarm_notif_2
msgid "Notification - 30 Minutes"
-msgstr ""
+msgstr "Oznámení - 30 minut"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__message_needaction_counter
@@ -1237,7 +1243,7 @@ msgstr "Opakování"
#: model:ir.model.fields,field_description:calendar.field_calendar_attendee__recurrence_id
#: model:ir.model.fields,field_description:calendar.field_calendar_event__recurrence_id
msgid "Recurrence Rule"
-msgstr ""
+msgstr "Pravidlo opakování"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__end_type
@@ -1247,7 +1253,7 @@ msgstr "Ukončení opakování"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__recurrence_update
msgid "Recurrence Update"
-msgstr ""
+msgstr "Aktualizace opakování"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__recurrency
@@ -1257,7 +1263,7 @@ msgstr "Opakovaný"
#. module: calendar
#: model:ir.model.fields,help:calendar.field_calendar_event__recurrency
msgid "Recurrent Event"
-msgstr ""
+msgstr "Opakující se událost"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__rrule
@@ -1309,22 +1315,22 @@ msgstr "Odpovědný"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__partner_id
msgid "Responsible Contact"
-msgstr ""
+msgstr "Odpovědný kontakt"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__rrule
msgid "Rrule"
-msgstr ""
+msgstr "Rrule"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__rrule_type
msgid "Rrule Type"
-msgstr ""
+msgstr "Typ Rule"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__sa
msgid "Sa"
-msgstr ""
+msgstr "Sa"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__sa
@@ -1409,7 +1415,7 @@ msgstr "Stav podílení účastníka"
#. module: calendar
#: model_terms:ir.ui.view,arch_db:calendar.view_calendar_event_form
msgid "Status:"
-msgstr ""
+msgstr "Postavení:"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__stop
@@ -1424,7 +1430,7 @@ msgstr "Datum ukončení události bez času pro celodenní události"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__su
msgid "Su"
-msgstr ""
+msgstr "Su"
#. module: calendar
#: model_terms:ir.ui.view,arch_db:calendar.view_calendar_event_tree
@@ -1455,12 +1461,12 @@ msgstr "Tagy"
#. module: calendar
#: model_terms:ir.ui.view,arch_db:calendar.invitation_page_anonymous
msgid "Tentative"
-msgstr ""
+msgstr "Orientační"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__th
msgid "Th"
-msgstr ""
+msgstr "Th"
#. module: calendar
#: model_terms:ir.ui.view,arch_db:calendar.view_calendar_event_form
@@ -1492,7 +1498,7 @@ msgstr ""
#. module: calendar
#: model:ir.model.constraint,message:calendar.constraint_calendar_recurrence_month_day
msgid "The day must be between 1 and 31"
-msgstr ""
+msgstr "Den musí být mezi 1 a 31"
#. module: calendar
#: code:addons/calendar/models/calendar_event.py:0
@@ -1511,13 +1517,13 @@ msgstr "Datum ukončení nesmí být dřívější než datum zahájení."
#: code:addons/calendar/models/calendar_recurrence.py:0
#, python-format
msgid "The interval cannot be negative."
-msgstr ""
+msgstr "Interval nemůže být záporný."
#. module: calendar
#: code:addons/calendar/models/calendar_recurrence.py:0
#, python-format
msgid "The number of repetitions cannot be negative."
-msgstr ""
+msgstr "Počet opakování nemůže být záporný."
#. module: calendar
#: model:ir.model.fields.selection,name:calendar.selection__calendar_event__byday__3
@@ -1531,7 +1537,7 @@ msgstr "Třetí"
#: model:ir.model.fields.selection,name:calendar.selection__calendar_event__recurrence_update__future_events
#, python-format
msgid "This and following events"
-msgstr ""
+msgstr "Tato a následující události"
#. module: calendar
#. openerp-web
@@ -1539,7 +1545,7 @@ msgstr ""
#: model:ir.model.fields.selection,name:calendar.selection__calendar_event__recurrence_update__self_only
#, python-format
msgid "This event"
-msgstr ""
+msgstr "Tato událost"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__th
@@ -1567,7 +1573,7 @@ msgstr "Dnešní schůzky"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__tu
msgid "Tu"
-msgstr ""
+msgstr "Tu"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__tu
@@ -1623,6 +1629,8 @@ msgid ""
"Updating All Events is not allowed when dates or time is modified. You can "
"only update one particular event and following events."
msgstr ""
+"Aktualizace všech událostí není povolena, pokud jsou změněna data nebo čas. "
+"Můžete aktualizovat pouze jednu konkrétní událost a následující události."
#. module: calendar
#: model:ir.model,name:calendar.model_res_users
@@ -1632,7 +1640,7 @@ msgstr "Uživatelé"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__we
msgid "We"
-msgstr ""
+msgstr "We"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__we
@@ -1678,13 +1686,13 @@ msgstr "Nemůžete duplikovat účastníka."
#: code:addons/calendar/models/calendar_recurrence.py:0
#, python-format
msgid "You have to choose at least one day in the week"
-msgstr ""
+msgstr "Musíte si vybrat alespoň jeden den v týdnu"
#. module: calendar
#: code:addons/calendar/models/calendar_recurrence.py:0
#, python-format
msgid "day %s, "
-msgstr ""
+msgstr "den%s, "
#. module: calendar
#: model_terms:ir.ui.view,arch_db:calendar.view_calendar_event_form
@@ -1695,22 +1703,22 @@ msgstr "např. Obchodní oběd"
#: code:addons/calendar/models/calendar_recurrence.py:0
#, python-format
msgid "for %s events"
-msgstr ""
+msgstr "pro %s Události"
#. module: calendar
#: code:addons/calendar/models/calendar_recurrence.py:0
#, python-format
msgid "on %s,"
-msgstr ""
+msgstr "na %s,"
#. module: calendar
#: code:addons/calendar/models/calendar_recurrence.py:0
#, python-format
msgid "on the %(position)s %(weekday)s, "
-msgstr ""
+msgstr "na %(position)s %(weekday)s, "
#. module: calendar
#: code:addons/calendar/models/calendar_recurrence.py:0
#, python-format
msgid "until %s"
-msgstr ""
+msgstr "dokud%s"
diff --git a/addons/calendar/i18n/fr.po b/addons/calendar/i18n/fr.po
index 84848e01485..1e74578b0c2 100644
--- a/addons/calendar/i18n/fr.po
+++ b/addons/calendar/i18n/fr.po
@@ -17,6 +17,7 @@
# Cécile Collart <cco@odoo.com>, 2020
# Christophe Metten <cme@odoo.com>, 2020
# Gilles Mangin <gilles.mangin@phidias.fr>, 2020
+# Alice Van Goethem <vga@odoo.com>, 2021
#
msgid ""
msgstr ""
@@ -24,7 +25,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-11-16 13:33+0000\n"
"PO-Revision-Date: 2020-09-07 08:11+0000\n"
-"Last-Translator: Gilles Mangin <gilles.mangin@phidias.fr>, 2020\n"
+"Last-Translator: Alice Van Goethem <vga@odoo.com>, 2021\n"
"Language-Team: French (https://www.transifex.com/odoo/teams/41243/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -147,6 +148,81 @@ msgid ""
"</div>\n"
" "
msgstr ""
+"<div>\n"
+" % set colors = ctx.get('colors', {})\n"
+" % set recurrent = object.recurrence_id and not ctx['ignore_recurrence']\n"
+" <p>\n"
+" Bonjour ${object.common_name},<br/><br/>\n"
+" ${object.event_id.user_id.partner_id.name} vous invite à la réunion ${object.event_id.name} de ${object.event_id.user_id.company_id.name}.\n"
+" </p>\n"
+" <div style=\"text-align: center; margin: 16px 0px 16px 0px;\">\n"
+" % set target = 'recurrence' if recurrent else 'meeting'\n"
+" <a href=\"/calendar/${target}/accept?token=${object.access_token}&amp;id=${object.event_id.id}\" style=\"padding: 5px 10px; color: #FFFFFF; text-decoration: none; background-color: #875A7B; border: 1px solid #875A7B; border-radius: 3px\">\n"
+" Accepter</a>\n"
+" <a href=\"/calendar/${target}/decline?token=${object.access_token}&amp;id=${object.event_id.id}\" style=\"padding: 5px 10px; color: #FFFFFF; text-decoration: none; background-color: #875A7B; border: 1px solid #875A7B; border-radius: 3px\">\n"
+" Refuser</a>\n"
+" <a href=\"/calendar/meeting/view?token=${object.access_token}&amp;id=${object.event_id.id}\" style=\"padding: 5px 10px; color: #FFFFFF; text-decoration: none; background-color: #875A7B; border: 1px solid #875A7B; border-radius: 3px\">\n"
+" Voir</a>\n"
+" </div>\n"
+" <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>\n"
+" % if not recurrent:\n"
+" <td width=\"130px;\">\n"
+" <div style=\"border-top-left-radius: 3px; border-top-right-radius: 3px; font-size: 12px; border-collapse: separate; text-align: center; font-weight: bold; color: #ffffff; min-height: 18px; background-color: #875A7B; border: 1px solid #875A7B;\">\n"
+" ${object.event_id.get_interval('dayname', tz=object.partner_id.tz if not object.event_id.allday else None)}\n"
+" </div>\n"
+" <div style=\"font-size: 48px; min-height: auto; font-weight: bold; text-align: center; color: #5F5F5F; background-color: #F8F8F8; border: 1px solid #875A7B;\">\n"
+" ${object.event_id.get_interval('day', tz=object.partner_id.tz if not object.event_id.allday else None)}\n"
+" </div>\n"
+" <div style=\"font-size: 12px; text-align: center; font-weight: bold; color: #ffffff; background-color: #875A7B;\">\n"
+" ${object.event_id.get_interval('month', tz=object.partner_id.tz if not object.event_id.allday else None)}\n"
+" </div>\n"
+" <div style=\"border-collapse: separate; color: #5F5F5F; text-align: center; font-size: 12px; border-bottom-right-radius: 3px; font-weight: bold; border: 1px solid #875A7B; border-bottom-left-radius: 3px;\">\n"
+" ${not object.event_id.allday and object.event_id.get_interval('time', tz=object.partner_id.tz) or ''}\n"
+" </div>\n"
+" </td>\n"
+" <td width=\"20px;\"/>\n"
+" % endif\n"
+" <td style=\"padding-top: 5px;\">\n"
+" <p><strong>Détails de l'évènement</strong></p>\n"
+" <ul>\n"
+" % if object.event_id.location:\n"
+" <li>Lieu: ${object.event_id.location}\n"
+" (<a target=\"_blank\" href=\"http://maps.google.com/maps?oi=map&amp;q=${object.event_id.location}\">Voir la carte</a>)\n"
+" </li>\n"
+" % endif\n"
+" % if object.event_id.description :\n"
+" <li>Description: ${object.event_id.description}</li>\n"
+" % endif\n"
+" % if recurrent:\n"
+" <li>Quand: ${object.recurrence_id.name}</li>\n"
+" % endif\n"
+" % if not object.event_id.allday and object.event_id.duration\n"
+" <li>Durée: ${('%dH%02d' % (object.event_id.duration,round(object.event_id.duration*60)%60))}</li>\n"
+" % endif\n"
+" <li>Participants\n"
+" <ul>\n"
+" % for attendee in object.event_id.attendee_ids:\n"
+" <li>\n"
+" <div style=\"display: inline-block; border-radius: 50%; width: 10px; height: 10px; background:${colors[attendee.state] or 'white'};\"> </div>\n"
+" % if attendee.common_name != object.common_name:\n"
+" <span style=\"margin-left:5px\">${attendee.common_name}</span>\n"
+" % else:\n"
+" <span style=\"margin-left:5px\">Vous</span>\n"
+" % endif\n"
+" </li>\n"
+" % endfor\n"
+" </ul></li>\n"
+" </ul>\n"
+" </td>\n"
+" </tr></table>\n"
+" <br/>\n"
+" Merci,\n"
+" % if object.event_id.user_id.signature:\n"
+" <br/>\n"
+" ${object.event_id.user_id.signature | safe}\n"
+" % endif\n"
+"</div>\n"
+" "
#. module: calendar
#: model:mail.template,body_html:calendar.calendar_template_meeting_changedate
@@ -227,6 +303,81 @@ msgid ""
"</div>\n"
" "
msgstr ""
+"<div>\n"
+" % set colors = ctx.get('colors', {})\n"
+" % set recurrent = object.recurrence_id and not ctx['ignore_recurrence']\n"
+" <p>\n"
+" Bonjour ${object.common_name},<br/><br/>\n"
+" La date de la réunion a été mise à jour. La réunion ${object.event_id.name} créée par ${object.event_id.user_id.partner_id.name} est maintenant prévue pour ${object.event_id.get_display_time_tz(tz=object.partner_id.tz)}.\n"
+" </p>\n"
+" <div style=\"text-align: center; margin: 16px 0px 16px 0px;\">\n"
+" % set target = 'recurrence' if recurrent else 'meeting'\n"
+" <a href=\"/calendar/${target}/accept?token=${object.access_token}&amp;id=${object.event_id.id}\" style=\"padding: 5px 10px; color: #FFFFFF; text-decoration: none; background-color: #875A7B; border: 1px solid #875A7B; border-radius: 3px\">\n"
+" Accepter</a>\n"
+" <a href=\"/calendar/${target}/decline?token=${object.access_token}&amp;id=${object.event_id.id}\" style=\"padding: 5px 10px; color: #FFFFFF; text-decoration: none; background-color: #875A7B; border: 1px solid #875A7B; border-radius: 3px\">\n"
+" Refuser</a>\n"
+" <a href=\"/calendar/meeting/view?token=${object.access_token}&amp;id=${object.event_id.id}\" style=\"padding: 5px 10px; color: #FFFFFF; text-decoration: none; background-color: #875A7B; border: 1px solid #875A7B; border-radius: 3px\">\n"
+" Voir</a>\n"
+" </div>\n"
+" <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>\n"
+" % if not recurrent:\n"
+" <td width=\"130px;\">\n"
+" <div style=\"border-top-left-radius: 3px; border-top-right-radius: 3px; font-size: 12px; border-collapse: separate; text-align: center; font-weight: bold; color: #ffffff; min-height: 18px; background-color: #875A7B; border: 1px solid #875A7B;\">\n"
+" ${object.event_id.get_interval('dayname', tz=object.partner_id.tz if not object.event_id.allday else None)}\n"
+" </div>\n"
+" <div style=\"font-size: 48px; min-height: auto; font-weight: bold; text-align: center; color: #5F5F5F; background-color: #F8F8F8; border: 1px solid #875A7B;\">\n"
+" ${object.event_id.get_interval('day', tz=object.partner_id.tz if not object.event_id.allday else None)}\n"
+" </div>\n"
+" <div style=\"font-size: 12px; text-align: center; font-weight: bold; color: #ffffff; background-color: #875A7B;\">\n"
+" ${object.event_id.get_interval('month', tz=object.partner_id.tz if not object.event_id.allday else None)}\n"
+" </div>\n"
+" <div style=\"border-collapse: separate; color: #5F5F5F; text-align: center; font-size: 12px; border-bottom-right-radius: 3px; font-weight: bold; border: 1px solid #875A7B; border-bottom-left-radius: 3px;\">\n"
+" ${not object.event_id.allday and object.event_id.get_interval('time', tz=object.partner_id.tz) or ''}\n"
+" </div>\n"
+" </td>\n"
+" <td width=\"20px;\"/>\n"
+" % endif\n"
+" <td style=\"padding-top: 5px;\">\n"
+" <p><strong>Détails de l'évènement</strong></p>\n"
+" <ul>\n"
+" % if object.event_id.location:\n"
+" <li>Lieu: ${object.event_id.location}\n"
+" (<a target=\"_blank\" href=\"http://maps.google.com/maps?oi=map&amp;q=${object.event_id.location}\">Voir la carte</a>)\n"
+" </li>\n"
+" % endif\n"
+" % if object.event_id.description :\n"
+" <li>Description: ${object.event_id.description}</li>\n"
+" % endif\n"
+" % if recurrent:\n"
+" <li>Quand: ${object.recurrence_id.name}</li>\n"
+" % endif\n"
+" % if not object.event_id.allday and object.event_id.duration\n"
+" <li>Durée: ${('%dH%02d' % (object.event_id.duration,round(object.event_id.duration*60)%60))}</li>\n"
+" % endif\n"
+" <li>Participants\n"
+" <ul>\n"
+" % for attendee in object.event_id.attendee_ids:\n"
+" <li>\n"
+" <div style=\"display: inline-block; border-radius: 50%; width: 10px; height: 10px; background: ${colors[attendee.state] or 'white'};\"> </div>\n"
+" % if attendee.common_name != object.common_name:\n"
+" <span style=\"margin-left:5px\">${attendee.common_name}</span>\n"
+" % else:\n"
+" <span style=\"margin-left:5px\">Vous</span>\n"
+" % endif\n"
+" </li>\n"
+" % endfor\n"
+" </ul></li>\n"
+" </ul>\n"
+" </td>\n"
+" </tr></table>\n"
+" <br/>\n"
+" Merci,\n"
+" % if object.event_id.user_id.signature:\n"
+" <br/>\n"
+" ${object.event_id.user_id.signature | safe}\n"
+" % endif\n"
+"</div>\n"
+" "
#. module: calendar
#: model:mail.template,body_html:calendar.calendar_template_meeting_reminder
@@ -305,6 +456,79 @@ msgid ""
"</div>\n"
" "
msgstr ""
+"<div>\n"
+" % set colors = {'needsAction': 'grey', 'accepted': 'green', 'tentative': '#FFFF00', 'declined': 'red'}\n"
+" <!--\n"
+" In a recurring event case, the object.event_id is always the first event\n"
+" This makes the event date (and a lot of other information) incorrect\n"
+" -->\n"
+" % set event_id = ctx.get('force_event_id') or object.event_id\n"
+" <p>\n"
+" Bonjour ${object.common_name},<br/><br/>\n"
+" Ceci est un rappel pour l'événement ci-dessous :\n"
+" </p>\n"
+" <div style=\"text-align: center; margin: 16px 0px 16px 0px;\">\n"
+" <a href=\"/calendar/meeting/accept?token=${object.access_token}&amp;id=${object.event_id.id}\" style=\"padding: 5px 10px; color: #FFFFFF; text-decoration: none; background-color: #875A7B; border: 1px solid #875A7B; border-radius: 3px\">\n"
+" Accepter</a>\n"
+" <a href=\"/calendar/meeting/decline?token=${object.access_token}&amp;id=${object.event_id.id}\" style=\"padding: 5px 10px; color: #FFFFFF; text-decoration: none; background-color: #875A7B; border: 1px solid #875A7B; border-radius: 3px\">\n"
+" Refuser</a>\n"
+" <a href=\"/calendar/meeting/view?token=${object.access_token}&amp;id=${object.event_id.id}\" style=\"padding: 5px 10px; color: #FFFFFF; text-decoration: none; background-color: #875A7B; border: 1px solid #875A7B; border-radius: 3px\">\n"
+" Voir</a>\n"
+" </div>\n"
+" <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>\n"
+" <td width=\"130px;\">\n"
+" <div style=\"border-top-left-radius: 3px; border-top-right-radius: 3px; font-size: 12px; border-collapse: separate; text-align: center; font-weight: bold; color: #ffffff; min-height: 18px; background-color: #875A7B; border: 1px solid #875A7B;\">\n"
+" ${event_id.get_interval('dayname', tz=object.partner_id.tz if not event_id.allday else None)}\n"
+" </div>\n"
+" <div style=\"font-size: 48px; min-height: auto; font-weight: bold; text-align: center; color: #5F5F5F; background-color: #F8F8F8; border: 1px solid #875A7B;\">\n"
+" ${event_id.get_interval('day', tz=object.partner_id.tz if not event_id.allday else None)}\n"
+" </div>\n"
+" <div style=\"font-size: 12px; text-align: center; font-weight: bold; color: #ffffff; background-color: #875A7B;\">\n"
+" ${event_id.get_interval('month', tz=object.partner_id.tz if not event_id.allday else None)}\n"
+" </div>\n"
+" <div style=\"border-collapse: separate; color: #5F5F5F; text-align: center; font-size: 12px; border-bottom-right-radius: 3px; font-weight: bold; border: 1px solid #875A7B; border-bottom-left-radius: 3px;\">\n"
+" ${not event_id.allday and event_id.get_interval('time', tz=object.partner_id.tz) or ''}\n"
+" </div>\n"
+" </td>\n"
+" <td width=\"20px;\"/>\n"
+" <td style=\"padding-top: 5px;\">\n"
+" <p><strong>Détails de l'événement</strong></p>\n"
+" <ul>\n"
+" % if object.event_id.location:\n"
+" <li>Lieu: ${object.event_id.location}\n"
+" (<a target=\"_blank\" href=\"http://maps.google.com/maps?oi=map&amp;q=${object.event_id.location}\">Voir la carte</a>)\n"
+" </li>\n"
+" % endif\n"
+" % if object.event_id.description :\n"
+" <li>Description: ${object.event_id.description}</li>\n"
+" % endif\n"
+" % if not object.event_id.allday and object.event_id.duration\n"
+" <li>Durée: ${('%dH%02d' % (object.event_id.duration,(object.event_id.duration*60)%60))}</li>\n"
+" % endif\n"
+" <li>Participants\n"
+" <ul>\n"
+" % for attendee in object.event_id.attendee_ids:\n"
+" <li>\n"
+" <div style=\"display: inline-block; border-radius: 50%; width: 10px; height: 10px; background:${colors[attendee.state] or 'white'};\"> </div>\n"
+" % if attendee.common_name != object.common_name:\n"
+" <span style=\"margin-left:5px\">${attendee.common_name}</span>\n"
+" % else:\n"
+" <span style=\"margin-left:5px\">Vous</span>\n"
+" % endif\n"
+" </li>\n"
+" % endfor\n"
+" </ul></li>\n"
+" </ul>\n"
+" </td>\n"
+" </tr></table>\n"
+" <br/>\n"
+" Merci,\n"
+" % if object.event_id.user_id.signature:\n"
+" <br/>\n"
+" ${object.event_id.user_id.signature | safe}\n"
+" % endif\n"
+"</div>\n"
+" "
#. module: calendar
#: model_terms:ir.ui.view,arch_db:calendar.view_calendar_event_form
diff --git a/addons/calendar/i18n/zh_CN.po b/addons/calendar/i18n/zh_CN.po
index 16ad0c42c18..15a576cefe2 100644
--- a/addons/calendar/i18n/zh_CN.po
+++ b/addons/calendar/i18n/zh_CN.po
@@ -3,7 +3,7 @@
# * calendar
#
# Translators:
-# Jeffery CHEN Fan <jeffery9@gmail.com>, 2020
+# Jeffery CHEN <jeffery9@gmail.com>, 2020
# liAnGjiA <liangjia@qq.com>, 2020
# ChinaMaker <liuct@chinamaker.net>, 2020
# Felix Yuen <fyu@odoo.com>, 2020
@@ -18,6 +18,7 @@
# 敬雲 林 <chingyun@yuanchih-consult.com>, 2020
# inspur qiuguodong <qiuguodong@inspur.com>, 2020
# 稀饭~~ <wangwhai@qq.com>, 2020
+# Daniel Yang <daniel.yang.zhenyu@gmail.com>, 2021
#
msgid ""
msgstr ""
@@ -25,7 +26,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-11-16 13:33+0000\n"
"PO-Revision-Date: 2020-09-07 08:11+0000\n"
-"Last-Translator: 稀饭~~ <wangwhai@qq.com>, 2020\n"
+"Last-Translator: Daniel Yang <daniel.yang.zhenyu@gmail.com>, 2021\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -150,6 +151,81 @@ msgid ""
"</div>\n"
" "
msgstr ""
+"<div>\n"
+" % set colors = ctx.get('colors', {})\n"
+" % set recurrent = object.recurrence_id and not ctx['ignore_recurrence']\n"
+" <p>\n"
+" Hello ${object.common_name},<br/><br/>\n"
+" ${object.event_id.user_id.partner_id.name} 邀请你参加 ${object.event_id.name} meeting of ${object.event_id.user_id.company_id.name}.\n"
+" </p>\n"
+" <div style=\"text-align: center; margin: 16px 0px 16px 0px;\">\n"
+" % set target = 'recurrence' if recurrent else 'meeting'\n"
+" <a href=\"/calendar/${target}/accept?token=${object.access_token}&amp;id=${object.event_id.id}\" style=\"padding: 5px 10px; color: #FFFFFF; text-decoration: none; background-color: #875A7B; border: 1px solid #875A7B; border-radius: 3px\">\n"
+" 接受</a>\n"
+" <a href=\"/calendar/${target}/decline?token=${object.access_token}&amp;id=${object.event_id.id}\" style=\"padding: 5px 10px; color: #FFFFFF; text-decoration: none; background-color: #875A7B; border: 1px solid #875A7B; border-radius: 3px\">\n"
+" 谢绝</a>\n"
+" <a href=\"/calendar/meeting/view?token=${object.access_token}&amp;id=${object.event_id.id}\" style=\"padding: 5px 10px; color: #FFFFFF; text-decoration: none; background-color: #875A7B; border: 1px solid #875A7B; border-radius: 3px\">\n"
+" 视图</a>\n"
+" </div>\n"
+" <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>\n"
+" % if not recurrent:\n"
+" <td width=\"130px;\">\n"
+" <div style=\"border-top-left-radius: 3px; border-top-right-radius: 3px; font-size: 12px; border-collapse: separate; text-align: center; font-weight: bold; color: #ffffff; min-height: 18px; background-color: #875A7B; border: 1px solid #875A7B;\">\n"
+" ${object.event_id.get_interval('dayname', tz=object.partner_id.tz if not object.event_id.allday else None)}\n"
+" </div>\n"
+" <div style=\"font-size: 48px; min-height: auto; font-weight: bold; text-align: center; color: #5F5F5F; background-color: #F8F8F8; border: 1px solid #875A7B;\">\n"
+" ${object.event_id.get_interval('day', tz=object.partner_id.tz if not object.event_id.allday else None)}\n"
+" </div>\n"
+" <div style=\"font-size: 12px; text-align: center; font-weight: bold; color: #ffffff; background-color: #875A7B;\">\n"
+" ${object.event_id.get_interval('month', tz=object.partner_id.tz if not object.event_id.allday else None)}\n"
+" </div>\n"
+" <div style=\"border-collapse: separate; color: #5F5F5F; text-align: center; font-size: 12px; border-bottom-right-radius: 3px; font-weight: bold; border: 1px solid #875A7B; border-bottom-left-radius: 3px;\">\n"
+" ${not object.event_id.allday and object.event_id.get_interval('time', tz=object.partner_id.tz) or ''}\n"
+" </div>\n"
+" </td>\n"
+" <td width=\"20px;\"/>\n"
+" % endif\n"
+" <td style=\"padding-top: 5px;\">\n"
+" <p><strong>活动详情</strong></p>\n"
+" <ul>\n"
+" % if object.event_id.location:\n"
+" <li>位置: ${object.event_id.location}\n"
+" (<a target=\"_blank\" href=\"http://maps.google.com/maps?oi=map&amp;q=${object.event_id.location}\">查看地图</a>)\n"
+" </li>\n"
+" % endif\n"
+" % if object.event_id.description :\n"
+" <li>描述: ${object.event_id.description}</li>\n"
+" % endif\n"
+" % if recurrent:\n"
+" <li>什么时候?: ${object.recurrence_id.name}</li>\n"
+" % endif\n"
+" % if not object.event_id.allday and object.event_id.duration\n"
+" <li>时间: ${('%dH%02d' % (object.event_id.duration,round(object.event_id.duration*60)%60))}</li>\n"
+" % endif\n"
+" <li>与会人士\n"
+" <ul>\n"
+" % for attendee in object.event_id.attendee_ids:\n"
+" <li>\n"
+" <div style=\"display: inline-block; border-radius: 50%; width: 10px; height: 10px; background:${colors[attendee.state] or 'white'};\"> </div>\n"
+" % if attendee.common_name != object.common_name:\n"
+" <span style=\"margin-left:5px\">${attendee.common_name}</span>\n"
+" % else:\n"
+" <span style=\"margin-left:5px\">您</span>\n"
+" % endif\n"
+" </li>\n"
+" % endfor\n"
+" </ul></li>\n"
+" </ul>\n"
+" </td>\n"
+" </tr></table>\n"
+" <br/>\n"
+" 谢谢!,\n"
+" % if object.event_id.user_id.signature:\n"
+" <br/>\n"
+" ${object.event_id.user_id.signature | safe}\n"
+" % endif\n"
+"</div>\n"
+" "
#. module: calendar
#: model:mail.template,body_html:calendar.calendar_template_meeting_changedate
@@ -383,6 +459,79 @@ msgid ""
"</div>\n"
" "
msgstr ""
+"<div>\n"
+" % set colors = {'needsAction': 'grey', 'accepted': 'green', 'tentative': '#FFFF00', 'declined': 'red'}\n"
+" <!--\n"
+" 在重复事件的情况下,object.event_id 始终是第一个事件\n"
+" 这使得事件日期(以及许多其他信息)不正确\n"
+" -->\n"
+" % set event_id = ctx.get('force_event_id') or object.event_id\n"
+" <p>\n"
+" 你好 ${object.common_name},<br/><br/>\n"
+" 这是以下事件的提醒 :\n"
+" </p>\n"
+" <div style=\"text-align: center; margin: 16px 0px 16px 0px;\">\n"
+" <a href=\"/calendar/meeting/accept?token=${object.access_token}&amp;id=${object.event_id.id}\" style=\"padding: 5px 10px; color: #FFFFFF; text-decoration: none; background-color: #875A7B; border: 1px solid #875A7B; border-radius: 3px\">\n"
+" 接受</a>\n"
+" <a href=\"/calendar/meeting/decline?token=${object.access_token}&amp;id=${object.event_id.id}\" style=\"padding: 5px 10px; color: #FFFFFF; text-decoration: none; background-color: #875A7B; border: 1px solid #875A7B; border-radius: 3px\">\n"
+" 拒绝</a>\n"
+" <a href=\"/calendar/meeting/view?token=${object.access_token}&amp;id=${object.event_id.id}\" style=\"padding: 5px 10px; color: #FFFFFF; text-decoration: none; background-color: #875A7B; border: 1px solid #875A7B; border-radius: 3px\">\n"
+" 视图</a>\n"
+" </div>\n"
+" <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>\n"
+" <td width=\"130px;\">\n"
+" <div style=\"border-top-left-radius: 3px; border-top-right-radius: 3px; font-size: 12px; border-collapse: separate; text-align: center; font-weight: bold; color: #ffffff; min-height: 18px; background-color: #875A7B; border: 1px solid #875A7B;\">\n"
+" ${event_id.get_interval('dayname', tz=object.partner_id.tz if not event_id.allday else None)}\n"
+" </div>\n"
+" <div style=\"font-size: 48px; min-height: auto; font-weight: bold; text-align: center; color: #5F5F5F; background-color: #F8F8F8; border: 1px solid #875A7B;\">\n"
+" ${event_id.get_interval('day', tz=object.partner_id.tz if not event_id.allday else None)}\n"
+" </div>\n"
+" <div style=\"font-size: 12px; text-align: center; font-weight: bold; color: #ffffff; background-color: #875A7B;\">\n"
+" ${event_id.get_interval('month', tz=object.partner_id.tz if not event_id.allday else None)}\n"
+" </div>\n"
+" <div style=\"border-collapse: separate; color: #5F5F5F; text-align: center; font-size: 12px; border-bottom-right-radius: 3px; font-weight: bold; border: 1px solid #875A7B; border-bottom-left-radius: 3px;\">\n"
+" ${not event_id.allday and event_id.get_interval('time', tz=object.partner_id.tz) or ''}\n"
+" </div>\n"
+" </td>\n"
+" <td width=\"20px;\"/>\n"
+" <td style=\"padding-top: 5px;\">\n"
+" <p><strong>活动详情</strong></p>\n"
+" <ul>\n"
+" % if object.event_id.location:\n"
+" <li>位置: ${object.event_id.location}\n"
+" (<a target=\"_blank\" href=\"http://maps.google.com/maps?oi=map&amp;q=${object.event_id.location}\">查看地图</a>)\n"
+" </li>\n"
+" % endif\n"
+" % if object.event_id.description :\n"
+" <li>描述: ${object.event_id.description}</li>\n"
+" % endif\n"
+" % if not object.event_id.allday and object.event_id.duration\n"
+" <li>期限 : ${('%dH%02d' % (object.event_id.duration,(object.event_id.duration*60)%60))}</li>\n"
+" % endif\n"
+" <li>与会人士\n"
+" <ul>\n"
+" % for attendee in object.event_id.attendee_ids:\n"
+" <li>\n"
+" <div style=\"display: inline-block; border-radius: 50%; width: 10px; height: 10px; background:${colors[attendee.state] or 'white'};\"> </div>\n"
+" % if attendee.common_name != object.common_name:\n"
+" <span style=\"margin-left:5px\">${attendee.common_name}</span>\n"
+" % else:\n"
+" <span style=\"margin-left:5px\">您</span>\n"
+" % endif\n"
+" </li>\n"
+" % endfor\n"
+" </ul></li>\n"
+" </ul>\n"
+" </td>\n"
+" </tr></table>\n"
+" <br/>\n"
+" 谢谢!,\n"
+" % if object.event_id.user_id.signature:\n"
+" <br/>\n"
+" ${object.event_id.user_id.signature | safe}\n"
+" % endif\n"
+"</div>\n"
+" "
#. module: calendar
#: model_terms:ir.ui.view,arch_db:calendar.view_calendar_event_form
@@ -715,7 +864,7 @@ msgstr "文档模型名称"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__dtstart
msgid "Dtstart"
-msgstr ""
+msgstr "开始日期"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event__duration
@@ -878,7 +1027,7 @@ msgstr "第四"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__fr
msgid "Fr"
-msgstr ""
+msgstr "周五"
#. module: calendar
#: model:ir.model.fields.selection,name:calendar.selection__calendar_attendee__availability__free
@@ -1165,7 +1314,7 @@ msgstr "周一"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_recurrence__month_by
msgid "Month By"
-msgstr ""
+msgstr "按月"
#. module: calendar
#: model:ir.model.fields.selection,name:calendar.selection__calendar_event__rrule_type__monthly