diff --git a/priv/gettext/zh_Hant/LC_MESSAGES/default.po b/priv/gettext/zh_Hant/LC_MESSAGES/default.po
new file mode 100644
index 00000000..c0cf5064
--- /dev/null
+++ b/priv/gettext/zh_Hant/LC_MESSAGES/default.po
@@ -0,0 +1,478 @@
+# # `msgid`s in this file come from POT (.pot) files.
+# #
+# # Do not add, change, or remove `msgid`s manually here as
+# # they're tied to the ones in the corresponding POT file
+# # (with the same domain).
+# #
+# # Use `mix gettext.extract --merge` or `mix gettext.merge`
+# # to merge POT files into PO files.
+msgid ""
+msgstr ""
+"Language: zh_Hant\n"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:93
+msgid "Status"
+msgstr "目前狀態"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:225
+msgid "Speed"
+msgstr "速度"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:217
+msgid "State of Charge"
+msgstr "充電狀態"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:154
+msgid "Charged"
+msgstr "已充滿"
+
+#: lib/teslamate_web/live/car_live/summary.ex:135
+msgid "asleep"
+msgstr "休眠"
+
+#: lib/teslamate_web/live/car_live/summary.ex:130
+msgid "charging"
+msgstr "充電中"
+
+#: lib/teslamate_web/live/car_live/summary.ex:129
+msgid "driving"
+msgstr "駕駛中"
+
+#: lib/teslamate_web/live/car_live/summary.ex:134
+msgid "offline"
+msgstr "離線中"
+
+#: lib/teslamate_web/live/car_live/summary.ex:133
+msgid "online"
+msgstr "線上"
+
+#: lib/teslamate_web/live/car_live/summary.ex:131
+msgid "updating"
+msgstr "更新中"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:67
+msgid "Locked"
+msgstr "已鎖車"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:62
+msgid "Sentry Mode"
+msgstr "哨兵模式"
+
+#: lib/teslamate_web/templates/charge/cost.html.leex:3
+#: lib/teslamate_web/templates/geo_fence/form.html.leex:3
+#: lib/teslamate_web/templates/geo_fence/index.html.leex:3
+#: lib/teslamate_web/templates/import/index.html.leex:3
+#: lib/teslamate_web/templates/settings/index.html.leex:3
+msgid "Home"
+msgstr "家"
+
+#: lib/teslamate_web/templates/layout/root.html.eex:59
+#: lib/teslamate_web/templates/settings/index.html.leex:4
+msgid "Settings"
+msgstr "設定"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:169
+msgid "Scheduled Charging"
+msgstr "按計劃充電"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:47
+msgid "Plugged In"
+msgstr "連接充電器"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:178
+msgid "Charge Limit"
+msgstr "充電上限"
+
+#: lib/teslamate_web/live/car_live/summary.ex:132
+msgid "falling asleep"
+msgstr "進入休眠中"
+
+#: lib/teslamate_web/live/car_live/summary.ex:136
+msgid "unavailable"
+msgstr "不可用"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:200
+msgid "Length"
+msgstr "長度"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:215
+msgid "Temperature"
+msgstr "溫度"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:197
+msgid "Units"
+msgstr "單位"
+
+#: lib/teslamate_web/templates/charge/cost.html.leex:113
+#: lib/teslamate_web/templates/geo_fence/form.html.leex:98
+msgid "Back"
+msgstr "後退"
+
+#: lib/teslamate_web/live/geofence_live/form.ex:202
+msgid "Geo-fence \"%{name}\" created"
+msgstr "收藏點 \\”%{name}\\” 已建立"
+
+#: lib/teslamate_web/templates/geo_fence/form.html.leex:4
+#: lib/teslamate_web/templates/geo_fence/index.html.leex:4
+#: lib/teslamate_web/templates/layout/root.html.eex:56
+msgid "Geo-Fences"
+msgstr "收藏點"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:49
+msgid "Idle Time Before Trying to Sleep"
+msgstr "進入休眠前的閒置時間"
+
+#: lib/teslamate_web/templates/geo_fence/form.html.leex:41
+#: lib/teslamate_web/templates/geo_fence/form.html.leex:46
+#: lib/teslamate_web/templates/geo_fence/index.html.leex:21
+msgid "Name"
+msgstr "名字"
+
+#: lib/teslamate_web/templates/geo_fence/form.html.leex:17
+#: lib/teslamate_web/templates/geo_fence/index.html.leex:22
+msgid "Position"
+msgstr "位置"
+
+#: lib/teslamate_web/templates/geo_fence/index.html.leex:23
+msgid "Radius"
+msgstr "半徑"
+
+#: lib/teslamate_web/templates/charge/cost.html.leex:116
+#: lib/teslamate_web/templates/geo_fence/form.html.leex:101
+msgid "Save"
+msgstr "保存"
+
+#: lib/teslamate_web/templates/charge/cost.html.leex:117
+#: lib/teslamate_web/templates/geo_fence/form.html.leex:101
+#: lib/teslamate_web/templates/signin/index.html.leex:33
+msgid "Saving..."
+msgstr "儲存中"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:31
+msgid "Time to Try Sleeping"
+msgstr "嘗試進入睡眠"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:39
+#: lib/teslamate_web/templates/settings/index.html.leex:58
+msgid "min"
+msgstr "分鐘"
+
+#: lib/teslamate_web/live/signin_live/index.ex:63
+msgid "Signed in successfully"
+msgstr "登入成功"
+
+#: lib/teslamate_web/live/car_live/summary.ex:138
+msgid "Car is unlocked"
+msgstr "已鎖車"
+
+#: lib/teslamate_web/templates/geo_fence/index.html.leex:9
+msgid "Create"
+msgstr "新建"
+
+#: lib/teslamate_web/live/car_live/summary.ex:142
+#: lib/teslamate_web/templates/car/summary.html.leex:32
+msgid "Preconditioning"
+msgstr "預熱/冷"
+
+#: lib/teslamate_web/live/car_live/summary.ex:141
+msgid "Sentry mode is enabled"
+msgstr "哨兵模式已啟用"
+
+#: lib/teslamate_web/live/car_live/summary.ex:143
+#: lib/teslamate_web/templates/car/summary.html.leex:42
+msgid "Driver present"
+msgstr "駕駛中"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:296
+msgid "cancel sleep attempt"
+msgstr "取消休眠"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:291
+msgid "try to sleep"
+msgstr "嘗試休眠"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:141
+msgid "Range (est.)"
+msgstr "續航里程 (預估)"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:96
+msgid "for"
+msgstr ""
+
+#: lib/teslamate_web/templates/settings/index.html.leex:70
+msgid "Requirements"
+msgstr "條件"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:79
+msgid "Vehicle must be locked"
+msgstr "車輛必須處於鎖車狀態"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:122
+msgid "Range (rated)"
+msgstr "額定里程"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:160
+msgid "Charger Power"
+msgstr "充電功率"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:141
+msgid "Preferred Range"
+msgstr "里程標定方式"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:137
+msgid "Range"
+msgstr "里程"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:148
+msgid "ideal"
+msgstr "典型"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:148
+msgid "rated"
+msgstr "額定"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:121
+msgid "Range (ideal)"
+msgstr "里程 (典型)"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:140
+msgid ""
+"The car's estimate of remaining range is based on a fixed energy consumption "
+"in Wh/km. The Wh/km factor is determined by Tesla and is not country "
+"specific whereas the rated range is based on regulatory tests in the "
+"different markets for that vehicle."
+msgstr ""
+"實際續航里程會因車輛配置、電池使用時長和狀況、駕駛習慣及操作、環境和氣候狀況"
+"等因素的影響而有所不同。"
+
+#: lib/teslamate_web/live/car_live/summary.ex:144
+msgid "Update in progress"
+msgstr "更新中"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:52
+msgid "Windows open"
+msgstr "車窗 開"
+
+#: lib/teslamate_web/templates/geo_fence/index.html.leex:51
+msgid "Delete '%{geo_fence}'?"
+msgstr "確定刪除 ‘%{geo_fence}’ ?"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:250
+msgid "Inside Temperature"
+msgstr "車內溫度"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:238
+msgid "Outside Temperature"
+msgstr "車外溫度"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:275
+#: lib/teslamate_web/templates/settings/index.html.leex:270
+msgid "Version"
+msgstr "版本"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:72
+msgid "Software Update available"
+msgstr "有可用更新"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:77
+msgid "Health check failed"
+msgstr "健康檢查失敗"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:67
+msgid "Unlocked"
+msgstr "已解鎖"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:108
+msgid "Remaining Time"
+msgstr "剩餘時間"
+
+#: lib/teslamate_web/templates/layout/root.html.eex:46
+#: lib/teslamate_web/templates/settings/index.html.leex:250
+msgid "Dashboards"
+msgstr "控制台"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:233
+msgid "URLs"
+msgstr "URLs"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:164
+#: lib/teslamate_web/templates/settings/index.html.leex:236
+msgid "Web App"
+msgstr "Web應用程式"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:114
+msgid "Enabled"
+msgstr "已啟用"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:26
+msgid "Sleep Mode"
+msgstr "休眠模式"
+
+#: lib/teslamate_web/live/geofence_live/form.ex:203
+msgid "Geo-fence \"%{name}\" updated"
+msgstr "收藏點 \\”%{name}\\” 已更新"
+
+#: lib/teslamate_web/live/car_live/summary.ex:146
+msgid "An error occurred"
+msgstr "發生了一個錯誤"
+
+#: lib/teslamate_web/live/car_live/summary.ex:145
+msgid "Timeout"
+msgstr "已超時"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:37
+msgid "Reduced Battery Range"
+msgstr "已降低續航里程"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:210
+msgid "≈ %{range} at 100%"
+msgstr "≈ 100%時續航為 %{range}"
+
+#: lib/teslamate_web/templates/charge/cost.html.leex:4
+msgid "Charge Cost"
+msgstr "充電費用"
+
+#: lib/teslamate_web/templates/charge/cost.html.leex:88
+msgid "Cost"
+msgstr "費用"
+
+#: lib/teslamate_web/templates/charge/cost.html.leex:101
+msgid "Enter charge cost"
+msgstr "請輸入充電費用"
+
+#: lib/teslamate_web/live/charge_live/cost.ex:73
+msgid "Saved!"
+msgstr "已儲存!"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:27
+msgid "Fetching vehicle data ..."
+msgstr "正在獲取車輛數據"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:179
+msgid "Addresses"
+msgstr "地址"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:160
+msgid "Language"
+msgstr "語言"
+
+#: lib/teslamate_web/live/settings_live/index.ex:70
+msgid ""
+"There was a problem retrieving data from OpenStreetMap. Please try again "
+"later."
+msgstr "在獲取地圖信息時發成錯誤,請稍後再試。"
+
+#: lib/teslamate_web/templates/import/index.html.leex:4
+msgid "TeslaFi Import"
+msgstr "從TeslaFi匯入"
+
+#: lib/teslamate_web/templates/import/index.html.leex:10
+msgid "Found %{count} file"
+msgid_plural "Found %{count} files"
+msgstr[0] ""
+
+#: lib/teslamate_web/templates/layout/root.html.eex:87
+msgid "Donate"
+msgstr "捐贈"
+
+#: lib/teslamate_web/templates/import/index.html.leex:68
+msgid "Import"
+msgstr "匯入"
+
+#: lib/teslamate_web/templates/import/index.html.leex:58
+msgid "Time zone"
+msgstr "時區"
+
+#: lib/teslamate_web/templates/signin/index.html.leex:18
+msgid "Password"
+msgstr "密碼"
+
+#: lib/teslamate_web/templates/signin/index.html.leex:30
+msgid "Sign in"
+msgstr "登入"
+
+#: lib/teslamate_web/templates/signin/index.html.leex:11
+msgid "Email address"
+msgstr "電子郵件"
+
+#: lib/teslamate_web/templates/geo_fence/form.html.leex:57
+msgid "Cost per kWh"
+msgstr "每度電費用"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:92
+msgid "Charge cost"
+msgstr "充電費用"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:95
+msgid "Free Supercharging"
+msgstr "免費超充"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:131
+msgid "General Settings"
+msgstr "一般設定"
+
+#: lib/teslamate_web/templates/geo_fence/form.html.leex:76
+msgid "Session fee"
+msgstr "手續費"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:57
+msgid "Doors open"
+msgstr "未鎖車"
+
+#: lib/teslamate_web/templates/charge/cost.html.leex:94
+msgid "Per kWh"
+msgstr "/度"
+
+#: lib/teslamate_web/templates/charge/cost.html.leex:94
+msgid "Total"
+msgstr "總共"
+
+#: lib/teslamate_web/templates/geo_fence/form.html.leex:118
+msgid ""
+"There is %{n} charging session at this location for which "
+"no costs have been added yet."
+msgid_plural ""
+"There are %{n} charging sessions at this location for which "
+"no costs have been added yet."
+msgstr[0] ""
+
+#: lib/teslamate_web/templates/geo_fence/form.html.leex:127
+msgid "Add costs retroactively"
+msgstr "過期費用追加"
+
+#: lib/teslamate_web/templates/geo_fence/form.html.leex:112
+msgid "Charging Costs"
+msgstr "充電費用"
+
+#: lib/teslamate_web/templates/geo_fence/form.html.leex:126
+msgid "Continue"
+msgstr "下一步"
+
+#: lib/teslamate_web/templates/car/summary.html.leex:263
+msgid "Mileage"
+msgstr "總里程"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:111
+msgid "Streaming API"
+msgstr "特斯拉串流介面"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:285
+msgid "Documentation"
+msgstr "說明文件"
+
+#: lib/teslamate_web/templates/settings/index.html.leex:281
+msgid "GitHub"
+msgstr "GitHub"
+
+#: lib/teslamate_web/templates/layout/root.html.eex:95
+#: lib/teslamate_web/templates/settings/index.html.leex:276
+msgid "Update available"
+msgstr "有可用更新"
+
+#: lib/teslamate_web/live/car_live/summary.ex:139
+msgid "Doors are open"
+msgstr "未上鎖"
+
+#: lib/teslamate_web/live/car_live/summary.ex:140
+msgid "Trunk is open"
+msgstr "後行李箱已打開"
diff --git a/priv/gettext/zh_Hant/LC_MESSAGES/errors.po b/priv/gettext/zh_Hant/LC_MESSAGES/errors.po
new file mode 100644
index 00000000..9bb7d1c9
--- /dev/null
+++ b/priv/gettext/zh_Hant/LC_MESSAGES/errors.po
@@ -0,0 +1,95 @@
+## This is a PO Template file.
+##
+## `msgid`s here are often extracted from source code.
+## Add new translations manually only if they're dynamic
+## translations that can't be statically extracted.
+##
+## Run `mix gettext.extract` to bring this file up to
+## date. Leave `msgstr`s empty as changing them here has no
+## effect: edit them in PO (`.po`) files instead.
+## From Ecto.Changeset.cast/4
+msgid "can't be blank"
+msgstr ""
+"Language: zh_Hant\n"
+
+## From Ecto.Changeset.unique_constraint/3
+msgid "has already been taken"
+msgstr "已被使用"
+
+## From Ecto.Changeset.put_change/3
+msgid "is invalid"
+msgstr "無效"
+
+## From Ecto.Changeset.validate_acceptance/3
+msgid "must be accepted"
+msgstr "必須接受"
+
+## From Ecto.Changeset.validate_format/3
+msgid "has invalid format"
+msgstr "為無效格式"
+
+## From Ecto.Changeset.validate_subset/3
+msgid "has an invalid entry"
+msgstr "為無效輸入"
+
+## From Ecto.Changeset.validate_exclusion/3
+msgid "is reserved"
+msgstr "已被使用"
+
+## From Ecto.Changeset.validate_confirmation/3
+msgid "does not match confirmation"
+msgstr "與已確認的不相符"
+
+## From Ecto.Changeset.no_assoc_constraint/3
+msgid "is still associated with this entry"
+msgstr "仍然與該輸入相關聯"
+
+msgid "are still associated with this entry"
+msgstr "仍然與該輸入相關聯"
+
+## From Ecto.Changeset.validate_length/3
+msgid "should be %{count} character(s)"
+msgid_plural "should be %{count} character(s)"
+msgstr[0] "應為 %{count}"
+msgstr[1] ""
+
+msgid "should have %{count} item(s)"
+msgid_plural "should have %{count} item(s)"
+msgstr[0] "應有 %{count}"
+msgstr[1] ""
+
+msgid "should be at least %{count} character(s)"
+msgid_plural "should be at least %{count} character(s)"
+msgstr[0] "應至少有 %{count}"
+msgstr[1] ""
+
+msgid "should have at least %{count} item(s)"
+msgid_plural "should have at least %{count} item(s)"
+msgstr[0] "應至少有 %{count}"
+msgstr[1] ""
+
+msgid "should be at most %{count} character(s)"
+msgid_plural "should be at most %{count} character(s)"
+msgstr[0] "應不超過 %{count}"
+msgstr[1] ""
+
+msgid "should have at most %{count} item(s)"
+msgid_plural "should have at most %{count} item(s)"
+msgstr[0] "應不超過 %{count}"
+msgstr[1] ""
+
+## From Ecto.Changeset.validate_number/3
+msgid "must be less than %{number}"
+msgstr "應少於 %{number}"
+
+msgid "must be greater than %{number}"
+msgstr "應大於 %{number}"
+
+msgid "must be less than or equal to %{number}"
+msgstr "應小於或等於 %{number}"
+
+msgid "must be greater than or equal to %{number}"
+msgstr "應大於或等於 %{number}"
+
+msgid "must be equal to %{number}"
+msgstr "應為 %{number}"