diff --git a/src/events/migrations/0056_auto_20250819_0214.py b/src/events/migrations/0056_auto_20250819_0214.py
new file mode 100644
index 000000000..e9f49383b
--- /dev/null
+++ b/src/events/migrations/0056_auto_20250819_0214.py
@@ -0,0 +1,43 @@
+# Generated by Django 3.2.25 on 2025-08-18 18:14
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('events', '0055_auto_20250707_2327'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='customevent',
+ name='location',
+ field=models.CharField(blank=True, choices=[('2-all', 'All rooms'), ('3-r0-all', 'R0 (Simulcast)'), ('4-r0', 'R0'), ('5-r1', 'R1'), ('6-r2', 'R2'), ('1-r3', 'R3'), ('7-r4', 'R4'), ('81-spt-os', 'Sprint / Open Space'), ('82-tutorial', 'Tutorial'), ('83-yi-ps', 'Young Inspire / Poster Session')], db_index=True, max_length=12, null=True, verbose_name='location'),
+ ),
+ migrations.AlterField(
+ model_name='joblistingsevent',
+ name='location',
+ field=models.CharField(blank=True, choices=[('2-all', 'All rooms'), ('3-r0-all', 'R0 (Simulcast)'), ('4-r0', 'R0'), ('5-r1', 'R1'), ('6-r2', 'R2'), ('1-r3', 'R3'), ('7-r4', 'R4'), ('81-spt-os', 'Sprint / Open Space'), ('82-tutorial', 'Tutorial'), ('83-yi-ps', 'Young Inspire / Poster Session')], db_index=True, max_length=12, null=True, verbose_name='location'),
+ ),
+ migrations.AlterField(
+ model_name='keynoteevent',
+ name='location',
+ field=models.CharField(blank=True, choices=[('2-all', 'All rooms'), ('3-r0-all', 'R0 (Simulcast)'), ('4-r0', 'R0'), ('5-r1', 'R1'), ('6-r2', 'R2'), ('1-r3', 'R3'), ('7-r4', 'R4'), ('81-spt-os', 'Sprint / Open Space'), ('82-tutorial', 'Tutorial'), ('83-yi-ps', 'Young Inspire / Poster Session')], db_index=True, max_length=12, null=True, verbose_name='location'),
+ ),
+ migrations.AlterField(
+ model_name='proposedtalkevent',
+ name='location',
+ field=models.CharField(blank=True, choices=[('2-all', 'All rooms'), ('3-r0-all', 'R0 (Simulcast)'), ('4-r0', 'R0'), ('5-r1', 'R1'), ('6-r2', 'R2'), ('1-r3', 'R3'), ('7-r4', 'R4'), ('81-spt-os', 'Sprint / Open Space'), ('82-tutorial', 'Tutorial'), ('83-yi-ps', 'Young Inspire / Poster Session')], db_index=True, max_length=12, null=True, verbose_name='location'),
+ ),
+ migrations.AlterField(
+ model_name='proposedtutorialevent',
+ name='location',
+ field=models.CharField(blank=True, choices=[('2-all', 'All rooms'), ('3-r0-all', 'R0 (Simulcast)'), ('4-r0', 'R0'), ('5-r1', 'R1'), ('6-r2', 'R2'), ('1-r3', 'R3'), ('7-r4', 'R4'), ('81-spt-os', 'Sprint / Open Space'), ('82-tutorial', 'Tutorial'), ('83-yi-ps', 'Young Inspire / Poster Session')], db_index=True, max_length=12, null=True, verbose_name='location'),
+ ),
+ migrations.AlterField(
+ model_name='sponsoredevent',
+ name='location',
+ field=models.CharField(blank=True, choices=[('2-all', 'All rooms'), ('3-r0-all', 'R0 (Simulcast)'), ('4-r0', 'R0'), ('5-r1', 'R1'), ('6-r2', 'R2'), ('1-r3', 'R3'), ('7-r4', 'R4'), ('81-spt-os', 'Sprint / Open Space'), ('82-tutorial', 'Tutorial'), ('83-yi-ps', 'Young Inspire / Poster Session')], db_index=True, max_length=12, null=True, verbose_name='location'),
+ ),
+ ]
diff --git a/src/events/models.py b/src/events/models.py
index b81a39010..ba46dfdc9 100644
--- a/src/events/models.py
+++ b/src/events/models.py
@@ -104,7 +104,7 @@ class Location:
"""
R3 = '1-r3'
ALL = '2-all'
- R012 = '3-r012'
+ R0_ALL = '3-r0-all'
R0 = '4-r0'
R0_1 = '4-r0-1'
R0_2 = '4-r0-2'
@@ -125,8 +125,8 @@ class BaseEvent(ConferenceRelated):
"""Base interface for all events in the schedule.
"""
LOCATION_CHOICES = [
- # (Location.ALL, _('All rooms')),
- # (Location.R012, _('R0, R1, R2')),
+ (Location.ALL, _('All rooms')),
+ (Location.R0_ALL, _('R0 (Simulcast)')),
(Location.R0, _('R0')),
# (Location.R0_1, _('R0_1')),
# (Location.R0_2, _('R0_2')),
diff --git a/src/locale/en_US/LC_MESSAGES/django.po b/src/locale/en_US/LC_MESSAGES/django.po
index 505fe3b64..71cef7a59 100644
--- a/src/locale/en_US/LC_MESSAGES/django.po
+++ b/src/locale/en_US/LC_MESSAGES/django.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PyCon TW\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-07-07 23:53+0800\n"
+"POT-Creation-Date: 2025-08-20 14:48+0800\n"
"PO-Revision-Date: 2022-07-11 02:23+0800\n"
"Last-Translator: Tom Chen \n"
"Language-Team: English (United States) (http://www.transifex.com/pycon-"
@@ -81,7 +81,7 @@ msgstr "talk"
#: core/admin.py:14
msgid "Current"
-msgstr ""
+msgstr "Current"
#: core/admin.py:15 core/choices.py:24
msgid "Other"
@@ -89,7 +89,7 @@ msgstr "Other"
#: core/admin.py:16
msgid "All"
-msgstr ""
+msgstr "All"
#: core/choices.py:4
msgid "Application"
@@ -308,11 +308,11 @@ msgstr "created at"
#: core/models.py:221
msgid "Token"
-msgstr ""
+msgstr "Token"
#: core/models.py:222
msgid "Tokens"
-msgstr ""
+msgstr "Tokens"
#: events/admin.py:34
msgid "time value"
@@ -343,6 +343,14 @@ msgstr "time"
msgid "times"
msgstr "times"
+#: events/models.py:128
+msgid "All rooms"
+msgstr "All rooms"
+
+#: events/models.py:129
+msgid "R0 (Simulcast)"
+msgstr "R0 (Simulcast)"
+
#: events/models.py:130
msgid "R0"
msgstr "R0"
@@ -361,7 +369,7 @@ msgstr "R3"
#: events/models.py:140
msgid "R4"
-msgstr ""
+msgstr "R4"
#: events/models.py:141
msgid "Sprint / Open Space"
@@ -836,7 +844,7 @@ msgstr "accepted"
#: proposals/models.py:182
msgid "labels"
-msgstr ""
+msgstr "labels"
#: proposals/models.py:266 proposals/models.py:320
#: templates/default/_includes/proposal_example_modal.html:50
@@ -1738,8 +1746,8 @@ msgid ""
"acceptance.
Conversely, if the information in the field is insufficient "
"or empty, it will greatly reduce the chances of acceptance and may even "
"prevent your proposal from being reviewed.
Please review the How to Propose a Talk page."
+"href=\"%(FRONTEND_HOST)s/%(LANGUAGE_CODE)s/speaking/talk\" target=\"_blank"
+"\">How to Propose a Talk page."
msgstr ""
"Note that each field plays a crucial role in determining whether your "
"proposal is accepted. It is recommended that you provide as much detail as "
@@ -1747,8 +1755,8 @@ msgstr ""
"acceptance.
Conversely, if the information in the field is insufficient "
"or empty, it will greatly reduce the chances of acceptance and may even "
"prevent your proposal from being reviewed.
Please review the How to Propose a Talk page."
+"href=\"%(FRONTEND_HOST)s/%(LANGUAGE_CODE)s/speaking/talk\" target=\"_blank"
+"\">How to Propose a Talk page."
#: templates/default/_includes/tutorial_proposal_alert.html:6
#, python-format
@@ -1759,8 +1767,8 @@ msgid ""
"acceptance.
Conversely, if the information in the field is insufficient "
"or empty, it will greatly reduce the chances of acceptance and may even "
"prevent your proposal from being reviewed.
Please review the How to Propose a Tutorial page."
+"href=\"%(FRONTEND_HOST)s/%(LANGUAGE_CODE)s/speaking/tutorial\" target="
+"\"_blank\">How to Propose a Tutorial page."
msgstr ""
"Note that each field plays a crucial role in determining whether your "
"proposal is accepted. It is recommended that you provide as much detail as "
@@ -1768,8 +1776,8 @@ msgstr ""
"acceptance.
Conversely, if the information in the field is insufficient "
"or empty, it will greatly reduce the chances of acceptance and may even "
"prevent your proposal from being reviewed.
Please review the How to Propose a Tutorial page."
+"href=\"%(FRONTEND_HOST)s/%(LANGUAGE_CODE)s/speaking/tutorial\" target="
+"\"_blank\">How to Propose a Tutorial page."
#: templates/default/dashboard_base.html:7
#: templates/pycontw-2016/_includes/nav/front_nav.html:82
@@ -1972,11 +1980,11 @@ msgstr "Sign Up"
#: templates/default/registration/signup.html:13
#, python-format
msgid ""
-"Already have an account? Login."
+"Already have an account? Login."
msgstr ""
-"Already have an account? Login."
+"Already have an account? Login."
#: templates/default/registration/verification_email.txt:6
#, python-format
@@ -2236,13 +2244,11 @@ msgstr "New Talk Porposal"
#: templates/default/users/user_dashboard.html:33
#, python-format
msgid ""
-"You haven't submitted any talk proposals. Why not submit one "
-"now?"
+"You haven't submitted any talk proposals. Why not submit one now?"
msgstr ""
-"You haven't submitted any talk proposals. Why not submit one "
-"now?"
+"You haven't submitted any talk proposals. Why not submit one now?"
#: templates/default/users/user_dashboard.html:35
msgid "You haven't submitted any talk proposals."
@@ -2259,13 +2265,13 @@ msgstr "New Tutorial Porposal"
#: templates/default/users/user_dashboard.html:58
#, python-format
msgid ""
-"You haven't submitted any tutorial proposals. Why not submit "
-"one now?"
+"You haven't submitted any tutorial proposals. Why not submit one "
+"now?"
msgstr ""
-"You haven't submitted any tutorial proposals. Why not submit "
-"one now?"
+"You haven't submitted any tutorial proposals. Why not submit one "
+"now?"
#: templates/default/users/user_dashboard.html:60
msgid "You haven't submitted any tutorial proposals."
@@ -2654,15 +2660,15 @@ msgstr "Blog"
msgid ""
"This is the full schedule of talks for PyCon Taiwan 2016. See also: "
+"Our keynote speeches An alphabetically-sorted list of all talks "
+"ul>"
msgstr ""
"This is the full schedule of talks for PyCon Taiwan 2016. See also: "
+"Our keynote speeches An alphabetically-sorted list of all talks "
+"ul>"
#: templates/pycontw-2016/events/schedule.html:32
#: templates/pycontw-2016/events/talk_list.html:20
@@ -2723,11 +2729,11 @@ msgstr "Description"
#: templates/pycontw-2016/events/talk_list.html:14
#, python-format
msgid ""
-"You can check out the program schedule here."
+"You can check out the program schedule here."
msgstr ""
-"You can check out the program schedule here."
+"You can check out the program schedule here."
#: templates/pycontw-2016/events/talk_list.html:28
#: templates/pycontw-2017/events/talk_list.html:33
@@ -2738,13 +2744,11 @@ msgstr "Proposed Talks"
#: templates/pycontw-2017/events/talk_list.html:41
#, python-format
msgid ""
-"%(proposal_title)s by "
-"%(speaker_names)s"
+""
+"%(proposal_title)s by %(speaker_names)s"
msgstr ""
-"%(proposal_title)s by "
-"%(speaker_names)s"
+""
+"%(proposal_title)s by %(speaker_names)s"
#: templates/pycontw-2016/events/talk_list.html:38
msgid "Sponsored Events"
@@ -2754,11 +2758,11 @@ msgstr "Sponsored Events"
#: templates/pycontw-2017/events/talk_list.html:53
#, python-format
msgid ""
-"%(event_title)s by %(host_name)s"
+""
+"%(event_title)s by %(host_name)s"
msgstr ""
-"%(event_title)s by %(host_name)s"
+""
+"%(event_title)s by %(host_name)s"
#: templates/pycontw-2016/index.html:7
msgid ""
@@ -2853,21 +2857,21 @@ msgstr ""
#: templates/pycontw-2016/index.html:86
msgid ""
-"And what is PyCon Taiwan
PyCon Taiwan is an annual convention in Taiwan for "
-"the discussion and promotion of the Python programming language. It is held "
-"by enthusiasts and focuses on Python technology and its versatile "
-"applications. We welcome people who are interested in Python to join PyCon "
-"Taiwan to share knowledge, exchange ideas, make connections and to help us "
-"grow our network.
"
+"And what is PyCon Taiwan
PyCon Taiwan is an annual convention in Taiwan for the "
+"discussion and promotion of the Python programming language. It is held by "
+"enthusiasts and focuses on Python technology and its versatile applications. "
+"We welcome people who are interested in Python to join PyCon Taiwan to share "
+"knowledge, exchange ideas, make connections and to help us grow our network. "
+"
"
msgstr ""
-"And what is PyCon Taiwan
PyCon Taiwan is an annual convention in Taiwan for "
-"the discussion and promotion of the Python programming language. It is held "
-"by enthusiasts and focuses on Python technology and its versatile "
-"applications. We welcome people who are interested in Python to join PyCon "
-"Taiwan to share knowledge, exchange ideas, make connections and to help us "
-"grow our network.
"
+"And what is PyCon Taiwan
PyCon Taiwan is an annual convention in Taiwan for the "
+"discussion and promotion of the Python programming language. It is held by "
+"enthusiasts and focuses on Python technology and its versatile applications. "
+"We welcome people who are interested in Python to join PyCon Taiwan to share "
+"knowledge, exchange ideas, make connections and to help us grow our network. "
+"
"
#: templates/pycontw-2016/index.html:102
#, python-format
@@ -2876,15 +2880,15 @@ msgid ""
"height=\"22\" src=\"%(img_call_icon)s\" class=\"call__icon\"> Help us organize and make the conference "
"successful!
Please fill out
our volunteer form
"
+"forms/d/1zwc4khAW18myt6dJ_s_YtJOfQEobgz8KhcySKL0HXl4/viewform\" target="
+"\"_blank\" rel=\"noopener\">our volunteer form
"
msgstr ""
" Volunteers Needed!
Help us organize and make the conference "
"successful!
Please fill out
our volunteer form
"
+"forms/d/1zwc4khAW18myt6dJ_s_YtJOfQEobgz8KhcySKL0HXl4/viewform\" target="
+"\"_blank\" rel=\"noopener\">our volunteer form "
#: templates/pycontw-2016/index.html:132
msgid "Python Community in Taiwan"
@@ -2930,11 +2934,11 @@ msgstr ""
#: templates/pycontw-2016/registration/signup.html:25
#, python-format
msgid ""
-"Already have an account?Login."
+"Already have an account?Login."
msgstr ""
-"Already have an account?Login."
+"Already have an account?Login."
#: templates/pycontw-2017/_includes/header.html:48
msgid "about"
@@ -3221,11 +3225,11 @@ msgstr "Volunteers Needed"
#: templates/pycontw-2017/index.html:40
#, python-format
msgid ""
-"Help us organize and make the conference successful! Please fill out our volunteer form."
+"Help us organize and make the conference successful! Please fill out our volunteer form."
msgstr ""
-"Help us organize and make the conference successful! Please fill out our volunteer form."
+"Help us organize and make the conference successful! Please fill out our volunteer form."
#: templates/pycontw-2017/index.html:45
msgid ""
@@ -3623,13 +3627,11 @@ msgstr ""
#: templates/pycontw-2019/events/talk_list.html:34
#, python-format
msgid ""
-"%(proposal_title)s by "
-"%(speaker_names)s"
+""
+"%(proposal_title)s by %(speaker_names)s"
msgstr ""
-"%(proposal_title)s by "
-"%(speaker_names)s"
+""
+"%(proposal_title)s by %(speaker_names)s"
#: templates/pycontw-2018/index.html:32 templates/pycontw-2019/index.html:39
#: templates/pycontw-2020/index.html:60 templates/pycontw-2021/index.html:63
@@ -4484,14 +4486,14 @@ msgstr ""
#: templates/pycontw-2025/_includes/ext/discord.html:123
msgid ""
"3.Join the Python Taiwan Discord server.
Python Taiwan Discord server "
-"invite link: https://discord.gg/"
-"94hgCQv
In your Discord client App, click the button with plus sign, "
-"and then select 'Join a server'."
+"invite link: https://discord."
+"gg/94hgCQv
In your Discord client App, click the button with plus "
+"sign, and then select 'Join a server'."
msgstr ""
"3.Join the Python Taiwan Discord server.
Python Taiwan Discord server "
-"invite link: https://discord.gg/"
-"94hgCQv
In your Discord client App, click the button with plus sign, "
-"and then select 'Join a server'."
+"invite link: https://discord."
+"gg/94hgCQv
In your Discord client App, click the button with plus "
+"sign, and then select 'Join a server'."
#: templates/pycontw-2020/_includes/ext/discord.html:126
#: templates/pycontw-2021/_includes/ext/discord.html:126
@@ -4652,7 +4654,7 @@ msgstr "Discord Guideline"
#: templates/pycontw-2024/contents/_default/conference/keynotes.html:68
#: templates/pycontw-2025/contents/_default/conference/keynotes.html:68
msgid "To be announced"
-msgstr ""
+msgstr "To be announced"
#: templates/pycontw-2020/contents/_default/events/job-listings.html:53
#: templates/pycontw-2020/contents/_default/events/job-listings.html:58
@@ -4684,7 +4686,7 @@ msgstr "Select this track"
#: templates/pycontw-2022/events/_includes/community-track-overview.html:18
#: templates/pycontw-2022/events/_includes/community-track.html:19
msgid "Full"
-msgstr ""
+msgstr "Full"
#: templates/pycontw-2020/events/_includes/community-track-traffic.html:10
#: templates/pycontw-2021/events/_includes/community-track-traffic.html:10
@@ -5038,7 +5040,7 @@ msgstr "PyCon TW Discord Guideline"
#: templates/pycontw-2025/ext/live.html:5
#: templates/pycontw-2025/ext/live.html:12
msgid "Live broadcast"
-msgstr ""
+msgstr "Live broadcast"
#: templates/pycontw-2020/index.html:52
msgid "Sponsor PyCon TW"
diff --git a/src/locale/zh_Hant/LC_MESSAGES/django.po b/src/locale/zh_Hant/LC_MESSAGES/django.po
index dfe64c4de..877edaeb4 100644
--- a/src/locale/zh_Hant/LC_MESSAGES/django.po
+++ b/src/locale/zh_Hant/LC_MESSAGES/django.po
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PyCon TW\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-07-07 23:53+0800\n"
+"POT-Creation-Date: 2025-08-20 14:48+0800\n"
"PO-Revision-Date: 2022-07-11 02:25+0800\n"
"Last-Translator: Tom Chen \n"
"Language-Team: Chinese Traditional (http://www.transifex.com/pycon-taiwan/"
@@ -88,7 +88,7 @@ msgstr "演講"
#: core/admin.py:14
msgid "Current"
-msgstr ""
+msgstr "目前"
#: core/admin.py:15 core/choices.py:24
msgid "Other"
@@ -96,7 +96,7 @@ msgstr "其他"
#: core/admin.py:16
msgid "All"
-msgstr ""
+msgstr "全部"
#: core/choices.py:4
msgid "Application"
@@ -350,9 +350,17 @@ msgstr "時間"
msgid "times"
msgstr "時間"
+#: events/models.py:128
+msgid "All rooms"
+msgstr "所有會議室"
+
+#: events/models.py:129
+msgid "R0 (Simulcast)"
+msgstr "R0 (聯播)"
+
#: events/models.py:130
msgid "R0"
-msgstr ""
+msgstr "R0"
#: events/models.py:133
msgid "R1"
@@ -368,7 +376,7 @@ msgstr "R3"
#: events/models.py:140
msgid "R4"
-msgstr ""
+msgstr "R4"
#: events/models.py:141
msgid "Sprint / Open Space"
@@ -820,7 +828,7 @@ msgstr "已接受"
#: proposals/models.py:182
msgid "labels"
-msgstr ""
+msgstr "標籤"
#: proposals/models.py:266 proposals/models.py:320
#: templates/default/_includes/proposal_example_modal.html:50
@@ -1689,14 +1697,14 @@ msgid ""
"acceptance.
Conversely, if the information in the field is insufficient "
"or empty, it will greatly reduce the chances of acceptance and may even "
"prevent your proposal from being reviewed.
Please review the How to Propose a Talk page."
+"href=\"%(FRONTEND_HOST)s/%(LANGUAGE_CODE)s/speaking/talk\" target=\"_blank"
+"\">How to Propose a Talk page."
msgstr ""
"請注意,每個欄位都會對稿件是否入選產生影響,建議盡可能將每個欄位詳細填寫,這"
"將會大幅提升入選可能。
相反的,若欄位中資訊過度不足或缺漏,這會導致入選機"
-"率大福下降,更可能無法進入審稿階段。
更多資訊請參見"
-"如何投稿演講頁面。"
+"率大福下降,更可能無法進入審稿階段。
更多資訊請參見如何"
+"投稿演講頁面。"
#: templates/default/_includes/tutorial_proposal_alert.html:6
#, python-format
@@ -1707,14 +1715,14 @@ msgid ""
"acceptance.
Conversely, if the information in the field is insufficient "
"or empty, it will greatly reduce the chances of acceptance and may even "
"prevent your proposal from being reviewed.
Please review the How to Propose a Tutorial page."
+"href=\"%(FRONTEND_HOST)s/%(LANGUAGE_CODE)s/speaking/tutorial\" target="
+"\"_blank\">How to Propose a Tutorial page."
msgstr ""
"請注意,每個欄位都會對稿件是否入選產生影響,建議盡可能將每個欄位詳細填寫,這"
"將會大幅提升入選可能。
相反的,若欄位中資訊過度不足或缺漏,這會導致入選機"
-"率大福下降,更可能無法進入審稿階段。
更多資訊請參見如何投稿專業課程頁面。"
+"率大福下降,更可能無法進入審稿階段。
更多資訊請參見"
+"如何投稿專業課程頁面。"
#: templates/default/dashboard_base.html:7
#: templates/pycontw-2016/_includes/nav/front_nav.html:82
@@ -1872,8 +1880,8 @@ msgid ""
"Don't have an account? Sign up now!"
msgstr ""
-"沒有帳號? 馬上註冊一個!"
+"沒有帳號? 馬上註冊一個!"
#: templates/default/registration/password_reset_confirm.html:13
msgid ""
@@ -1912,11 +1920,11 @@ msgstr "註冊"
#: templates/default/registration/signup.html:13
#, python-format
msgid ""
-"Already have an account? Login."
+"Already have an account? Login."
msgstr ""
-"已有帳號? 按此登入。"
+"已有帳號? 按此登入。"
#: templates/default/registration/verification_email.txt:6
#, python-format
@@ -2075,9 +2083,9 @@ msgid ""
"process, please refer to the GitBook Review Guideline."
msgstr ""
-"注意:投稿人與其他審稿人都不會知道你的身份。審稿程序的詳細資訊參見審稿指南。"
+"注意:投稿人與其他審稿人都不會知道你的身份。審稿程序的詳細資訊參見審稿指南。"
#: templates/default/reviews/talk_proposal_list.html:23
msgid "Personal Review Stats"
@@ -2170,12 +2178,11 @@ msgstr "投稿新演講"
#: templates/default/users/user_dashboard.html:33
#, python-format
msgid ""
-"You haven't submitted any talk proposals. Why not submit one "
-"now?"
+"You haven't submitted any talk proposals. Why not submit one now?"
msgstr ""
-"您尚未投稿演講,何不馬上建立一個?"
+"您尚未投稿演講,何不馬上建立一個?"
#: templates/default/users/user_dashboard.html:35
msgid "You haven't submitted any talk proposals."
@@ -2192,9 +2199,9 @@ msgstr "投稿新專業課程"
#: templates/default/users/user_dashboard.html:58
#, python-format
msgid ""
-"You haven't submitted any tutorial proposals. Why not submit "
-"one now?"
+"You haven't submitted any tutorial proposals. Why not submit one "
+"now?"
msgstr ""
"您尚未投稿專業課程,何不馬上建立一個?"
@@ -2585,14 +2592,14 @@ msgstr "部落格"
msgid ""
"This is the full schedule of talks for PyCon Taiwan 2016. See also: "
+"Our keynote speeches An alphabetically-sorted list of all talks "
+"ul>"
msgstr ""
-"這是 PyCon Taiwan 2016 的完整演講時間表。另可參考:"
+"這是 PyCon Taiwan 2016 的完整演講時間表。另可參考:"
#: templates/pycontw-2016/events/schedule.html:32
#: templates/pycontw-2016/events/talk_list.html:20
@@ -2653,8 +2660,8 @@ msgstr "說明"
#: templates/pycontw-2016/events/talk_list.html:14
#, python-format
msgid ""
-"You can check out the program schedule here."
+"You can check out the program schedule here."
msgstr ""
"您可由此處檢視議程"
"時間表。"
@@ -2668,13 +2675,11 @@ msgstr "一般演講"
#: templates/pycontw-2017/events/talk_list.html:41
#, python-format
msgid ""
-"%(proposal_title)s by "
-"%(speaker_names)s"
+""
+"%(proposal_title)s by %(speaker_names)s"
msgstr ""
-"%(proposal_title)s "
-"%(speaker_names)s"
+""
+"%(proposal_title)s %(speaker_names)s"
#: templates/pycontw-2016/events/talk_list.html:38
msgid "Sponsored Events"
@@ -2684,12 +2689,11 @@ msgstr "贊助演講"
#: templates/pycontw-2017/events/talk_list.html:53
#, python-format
msgid ""
-"%(event_title)s by %(host_name)s"
+""
+"%(event_title)s by %(host_name)s"
msgstr ""
-"%(event_title)s "
-"%(host_name)s"
+""
+"%(event_title)s %(host_name)s"
#: templates/pycontw-2016/index.html:7
msgid ""
@@ -2782,16 +2786,16 @@ msgstr ""
#: templates/pycontw-2016/index.html:86
msgid ""
-"And what is PyCon Taiwan
PyCon Taiwan is an annual convention in Taiwan for "
-"the discussion and promotion of the Python programming language. It is held "
-"by enthusiasts and focuses on Python technology and its versatile "
-"applications. We welcome people who are interested in Python to join PyCon "
-"Taiwan to share knowledge, exchange ideas, make connections and to help us "
-"grow our network.
"
+"And what is PyCon Taiwan
PyCon Taiwan is an annual convention in Taiwan for the "
+"discussion and promotion of the Python programming language. It is held by "
+"enthusiasts and focuses on Python technology and its versatile applications. "
+"We welcome people who are interested in Python to join PyCon Taiwan to share "
+"knowledge, exchange ideas, make connections and to help us grow our network. "
+"
"
msgstr ""
-"何謂 PyCon Taiwan
\n"
+"
何謂 PyCon Taiwan
\n"
"PyCon Taiwan 為一年一度由愛好者舉辦、討論並提倡使用 Python 程式語言的會議,聚"
"焦在 Python 技術與其多樣的可能應用的交流。我們歡迎所有對 Python 有興趣的朋友"
"一同加入 PyCon Taiwan 來分享所學、交換想法、並且認識更多同好。
"
@@ -2803,14 +2807,14 @@ msgid ""
"height=\"22\" src=\"%(img_call_icon)s\" class=\"call__icon\">
Help us organize and make the conference "
"successful!
Please fill out
our volunteer form
"
+"forms/d/1zwc4khAW18myt6dJ_s_YtJOfQEobgz8KhcySKL0HXl4/viewform\" target="
+"\"_blank\" rel=\"noopener\">our volunteer form
"
msgstr ""
-" 志工招募中!
與我們共同籌備並讓這個會議更成功!
請填"
-"寫我們的 志工招募中!
與我們共同籌備並讓這個會議更成功!
請填寫我們"
+"的志工參加表
"
#: templates/pycontw-2016/index.html:132
@@ -2857,8 +2861,8 @@ msgstr ""
#: templates/pycontw-2016/registration/signup.html:25
#, python-format
msgid ""
-"Already have an account?Login."
+"Already have an account?Login."
msgstr ""
"已經有帳號了?請登入。"
@@ -3143,8 +3147,8 @@ msgstr "徵求志工"
#: templates/pycontw-2017/index.html:40
#, python-format
msgid ""
-"Help us organize and make the conference successful! Please fill out our volunteer form."
+"Help us organize and make the conference successful! Please fill out our volunteer form."
msgstr ""
"幫我們一起讓會議變得更好!請填寫志工表單"
"a>。"
@@ -3538,12 +3542,11 @@ msgstr "議程可能隨時更改。請頻繁確認本頁資訊,以獲
#: templates/pycontw-2019/events/talk_list.html:34
#, python-format
msgid ""
-"%(proposal_title)s by "
-"%(speaker_names)s"
+""
+"%(proposal_title)s by %(speaker_names)s"
msgstr ""
-"%(proposal_title)s — %(speaker_names)s"
+""
+"%(proposal_title)s — %(speaker_names)s"
#: templates/pycontw-2018/index.html:32 templates/pycontw-2019/index.html:39
#: templates/pycontw-2020/index.html:60 templates/pycontw-2021/index.html:63
@@ -4366,9 +4369,9 @@ msgstr ""
#: templates/pycontw-2025/_includes/ext/discord.html:123
msgid ""
"3.Join the Python Taiwan Discord server.
Python Taiwan Discord server "
-"invite link: https://discord.gg/"
-"94hgCQv
In your Discord client App, click the button with plus sign, "
-"and then select 'Join a server'."
+"invite link: https://discord."
+"gg/94hgCQv
In your Discord client App, click the button with plus "
+"sign, and then select 'Join a server'."
msgstr ""
"3. 加入 Python Taiwan 的 Discord 伺服器.
Python Taiwan 伺服器 邀請連結: "
"https://discord.gg/94hgCQv
在您"
diff --git a/src/proposals/migrations/0068_auto_20250819_0214.py b/src/proposals/migrations/0068_auto_20250819_0214.py
new file mode 100644
index 000000000..380971ba9
--- /dev/null
+++ b/src/proposals/migrations/0068_auto_20250819_0214.py
@@ -0,0 +1,29 @@
+# Generated by Django 3.2.25 on 2025-08-18 18:14
+
+import django.contrib.postgres.fields
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('proposals', '0067_auto_20250512_1734'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='llmreview',
+ name='categories',
+ field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(choices=[('APPL', 'Application'), ('PRAC', 'Best Practices & Patterns'), ('COM', 'Community'), ('DB', 'Databases'), ('DATA', 'Data Analysis'), ('EDU', 'Education'), ('EMBED', 'Embedded Systems'), ('FIN', 'FinTech'), ('IOT', 'Internet of Things'), ('GAME', 'Gaming'), ('GRAPH', 'Graphics'), ('ML', 'Machine Learning'), ('NLP', 'Natural Language Processing'), ('CORE', 'Python Core (language, stdlib, etc.)'), ('TOOL', 'Project Tooling'), ('SCI', 'Science'), ('SEC', 'Security'), ('ADMIN', 'Systems Administration'), ('TEST', 'Testing'), ('WEB', 'Web Frameworks'), ('OTHER', 'Other')], max_length=5), blank=True, default=list, size=3, verbose_name='Categories'),
+ ),
+ migrations.AlterField(
+ model_name='llmreview',
+ name='stage_diff',
+ field=models.TextField(blank=True, default='', verbose_name='stage difference'),
+ ),
+ migrations.AlterField(
+ model_name='llmreview',
+ name='translated_stage_diff',
+ field=models.TextField(blank=True, default='', verbose_name='translated stage difference'),
+ ),
+ ]