LLM_MODEL=%(model)s%(api_base)s). Remove the "
"LLM_MODEL environment variable to configure via this form instead."
-msgstr ""
+msgstr "AI / LLM 是透過環境變數(LLM_MODEL=%(model)s%(api_base)s)設定的。請移除 LLM_MODEL 環境變數以改為透過此表單進行設定。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "select a provider"
-msgstr ""
+msgstr "選擇供應商"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "OpenAI-compatible (vLLM, LM Studio, llama.cpp)"
-msgstr ""
+msgstr "與 OpenAI 相容(vLLM、LM Studio、llama.cpp)"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Only needed for Ollama or custom/self-hosted endpoints. Leave blank for cloud providers."
-msgstr ""
+msgstr "僅適用於 Ollama 或自訂 / 自行架設的端點。雲端供應商請留空。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
#, python-format
@@ -1045,34 +1047,37 @@ msgid ""
"Applied to Ollama and OpenAI-compatible endpoints — other cloud providers (OpenAI, Anthropic, Gemini) keep their "
"original tight caps."
msgstr ""
+"推理模型(Qwen3、DeepSeek-R1、Gemma 3 等)會在給出最終答案之前輸出思考鏈(Chain-of-thought)。此乘數會放大該端點的每個 max_tokens "
+"上限,以留出推理空間。預設為 %(default)s;如果回應遭到截斷或為空,請將其調高;如果您希望在付費端點上設定更嚴格的限制,請將其調低(最低至 1x)。套用至 Ollama 和與 OpenAI 相容的端點 — "
+"其他雲端供應商(OpenAI、Anthropic、Gemini)則保持其原本嚴格的上限。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Load available models"
-msgstr ""
+msgstr "載入可用模型"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Available models"
-msgstr ""
+msgstr "可用模型"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "choose a model"
-msgstr ""
+msgstr "選擇模型"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Enter API key and click 'Load available models'"
-msgstr ""
+msgstr "輸入 API 金鑰並點擊「載入可用模型」"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Remove AI / LLM configuration?"
-msgstr ""
+msgstr "是否移除 AI / LLM 設定?"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "This will remove your saved AI provider, model, and API key."
-msgstr ""
+msgstr "這將會移除您儲存的 AI 供應商、模型和 API 金鑰。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Remove"
-msgstr ""
+msgstr "移除"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
#: changedetectionio/blueprint/ui/templates/clear_all_history.html changedetectionio/templates/base.html
@@ -1081,225 +1086,225 @@ msgstr "取消"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Test connection"
-msgstr ""
+msgstr "測試連線"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid ""
"Your API key is stored locally and sent only to your chosen provider. On each detected change, the watch's diff and "
"extracted text are sent to the LLM — no full page HTML."
-msgstr ""
+msgstr "您的 API 金鑰儲存在本地,且僅發送至您選擇的供應商。在每次檢測到變更時,監測任務的差異(Diff)和提取的文字會被發送至 LLM — 絕非全頁 HTML。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Cache"
-msgstr ""
+msgstr "快取"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Clear all summary cache?"
-msgstr ""
+msgstr "是否清除所有摘要快取?"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "This will remove all cached AI change summaries across all watches."
-msgstr ""
+msgstr "這將移除所有監測任務中所有已快取的 AI 變更摘要。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "They will be regenerated on the next check."
-msgstr ""
+msgstr "它們將在下次檢查時重新產生。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Clear cache"
-msgstr ""
+msgstr "清除快取"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Clear all summary cache"
-msgstr ""
+msgstr "清除所有摘要快取"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Removes all cached AI change summaries across all watches. They will be regenerated on the next check."
-msgstr ""
+msgstr "移除所有監測任務中所有已快取的 AI 變更摘要。它們將在下次檢查時重新產生。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid ""
"Enables litellm verbose output (routed through loguru). Useful when diagnosing provider errors or empty responses. "
"Leave off in production — generates a lot of log volume."
-msgstr ""
+msgstr "啟用 litellm 詳細輸出(透過 loguru 路由)。在診斷供應商錯誤或空回應時非常有用。在生產環境中請保持關閉 — 這會產生大量的日誌量。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Default AI Change Summary"
-msgstr ""
+msgstr "預設 AI 變更摘要"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Used for all watches unless overridden by the watch or its tag/group."
-msgstr ""
+msgstr "用於所有監測任務,除非被監測任務或其標籤 / 群組覆寫。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
#: changedetectionio/templates/edit/include_llm_intent.html
msgid "Modify default prompt"
-msgstr ""
+msgstr "修改預設提示詞"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
#, python-format
msgid ""
"When enabled, the %(diff)s notification token shows the AI summary instead of the raw diff. Use "
"%(raw_diff)s to always get the original."
-msgstr ""
+msgstr "啟用時,%(diff)s 通知權杖將顯示 AI 摘要而非原始差異(Diff)。使用 %(raw_diff)s 以一律獲取原始內容。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid ""
"When enabled, the AI will be used as a last resort to extract price and stock status from product pages where no "
"structured metadata (JSON-LD, microdata, OpenGraph) is found."
-msgstr ""
+msgstr "啟用時,在找不到結構化中繼資料(JSON-LD、微資料 microdata、OpenGraph)的產品網頁上,AI 將被用作提取價格和庫存狀態的最後手段。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid ""
"For Gemini 2.5+ models only. Thinking tokens improve reasoning quality but count against the output budget. Set to "
"Off if summaries are being cut short."
-msgstr ""
+msgstr "僅適用於 Gemini 2.5+ 模型。思考權杖(Thinking Tokens)可提高推理品質,但會計入輸出配額。如果摘要遭到截斷,請設為關閉(Off)。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid ""
"Upper limit on tokens the AI may use when writing a change summary. Higher values allow longer summaries but cost "
"more."
-msgstr ""
+msgstr "AI 撰寫變更摘要時可使用的權杖(Tokens)上限。較高的值允許較長的摘要,但成本更高。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Which baseline the watchlist “Summary” link compares the latest version against by default."
-msgstr ""
+msgstr "設定監測列表「摘要」連結在預設情況下,要將最新版本與哪一個基準版本進行比對。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Configure a provider first to unlock behaviour settings."
-msgstr ""
+msgstr "請先設定供應商以解鎖行為設定。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Token & Cost Tracking"
-msgstr ""
+msgstr "權杖與成本追蹤"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "This month"
-msgstr ""
+msgstr "本月"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "tokens"
-msgstr ""
+msgstr "權杖"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
#, python-format
msgid "%(percent)s%% of %(budget)s"
-msgstr ""
+msgstr "%(percent)s%% / %(budget)s"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "All-time total"
-msgstr ""
+msgstr "歷史總計"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Monthly token budget reached. AI summarisation is paused until next month."
-msgstr ""
+msgstr "已達每月權杖配額上限。AI 摘要功能已暫停,直到下個月恢復。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Token budget this period"
-msgstr ""
+msgstr "此週期的權杖配額"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "(set via LLM_TOKEN_BUDGET_MONTH)"
-msgstr ""
+msgstr "(透過 LLM_TOKEN_BUDGET_MONTH 設定)"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "0 = unlimited"
-msgstr ""
+msgstr "0 = 不限制"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "tokens (0 = unlimited)"
-msgstr ""
+msgstr "權杖(0 = 不限制)"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Current billing period"
-msgstr ""
+msgstr "目前計費週期"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "(set via LLM_MAX_INPUT_CHARS)"
-msgstr ""
+msgstr "(透過 LLM_MAX_INPUT_CHARS 設定)"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
#, python-format
msgid "characters — currently enforcing: %(limit)s"
-msgstr ""
+msgstr "個字元 — 目前強制執行:%(limit)s"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid ""
"tokens — skips AI evaluation on a watch once its usage within the current period (monthly) hits this cap (0 = "
"unlimited)"
-msgstr ""
+msgstr "權杖 — 當監測任務在目前週期(每月)內的使用量達到此上限時,將跳過該監測任務的 AI 評估(0 = 不限制)"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "No AI usage recorded yet."
-msgstr ""
+msgstr "尚無 AI 使用記錄。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Token budget"
-msgstr ""
+msgstr "權杖配額"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "tokens per month (0 = unlimited)"
-msgstr ""
+msgstr "每月權杖(0 = 不限制)"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "platform.openai.com → API keys"
-msgstr ""
+msgstr "platform.openai.com → API 金鑰"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "console.anthropic.com → API keys"
-msgstr ""
+msgstr "console.anthropic.com → API 金鑰"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "aistudio.google.com → Get API key"
-msgstr ""
+msgstr "aistudio.google.com → 獲取 API 金鑰"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "No API key needed for local Ollama"
-msgstr ""
+msgstr "本地 Ollama 不需要 API 金鑰"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Bearer token for your self-hosted server (vLLM, LM Studio, etc.)"
-msgstr ""
+msgstr "您自行架設伺服器的 Bearer 權杖(vLLM、LM Studio 等)"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "openrouter.ai → Keys"
-msgstr ""
+msgstr "openrouter.ai → 金鑰"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Select a provider first."
-msgstr ""
+msgstr "請先選擇供應商。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Loading…"
-msgstr ""
+msgstr "載入中 ..."
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "No models returned by the provider."
-msgstr ""
+msgstr "供應商未傳回任何模型。"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "— choose a model —"
-msgstr ""
+msgstr "— 選擇模型 —"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "models available with your key"
-msgstr ""
+msgstr "個可用模型(搭配您的金鑰)"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Request failed"
-msgstr ""
+msgstr "請求失敗"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Testing…"
-msgstr ""
+msgstr "測試中 ..."
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Connected"
-msgstr ""
+msgstr "已連線"
#: changedetectionio/blueprint/settings/templates/settings_llm_tab.html
msgid "Failed"
-msgstr ""
+msgstr "失敗"
#: changedetectionio/blueprint/tags/__init__.py
#, python-brace-format
@@ -1316,11 +1321,11 @@ msgstr "標籤已刪除,正在背景從監測任務中移除"
#: changedetectionio/blueprint/tags/__init__.py
msgid "Unlinking tag from watches in background"
-msgstr ""
+msgstr "正在背景解除標籤與監測任務的連結"
#: changedetectionio/blueprint/tags/__init__.py
msgid "All tags deleted, clearing from watches in background"
-msgstr ""
+msgstr "所有標籤已刪除,正在背景從監測任務中清除"
#: changedetectionio/blueprint/tags/__init__.py
msgid "Tag not found"
@@ -1332,19 +1337,19 @@ msgstr "已更新"
#: changedetectionio/blueprint/tags/form.py
msgid "Activate for individual watches in this tag/group?"
-msgstr ""
+msgstr "是否為此標籤 / 群組中的個別監測任務啟用?"
#: changedetectionio/blueprint/tags/form.py
msgid "Auto-apply to watches with URLs matching"
-msgstr ""
+msgstr "自動套用至 URL 符合以下條件的監測任務"
#: changedetectionio/blueprint/tags/form.py
msgid "e.g. *://example.com/* or github.com/myorg"
-msgstr ""
+msgstr "例如 *://example.com/* 或 github.com/myorg"
#: changedetectionio/blueprint/tags/form.py changedetectionio/blueprint/tags/templates/edit-tag.html
msgid "Tag colour"
-msgstr ""
+msgstr "標籤顏色"
#: changedetectionio/blueprint/tags/form.py
msgid "Must be a hex colour, for example #4f8ef7"
@@ -1368,7 +1373,7 @@ msgstr ""
#: changedetectionio/blueprint/tags/form.py
msgid "Tag name"
-msgstr ""
+msgstr "標籤名稱"
#: changedetectionio/blueprint/tags/templates/edit-tag.html changedetectionio/blueprint/ui/templates/edit.html
msgid "Filters & Triggers"
@@ -1378,19 +1383,19 @@ msgstr "過濾器與觸發器"
msgid ""
"Automatically applies this tag to any watch whose URL matches. Supports wildcards: *example.com* or "
"plain substring: github.com/myorg"
-msgstr ""
+msgstr "自動將此標籤套用至任何 URL 符合條件的監測任務。支援萬用字元:*example.com* 或純字串:github.com/myorg"
#: changedetectionio/blueprint/tags/templates/edit-tag.html
msgid "Currently matching watches"
-msgstr ""
+msgstr "目前符合的監測任務"
#: changedetectionio/blueprint/tags/templates/edit-tag.html
msgid "Custom colour"
-msgstr ""
+msgstr "自訂顏色"
#: changedetectionio/blueprint/tags/templates/edit-tag.html
msgid "Leave unchecked to use the auto-generated colour based on the tag name."
-msgstr ""
+msgstr "保持未勾選以使用根據標籤名稱自動產生的顏色。"
#. CJK fonts lack native italics; allow substitution with conventional local styling. dennis-ignore: W303
#: changedetectionio/blueprint/tags/templates/edit-tag.html
@@ -1422,7 +1427,7 @@ msgstr "注意!"
msgid ""
"There are system-wide notification URLs enabled, this form will override notification "
"settings for this watch only ‐ an empty Notification URL list here will still send notifications."
-msgstr "目前有已啟用的全系統通知 URL,此表單將僅覆寫此監測任務的通知設定 ‐ 此處留空的通知 URL 列表仍會發送通知。"
+msgstr "目前有 已啟用的全系統通知 URL,此表單將僅覆寫此監測任務的通知設定 ‐ 此處留空的通知 URL 列表仍會發送通知。"
#: changedetectionio/blueprint/tags/templates/edit-tag.html changedetectionio/blueprint/ui/templates/edit.html
msgid "Use system defaults"
@@ -1446,7 +1451,7 @@ msgstr "標籤 / 名稱"
#: changedetectionio/blueprint/tags/templates/groups-overview.html
msgid "No website organisational tags/groups configured"
-msgstr "未設定群組/標籤"
+msgstr "未設定群組 / 標籤"
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/templates/menu.html
msgid "Mute notifications"
@@ -1557,20 +1562,20 @@ msgstr "{} 個監測任務已設為使用預設通知設定"
#: changedetectionio/blueprint/ui/__init__.py
#, python-brace-format
msgid "Browser / fetch method updated on {} watches"
-msgstr ""
+msgstr "已更新 {} 個監測任務的瀏覽器 / 抓取方式"
#: changedetectionio/blueprint/ui/__init__.py
msgid "Invalid browser / fetch method selected"
-msgstr ""
+msgstr "選擇了無效的瀏覽器 / 抓取方式"
#: changedetectionio/blueprint/ui/__init__.py
#, python-brace-format
msgid "Proxy updated on {} watches"
-msgstr ""
+msgstr "已更新 {} 個監測任務的代理伺服器"
#: changedetectionio/blueprint/ui/__init__.py
msgid "Invalid proxy selected"
-msgstr ""
+msgstr "選擇了無效的代理伺服器"
#: changedetectionio/blueprint/ui/__init__.py
#, python-brace-format
@@ -1588,11 +1593,11 @@ msgstr "已清除監測任務 {} 的快照歷史記錄"
#: changedetectionio/blueprint/ui/__init__.py changedetectionio/blueprint/ui/templates/clear_all_history.html
msgid "clear"
-msgstr "clear"
+msgstr "清除"
#: changedetectionio/blueprint/ui/__init__.py
msgid "History clearing started in background"
-msgstr ""
+msgstr "已在背景開始清除歷史記錄"
#: changedetectionio/blueprint/ui/__init__.py
msgid "Incorrect confirmation text."
@@ -1631,7 +1636,7 @@ msgstr "已將 {} 個監測任務排入複查佇列。"
#: changedetectionio/blueprint/ui/__init__.py
msgid "Queueing watches for rechecking in background..."
-msgstr "背景將監測任務排入複查佇列..."
+msgstr "背景將監測任務排入複查佇列 ..."
#: changedetectionio/blueprint/ui/__init__.py
#, python-brace-format
@@ -1653,7 +1658,7 @@ msgstr "歷史記錄不足(需要 2 個快照)以顯示此監測任務的差
#: changedetectionio/blueprint/ui/diff.py
#, python-format
msgid "Monthly AI token budget of %(budget)s tokens reached (%(used)s used). Resets next month."
-msgstr ""
+msgstr "已達到每月 %(budget)s 權杖的 AI 權杖配額(已使用 %(used)s)。將於下個月重置。"
#: changedetectionio/blueprint/ui/edit.py
msgid "No watches to edit"
@@ -1672,20 +1677,20 @@ msgstr "已切換至模式 - {}。"
#: changedetectionio/blueprint/ui/edit.py
#, python-brace-format
msgid "Could not load '{}' processor, processor plugin might be missing. Please select a different processor."
-msgstr ""
+msgstr "無法載入「{}」處理器,可能缺少處理器外掛程式。請選擇不同的處理器。"
#: changedetectionio/blueprint/ui/edit.py
#, python-brace-format
msgid "Could not load '{}' processor, processor plugin might be missing."
-msgstr ""
+msgstr "無法載入「{}」處理器,可能缺少處理器外掛程式。"
#: changedetectionio/blueprint/ui/edit.py changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "System settings default"
-msgstr ""
+msgstr "系統設定預設值"
#: changedetectionio/blueprint/ui/edit.py changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Default"
-msgstr ""
+msgstr "預設值"
#: changedetectionio/blueprint/ui/edit.py
msgid "Updated watch - unpaused!"
@@ -1701,7 +1706,7 @@ msgstr "預覽無法使用 - 未完成抓取 / 檢查或未觸發"
#: changedetectionio/blueprint/ui/preview.py
msgid "Diff"
-msgstr ""
+msgstr "差異"
#: changedetectionio/blueprint/ui/queue.py changedetectionio/blueprint/watchlist/__init__.py
#, python-brace-format
@@ -1710,16 +1715,16 @@ msgstr "顯示第 {start} - {end} 條{record_name},共 {total}
#: changedetectionio/blueprint/ui/queue.py
msgid "queued items"
-msgstr ""
+msgstr "個排程項目"
#: changedetectionio/blueprint/ui/queue.py
#, python-brace-format
msgid "Queue cleared ({} items removed)."
-msgstr ""
+msgstr "已清除排程佇列(已移除 {} 個項目)。"
#: changedetectionio/blueprint/ui/templates/clear_all_history.html
msgid "This will remove version history (snapshots) for ALL watches, but keep your list of URLs!"
-msgstr "這將移除「所有」監測任務的版本歷史記錄(快照),但保留您的 URL 列表!"
+msgstr "這將移除「所有」監測任務的版本歷史記錄(快照),外加保留您的 URL 列表!"
#: changedetectionio/blueprint/ui/templates/clear_all_history.html
msgid "You may like to use the"
@@ -1807,11 +1812,11 @@ msgstr "已替換"
#: changedetectionio/blueprint/ui/templates/diff.html
msgid "Include all intermediate snapshots between the selected versions in the AI summary"
-msgstr ""
+msgstr "在 AI 摘要中包含所選版本之間的所有中間快照"
#: changedetectionio/blueprint/ui/templates/diff.html
msgid "AI: every change between versions"
-msgstr ""
+msgstr "AI:版本之間的所有變更"
#: changedetectionio/blueprint/ui/templates/diff.html changedetectionio/blueprint/ui/templates/preview.html
msgid "Keyboard:"
@@ -1876,7 +1881,7 @@ msgstr "專業提示:您可以於設定中啟用 「啟用密碼時分
#: changedetectionio/blueprint/ui/templates/diff.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Generating change summary…"
-msgstr ""
+msgstr "正在產生變更摘要 ..."
#: changedetectionio/blueprint/ui/templates/diff.html
msgid "Goto single snapshot"
@@ -1888,7 +1893,7 @@ msgstr "反白文字以分享或新增至忽略列表。"
#: changedetectionio/blueprint/ui/templates/diff.html
msgid "Download difference patch"
-msgstr ""
+msgstr "下載差異修補檔(Patch)"
#: changedetectionio/blueprint/ui/templates/diff.html changedetectionio/blueprint/ui/templates/preview.html
msgid "For now, Differences are performed on text, not graphically, only the latest screenshot is available."
@@ -1946,11 +1951,11 @@ msgstr "幫助與範例請見此處"
#: changedetectionio/blueprint/ui/templates/edit.html
msgid "Organisational tag/group name used in the main listing page"
-msgstr "群組/標籤名稱"
+msgstr "群組 / 標籤名稱"
#: changedetectionio/blueprint/ui/templates/edit.html
msgid "Also automatically applied by URL pattern:"
-msgstr ""
+msgstr "也會透過 URL 模式自動套用:"
#: changedetectionio/blueprint/ui/templates/edit.html
msgid "Automatically uses the page title if found, you can also use your own title/description here"
@@ -1970,7 +1975,7 @@ msgstr "每次檢查之間的間隔 / 時間量。"
#: changedetectionio/blueprint/ui/templates/edit.html
msgid "Set to empty to use system settings default"
-msgstr ""
+msgstr "留空以使用系統設定預設值"
#: changedetectionio/blueprint/ui/templates/edit.html
msgid "Connect using Bright Data and Oxylabs Proxies, find out more here."
@@ -2030,7 +2035,7 @@ msgstr "開啟文字尋找器"
#: changedetectionio/blueprint/ui/templates/edit.html
msgid "Please wait, first browser step can take a little time to load.."
-msgstr "請稍候,第一個瀏覽器步驟可能需要一點時間載入.."
+msgstr "請稍候,第一個瀏覽器步驟可能需要一點時間載入 ..."
#: changedetectionio/blueprint/ui/templates/edit.html
msgid "Click here to Start"
@@ -2149,7 +2154,7 @@ msgstr "移除每行文字前後的所有空白"
#: changedetectionio/blueprint/ui/templates/edit.html
msgid "AI Intent preview"
-msgstr ""
+msgstr "AI 意圖預覽"
#: changedetectionio/blueprint/ui/templates/edit.html
msgid "Loading..."
@@ -2191,7 +2196,7 @@ msgstr "繪製區域"
#: changedetectionio/blueprint/ui/templates/edit.html
msgid "One moment, fetching screenshot and element information.."
-msgstr "請稍候,正在抓取截圖和元素資訊.."
+msgstr "請稍候,正在抓取截圖和元素資訊 ..."
#: changedetectionio/blueprint/ui/templates/edit.html
msgid "Sorry, this functionality only works with fetchers that support Javascript and screenshots (such as playwright etc)."
@@ -2235,11 +2240,11 @@ msgstr "否"
#: changedetectionio/blueprint/ui/templates/edit.html
msgid "AI tokens (last check)"
-msgstr ""
+msgstr "AI 權杖(上次檢查)"
#: changedetectionio/blueprint/ui/templates/edit.html
msgid "AI tokens (total)"
-msgstr ""
+msgstr "AI 權杖(總計)"
#: changedetectionio/blueprint/ui/templates/edit.html
msgid "Download latest HTML snapshot"
@@ -2247,7 +2252,7 @@ msgstr "下載最新 HTML 快照"
#: changedetectionio/blueprint/ui/templates/edit.html
msgid "Download watch data package"
-msgstr ""
+msgstr "下載監測任務資料包"
#: changedetectionio/blueprint/ui/templates/edit.html
msgid "Delete Watch?"
@@ -2296,55 +2301,55 @@ msgstr "截圖需要支援截圖的內容抓取器 (Sockpuppetbrowser, selenium
#: changedetectionio/blueprint/ui/templates/queue.html
#, python-format
msgid "Worker %(num)s"
-msgstr ""
+msgstr "工作程序 %(num)s"
#: changedetectionio/blueprint/ui/templates/queue.html
msgid "— idle"
-msgstr ""
+msgstr " — 閒置"
#: changedetectionio/blueprint/ui/templates/queue.html
msgid "running"
-msgstr ""
+msgstr "執行中"
#: changedetectionio/blueprint/ui/templates/queue.html
msgid "idle"
-msgstr ""
+msgstr "閒置"
#: changedetectionio/blueprint/ui/templates/queue.html
msgid "done"
-msgstr ""
+msgstr "完成"
#: changedetectionio/blueprint/ui/templates/queue.html
msgid "cancel"
-msgstr ""
+msgstr "取消"
#: changedetectionio/blueprint/ui/templates/queue.html
msgid "No workers configured and queue is empty"
-msgstr ""
+msgstr "未設定工作程序且排程佇列為空"
#: changedetectionio/blueprint/ui/templates/queue.html
msgid "Watch no longer exists"
-msgstr ""
+msgstr "監測任務已不存在"
#: changedetectionio/blueprint/ui/templates/queue.html
msgid "Nothing running"
-msgstr ""
+msgstr "無執行中的項目"
#: changedetectionio/blueprint/ui/templates/queue.html
msgid "Check queue"
-msgstr ""
+msgstr "檢查佇列"
#: changedetectionio/blueprint/ui/templates/queue.html
msgid "Live view of what the workers are doing right now and what is waiting in line."
-msgstr ""
+msgstr "即時查看工作程序目前正在執行的操作以及正在排隊等候的項目。"
#: changedetectionio/blueprint/ui/templates/queue.html
msgid "Workers"
-msgstr ""
+msgstr "工作程序"
#: changedetectionio/blueprint/ui/templates/queue.html
msgid "Running now"
-msgstr ""
+msgstr "正在執行"
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
@@ -2353,39 +2358,39 @@ msgstr "已排程"
#: changedetectionio/blueprint/ui/templates/queue.html
msgid "Clear Queue?"
-msgstr ""
+msgstr "是否清除佇列?"
#: changedetectionio/blueprint/ui/templates/queue.html
msgid "This will remove every pending check from the queue.
Running checks will continue.
" -msgstr "" +msgstr "這將會移除佇列中所有待處理的檢查。
正在執行的檢查將會繼續。
" #: changedetectionio/blueprint/ui/templates/queue.html msgid "Clear" -msgstr "" +msgstr "清除" #: changedetectionio/blueprint/ui/templates/queue.html msgid "Clear Queue" -msgstr "" +msgstr "清除佇列" #: changedetectionio/blueprint/ui/templates/queue.html msgid "Workers & queue" -msgstr "" +msgstr "工作程序與佇列" #: changedetectionio/blueprint/ui/templates/queue.html msgid "Elapsed" -msgstr "" +msgstr "已耗時" #: changedetectionio/blueprint/ui/templates/queue.html msgid "Status" -msgstr "" +msgstr "狀態" #: changedetectionio/blueprint/ui/templates/queue.html msgid "No workers configured (FETCH_WORKERS=0) and queue is empty" -msgstr "" +msgstr "未設定工作程序(FETCH_WORKERS=0)且排程佇列為空" #: changedetectionio/blueprint/ui/templates/queue.html msgid "Waiting for new pages to check…" -msgstr "" +msgstr "正在等待新網頁以進行檢查 ..." #: changedetectionio/blueprint/ui/views.py #, python-brace-format @@ -2488,7 +2493,7 @@ msgstr "預覽" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Changedetection.io can monitor more than just web-pages! See our plugins!" -msgstr "" +msgstr "Changedetection.io 不僅能監測網頁!快來看看我們的外掛程式!" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "More info" @@ -2496,103 +2501,105 @@ msgstr "更多資訊" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "You can also add 'shared' watches." -msgstr "" +msgstr "您也可以新增「共享的」監測任務。" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Goto full history" -msgstr "" +msgstr "前往完整歷史記錄" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html msgid "Loading price history…" -msgstr "" +msgstr "正在載入價格歷史記錄 ..." #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #: changedetectionio/processors/restock_diff/difference.py #: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html msgid "Out of stock" -msgstr "" +msgstr "缺貨" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html msgid "No price data available to graph yet." -msgstr "" +msgstr "尚無可用的價格資料以繪製圖表。" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html msgid "Could not load price history." -msgstr "" +msgstr "無法載入價格歷史記錄。" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html msgid "Changes" -msgstr "" +msgstr "變更" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html msgid "Average price" -msgstr "" +msgstr "平均價格" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html msgid "Currently low" -msgstr "" +msgstr "目前處於低點" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html msgid "Currently typical" -msgstr "" +msgstr "目前處於一般水準" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html msgid "Currently high" -msgstr "" +msgstr "目前處於高點" +#. {pct} is a percentage including the % sign, e.g. "80%" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html -#, python-format -msgid "cheaper than %s% of tracked prices" -msgstr "" +#, python-brace-format +msgid "cheaper than {pct} of tracked prices" +msgstr "比 {pct} 已追蹤的價格更便宜" +#. {pct} is a percentage including the % sign, e.g. "80%" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html -#, python-format -msgid "more expensive than %s% of tracked prices" -msgstr "" +#, python-brace-format +msgid "more expensive than {pct} of tracked prices" +msgstr "比 {pct} 已追蹤的價格更昂貴" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html msgid "around the usual price" -msgstr "" +msgstr "大約在一般價格附近" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html msgid "avg" -msgstr "" +msgstr "平均" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Web page URL" -msgstr "" +msgstr "網頁 URL" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #, python-format msgid "All %(page)s on this page are selected." -msgstr "" +msgstr "已選取此頁面上的所有 %(page)s。" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #, python-format msgid "Select all %(total)s matching" -msgstr "" +msgstr "選取所有 %(total)s 個符合的項目" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #, python-format msgid "All %(total)s matching are selected." -msgstr "" +msgstr "已選取所有 %(total)s 個符合的項目。" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html #, python-format msgid "%(count)s records selected" -msgstr "" +msgstr "已選取 %(count)s 筆記錄" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Searching" @@ -2604,7 +2611,7 @@ msgstr "全部" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Filter watches" -msgstr "" +msgstr "過濾監測任務" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Unread" @@ -2612,7 +2619,7 @@ msgstr "未讀" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Deals" -msgstr "" +msgstr "特惠" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "With errors" @@ -2620,11 +2627,11 @@ msgstr "有錯誤" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Filter by type" -msgstr "" +msgstr "按類型過濾" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "All types" -msgstr "" +msgstr "所有類型" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Mark all viewed" @@ -2641,11 +2648,11 @@ msgstr "於 '%(title)s'" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "RSS Feed" -msgstr "" +msgstr "RSS Feed" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Invert" -msgstr "" +msgstr "反選" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Pause" @@ -2669,15 +2676,15 @@ msgstr "標籤" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Set browser / fetch method for selected" -msgstr "" +msgstr "為所選項目設定瀏覽器 / 抓取方式" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Apply" -msgstr "" +msgstr "套用" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Set proxy for selected" -msgstr "" +msgstr "為所選項目設定代理伺服器" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Mark viewed" @@ -2718,11 +2725,11 @@ msgstr "您確定要刪除所選的監測任務嗎?
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html msgid "Close" -msgstr "" +msgstr "關閉" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Web page" -msgstr "" +msgstr "網頁" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html msgid "Restock & Price" @@ -2738,165 +2745,165 @@ msgstr "匯入列表" #: changedetectionio/conditions/__init__.py msgid "Choose one - Operator" -msgstr "" +msgstr "選擇一個 - 運算子" #: changedetectionio/conditions/__init__.py msgid "Greater Than" -msgstr "" +msgstr "大於" #: changedetectionio/conditions/__init__.py msgid "Less Than" -msgstr "" +msgstr "小於" #: changedetectionio/conditions/__init__.py msgid "Greater Than or Equal To" -msgstr "" +msgstr "大於或等於" #: changedetectionio/conditions/__init__.py msgid "Less Than or Equal To" -msgstr "" +msgstr "小於或等於" #: changedetectionio/conditions/__init__.py msgid "Equals" -msgstr "" +msgstr "等於" #: changedetectionio/conditions/__init__.py msgid "Not Equals" -msgstr "" +msgstr "不等於" #: changedetectionio/conditions/__init__.py msgid "Contains" -msgstr "" +msgstr "包含" #: changedetectionio/conditions/__init__.py msgid "Choose one - Field" -msgstr "" +msgstr "選擇一個 - 欄位" #: changedetectionio/conditions/default_plugin.py msgid "Does NOT Contain" -msgstr "" +msgstr "不包含" #: changedetectionio/conditions/default_plugin.py msgid "Text Starts With" -msgstr "" +msgstr "文字開頭為" #: changedetectionio/conditions/default_plugin.py msgid "Text Ends With" -msgstr "" +msgstr "文字結尾為" #: changedetectionio/conditions/default_plugin.py msgid "Length minimum" -msgstr "" +msgstr "最小長度" #: changedetectionio/conditions/default_plugin.py msgid "Length maximum" -msgstr "" +msgstr "最大長度" #: changedetectionio/conditions/default_plugin.py msgid "Text Matches Regex" -msgstr "" +msgstr "文字符合正規表示式" #: changedetectionio/conditions/default_plugin.py msgid "Text Does NOT Match Regex" -msgstr "" +msgstr "文字不符合正規表示式" #: changedetectionio/conditions/default_plugin.py msgid "Extracted number after 'Filters & Triggers'" -msgstr "" +msgstr "「過濾器與觸發器」之後提取的數字" #: changedetectionio/conditions/default_plugin.py msgid "Page text after 'Filters & Triggers'" -msgstr "" +msgstr "「過濾器與觸發器」之後的網頁文字" #: changedetectionio/conditions/form.py msgid "Field" -msgstr "" +msgstr "欄位" #: changedetectionio/conditions/form.py msgid "Operator" -msgstr "" +msgstr "運算子" #: changedetectionio/conditions/form.py msgid "A value" -msgstr "" +msgstr "數值" #: changedetectionio/conditions/form.py msgid "Operator is required." -msgstr "" +msgstr "必須填寫運算子。" #: changedetectionio/conditions/form.py msgid "Field is required." -msgstr "" +msgstr "必須填寫欄位。" #: changedetectionio/conditions/form.py msgid "Value is required." -msgstr "" +msgstr "必須填寫數值。" #: changedetectionio/conditions/plugins/levenshtein_plugin.py msgid "Levenshtein - Text similarity ratio" -msgstr "" +msgstr "Levenshtein - 文字相似度比例" #: changedetectionio/conditions/plugins/levenshtein_plugin.py msgid "Levenshtein - Text change distance" -msgstr "" +msgstr "Levenshtein - 文字變更距離" #: changedetectionio/conditions/plugins/levenshtein_plugin.py msgid "Not enough history to calculate Levenshtein metrics" -msgstr "" +msgstr "歷史記錄不足,無法計算 Levenshtein 指標" #: changedetectionio/conditions/plugins/levenshtein_plugin.py msgid "Snapshot too large for edit statistics, skipping." -msgstr "" +msgstr "快照太大,無法進行編輯統計,跳過。" #: changedetectionio/conditions/plugins/levenshtein_plugin.py msgid "Unable to calculate Levenshtein metrics" -msgstr "" +msgstr "無法計算 Levenshtein 指標" #: changedetectionio/conditions/plugins/levenshtein_plugin.py msgid "Levenshtein Text Similarity Details" -msgstr "" +msgstr "Levenshtein 文字相似度詳細資訊" #: changedetectionio/conditions/plugins/levenshtein_plugin.py msgid "Raw distance (edits needed)" -msgstr "" +msgstr "原始距離(需要的編輯次數)" #: changedetectionio/conditions/plugins/levenshtein_plugin.py msgid "Similarity ratio" -msgstr "" +msgstr "相似度比例" #: changedetectionio/conditions/plugins/levenshtein_plugin.py msgid "Percent similar" -msgstr "" +msgstr "相似百分比" #: changedetectionio/conditions/plugins/levenshtein_plugin.py msgid "" "Levenshtein metrics compare the last two snapshots, measuring how many character edits are needed to transform one " "into the other." -msgstr "" +msgstr "Levenshtein 指標會比較最後兩個快照,測量將一個快照轉換為另一個快照需要多少個字元編輯。" #: changedetectionio/conditions/plugins/levenshtein_plugin.py msgid "Error calculating Levenshtein metrics" -msgstr "" +msgstr "計算 Levenshtein 指標時發生錯誤" #: changedetectionio/conditions/plugins/wordcount_plugin.py msgid "Word count of content" -msgstr "" +msgstr "內容字數" #: changedetectionio/conditions/plugins/wordcount_plugin.py msgid "Content Analysis" -msgstr "" +msgstr "內容分析" #: changedetectionio/conditions/plugins/wordcount_plugin.py msgid "Word count (latest snapshot)" -msgstr "" +msgstr "字數(最新快照)" #: changedetectionio/conditions/plugins/wordcount_plugin.py msgid "Word count is a simple measure of content length, calculated by splitting text on whitespace." -msgstr "" +msgstr "字數是內容長度的簡單測量方式,透過在空白處拆分文字來計算。" #: changedetectionio/content_fetchers/requests.py msgid "Basic fast Plaintext/HTTP Client" -msgstr "" +msgstr "基礎快速純文字 / HTTP 用戶端" #: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py #: changedetectionio/realtime/socket_server.py @@ -2905,59 +2912,59 @@ msgstr "還沒有" #: changedetectionio/flask_app.py msgid "0 seconds" -msgstr "" +msgstr "0 秒" #: changedetectionio/flask_app.py msgid "year" -msgstr "" +msgstr "年" #: changedetectionio/flask_app.py msgid "years" -msgstr "" +msgstr "年" #: changedetectionio/flask_app.py msgid "month" -msgstr "" +msgstr "月" #: changedetectionio/flask_app.py msgid "months" -msgstr "" +msgstr "月" #: changedetectionio/flask_app.py msgid "week" -msgstr "" +msgstr "週" #: changedetectionio/flask_app.py msgid "weeks" -msgstr "" +msgstr "週" #: changedetectionio/flask_app.py msgid "day" -msgstr "" +msgstr "天" #: changedetectionio/flask_app.py msgid "days" -msgstr "" +msgstr "天" #: changedetectionio/flask_app.py msgid "hour" -msgstr "" +msgstr "小時" #: changedetectionio/flask_app.py msgid "hours" -msgstr "" +msgstr "小時" #: changedetectionio/flask_app.py msgid "minute" -msgstr "" +msgstr "分鐘" #: changedetectionio/flask_app.py msgid "minutes" -msgstr "" +msgstr "分鐘" #: changedetectionio/flask_app.py msgid "second" -msgstr "" +msgstr "秒" #: changedetectionio/blueprint/settings/templates/settings.html changedetectionio/flask_app.py msgid "seconds" @@ -3119,7 +3126,7 @@ msgstr "處理器" #: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/forms.py msgid "Browser" -msgstr "" +msgstr "瀏覽器" #: changedetectionio/forms.py msgid "Edit > Watch" @@ -3167,7 +3174,7 @@ msgstr "通知基礎 URL 覆寫" #: changedetectionio/forms.py msgid "Not set" -msgstr "" +msgstr "未設定" #: changedetectionio/blueprint/tags/form.py changedetectionio/blueprint/tags/templates/groups-overview.html #: changedetectionio/forms.py @@ -3200,7 +3207,7 @@ msgstr "選擇器" #: changedetectionio/forms.py msgid "CSS or xPath selector" -msgstr "" +msgstr "CSS 或 xPath 選擇器" #: changedetectionio/forms.py msgid "value" @@ -3208,11 +3215,11 @@ msgstr "值" #: changedetectionio/conditions/form.py changedetectionio/forms.py msgid "Value" -msgstr "" +msgstr "值" #: changedetectionio/forms.py msgid "Web Page URL" -msgstr "" +msgstr "網頁 URL" #: changedetectionio/forms.py msgid "Open Link Override" @@ -3220,7 +3227,7 @@ msgstr "" #: changedetectionio/forms.py msgid "Group Tag" -msgstr "" +msgstr "群組標籤" #: changedetectionio/forms.py msgid "Time Between Check" @@ -3237,7 +3244,7 @@ msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html changedetectionio/blueprint/ui/templates/diff.html #: changedetectionio/forms.py msgid "AI Change Summary" -msgstr "" +msgstr "AI 變更摘要" #: changedetectionio/blueprint/tags/form.py changedetectionio/forms.py msgid "Change Summary prompt - Append or Replace the default?" @@ -3265,7 +3272,7 @@ msgstr "移除元素" #: changedetectionio/forms.py msgid "Extract lines containing" -msgstr "" +msgstr "提取包含此內容的行" #: changedetectionio/forms.py msgid "Extract text" @@ -3378,7 +3385,7 @@ msgstr "在列表中使用頁面
%(token)s placeholders listed below"
-msgstr ""
+msgstr "接受下方列出的 %(token)s 預留位置"
#: changedetectionio/templates/_common_fields.html
msgid "Customise notifications"
-msgstr ""
+msgstr "自訂通知"
#: changedetectionio/templates/_common_fields.html
msgid "Title for all notifications"
@@ -4276,15 +4283,15 @@ msgstr "所有通知的標題"
#: changedetectionio/templates/_common_fields.html
msgid "For JSON payloads, use"
-msgstr ""
+msgstr "對於 JSON 承載資料(Payloads),使用"
#: changedetectionio/templates/_common_fields.html
msgid "without quotes for automatic escaping, for example -"
-msgstr ""
+msgstr "且不加引號以進行自動逸出,例如 -"
#: changedetectionio/templates/_common_fields.html
msgid "URL encoding, use"
-msgstr ""
+msgstr "URL 編碼,使用"
#: changedetectionio/templates/_common_fields.html
msgid "for example -"
@@ -4292,11 +4299,11 @@ msgstr "例如 -"
#: changedetectionio/templates/_common_fields.html
msgid "Regular-expression replace, use"
-msgstr ""
+msgstr "正規表示式替換,使用"
#: changedetectionio/templates/_common_fields.html
msgid "For a complete reference of all Jinja2 built-in filters, users can refer to the"
-msgstr ""
+msgstr "如需所有 Jinja2 內建過濾器的完整參考,使用者可以參閱"
#: changedetectionio/templates/_common_fields.html
msgid "Format for all notifications"
@@ -4304,19 +4311,19 @@ msgstr "所有通知的格式"
#: changedetectionio/templates/_common_fields.html
msgid "Discord does not render HTML — switch to"
-msgstr ""
+msgstr "Discord 不會渲染 HTML — 請切換至"
#: changedetectionio/templates/_common_fields.html
msgid "Plain Text"
-msgstr ""
+msgstr "純文字"
#: changedetectionio/templates/_common_fields.html
msgid "format to avoid"
-msgstr ""
+msgstr "格式,以避免"
#: changedetectionio/templates/_common_fields.html
msgid "and other HTML entities appearing literally in your notifications."
-msgstr ""
+msgstr "及其他 HTML 實體字元直接以字面形式出現在您的通知中。"
#: changedetectionio/templates/_helpers.html
msgid "Entry"
@@ -4404,135 +4411,135 @@ msgstr "當文字符合時,阻擋變更檢測"
#: changedetectionio/templates/_stab.html
msgid "Settings sections"
-msgstr ""
+msgstr "設定區段"
#: changedetectionio/templates/base.html
msgid "Confirm Action"
-msgstr ""
+msgstr "確認操作"
#: changedetectionio/templates/base.html
msgid "Are you sure?"
-msgstr ""
+msgstr "您確定嗎?"
#: changedetectionio/templates/base.html
msgid "Are you sure you want to proceed?
" -msgstr "" +msgstr "您確定要繼續嗎?
" #: changedetectionio/templates/base.html msgid "Confirm" -msgstr "" +msgstr "確認" #: changedetectionio/templates/base.html #, python-format msgid "Delete %(name)s?" -msgstr "" +msgstr "刪除 %(name)s?" #: changedetectionio/templates/base.html #, python-format msgid "Are you sure you want to delete %(name)s?
This action cannot be undone.
" -msgstr "" +msgstr "您確定要刪除 %(name)s 嗎?
此動作無法復原。
" #: changedetectionio/templates/base.html #, python-format msgid "Unlink %(name)s?" -msgstr "" +msgstr "解除連結 %(name)s?" #: changedetectionio/templates/base.html #, python-format msgid "" "Are you sure you want to unlink all watches from %(name)s?
The tag will be kept but watches" " will be removed from it.
" -msgstr "" +msgstr "您確定要從 %(name)s 解除所有監測任務的連結嗎?
標籤將被保留,但監測任務將從中移除。
" #: changedetectionio/templates/base.html msgid "There was an error communicating with the server." -msgstr "" +msgstr "與伺服器通訊時發生錯誤。" #: changedetectionio/templates/base.html msgid "There was a problem processing the request, please reload the page." -msgstr "" +msgstr "處理請求時發生問題,請重新載入網頁。" #: changedetectionio/templates/base.html #, python-format msgid "There was a problem processing the request: %(error)s" -msgstr "" +msgstr "處理請求時發生問題:%(error)s" #: changedetectionio/templates/base.html msgid "Existing filters under the 'Filters & Triggers' tab were cleared." -msgstr "" +msgstr "「過濾器與觸發器」分頁下的現有過濾器已清除。" #: changedetectionio/templates/base.html msgid "Fetching element data.." -msgstr "" +msgstr "正在抓取元素資料 ..." #: changedetectionio/templates/base.html msgid "Rendering.." -msgstr "" +msgstr "正在渲染 ..." #: changedetectionio/templates/base.html msgid "Draw mode - click and drag to select an area" -msgstr "" +msgstr "繪製模式 - 點擊並拖曳以選擇區域" #: changedetectionio/templates/base.html msgid "Hover over elements to select" -msgstr "" +msgstr "將滑鼠懸停在元素上以進行選擇" #: changedetectionio/templates/base.html msgid "Image copied to clipboard!" -msgstr "" +msgstr "圖片已複製到剪貼簿!" #: changedetectionio/templates/base.html msgid "Failed to copy image. Your browser may not support this feature." -msgstr "" +msgstr "複製圖片失敗。您的瀏覽器可能不支援此功能。" #: changedetectionio/templates/base.html msgid "Please select the text/lines you want to capture first by highlighting with your mouse." -msgstr "" +msgstr "請先使用滑鼠反白來選擇您想要捕捉的文字 / 行。" #: changedetectionio/templates/base.html msgid "Please select text within the diff content." -msgstr "" +msgstr "請在差異(Diff)內容中選擇文字。" #: changedetectionio/templates/base.html #, python-format msgid "Failed to generate image: %(error)s" -msgstr "" +msgstr "產生圖片失敗:%(error)s" #: changedetectionio/templates/base.html msgid "Change Detection Diff" -msgstr "" +msgstr "變更檢測差異(Diff)" #: changedetectionio/templates/base.html msgid "Check out this change detected via changedetection.io" -msgstr "" +msgstr "查看透過 changedetection.io 檢測到的此變更" #: changedetectionio/templates/base.html msgid "Please fill in all fields (Field, Operator, and Value) before verifying." -msgstr "" +msgstr "請在驗證前填寫所有欄位(欄位、運算子和數值)。" #: changedetectionio/templates/base.html msgid "Error verifying condition." -msgstr "" +msgstr "驗證條件時發生錯誤。" #: changedetectionio/templates/base.html msgid "Destination email" -msgstr "" +msgstr "目的電子郵件" #: changedetectionio/templates/base.html msgid "Content after filters" -msgstr "" +msgstr "過濾後的內容" #: changedetectionio/templates/base.html msgid "Content raw/before filters" -msgstr "" +msgstr "過濾前的原始內容" #: changedetectionio/templates/base.html msgid "Main navigation" -msgstr "" +msgstr "主導覽列" #: changedetectionio/templates/base.html msgid "Share this link:" -msgstr "" +msgstr "分享此連結:" #: changedetectionio/templates/base.html msgid "Real-time updates offline" @@ -4552,15 +4559,15 @@ msgstr "語言支援尚在 Beta 階段,請在 GitHub 上提交 PR 以協助我 #: changedetectionio/templates/base.html msgid "AI / LLM not configured" -msgstr "" +msgstr "AI / LLM 未設定" #: changedetectionio/templates/base.html msgid "LLM-powered summaries are not yet enabled. Configure an AI provider in Settings to get started." -msgstr "" +msgstr "尚未啟用 LLM 驅動的摘要功能。請在「設定」中設定 AI 供應商以開始使用。" #: changedetectionio/templates/base.html msgid "Go to AI / LLM Settings" -msgstr "" +msgstr "前往 AI / LLM 設定" #: changedetectionio/templates/base.html changedetectionio/templates/sidebar-nav.html msgid "Search" @@ -4600,60 +4607,60 @@ msgstr "" msgid "" "Describe what you care about. The AI evaluates every detected change against this and only notifies you when it " "matches." -msgstr "" +msgstr "描述您關心的內容。AI 會針對此描述評估每次檢測到的變更,且僅在符合時才通知您。" #: changedetectionio/templates/edit/include_llm_intent.html msgid "Set a change intent for all watches in this tag/group. Each watch can override with its own." -msgstr "" +msgstr "為此標籤 / 群組中的所有監測任務設定變更意圖。每個監測任務都可以使用自己的意圖進行覆寫。" #: changedetectionio/templates/edit/include_llm_intent.html #, python-format msgid "From group '%(name)s': %(value)s" -msgstr "" +msgstr "來自群組 '%(name)s':%(value)s" #: changedetectionio/templates/edit/include_llm_intent.html msgid "e.g. Alert me when the price drops below $300, or a new product is launched. Ignore footer and navigation changes." -msgstr "" +msgstr "例如:當價格跌破 $300 或推出新產品時提醒我。忽略頁尾與導覽列的變更。" #: changedetectionio/templates/edit/include_llm_intent.html msgid "e.g. Flag price changes or new product launches across all watches in this group" -msgstr "" +msgstr "例如:在此群組中的所有監測任務中標記價格變更或新產品推出" #: changedetectionio/templates/edit/include_llm_intent.html msgid "Examples:" -msgstr "" +msgstr "範例:" #: changedetectionio/templates/edit/include_llm_intent.html msgid "Only notify if the price drops below $200, or a limited-time deal is added" -msgstr "" +msgstr "僅在價格降至 $200 以下或新增限時優惠時通知" #: changedetectionio/templates/edit/include_llm_intent.html msgid "Alert when a new recall, safety notice, or product withdrawal is published" -msgstr "" +msgstr "當發布新的召回、安全通知或產品撤銷時發出警報" #: changedetectionio/templates/edit/include_llm_intent.html msgid "Notify when a new grant round opens or an application deadline is announced" -msgstr "" +msgstr "當新一輪補助開放或宣布申請截止日期時通知" #: changedetectionio/templates/edit/include_llm_intent.html msgid "Only important if package versions change or a CVE is mentioned" -msgstr "" +msgstr "僅在套件版本變更或提及 CVE 時才重要" #: changedetectionio/templates/edit/include_llm_intent.html #, python-format msgid "AI pre-filter active:%(filter)s — narrows content scope before evaluation"
-msgstr ""
+msgstr "AI 預先過濾器已啟用:%(filter)s — 在評估前縮小內容範圍"
#: changedetectionio/templates/edit/include_llm_intent.html
#, python-format
msgid ""
"When a change is detected, the AI describes it according to your instructions and replaces %(diff)s in "
"your notification. Use %(raw_diff)s if you still want the original diff."
-msgstr ""
+msgstr "當檢測到變更時,AI 會根據您的說明進行描述,並替換您通知中的 %(diff)s。如果您仍需要原始差異,請使用 %(raw_diff)s。"
#: changedetectionio/templates/edit/include_llm_intent.html
msgid "Describe how changes should be summarised in notifications for all watches in this group."
-msgstr ""
+msgstr "描述此群組中所有監測任務的通知應如何摘要變更。"
#: changedetectionio/templates/edit/include_llm_intent.html
msgid ""
@@ -4669,110 +4676,110 @@ msgstr ""
#: changedetectionio/templates/edit/include_llm_intent.html
msgid "List each new item added with its name and price. Translate to English."
-msgstr ""
+msgstr "列出每個新新增項目的名稱與價格。翻譯成英文。"
#: changedetectionio/templates/edit/include_llm_intent.html
msgid "Summarise what events were added or cancelled. Two sentences maximum."
-msgstr ""
+msgstr "摘要新增或取消了哪些活動。最多兩句話。"
#: changedetectionio/templates/edit/include_llm_intent.html
msgid "Describe the price change: old price, new price, percentage difference."
-msgstr ""
+msgstr "描述價格變化:舊價格、新價格、百分比差異。"
#: changedetectionio/templates/edit/include_llm_intent.html
msgid "AI"
-msgstr ""
+msgstr "AI"
#: changedetectionio/templates/edit/include_llm_intent.html
#, python-format
msgid ""
"Configure an AI / LLM provider in Settings → AI / LLM to enable AI Change Intent and AI "
"Change Summary."
-msgstr ""
+msgstr "請在 設定 → AI / LLM 中設定 AI / LLM 供應商,以啟用 AI 變更意圖與 AI 變更摘要功能。"
#: changedetectionio/templates/edit/include_llm_intent.html
#, python-format
msgid "Configure an AI / LLM provider in Settings → AI / LLM to enable AI features for this group."
-msgstr ""
+msgstr "請在 設定 → AI / LLM 中設定 AI / LLM 供應商,以啟用此群組的 AI 功能。"
#: changedetectionio/templates/edit/include_subtract.html
msgid "Note!: //text() function does not work where the json:, use json:$ to force re-formatting if required,"
-msgstr ""
+msgstr "字首加上 json:,如果需要,使用 json:$ 強制重新格式化,"
#: changedetectionio/templates/edit/include_subtract.html
msgid "test your JSONPath here"
-msgstr ""
+msgstr "在此處測試您的 JSONPath"
#: changedetectionio/templates/edit/include_subtract.html
msgid "Prefix jqraw: outputs the results as text instead of a JSON list."
-msgstr ""
+msgstr "字首 jqraw: 將結果輸出為純文字,而非 JSON 列表。"
#: changedetectionio/templates/edit/include_subtract.html
msgid "jq support not installed"
-msgstr ""
+msgstr "未安裝 jq 支援"
#: changedetectionio/templates/edit/include_subtract.html
msgid ""
"Limit text to this XPath rule, simply start with a forward-slash. To specify XPath to be used explicitly or the XPath"
" rule starts with an XPath function: Prefix with xpath:"
-msgstr ""
+msgstr "將文字限制在此 XPath 規則中,只需以正斜線開頭即可。若要明確指定要使用的 XPath,或 XPath 規則以 XPath 函數開頭:字首加上 xpath:"
#: changedetectionio/templates/edit/include_subtract.html
msgid "test your XPath here"
-msgstr ""
+msgstr "在此處測試您的 XPath"
#: changedetectionio/templates/edit/include_subtract.html
msgid "Get all titles from an RSS feed //title/text()"
-msgstr ""
+msgstr "從 RSS Feed 獲取所有標題 //title/text()"
#: changedetectionio/templates/edit/include_subtract.html
msgid "To use XPath1.0: Prefix with xpath1:"
-msgstr ""
+msgstr "若要使用 XPath 1.0:字首加上 xpath1:"
#: changedetectionio/templates/edit/include_subtract.html
msgid "here for more CSS selector help"
-msgstr ""
+msgstr "此處獲取更多 CSS 選擇器說明"
#: changedetectionio/templates/edit/text-options.html
msgid "Text to wait for before triggering a change/notification, all text and regex are tested case-insensitive."
-msgstr ""
+msgstr "觸發變更 / 通知前要等待的文字,所有文字與正規表示式皆不區分大小寫進行測試。"
#: changedetectionio/templates/edit/text-options.html
msgid "Trigger text is processed from the result-text that comes out of any CSS/JSON Filters for this monitor"
-msgstr ""
+msgstr "觸發文字由該監測器的任何 CSS / JSON 過濾器產生的結果文字進行處理"
#: changedetectionio/templates/edit/text-options.html
msgid "Each line is processed separately (think of each line as \"OR\")"
-msgstr ""
+msgstr "每行獨立處理(將每行視為「或 OR」)"
#: changedetectionio/templates/edit/text-options.html
msgid "Note: Wrap in forward slash / to use regex example:"
-msgstr ""
+msgstr "注意:包裹在正斜線 / 中以使用正規表示式,範例:"
#: changedetectionio/templates/edit/text-options.html
msgid "You can also use"
-msgstr ""
+msgstr "您也可以使用"
#: changedetectionio/templates/edit/text-options.html
msgid "conditions"
-msgstr ""
+msgstr "條件"
#: changedetectionio/templates/edit/text-options.html
msgid "\"Page text\" - with Contains, Starts With, Not Contains and many more"
-msgstr ""
+msgstr "「網頁文字」- 包含、開頭為、不包含以及更多選項"
#: changedetectionio/templates/edit/text-options.html
msgid ""
@@ -4781,20 +4788,24 @@ msgid ""
"Not in stock\n"
"Unavailable"
msgstr ""
+"例如:Out of stock\n"
+"Sold out\n"
+"Not in stock\n"
+"Unavailable"
#: changedetectionio/templates/edit/text-options.html
msgid ""
"Block change-detection while this text is on the page, all text and regex are tested case-insensitive, good for "
"waiting for when a product is available again"
-msgstr ""
+msgstr "當此文字出現在網頁上時阻擋變更檢測,所有文字與正規表示式皆不區分大小寫進行測試,適合用於等待產品重新開賣 / 有貨"
#: changedetectionio/templates/edit/text-options.html
msgid "Block text is processed from the result-text that comes out of any CSS/JSON Filters for this monitor"
-msgstr ""
+msgstr "阻擋文字由該監測器的任何 CSS / JSON 過濾器產生的結果文字進行處理"
#: changedetectionio/templates/edit/text-options.html
msgid "All lines here must not exist (think of each line as \"OR\")"
-msgstr ""
+msgstr "此處的所有行皆必須不存在(將每行視為「或 OR」)"
#: changedetectionio/templates/edit/text-options.html
msgid ""
@@ -4802,59 +4813,62 @@ msgid ""
"temperature\n"
"price"
msgstr ""
+"celsius\n"
+"temperature\n"
+"price"
#: changedetectionio/templates/edit/text-options.html
msgid "Keep only lines that contain any of these words or phrases (plain text, case-insensitive)"
-msgstr ""
+msgstr "僅保留包含這些字詞或片語的行(純文字,不區分大小寫)"
#: changedetectionio/templates/edit/text-options.html
msgid "One entry per line — any line in the page text that contains a match is kept"
-msgstr ""
+msgstr "每行一個項目 — 網頁文字中任何包含相符內容的行都將被保留"
#: changedetectionio/templates/edit/text-options.html
msgid "Simpler alternative to regex — use this when you just want lines about a specific topic"
-msgstr ""
+msgstr "比正規表示式更簡單的替代方案 — 當您只想獲取關於特定主題的行時使用此功能"
#: changedetectionio/templates/edit/text-options.html
msgid "enter celsius to keep only lines mentioning temperature readings"
-msgstr ""
+msgstr "輸入 celsius 以僅保留提及溫度讀數的行"
#: changedetectionio/templates/edit/text-options.html
msgid "Extracts text in the final output (line by line) after other filters using regular expressions or string match:"
-msgstr ""
+msgstr "在其他過濾器之後,使用正規表示式或字串符合在最終輸出中提取文字(逐行):"
#: changedetectionio/templates/edit/text-options.html
msgid "Regular expression - example"
-msgstr ""
+msgstr "正規表示式 - 範例"
#: changedetectionio/templates/edit/text-options.html
msgid "Don't forget to consider the white-space at the start of a line"
-msgstr ""
+msgstr "請別忘記考慮行首的空白字元"
#: changedetectionio/templates/edit/text-options.html
#, python-format
msgid "Use //(?aiLmsux)) type flags (more information here)"
-msgstr ""
+msgstr "使用 //(?aiLmsux)) 類型旗標(更多資訊請見此處)"
#: changedetectionio/templates/edit/text-options.html
msgid "Keyword example - example: Out of stock"
-msgstr ""
+msgstr "關鍵字範例 - 範例:Out of stock"
#: changedetectionio/templates/edit/text-options.html
msgid "Use groups to extract just that text - example"
-msgstr ""
+msgstr "使用群組以僅提取該文字 - 範例"
#: changedetectionio/templates/edit/text-options.html
msgid "returns a list of years only"
-msgstr ""
+msgstr "僅傳回年份列表"
#: changedetectionio/templates/edit/text-options.html
msgid "Example - match lines containing a keyword"
-msgstr ""
+msgstr "範例 - 符合包含關鍵字的行"
#: changedetectionio/templates/edit/text-options.html
msgid "One line per regular-expression/string match"
-msgstr ""
+msgstr "每個正規表示式 / 字串符合佔用一行"
#: changedetectionio/templates/login.html
msgid "Login"
@@ -4862,23 +4876,23 @@ msgstr "登入"
#: changedetectionio/templates/menu.html
msgid "Resume automatic scheduling"
-msgstr ""
+msgstr "恢復自動排程"
#: changedetectionio/templates/menu.html
msgid "Pause auto-queue scheduling of watches"
-msgstr ""
+msgstr "暫停監測任務的自動佇列排程"
#: changedetectionio/templates/menu.html
msgid "Scheduling paused — click to resume"
-msgstr ""
+msgstr "排程已暫停 — 點擊以恢復"
#: changedetectionio/templates/menu.html
msgid "Scheduling active — click to pause all"
-msgstr ""
+msgstr "排程進行中 — 點擊以暫停全部"
#: changedetectionio/templates/menu.html
msgid "Paused"
-msgstr ""
+msgstr "已暫停"
#: changedetectionio/templates/menu.html
msgid "Running"
@@ -4894,15 +4908,15 @@ msgstr "通知已靜音 - 點擊以取消靜音"
#: changedetectionio/templates/menu.html
msgid "Alerts on"
-msgstr ""
+msgstr "警報開啟"
#: changedetectionio/templates/menu.html
msgid "Log out"
-msgstr ""
+msgstr "登出"
#: changedetectionio/templates/menu.html
msgid "Settings"
-msgstr ""
+msgstr "設定"
#: changedetectionio/templates/menu.html
msgid "EDIT"
@@ -4910,15 +4924,15 @@ msgstr "編輯"
#: changedetectionio/templates/menu.html
msgid "Website Change Detection and Notification."
-msgstr ""
+msgstr "網站變更檢測與通知。"
#: changedetectionio/templates/menu.html
msgid "Toggle AI Mode"
-msgstr ""
+msgstr "切換 AI 模式"
#: changedetectionio/templates/menu.html
msgid "Toggle AI mode"
-msgstr ""
+msgstr "切換 AI 模式"
#: changedetectionio/templates/menu.html
msgid "Toggle Light/Dark Mode"
@@ -4930,35 +4944,35 @@ msgstr "切換亮 / 暗模式"
#: changedetectionio/templates/sidebar-nav.html
msgid "Add a page watch"
-msgstr ""
+msgstr "新增網頁監測"
#: changedetectionio/templates/sidebar-nav.html
msgid "Page Watches"
-msgstr ""
+msgstr "網頁監測任務"
#: changedetectionio/templates/sidebar-nav.html
msgid "Unread changes"
-msgstr ""
+msgstr "未讀變更"
#: changedetectionio/templates/sidebar-nav.html
msgid "Watch Groups"
-msgstr ""
+msgstr "監測群組"
#: changedetectionio/templates/sidebar-nav.html
msgid "Import lists of web pages"
-msgstr ""
+msgstr "匯入網頁清單"
#: changedetectionio/templates/sidebar-nav.html
msgid "Browsers (coming soon)"
-msgstr ""
+msgstr "瀏覽器(即即推出)"
#: changedetectionio/templates/sidebar-nav.html
msgid "Browsers"
-msgstr ""
+msgstr "瀏覽器"
#: changedetectionio/templates/sidebar-nav.html
msgid "soon"
-msgstr ""
+msgstr "即將推出"
#: changedetectionio/templates/sidebar-nav.html
msgid "Search, or Use Alt+S Key"
@@ -4966,19 +4980,19 @@ msgstr "搜尋,或使用 Alt+S 鍵"
#: changedetectionio/templates/sidebar-nav.html
msgid "Queue"
-msgstr ""
+msgstr "佇列"
#: changedetectionio/templates/sidebar-nav.html
msgid "Live activity"
-msgstr ""
+msgstr "即時動態"
#: changedetectionio/templates/sidebar-nav.html
msgid "A new version is available"
-msgstr ""
+msgstr "有新版本可用"
#: changedetectionio/validate_url.py
msgid "API Base URL is not a valid http(s) URL."
-msgstr ""
+msgstr "API 基礎 URL 不是有效的 http(s) URL。"
#: changedetectionio/validate_url.py
msgid ""
@@ -4986,6 +5000,8 @@ msgid ""
"allow LLM endpoints on private networks (e.g. a local Ollama server) set the environment variable "
"ALLOW_IANA_RESTRICTED_ADDRESSES=true and restart."
msgstr ""
+"API 基礎 URL 解析為私有、回圈(Loopback)、連結本地(Link-local)或保留的 IP 位址,並已被封鎖以防止 SSRF。若要允許私有網路上的 LLM 端點(例如本地 Ollama 伺服器),請設定環境變數 "
+"ALLOW_IANA_RESTRICTED_ADDRESSES=true 並重新啟動。"
#: changedetectionio/widgets/ternary_boolean.py
msgid "Main settings"