msgid ""
msgstr ""
"Project-Id-Version: Aipogeo Context Translate 2.1.3\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/aipogeo-context-translate\n"
"Last-Translator: AIPOGEO\n"
"Language-Team: Chinese (Taiwan)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2026-09-10T17:41:32+08:00\n"
"PO-Revision-Date: 2026-09-10 12:00+0800\n"
"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: WP-CLI 2.12.0\n"
"X-Domain: aipogeo-context-translate\n"

#. Plugin Name of the plugin
#: aipogeo-context-translate.php
#: admin/class-apgt-admin.php:118
#: admin/class-apgt-admin.php:119
#: admin/views/settings-page.php:31
msgid "Aipogeo Context Translate"
msgstr "Aipogeo 上下文翻譯"

#. Plugin URI of the plugin
#: aipogeo-context-translate.php
msgid "https://translate.aipogeo.com/"
msgstr "https://translate.aipogeo.com/"

#. Description of the plugin
#: aipogeo-context-translate.php
msgid "Translate a whole site with an AI that reads each page in full, proofread the result page by page, and serve it under a language directory with hreflang and a language switcher."
msgstr "讓 AI 通讀整頁上下文來翻譯整個網站，逐頁校對譯文，並以語言目錄發布，內建 hreflang 與語言切換器。"

#. Author of the plugin
#: aipogeo-context-translate.php
msgid "AIPOGEO"
msgstr "AIPOGEO"

#: admin/class-apgt-admin.php:129
#: admin/class-apgt-admin.php:130
#: admin/class-apgt-admin.php:867
#: admin/views/translate-page.php:54
msgid "Translation Settings"
msgstr "翻譯設定"

#: admin/class-apgt-admin.php:138
#: admin/class-apgt-admin.php:139
#: admin/class-apgt-admin.php:868
#: admin/views/languages-page.php:34
#: admin/views/translate-page.php:56
msgid "Languages"
msgstr "語言管理"

#: admin/class-apgt-admin.php:147
#: admin/class-apgt-admin.php:148
#: admin/class-apgt-admin.php:869
#: admin/views/translate-page.php:46
msgid "Translate Pages"
msgstr "頁面翻譯"

#: admin/class-apgt-admin.php:156
#: admin/class-apgt-admin.php:157
#: admin/class-apgt-admin.php:870
#: admin/views/data-page.php:129
msgid "Translation Data"
msgstr "譯文資料"

#: admin/class-apgt-admin.php:165
#: admin/class-apgt-admin.php:166
#: admin/class-apgt-admin.php:871
#: admin/views/help-page.php:24
#: admin/views/settings-page.php:744
msgid "Help"
msgstr "使用說明"

#: admin/class-apgt-admin.php:242
msgid "Loading…"
msgstr "載入中…"

#: admin/class-apgt-admin.php:243
msgid "Submitting to AI…"
msgstr "正在提交 AI 翻譯…"

#. translators: 1: number of AI requests completed, 2: seconds elapsed
#: admin/class-apgt-admin.php:245
#, php-format
msgid "AI translation running in the background: %1$s AI requests completed, %2$s seconds elapsed"
msgstr "AI 翻譯背景執行中：已完成 %1$s 次 AI 請求，用時 %2$s 秒"

#: admin/class-apgt-admin.php:246
#: admin/class-apgt-admin.php:291
msgid "Saving…"
msgstr "儲存中…"

#: admin/class-apgt-admin.php:247
msgid "Select a language and a page first"
msgstr "請先選擇語言與頁面"

#: admin/class-apgt-admin.php:248
msgid "The translation JSON is malformed. Fix it before continuing."
msgstr "譯文 JSON 格式有誤，請修正後再操作"

#: admin/class-apgt-admin.php:249
msgid "Request failed. Check the browser console or debug.log."
msgstr "請求失敗，請查看瀏覽器主控台或 debug.log"

#. translators: 1: total items, 2: translated items
#: admin/class-apgt-admin.php:251
#, php-format
msgid "%1$s items, %2$s translated"
msgstr "共 %1$s 條，已譯 %2$s 條"

#: admin/class-apgt-admin.php:252
msgid "Filter by title or URL…"
msgstr "輸入標題或網址篩選…"

#: admin/class-apgt-admin.php:253
msgid "No matching pages"
msgstr "沒有符合的頁面"

#: admin/class-apgt-admin.php:254
msgid "No pages available"
msgstr "沒有可選頁面"

#: admin/class-apgt-admin.php:255
msgid "Type a language name or code to filter…"
msgstr "輸入語言名稱或代碼篩選…"

#: admin/class-apgt-admin.php:256
msgid "No matching languages"
msgstr "沒有符合的語言"

#: admin/class-apgt-admin.php:257
msgid "No languages available"
msgstr "沒有可選語言"

#: admin/class-apgt-admin.php:258
msgid "This will translate every pending page, several at a time, starting with the language selected above and then moving on to the remaining target languages. It may use a large amount of AI credit. Start now?"
msgstr "將從上面選取的語言開始，多個頁面同時翻譯，翻完再接著翻其餘目標語言，可能消耗較多 AI 額度。確定開始？"

#: admin/class-apgt-admin.php:259
msgid "Counting pending pages…"
msgstr "正在統計待翻譯頁面…"

#. translators: 1: pending pages, 2: translated pages, 3: total pages
#: admin/class-apgt-admin.php:261
#, php-format
msgid "%1$s pending / %2$s translated (%3$s in total, all target languages)"
msgstr "待翻譯 %1$s / 已翻譯 %2$s（全部目標語言共 %3$s）"

#. translators: 1: target language, 2: title of the page being translated
#: admin/class-apgt-admin.php:263
#, php-format
msgid "%1$s · Translating: %2$s"
msgstr "%1$s · 正在翻譯：%2$s"

#. translators: %1$s: target language
#: admin/class-apgt-admin.php:265
#, php-format
msgid "Moving on to %1$s…"
msgstr "接著翻 %1$s…"

#. translators: 1: pages succeeded, 2: pages failed
#: admin/class-apgt-admin.php:267
#, php-format
msgid "All done: %1$s pages succeeded, %2$s failed"
msgstr "全部完成：成功 %1$s 頁，失敗 %2$s 頁"

#. translators: 1: pages done, 2: pages failed, 3: pages left unprocessed
#: admin/class-apgt-admin.php:269
#, php-format
msgid "Stopped: %1$s pages done, %2$s failed, %3$s left unprocessed"
msgstr "已停止：完成 %1$s 頁，失敗 %2$s 頁，剩餘 %3$s 頁未處理"

#: admin/class-apgt-admin.php:272
msgid "No pending pages in any target language"
msgstr "所有目標語言下都沒有待翻譯的頁面"

#: admin/class-apgt-admin.php:273
#: admin/views/translate-page.php:124
msgid "Stop"
msgstr "停止"

#: admin/class-apgt-admin.php:274
msgid "Stopping…"
msgstr "正在停止…"

#: admin/class-apgt-admin.php:275
#: admin/views/translate-page.php:93
msgid "Open the source page in a new window"
msgstr "在新視窗開啟原頁面"

#: admin/class-apgt-admin.php:276
#: admin/views/translate-page.php:97
msgid "Open the translated page in a new window"
msgstr "在新視窗開啟譯文頁面"

#: admin/class-apgt-admin.php:277
#: admin/views/languages-page.php:229
msgid "Word match"
msgstr "模糊取代"

#: admin/class-apgt-admin.php:278
#: admin/views/languages-page.php:230
msgid "Exact match"
msgstr "完全比對"

#: admin/class-apgt-admin.php:279
#: admin/views/languages-page.php:231
msgid "Regex replace"
msgstr "正規表達式取代"

#: admin/class-apgt-admin.php:280
#: admin/views/data-page.php:295
msgid "Delete"
msgstr "刪除"

#. translators: %1$s: number of rules
#: admin/class-apgt-admin.php:282
#, php-format
msgid "%1$s rules"
msgstr "%1$s 條規則"

#: admin/class-apgt-admin.php:283
msgid "Valid regex"
msgstr "正規表達式可用"

#: admin/class-apgt-admin.php:284
msgid "This regex does not compile. Please fix it."
msgstr "正規表達式無法編譯，請修正"

#: admin/class-apgt-admin.php:285
msgid "Checking regex…"
msgstr "正在檢查正規表達式…"

#. translators: %1$s: number of regex rules that do not compile
#: admin/class-apgt-admin.php:287
#, php-format
msgid "%1$s regex rules do not compile. Fix them before saving."
msgstr "有 %1$s 條正規表達式無法編譯，修正後才能儲存"

#. translators: %1$s: list of missing variable names
#: admin/class-apgt-admin.php:289
#, php-format
msgid ""
"The translation prompt is missing required variables: %1$s\n"
"\n"
"Without them the AI never receives the languages or the source data, so the result is guaranteed to be wrong. Add them and save again.\n"
"(Saving a completely empty prompt restores the default one.)"
msgstr ""
"翻譯指令缺少必要變數：%1$s\n"
"\n"
"AI 收不到語言或待譯資料，翻譯結果必然是錯的。請補上後再儲存。\n"
"（把指令全部清空儲存，則會自動還原為預設指令。）"

#: admin/class-apgt-admin.php:290
msgid "This replaces the editor content with the plugin's current default prompt and discards your edits. Continue?"
msgstr "將把編輯框裡的內容換成外掛目前的預設指令，你改過的內容會遺失。確定繼續？"

#: admin/class-apgt-admin.php:292
#: admin/class-apgt-ajax.php:83
msgid "Saved"
msgstr "已儲存"

#: admin/class-apgt-admin.php:293
msgid "Deleting…"
msgstr "刪除中…"

#: admin/class-apgt-admin.php:294
msgid "Delete this translation record?"
msgstr "確定刪除這筆譯文資料？"

#. translators: %1$s: number of translation records that match the current filter
#: admin/class-apgt-admin.php:296
#, php-format
msgid ""
"This permanently deletes all %1$s translation records matching the current filter.\n"
"\n"
"Continue?"
msgstr ""
"將刪除目前搜尋條件下的全部 %1$s 筆譯文資料，且無法復原。\n"
"\n"
"確定繼續？"

#: admin/class-apgt-admin.php:297
#: admin/class-apgt-ajax.php:125
msgid "Set at least one filter first, otherwise the entire table would be wiped"
msgstr "請先設定至少一個搜尋條件，否則會刪掉整張資料表"

#: admin/class-apgt-admin.php:298
#: admin/views/settings-page.php:692
msgid "Show"
msgstr "顯示"

#: admin/class-apgt-admin.php:299
msgid "Hide"
msgstr "隱藏"

#: admin/class-apgt-admin.php:300
msgid "The Ace editor failed to load. Check that assets/vendor/ace is complete."
msgstr "Ace 編輯器未能載入，請檢查 assets/vendor/ace 是否完整。"

#. translators: separator between variable names in a list; Chinese uses the ideographic comma here
#: admin/class-apgt-admin.php:302
msgctxt "list separator"
msgid ", "
msgstr "、"

#: admin/class-apgt-admin.php:348
#: admin/views/settings-page.php:591
msgid "Grace period"
msgstr "寬限期"

#: admin/class-apgt-admin.php:349
#: admin/views/settings-page.php:592
msgid "Active"
msgstr "生效中"

#: admin/class-apgt-admin.php:350
#: admin/views/settings-page.php:592
msgid "Unavailable"
msgstr "無法使用"

#: admin/class-apgt-admin.php:351
#: admin/views/settings-page.php:603
msgid "Unlimited"
msgstr "不限量"

#: admin/class-apgt-admin.php:352
msgid "tokens"
msgstr "token"

#: admin/class-apgt-admin.php:353
#: admin/views/settings-page.php:613
msgid "Activated"
msgstr "已啟用"

#: admin/class-apgt-admin.php:354
#: admin/views/settings-page.php:614
msgid "Not activated"
msgstr "未啟用"

#: admin/class-apgt-admin.php:355
msgid "Working…"
msgstr "處理中…"

#: admin/class-apgt-admin.php:356
msgid "That did not work"
msgstr "操作失敗"

#: admin/class-apgt-admin.php:357
msgid "Done"
msgstr "已完成"

#: admin/class-apgt-admin.php:358
msgid "The request failed. Please try again shortly."
msgstr "請求失敗，請稍後再試。"

#: admin/class-apgt-admin.php:359
msgid "Releasing this site stops it translating through this subscription. Continue?"
msgstr "解除綁定後，本網站將無法繼續使用此訂閱翻譯，確定嗎？"

#: admin/class-apgt-admin.php:460
#: admin/class-apgt-admin.php:635
#: admin/class-apgt-ajax.php:295
msgid "Insufficient permissions"
msgstr "權限不足"

#: admin/class-apgt-admin.php:791
msgid "Settings"
msgstr "設定"

#: admin/class-apgt-ajax.php:68
#: admin/class-apgt-ajax.php:100
msgid "Record not found; it may already have been deleted"
msgstr "記錄不存在，可能已被刪除"

#: admin/class-apgt-ajax.php:76
msgid "Save failed"
msgstr "儲存失敗"

#: admin/class-apgt-ajax.php:104
msgid "Delete failed"
msgstr "刪除失敗"

#: admin/class-apgt-ajax.php:109
msgid "Deleted"
msgstr "已刪除"

#. translators: %d: number of records deleted
#: admin/class-apgt-ajax.php:135
#, php-format
msgid "Deleted %d translation records"
msgstr "已刪除 %d 筆譯文資料"

#: admin/class-apgt-ajax.php:249
msgid "This site is now activated"
msgstr "本網站已啟用"

#: admin/class-apgt-ajax.php:274
msgid "This site has been released"
msgstr "本網站已解除綁定"

#. translators: %s: name of the lock holder
#: admin/class-apgt-ajax.php:319
#, php-format
msgid "This page is already being translated (%s). Please wait for it to finish; a stalled job unlocks automatically once the request timeout passes."
msgstr "該頁面已有翻譯任務在執行中（%s），請等它結束後再試；若任務已異常中斷，超過請求逾時時長後鎖會自動解除。"

#. translators: %s: error message
#: admin/class-apgt-ajax.php:397
#: admin/class-apgt-ajax.php:1068
#: includes/class-apgt-cron.php:163
#, php-format
msgid "Translation aborted unexpectedly: %s"
msgstr "翻譯過程異常中止：%s"

#: admin/class-apgt-ajax.php:479
msgid "The translation job no longer exists; it may have expired. Reload the page to see the current state."
msgstr "翻譯任務記錄已不存在，可能已過期。請重新整理頁面查看目前結果。"

#: admin/class-apgt-ajax.php:490
msgid "The translation job stopped responding and was abandoned. Please try again."
msgstr "翻譯任務已失去回應，判定為中斷。請重新發起翻譯。"

#: admin/class-apgt-ajax.php:526
msgid "The target language is invalid or not configured"
msgstr "目標語言無效或未設定"

#: admin/class-apgt-ajax.php:543
#: includes/class-apgt-translator.php:499
msgid "Invalid page URL"
msgstr "頁面網址無效"

#: admin/class-apgt-ajax.php:579
msgid "Choose the site default language under Translation Settings first"
msgstr "請先在「翻譯設定」裡選擇網站預設語言"

#. translators: %s: field name
#: admin/class-apgt-ajax.php:600
#, php-format
msgid "%s is too large to process"
msgstr "%s 過大，無法處理"

#. translators: %s: field name
#: admin/class-apgt-ajax.php:606
#, php-format
msgid "%s is not valid JSON"
msgstr "%s 不是有效的 JSON"

#: admin/class-apgt-ajax.php:652
msgid "No translatable text was extracted from this page"
msgstr "這個頁面沒有擷取到可翻譯文字"

#: admin/class-apgt-ajax.php:726
msgid "No source text to translate"
msgstr "沒有可翻譯的原文"

#: admin/class-apgt-ajax.php:768
msgid "Nothing left to translate (all items already had translations and were skipped)"
msgstr "沒有需要翻譯的項目（已有譯文均被略過）"

#. translators: 1: succeeded, 2: skipped, 3: failed
#: admin/class-apgt-ajax.php:826
#, php-format
msgid "AI translation finished: %1$d succeeded, %2$d skipped, %3$d failed"
msgstr "AI 翻譯完成：成功 %1$d 條，略過 %2$d 條，失敗 %3$d 條"

#: admin/class-apgt-ajax.php:851
msgid "The source data is empty, nothing to save"
msgstr "原文資料為空，無法儲存"

#. translators: 1: saved, 2: cleared, 3: failed
#: admin/class-apgt-ajax.php:902
#, php-format
msgid "%1$d saved, %2$d cleared, %3$d failed"
msgstr "已儲存 %1$d 條，清除 %2$d 條，失敗 %3$d 條"

#: admin/class-apgt-ajax.php:1005
msgid "Background translation is not enabled"
msgstr "後台自動翻譯未啟用"

#: admin/class-apgt-ajax.php:1014
msgid "No languages configured yet"
msgstr "尚未設定語言"

#: admin/class-apgt-ajax.php:1024
#: includes/class-apgt-cron.php:132
msgid "No pending pages"
msgstr "沒有待翻譯的頁面"

#: admin/views/data-page.php:138
msgid "Source contains"
msgstr "原文包含"

#: admin/views/data-page.php:143
msgid "Translation contains"
msgstr "譯文包含"

#: admin/views/data-page.php:148
msgid "Source path"
msgstr "來源路徑"

#: admin/views/data-page.php:153
msgid "Source language"
msgstr "來源語言"

#: admin/views/data-page.php:155
#: admin/views/data-page.php:167
#: admin/views/data-page.php:179
#: admin/views/data-page.php:191
#: admin/views/help-page.php:131
#: admin/views/help-page.php:136
#: admin/views/help-page.php:141
msgid "All"
msgstr "全部"

#: admin/views/data-page.php:165
#: admin/views/translate-page.php:63
msgid "Target language"
msgstr "目標語言"

#: admin/views/data-page.php:177
#: admin/views/data-page.php:254
msgid "Engine"
msgstr "引擎"

#: admin/views/data-page.php:189
#: admin/views/data-page.php:255
#: admin/views/languages-page.php:211
msgid "Type"
msgstr "類型"

#: admin/views/data-page.php:201
msgid "Per page"
msgstr "每頁"

#: admin/views/data-page.php:213
msgid "Empty translations only"
msgstr "只看空譯文"

#: admin/views/data-page.php:217
msgid "Filter"
msgstr "篩選"

#: admin/views/data-page.php:218
msgid "Reset"
msgstr "重設"

#: admin/views/data-page.php:228
msgid "Delete search results"
msgstr "刪除搜尋結果"

#: admin/views/data-page.php:231
msgid "(set a filter first)"
msgstr "（需要先設定搜尋條件）"

#. translators: %s: number of records
#: admin/views/data-page.php:240
#, php-format
msgid "%s record"
msgid_plural "%s records"
msgstr[0] "%s 筆資料"

#: admin/views/data-page.php:252
msgid "ID"
msgstr "ID"

#: admin/views/data-page.php:253
#: admin/views/languages-page.php:96
msgid "Language"
msgstr "語言"

#: admin/views/data-page.php:256
msgid "Source"
msgstr "來源"

#: admin/views/data-page.php:257
msgid "Source text"
msgstr "原文"

#: admin/views/data-page.php:258
msgid "Translation (editable)"
msgstr "譯文（可編輯）"

#: admin/views/data-page.php:259
#: admin/views/languages-page.php:115
msgid "Actions"
msgstr "操作"

#: admin/views/data-page.php:265
msgid "No translation records match the filter."
msgstr "沒有符合條件的譯文資料。"

#: admin/views/data-page.php:310
msgid "Editing a translation saves it immediately and marks the engine as manual, so later bulk AI runs will not overwrite it. Deleting a record also invalidates the translation progress of the pages it belongs to, sending those pages back to pending."
msgstr "譯文改動會立刻寫入資料庫並把引擎標記為 manual，之後 AI 批次翻譯不會再覆蓋它。刪除記錄會同時作廢相關頁面的翻譯進度，那些頁面會重新回到「待翻譯」。"

#: admin/views/help-page.php:30
msgid "1. What on the page gets translated"
msgstr "一、頁面上哪些內容會被翻譯"

#: admin/views/help-page.php:33
msgid "The plugin parses the whole page into a DOM and walks it node by node. Only the places listed below are touched; everything else (scripts, styles, class names, data-* attributes and so on) is left exactly as it was."
msgstr "外掛把整頁 HTML 解析成 DOM 後逐節點擷取，只動下面這些位置，其餘（指令碼、樣式、類別名稱、data-* 屬性等）一律原樣保留。"

#: admin/views/help-page.php:39
msgid "Where"
msgstr "位置"

#: admin/views/help-page.php:40
msgid "Scope and notes"
msgstr "範圍與說明"

#: admin/views/help-page.php:45
msgid "Visible text"
msgstr "可視文字"

#: admin/views/help-page.php:46
msgid "Every text node on the page, except anything inside <script> or <style>."
msgstr "頁面上所有文字節點，但 <script> 與 <style> 裡的內容不碰。"

#: admin/views/help-page.php:50
msgid "The title shown in the browser tab and in search results."
msgstr "瀏覽器標籤頁與搜尋結果裡的標題。"

#: admin/views/help-page.php:54
msgid "Only those whose name/property contains title, keywords, description or name (including og:title, og:description and similar)."
msgstr "僅限 name/property 中含 title、keywords、description、name 的那些（含 og:title、og:description 等）。"

#: admin/views/help-page.php:58
msgid "Placeholder hints on inputs and textareas."
msgstr "輸入框與文字區域的預留提示文字。"

#: admin/views/help-page.php:62
msgid "Alternative text and hover hints on images (<img> only)."
msgstr "圖片的替代文字與停留提示（僅 <img>）。"

#: admin/views/help-page.php:65
msgid "Microdata structured data"
msgstr "Microdata 結構化資料"

#: admin/views/help-page.php:67
msgid "When an itemprop value lives in a content attribute (such as <meta itemprop=\"name\" content=\"…\">) it is translated too. These tags are invisible on the page, but they are exactly what search engines read."
msgstr "itemprop 的取值掛在 content 屬性上時（如 <meta itemprop=\"name\" content=\"…\">）照樣翻譯，這類標籤頁面上看不見，但搜尋引擎讀的就是它。"

#: admin/views/help-page.php:69
msgid "Addresses in itemprop=\"url\" and itemprop=\"sameAs\" (whether written in href or in content) follow the internal-link rules and move to the language directory, so addresses in your structured data no longer point back at the source page."
msgstr "itemprop=\"url\" 與 itemprop=\"sameAs\" 的網址（無論寫在 href 還是 content 上）按站內連結規則處理，跟著換語言目錄，結構化資料裡的網址不會指回原文頁。"

#: admin/views/help-page.php:73
msgid "Internal link paths"
msgstr "站內連結路徑"

#: admin/views/help-page.php:75
msgid "Navigational addresses: <a href>, canonical/shortlink, <form action>, og:url. Asset addresses such as images, scripts and stylesheets are left alone, since rewriting them would produce 404s."
msgstr "導覽類網址：<a href>、canonical/shortlink、<form action>、og:url。圖片、指令碼、樣式表這些資源網址不動，改了會 404。"

#: admin/views/help-page.php:77
msgid "Whether the path itself is translated depends on Translate URL paths under Translation Settings. Even when it is not translated, the language directory prefix (such as /en) is still added; otherwise one click would drop the visitor back onto the source-language site."
msgstr "路徑本身是否譯成外文取決於「翻譯設定」裡的「翻譯 URL 路徑」；即使不譯，也仍然會加上語言目錄前綴（如 /en），否則訪客一點連結就跳回原文網站了。"

#: admin/views/help-page.php:83
msgid "Microdata fields that are skipped automatically"
msgstr "Microdata 裡自動略過的欄位"

#: admin/views/help-page.php:86
msgid "Structured data carries a lot of machine-read values, and translating them simply corrupts the data. The following itemprop values are therefore always kept verbatim, with no manual marking needed:"
msgstr "結構化資料裡有大量機器讀的值，譯了等於把資料寫壞，所以下面這些 itemprop 一律原樣保留，不必手動標記："

#: admin/views/help-page.php:92
msgid "Asset addresses"
msgstr "資源網址"

#: admin/views/help-page.php:93
#: admin/views/help-page.php:97
#: admin/views/help-page.php:101
#: admin/views/help-page.php:105
msgid "and so on"
msgstr "等"

#: admin/views/help-page.php:96
msgid "Identifiers"
msgstr "編號識別"

#: admin/views/help-page.php:100
msgid "Numeric values"
msgstr "數值"

#: admin/views/help-page.php:104
msgid "Dates and contact details"
msgstr "日期與聯絡方式"

#: admin/views/help-page.php:111
msgid "Besides the field name, the shape of the value is checked as well: URLs, e-mail addresses, bare numbers, ISO dates (2026-12-31), ISO durations (PT30M) and three-letter currency codes (CNY) are all skipped. So machine values survive untouched even under a field name not listed above. Conversely, text fields such as name, description, category, addressLocality and streetAddress take part in translation as normal."
msgstr "除了看欄位名稱，還會看值的形態：網址、電子郵件、純數字、ISO 日期（2026-12-31）、ISO 時長（PT30M）、三位貨幣代碼（CNY）一概略過，所以就算用了上面沒列到的欄位名稱，機器值也不會被翻譯。反過來，name、description、category、addressLocality、streetAddress 這類文字欄位會正常參與翻譯。"

#: admin/views/help-page.php:114
msgid "2. Marking content that must not be translated"
msgstr "二、標記不需要翻譯的內容"

#: admin/views/help-page.php:117
msgid "Brand names, model numbers, code snippets, people and street addresses, interface text belonging to third-party components — translating these makes them wrong. Add any one of the markers below to an element and the plugin skips it during extraction, so it is neither stored nor charged against your AI credit."
msgstr "品牌名、型號、程式碼片段、人名地址、第三方元件的介面文字——這些譯了反而是錯的。給元素加上下面任一個標記，外掛在擷取階段就會略過它，既不寫入資料庫也不消耗 AI 額度。"

#: admin/views/help-page.php:123
msgid "Syntax"
msgstr "寫法"

#: admin/views/help-page.php:124
msgid "Applies to"
msgstr "作用範圍"

#: admin/views/help-page.php:125
msgid "Meaning"
msgstr "語意說明"

#: admin/views/help-page.php:132
msgid "The plugin's primary marker. Text, alt, placeholder, title and meta content on the element and all of its descendants stay untranslated, and internal links inside it are not rewritten either — no translated path, no language prefix."
msgstr "本外掛的主要標記。該元素及其全部後代的文字、alt、placeholder、title、meta 內容都不翻譯，裡面的站內連結也不改寫（既不換譯文路徑，也不加語言前綴）。"

#: admin/views/help-page.php:137
msgid "Behaves exactly like the row above. This is the established Google Translate convention that many themes and plugins already use, so it is honoured here too and you do not have to mark everything a second time for this plugin."
msgstr "效果與上一條完全相同。這是 Google 翻譯的通行慣例，不少主題和外掛已經在用，這裡一併尊重，省得為本外掛再標一遍。"

#: admin/views/help-page.php:142
msgid "The standard HTML attribute, same effect as above. translate=\"0\" is recognised as well. Useful when the class attribute is not yours to touch because a theme or block style is using it."
msgstr "HTML 標準屬性，效果同上。寫 translate=\"0\" 也認。適合在不方便動 class（class 被主題或區塊樣式占用）時使用。"

#: admin/views/help-page.php:146
msgid "Turning translation back on"
msgstr "反向開啟"

#: admin/views/help-page.php:147
msgid "Re-enables a small region inside a container where translation was switched off. The nearest marker wins: walking outwards from the current node, a yes found first means translate, a no found first means skip. translate=\"1\" and translate=\"\" mean the same thing."
msgstr "在已經關掉翻譯的容器內部，把某一小塊重新打開。就近生效：從目前節點往外找，先遇到 yes 就翻譯，先遇到 no 就略過。寫 translate=\"1\" 或 translate=\"\" 同義。"

#: admin/views/help-page.php:151
msgid "Link addresses only"
msgstr "僅連結網址"

#: admin/views/help-page.php:152
msgid "Blocks the address but not the text: the link label is translated as usual while href stays exactly as written, with neither a translated path nor a language prefix. Use it for links that must keep pointing at the original address, such as a language switcher itself, direct download links or a login entry point."
msgstr "只擋網址、不擋文字：連結上的文案照常翻譯，但 href 保持原樣，既不換成譯文路徑也不加語言前綴。用於必須指向原始網址的連結，例如語言切換器本身、下載直連、登入入口。"

#: admin/views/help-page.php:157
msgid "Matching rules"
msgstr "比對規則"

#: admin/views/help-page.php:161
msgid "Matched as a whole word, case-insensitively."
msgstr "按整詞比對，不分大小寫。"

#: admin/views/help-page.php:162
msgid "Both class=\"btn not-translate large\" and class=\"NOT-TRANSLATE\" take effect, while not-translate-foo and xx-not-translate merely happen to contain those characters and are not mistaken for the marker."
msgstr "class=\"btn not-translate large\" 與 class=\"NOT-TRANSLATE\" 都生效；而 not-translate-foo、xx-not-translate 只是名稱裡恰好含有這幾個字，不會被誤判成標記。"

#: admin/views/help-page.php:165
msgid "Inherited downwards."
msgstr "向下繼承。"

#: admin/views/help-page.php:166
msgid "Marking the container is enough; however many levels are nested inside it, all of them are skipped. There is no need to mark elements one by one."
msgstr "標記加在容器上即可，裡面嵌套多少層都會被略過，不必逐個元素標。"

#: admin/views/help-page.php:169
msgid "class wins over the translate attribute."
msgstr "class 優先於 translate 屬性。"

#: admin/views/help-page.php:170
msgid "When one element carries both class=\"not-translate\" and translate=\"yes\", the class decides — the element is skipped."
msgstr "同一個元素上同時寫 class=\"not-translate\" 和 translate=\"yes\" 時，以 class 為準——略過。"

#: admin/views/help-page.php:173
msgid "Markers only act during extraction."
msgstr "標記只在擷取階段起作用。"

#: admin/views/help-page.php:174
msgid "If you add a marker to a page that was already translated, the old translation is still stored and still replaces the text on the front end. Delete the matching records under Translation Data, or translate that page again."
msgstr "給已經翻譯過的頁面補標記後，舊譯文仍在資料庫裡、前台仍會取代；需要到「譯文資料」裡刪掉對應記錄，或重新翻譯一遍該頁面。"

#: admin/views/help-page.php:178
msgid "Example"
msgstr "範例"

#. translators: HTML example. Translate the comments and the visible text only; keep the tags, class names and attributes exactly as they are.
#: admin/views/help-page.php:183
msgid ""
"<!-- Whole block skipped: brand name and model number stay as they are -->\n"
"<div class=\"product-meta not-translate\">\n"
"\t<span>YF-System</span> <span>Model X-200</span>\n"
"</div>\n"
"\n"
"<!-- The standard HTML attribute, same effect -->\n"
"<pre translate=\"no\">systemctl restart nginx</pre>\n"
"\n"
"<!-- The container is not translated, but this one note inside it is -->\n"
"<div class=\"code-box not-translate\">\n"
"\t<code>wp plugin activate aipogeo-context-translate</code>\n"
"\t<p translate=\"yes\">Back up your database before running this.</p>\n"
"</div>\n"
"\n"
"<!-- The text is translated, the address is left alone -->\n"
"<a class=\"not-translate-url\" href=\"/downloads/manual.pdf\">Download the manual</a>"
msgstr ""
"<!-- 整塊略過：品牌名與型號原樣保留 -->\n"
"<div class=\"product-meta not-translate\">\n"
"\t<span>YF-System</span> <span>Model X-200</span>\n"
"</div>\n"
"\n"
"<!-- 用 HTML 標準屬性，效果相同 -->\n"
"<pre translate=\"no\">systemctl restart nginx</pre>\n"
"\n"
"<!-- 容器整體不譯，但裡面這句提示要譯 -->\n"
"<div class=\"code-box not-translate\">\n"
"\t<code>wp plugin activate aipogeo-context-translate</code>\n"
"\t<p translate=\"yes\">執行前請先備份資料庫。</p>\n"
"</div>\n"
"\n"
"<!-- 文字要譯，網址不動 -->\n"
"<a class=\"not-translate-url\" href=\"/downloads/manual.pdf\">下載手冊</a>"

#: admin/views/help-page.php:205
msgid "How to add this in the block editor"
msgstr "在區塊編輯器裡怎麼加"

#: admin/views/help-page.php:208
msgid "Select the block, open the Block tab in the right sidebar, expand Advanced at the bottom and type not-translate into Additional CSS class(es); separate several class names with spaces. The translate attribute needs a Custom HTML block or a direct edit to the theme template."
msgstr "選取區塊 → 右側邊欄「區塊」標籤 → 展開最下面的「進階」→ 在「其他 CSS 類別」裡填 not-translate 即可，多個類別名稱用空格分隔。translate 屬性需要用「自訂 HTML」區塊或直接改主題範本。"

#: admin/views/languages-page.php:17
msgid "Language added."
msgstr "語言已新增。"

#: admin/views/languages-page.php:18
msgid "Language removed. Translations already stored are kept in the database."
msgstr "語言已刪除（已翻譯的資料仍保留在譯文庫中）。"

#: admin/views/languages-page.php:19
msgid "Saved."
msgstr "已儲存。"

#: admin/views/languages-page.php:20
msgid "That language is already in the list."
msgstr "該語言已在清單中。"

#: admin/views/languages-page.php:21
msgid "A target language cannot be the same as the site default language."
msgstr "目標語言不能與網站預設語言相同。"

#: admin/views/languages-page.php:22
msgid "Invalid language code."
msgstr "語言代碼無效。"

#: admin/views/languages-page.php:23
msgid "The replacement rule data is malformed. Rules for that language were not saved; everything else was."
msgstr "取代規則資料格式有誤，該語言的規則未儲存，其餘已儲存。"

#: admin/views/languages-page.php:24
msgid "A regex replacement rule does not compile. Rules for that language were not saved; fix it and try again."
msgstr "有正規表達式取代規則無法編譯，該語言的規則未儲存，請修正後重試。"

#: admin/views/languages-page.php:28
msgid "All visitors"
msgstr "所有訪客"

#: admin/views/languages-page.php:29
msgid "Search engines only"
msgstr "僅搜尋引擎"

#: admin/views/languages-page.php:30
msgid "Human visitors only"
msgstr "僅一般使用者"

#: admin/views/languages-page.php:47
msgid "The site default language is not set yet. Choose it under Translation Settings first."
msgstr "尚未設定網站預設語言，請先到「翻譯設定」裡選擇。"

#: admin/views/languages-page.php:48
msgid "Go to settings"
msgstr "前往設定"

#. translators: %s: language name
#: admin/views/languages-page.php:56
#, php-format
msgid "The site default language is %s. The target languages to translate into are listed below."
msgstr "網站預設語言為 %s，下方是需要翻譯成的目標語言。"

#: admin/views/languages-page.php:63
msgid "Add a target language"
msgstr "新增目標語言"

#: admin/views/languages-page.php:81
msgid "Add"
msgstr "新增"

#: admin/views/languages-page.php:84
msgid "Configured target languages"
msgstr "已設定的目標語言"

#: admin/views/languages-page.php:87
msgid "No target languages yet. Add one with the dropdown above."
msgstr "還沒有目標語言，先用上面的下拉選單新增一個。"

#: admin/views/languages-page.php:97
msgid "The URL directory for this language's pages. Enter en and translated pages live at /en/xxx/. Leave empty to use the language code."
msgstr "該語言頁面的網址目錄，例如填 en 則譯文頁網址是 /en/xxx/。留空時用語言代碼。"

#: admin/views/languages-page.php:98
#: admin/views/languages-page.php:175
msgid "URL prefix"
msgstr "URL 前綴"

#: admin/views/languages-page.php:100
msgid "The language code written into the hreflang tag, such as en-US. Leave empty to use the language code."
msgstr "寫進 hreflang 標籤的語言代碼，例如 en-US。留空時用語言代碼。"

#: admin/views/languages-page.php:103
msgid "Extra regional variants covered by this same translation, comma separated, such as en-GB,en-AU. Each one gets its own hreflang tag."
msgstr "同一份譯文額外涵蓋的地區變體，以逗號分隔，例如 en-GB,en-AU。會各產生一條 hreflang。"

#: admin/views/languages-page.php:104
msgid "hreflang regions"
msgstr "hreflang 地區"

#: admin/views/languages-page.php:106
msgid "Lower numbers come first. Controls the order in the language switcher and in the hreflang tags."
msgstr "數字越小越靠前，決定語言切換選單與 hreflang 的排列順序。"

#: admin/views/languages-page.php:107
msgid "Order"
msgstr "排序"

#: admin/views/languages-page.php:109
msgid "Controls whether this language is offered on the front end: the switcher and the hreflang tags are filtered by visitor type."
msgstr "控制這個語言在前台露不露出入口：選單與 hreflang 會按訪客類型篩選。"

#: admin/views/languages-page.php:110
#: admin/views/languages-page.php:184
msgid "Show to"
msgstr "顯示對象"

#: admin/views/languages-page.php:112
msgid "String replacements applied before a translation is stored, for forcing consistent brand names and other proper nouns."
msgstr "譯文寫入資料庫前套用的字串取代，用於強制統一品牌名等專有名詞。"

#: admin/views/languages-page.php:113
#: admin/views/languages-page.php:185
#: admin/views/languages-page.php:199
msgid "Replacement rules"
msgstr "取代規則"

#. translators: %d: number of rules
#: admin/views/languages-page.php:150
#, php-format
msgid "%d rule"
msgid_plural "%d rules"
msgstr[0] "%d 條規則"

#: admin/views/languages-page.php:163
msgid "Remove this target language? Translations already stored will not be deleted."
msgstr "確定移除該目標語言？已翻譯的資料不會被刪除。"

#: admin/views/languages-page.php:164
msgid "Remove"
msgstr "移除"

#. translators: 1: example prefix, 2: example address
#: admin/views/languages-page.php:178
#, php-format
msgid "Which URL directory this language's pages live under. Enter %1$s and translated pages are served at %2$s. Leave empty to use the language code."
msgstr "該語言頁面掛在哪個網址目錄下，填 %1$s 則譯文頁網址是 %2$s。留空時用語言代碼。"

#: admin/views/languages-page.php:183
msgid "The language code written into the page's hreflang tag. Under hreflang regions you can add further regional variants, comma separated; this one translation then produces a tag for each of them."
msgstr "寫進頁面 hreflang 標籤的語言代碼；「hreflang 地區」裡可以用逗號分隔多填幾個地區變體，同一份譯文會各產生一條。"

#: admin/views/languages-page.php:184
msgid "Controls whether this language is offered on the front end — whether the switcher and the hreflang tags include it is decided by whether the visitor is a search engine. This affects the entry points only; visiting the language's address directly always works."
msgstr "控制這個語言在前台露不露出入口——按訪客是不是搜尋引擎，決定語言選單與 hreflang 裡要不要帶上它。只影響入口，直接造訪該語言網址始終可用。"

#: admin/views/languages-page.php:185
msgid "Applied before a translation is stored, for forcing consistent brand names and other proper nouns. Click the rule count to open the editor, and remember to press Save language settings below when you are done."
msgstr "譯文寫入資料庫前套用，用於強制統一品牌名等專有名詞。點「N 條規則」開啟編輯視窗；改完記得點下方的「儲存語言設定」。"

#: admin/views/languages-page.php:190
msgid "Save language settings"
msgstr "儲存語言設定"

#: admin/views/languages-page.php:200
msgid "Close"
msgstr "關閉"

#: admin/views/languages-page.php:212
msgid "Find"
msgstr "查找"

#: admin/views/languages-page.php:213
msgid "Replace with"
msgstr "取代為"

#: admin/views/languages-page.php:221
msgid "No rules yet. Use the button below to add one."
msgstr "還沒有規則，點下面的按鈕新增一條。"

#: admin/views/languages-page.php:225
msgid "Add rule"
msgstr "新增規則"

#: admin/views/languages-page.php:229
msgid "Matches on word boundaries. The most common choice."
msgstr "按詞邊界比對，最常用。"

#: admin/views/languages-page.php:230
msgid "Replaces only when the whole translation is identical to Find."
msgstr "整條譯文與「查找」完全相同才取代。"

#: admin/views/languages-page.php:231
msgid "Find must include its own delimiters, for example"
msgstr "「查找」需自帶分隔符號，例如"

#: admin/views/languages-page.php:232
msgid "The pattern is checked when you leave the field; it cannot be saved until it compiles."
msgstr "離開輸入框會自動檢查，不通過無法儲存。"

#: admin/views/languages-page.php:238
msgid "OK"
msgstr "確定"

#: admin/views/languages-page.php:239
msgid "Cancel"
msgstr "取消"

#: admin/views/settings-page.php:36
msgid "Settings saved."
msgstr "設定已儲存。"

#: admin/views/settings-page.php:41
msgid "That is not a valid IP address, so the fetch IP was left empty. Enter an IPv4 or IPv6 address only, with no port and no protocol."
msgstr "這不是合法的 IP 位址，抓取用 IP 已置空。只填 IPv4 或 IPv6 位址，不要帶連接埠，也不要帶通訊協定。"

#: admin/views/settings-page.php:47
msgid "Settings saved. The translation prompt was empty, so the default prompt was restored."
msgstr "設定已儲存。翻譯指令為空，已自動還原為預設指令。"

#: admin/views/settings-page.php:53
msgid "Settings saved. The URL path prompt was empty, so the default prompt was restored."
msgstr "設定已儲存。URL 路徑翻譯指令為空，已自動還原為預設指令。"

#: admin/views/settings-page.php:75
msgid "The URL path prompt was not saved."
msgstr "URL 路徑翻譯指令未儲存。"

#: admin/views/settings-page.php:76
msgid "The translation prompt was not saved."
msgstr "翻譯指令未儲存。"

#. translators: %s: missing variable names
#: admin/views/settings-page.php:83
#, php-format
msgid "The required variables %s are missing. The AI never receives the languages or the source data, so the result is guaranteed to be wrong."
msgstr "缺少必要變數 %s，AI 收不到語言或待譯資料，翻譯結果必然是錯的。"

#: admin/views/settings-page.php:88
msgid "Every other setting was saved normally. Add the variables and save the prompt again."
msgstr "其餘設定已正常儲存。請補上變數後重新儲存指令。"

#: admin/views/settings-page.php:95
msgid "Site language"
msgstr "網站語言"

#: admin/views/settings-page.php:99
msgid "Default language (the language you write in)"
msgstr "預設語言（原文語言）"

#: admin/views/settings-page.php:103
msgid "— Select —"
msgstr "— 請選擇 —"

#: admin/views/settings-page.php:111
msgid "The language your content is already written in; it is the source of every translation. Nothing can be translated until this is set."
msgstr "網站內容原本的語言，翻譯以它為來源。未選擇時無法進行任何翻譯。"

#: admin/views/settings-page.php:115
msgid "Translate URL paths"
msgstr "翻譯 URL 路徑"

#: admin/views/settings-page.php:119
msgid "Let the AI translate the paths of internal links as well"
msgstr "把站內連結的路徑也交給 AI 翻譯"

#. translators: 1: example source address, 2: example translated address
#: admin/views/settings-page.php:125
#, php-format
msgid "With this on, internal addresses are translated path and all — %1$s becomes %2$s, for instance. When a visitor opens the translated address it is mapped back to the original post, so normal browsing is unaffected."
msgstr "開啟後頁面裡的站內網址會連路徑一起譯過去，例如 %1$s 變成 %2$s；訪客開啟譯文網址時會自動換回原文章，不影響正常造訪。"

#. translators: example path before the path itself is translated; write it in your own language, keeping the language directory
#: admin/views/settings-page.php:127
msgid "/ja/about-us/"
msgstr "/en/關於我們/"

#. translators: the same example path once translated into the target language
#: admin/views/settings-page.php:129
msgid "/ja/私たちについて/"
msgstr "/en/about-us/"

#: admin/views/settings-page.php:133
msgid "Each path is stored as its own record (with the type marked uri), so you can filter by type and edit it separately under Translation Data. Pages have to be translated again before path translations appear; translations of your text are unaffected."
msgstr "路徑作為一筆獨立資料寫入資料庫（類型標記為 uri），在「譯文資料」裡可按類型篩選、單獨修改。開啟後需要重新翻譯一遍頁面才會產生路徑譯文，已有的文字譯文不受影響。"

#. translators: %s: example language directory
#: admin/views/settings-page.php:138
#, php-format
msgid "Leaving it off does not break multilingual navigation: internal links still move under the language directory (%s), only the path itself stays as written."
msgstr "不開啟也不影響多語言導覽：站內連結照樣會掛到語言目錄下（%s），只是路徑保持原樣。"

#: admin/views/settings-page.php:148
#: admin/views/settings-page.php:156
msgid "Background translation"
msgstr "後台自動翻譯"

#: admin/views/settings-page.php:153
msgid "Enable"
msgstr "啟用"

#: admin/views/settings-page.php:164
msgid "While an administrator is logged into the admin area, work through the pending pages one at a time in the background"
msgstr "管理員登入後台時，自動在後台逐頁處理待翻譯的頁面"

#: admin/views/settings-page.php:173
msgid "With this on, as long as any administrator has an admin page open, the browser periodically claims one pending page and hands it to the server. You no longer have to sit on the Translate Pages screen."
msgstr "開啟後，只要有管理員開著後台頁面，瀏覽器就會定時來領一個待翻譯頁面交給伺服器處理，不需要一直守在「頁面翻譯」介面。"

#: admin/views/settings-page.php:177
msgid "The job entry point holds a single-process lock: when several administrators are online, or someone is translating by hand, the other requests return immediately without doing anything, so the same content is never translated twice."
msgstr "工作入口有單一行程鎖：多位管理員同時在線、或有人正在手動翻譯時，其餘請求會直接空轉返回，不會重複翻同一批內容。"

#: admin/views/settings-page.php:227
msgid "Heartbeat interval (seconds)"
msgstr "心跳間隔（秒）"

#: admin/views/settings-page.php:232
msgid "The gap between two job requests, minimum 15 seconds. A new one is never started while the previous one is still running."
msgstr "兩次領取工作的間隔，最小 15 秒。上一次還沒處理完時不會重複發起。"

#: admin/views/settings-page.php:249
msgid "Live translation"
msgstr "即時翻譯"

#: admin/views/settings-page.php:253
msgid "When a visitor opens a translated page, translate whatever on it is not stored yet"
msgstr "訪客開啟譯文頁面時，自動翻譯該頁尚未寫入資料庫的內容"

#: admin/views/settings-page.php:257
msgid "Serve the translated page once coverage reaches"
msgstr "譯文佔比達到"

#: admin/views/settings-page.php:260
msgid "or more"
msgstr "才輸出譯文頁面"

#: admin/views/settings-page.php:264
msgid "It behaves just like the Translate with AI button on the Translate Pages screen: only untranslated items are sent, the result is stored right away, and the next visitor does not have to wait."
msgstr "行為與「頁面翻譯」裡的 AI 翻譯按鈕一致：只翻沒有譯文的項目，結果直接寫入資料庫，下次造訪就不用再等。"

#: admin/views/settings-page.php:268
#: admin/views/settings-page.php:296
msgid "Note:"
msgstr "注意："

#: admin/views/settings-page.php:269
msgid "The first visitor waits for the AI to answer, so that page load is noticeably slower. Only one process ever translates at a time; other visitors are served whatever is done so far. On content-heavy sites, warm things up with Translate all first and turn this on afterwards."
msgstr "第一位訪客需要等待 AI 回應，頁面會明顯變慢；同一時刻只有一個行程真正在翻譯，其餘訪客直接看目前進度的結果。內容量大的網站建議先用「全部翻譯」預熱，再開這個開關。"

#: admin/views/settings-page.php:276
msgid "Fetching source pages"
msgstr "抓取原頁面"

#: admin/views/settings-page.php:280
msgid "Fetch IP"
msgstr "抓取用 IP"

#: admin/views/settings-page.php:283
msgid "Leave empty to use normal DNS"
msgstr "留空則照常走 DNS 解析"

#. translators: %s: the site host name
#: admin/views/settings-page.php:289
#, php-format
msgid "Every translation starts by fetching the page from your own site. Fill this in only when the server cannot reach %s itself — the name resolves to a CDN or a load balancer that cannot come back to this machine, or the DNS this server uses does not know it. The fetch then connects straight to the IP you enter."
msgstr "每次翻譯都要先從你自己的網站上把頁面抓回來。只有在伺服器連不到 %s 時才需要填：網域解析到了 CDN 或負載平衡，回不到這台機器；或者這台伺服器用的 DNS 根本不認得這個網域。填上之後，抓取會直接連你指定的 IP。"

#: admin/views/settings-page.php:294
msgid "The Host header and the HTTPS certificate keep using your domain, so this is safe on a server hosting several sites."
msgstr "Host 標頭與 HTTPS 憑證仍然使用你的網域，所以一台伺服器上跑多個網站時填了也不會跑錯站。"

#: admin/views/settings-page.php:297
msgid "Do not enter 127.0.0.1 just in case. If PHP runs in a container, or on a different machine from the web server, that address points at the wrong place and no page can be fetched at all. Leave it empty unless fetching actually fails."
msgstr "不要為了保險隨手填 127.0.0.1。PHP 跑在容器裡、或與 Web 服務不在同一台機器上時，這個位址指向的是別處，反而一個頁面都抓不到。抓取沒出問題就留空。"

#: admin/views/settings-page.php:299
msgid "When a fetch fails, the Translate Pages screen reports the address that was requested and the IP it reached; open the browser console there for the full details."
msgstr "抓取失敗時，「頁面翻譯」頁會給出實際請求的位址與連到的 IP；完整資訊在該頁的瀏覽器主控台裡。"

#: admin/views/settings-page.php:306
msgid "Front end"
msgstr "前台顯示"

#: admin/views/settings-page.php:310
msgid "hreflang"
msgstr "hreflang"

#: admin/views/settings-page.php:314
msgid "Output hreflang links for every language version in the page <head>"
msgstr "在頁面 <head> 裡輸出各語言版本的 hreflang 連結"

#: admin/views/settings-page.php:316
msgid "Tells search engines which language versions of the same content exist. The source version doubles as x-default, and the hreflang regions entered under Languages produce additional regional variants."
msgstr "告訴搜尋引擎同一內容有哪些語言版本。原文版本同時作為 x-default；語言管理裡填的「hreflang 地區」會額外產生對應的地區變體。"

#: admin/views/settings-page.php:321
msgid "Language switcher"
msgstr "語言切換選單"

#: admin/views/settings-page.php:325
msgid "Show the language switcher on the front end"
msgstr "在前台顯示語言切換選單"

#: admin/views/settings-page.php:327
msgid "By default it floats in the top right corner and can be dragged anywhere; the position is remembered locally in the browser."
msgstr "預設浮動在右上角，可以拖曳到任意位置，位置記在瀏覽器本機。"

#: admin/views/settings-page.php:331
msgid "Show flag icons"
msgstr "顯示旗幟小圖示"

#: admin/views/settings-page.php:341
msgid "The icons are embedded in the page (22px wide PNGs) and cost no extra request. Here is how the current language looks:"
msgstr "圖示內嵌在頁面裡（22px 寬的 PNG），不額外發請求。目前語言的效果："

#: admin/views/settings-page.php:359
msgid "Container ID"
msgstr "選單容器 ID"

#: admin/views/settings-page.php:364
msgid "Enter the id of an element in your theme, without the #. The switcher is placed inside that element and follows the theme's layout instead of floating, and can no longer be dragged. Leave empty to keep it floating."
msgstr "填主題裡某個元素的 id（不用帶 #），選單會掛進那個元素、跟著主題版面走，不再浮動也不能拖曳。留空則保持浮動。"

#: admin/views/settings-page.php:366
msgid "If the id cannot be found the switcher falls back to floating, so a theme redesign never leaves visitors without a way to change language."
msgstr "找不到該 id 時自動回退成浮動顯示，不會因為主題改版就沒了入口。"

#: admin/views/settings-page.php:446
msgid "AI service"
msgstr "AI 服務"

#: admin/views/settings-page.php:450
#: admin/views/settings-page.php:453
msgid "Where translations are requested"
msgstr "翻譯請求走哪裡"

#: admin/views/settings-page.php:457
msgid "Subscription (recommended) — one access key, no AI provider account of your own needed"
msgstr "訂閱服務（推薦）—— 填一組存取金鑰即可，不必自備 AI 平台帳號"

#: admin/views/settings-page.php:464
msgid "Automatic — use this site's AI settings when they are available, otherwise the settings below"
msgstr "自動 —— 本網站設定了 AI 就用網站的 AI 設定，否則使用下方的設定"

#: admin/views/settings-page.php:470
msgid "This site's AI settings only"
msgstr "只用本網站的 AI 設定"

#: admin/views/settings-page.php:477
msgid "My own AI account — the model and API key below"
msgstr "自備 AI 帳號 —— 使用下方填寫的模型與 API Key"

#: admin/views/settings-page.php:481
msgid "WordPress 7.0 and later can hold one AI provider and key for the whole site, so every plugin shares the same configuration and you enter your key once. This plugin uses it whenever it is set up."
msgstr "WordPress 7.0 及以上版本可以為整個網站設定一個 AI 平台與金鑰，所有外掛共用這一套設定，金鑰只需填一次。只要網站設定好了，本外掛就會使用它。"

#: admin/views/settings-page.php:485
msgid "Status: this site has an AI provider configured and ready to use."
msgstr "狀態：本網站已設定 AI 平台，可以直接使用。"

#: admin/views/settings-page.php:487
msgid "Status: this site has no AI provider configured, so the settings below are used. Fill them in, or set a provider up for the whole site."
msgstr "狀態：本網站尚未設定 AI 平台，將使用下方的設定。請把下方填好，或為整個網站設定一個 AI 平台。"

#: admin/views/settings-page.php:491
msgid "WordPress 7.0 and later can hold one AI provider and key for the whole site. This site runs an earlier version, which has no such setting, so the choice is between the subscription service and your own AI account."
msgstr "WordPress 7.0 及以上版本可以為整個網站設定一個 AI 平台與金鑰。本網站執行的是較早的版本，沒有這項設定，因此只能在訂閱服務與自備 AI 帳號之間選擇。"

#: admin/views/settings-page.php:499
msgid "Subscription"
msgstr "訂閱服務"

#: admin/views/settings-page.php:511
msgid "The last usage report did not go through: "
msgstr "最近一次用量回報未成功："

#: admin/views/settings-page.php:531
msgid "Recommended: connect in one step"
msgstr "推薦：一鍵連線"

#: admin/views/settings-page.php:533
msgid "You pick a subscription on the service site; the key is filled in and this site activated for you, with nothing to copy by hand."
msgstr "跳到服務網站選一個訂閱授權，金鑰會自動填好並啟用本網站，不必手動複製貼上。"

#: admin/views/settings-page.php:538
msgid "Reconnect or switch subscription"
msgstr "重新連線 / 更換訂閱"

#: admin/views/settings-page.php:539
msgid "Connect to Aipogeo"
msgstr "連線到 Aipogeo"

#: admin/views/settings-page.php:542
msgid "You will be asked to sign in on the service site"
msgstr "會在服務網站要求登入"

#: admin/views/settings-page.php:547
msgid "Or enter it by hand:"
msgstr "或者手動填寫："

#: admin/views/settings-page.php:552
msgid "Service address"
msgstr "服務位址"

#: admin/views/settings-page.php:559
msgid "Access key"
msgstr "存取金鑰"

#: admin/views/settings-page.php:566
msgid "Activate this site"
msgstr "啟用本網站"

#: admin/views/settings-page.php:569
msgid "Refresh status"
msgstr "重新整理狀態"

#: admin/views/settings-page.php:573
msgid "Release this site"
msgstr "解除綁定本網站"

#: admin/views/settings-page.php:583
msgid "Plan"
msgstr "訂閱"

#: admin/views/settings-page.php:588
msgid "Status"
msgstr "狀態"

#: admin/views/settings-page.php:595
msgid "Renews"
msgstr "到期"

#: admin/views/settings-page.php:599
msgid "Quota this period"
msgstr "本週期額度"

#. translators: 1: tokens used, 2: tokens included in the plan
#: admin/views/settings-page.php:605
#, php-format
msgid "%1$s / %2$s tokens"
msgstr "%1$s / %2$s token"

#: admin/views/settings-page.php:610
msgid "This site"
msgstr "本網站"

#: admin/views/settings-page.php:622
msgid "Generate the key under My Subscriptions on the service site. It is shown once only; if you lose it, go back and reset it. This key is the only credential the plugin stores — no AI provider credentials are kept here."
msgstr "金鑰在服務網站的會員中心「我的訂閱」產生，只顯示一次；忘了就回去重設一組。外掛只儲存這一組金鑰，不會儲存任何 AI 平台的憑證。"

#: admin/views/settings-page.php:628
msgid "Model"
msgstr "模型"

#: admin/views/settings-page.php:638
msgid "The dropdown lists the models the library knows about. You can also type a model name given to you by a relay service (qwen-max or gpt-4o-mini, say); for a name the library does not know, pick the protocol manually below."
msgstr "下拉選單裡是程式庫內建的模型，也可以直接填中轉站給的模型名稱（如 qwen-max、gpt-4o-mini），填了程式庫裡沒有的名稱就要在下面手動選擇協定格式。"

#: admin/views/settings-page.php:643
msgid "Protocol"
msgstr "協定格式"

#: admin/views/settings-page.php:646
msgid "Detect automatically from the model name"
msgstr "自動辨識（按模型名稱）"

#: admin/views/settings-page.php:655
msgid "Decides which request and response format is used to talk to the endpoint. Model names starting with gpt-, claude-, gemini- or deepseek- are detected automatically; anything else — a relay service's own naming, a private deployment — has to be chosen here."
msgstr "決定按哪套請求／回應格式跟介面通訊。gpt-、claude-、gemini-、deepseek- 開頭的模型名稱能自動辨識出來，認不出的（中轉站自訂名稱、私有部署）在這裡手動選擇。"

#: admin/views/settings-page.php:657
msgid "Choosing one here also switches the endpoint to that protocol's official address. When using a relay service, just replace it with the address they gave you."
msgstr "手動選擇後介面網址會跟著換成該協定的官方網址，接中轉站時把網址改成對方給的即可。"

#: admin/views/settings-page.php:662
msgid "Endpoint"
msgstr "介面網址"

#: admin/views/settings-page.php:668
msgid "Restore default"
msgstr "還原預設"

#: admin/views/settings-page.php:671
msgid "This defaults to the built-in address of the selected model (or protocol) and follows along when you change either. Point it at your own gateway or a third-party relay by replacing the address."
msgstr "預設填的是所選模型（或協定）的內建網址，換模型、換協定時會自動跟著變。接自建閘道或第三方中轉站時改成對應網址即可。"

#: admin/views/settings-page.php:673
msgid "A complete endpoint (…/v1/chat/completions) is requested exactly as entered. Given only a root address such as …/v1, the selected protocol's chat path is appended for you."
msgstr "填完整端點（…/v1/chat/completions）就原樣請求；只填到 …/v1 這類根網址時，會自動補上所選協定的對話路徑。"

#: admin/views/settings-page.php:676
msgid "Address actually being requested:"
msgstr "目前實際請求網址："

#: admin/views/settings-page.php:680
msgid "The current configuration is not enough to determine an address:"
msgstr "目前設定還定不出請求網址："

#: admin/views/settings-page.php:696
msgid "Proxy"
msgstr "代理"

#: admin/views/settings-page.php:700
msgid "Leave empty to connect directly. Servers located in China usually need a proxy to reach OpenAI, Claude or Gemini."
msgstr "留空表示直連。位於中國的伺服器造訪 OpenAI／Claude／Gemini 通常需要代理。"

#: admin/views/settings-page.php:704
msgid "Max output tokens"
msgstr "最大輸出 token"

#: admin/views/settings-page.php:709
msgid "This caps the length of a single AI reply, not the model's context window — a model that accepts a 1M-token context will not let you get 1M tokens back at once."
msgstr "限制的是 AI 單次回覆的長度，不是模型的上下文長度——模型支援 1M 上下文，不等於允許一次輸出 1M。"

#: admin/views/settings-page.php:711
msgid "Output limits differ wildly between models (Claude 3 Opus 4K, GPT-4o 16K, DeepSeek 384K), and going over the limit is rejected outright by the provider (HTTP 400). Enter 0 to omit the parameter and follow the selected model's built-in value, which also means you need not touch this when switching models."
msgstr "各模型的輸出上限差很遠（Claude 3 Opus 4K、GPT-4o 16K、DeepSeek 384K），填超過會被平台直接拒絕（HTTP 400）。填 0 表示不傳該參數、跟隨所選模型的內建值，換模型也不用改。"

#: admin/views/settings-page.php:713
msgid "It also decides how much of a page goes into a single request: the value is converted to characters — roughly 1.6 per token for Chinese, Japanese and Korean, 4 for languages written in the Latin alphabet — and never less than 65,535 characters. At 0 the plugin reckons with 65,536 tokens, which is where single-reply limits sit these days, so an ordinary page goes out in one request: fewer requests, and the instruction is not repeated for every batch."
msgstr "它同時決定一次請求送多少頁面內容：這個值會換算成字元數——中日韓大約 1 token 折合 1.6 個字，拉丁字母的語言折合 4 個字元——且不會低於 65535 字元。填 0 時按 65536 token 計算，這也是當下各家單次回覆上限的量級，於是一般頁面整頁一次送出：請求次數少，指令也不必每批重發一遍。"

#: admin/views/settings-page.php:715
msgid "Do not put your model's context window here. A million-token context says how much the model can read, not how much it can write back in one reply; sizing batches by the context window only gets replies cut off."
msgstr "不要把模型的上下文視窗填到這裡。上百萬 token 的上下文說的是模型能讀進去多少，不是一次回覆能寫出來多少；按上下文視窗來定批次大小，只會讓回覆被截斷。"

#: admin/views/settings-page.php:717
msgid "Should a reply be cut off by the limit anyway, the part that arrived complete is salvaged and the items still missing are re-sent in smaller batches, so nothing is lost."
msgstr "萬一回覆還是被上限截斷，已經完整到手的那部分會被搶救下來，剩下沒拿到譯文的條目再拆小重發，內容不會丟。"

#: admin/views/settings-page.php:722
msgid "Request timeout (seconds)"
msgstr "請求逾時（秒）"

#: admin/views/help-page.php:284
#: admin/views/settings-page.php:731
msgid "Translation prompt"
msgstr "翻譯指令"

#: admin/views/settings-page.php:733
msgid "Available variables:"
msgstr "可用變數："

#: admin/views/settings-page.php:735
msgid "— replaced by the source language, the target language and the JSON to translate respectively. Instruct the AI to return nothing but JSON, with the keys unchanged."
msgstr "——分別取代為來源語言、目標語言與待翻譯 JSON。要求 AI 只回傳 JSON，且鍵名保持不變。"

#: admin/views/settings-page.php:750
#: admin/views/settings-page.php:771
msgid "Restore default prompt"
msgstr "還原預設指令"

#: admin/views/settings-page.php:755
#: admin/views/settings-page.php:776
#: admin/views/translate-page.php:153
msgid "Drag up or down to resize the editor"
msgstr "上下拖曳調整編輯區高度"

#: admin/views/settings-page.php:761
msgid "URL path prompt"
msgstr "URL 路徑翻譯指令"

#: admin/views/settings-page.php:763
msgid "Only used once Translate URL paths is on: path items are batched separately and sent with this prompt, which means the content prompt above does not need any URL-related instructions."
msgstr "開啟「翻譯 URL 路徑」後才用得上：路徑項目會單獨成批，用這條指令送翻，上面那條正文指令不必再寫 URL 相關的要求。"

#: admin/views/settings-page.php:765
msgid "The variables are the same as in the content prompt:"
msgstr "變數與正文指令相同："

#: admin/views/settings-page.php:767
msgid ". The plugin also cleans up whatever comes back: it strips the domain, turns spaces into hyphens, restores the query string and fragment from the original, and matches the original's trailing slash."
msgstr "。譯文回來後外掛還會收一道尾：剝掉網域、把空格換成連字號、查詢字串與錨點按原文還原、結尾斜線跟隨原文。"

#: admin/views/settings-page.php:783
msgid "Save Settings"
msgstr "儲存設定"

#: admin/views/translate-page.php:53
msgid "Set the site default language and add at least one target language first."
msgstr "請先設定網站預設語言並至少新增一個目標語言。"

#: admin/views/translate-page.php:73
msgid "Page"
msgstr "頁面"

#: admin/views/translate-page.php:75
msgid "— Select a page —"
msgstr "— 請選擇頁面 —"

#: admin/views/translate-page.php:102
msgid "This affects the Translate with AI button only. Checked, existing translations are kept as they are and cost no further AI usage; unchecked, the whole page is translated again and overwritten. Loading a page always lists every item regardless."
msgstr "只影響「AI 翻譯」按鈕：勾選時已有譯文原樣保留、不重複消耗 AI；取消勾選則整頁重譯並覆蓋。載入頁面時始終顯示全部項目。"

#: admin/views/translate-page.php:104
msgid "Skip items that already have a translation"
msgstr "AI 翻譯時略過已有譯文"

#: admin/views/translate-page.php:110
msgid "Translate every page that has no translation yet, several at a time: the language selected here first, then the remaining target languages"
msgstr "多個頁面同時翻譯所有還沒有譯文的頁面：先翻這裡選取的語言，翻完再接著翻其餘目標語言"

#: admin/views/translate-page.php:111
msgid "Translate all"
msgstr "全部翻譯"

#: admin/views/translate-page.php:114
msgid "Send this page's source text to the AI; the result is stored and filled into the right-hand editor"
msgstr "呼叫 AI 翻譯目前頁面的原文，結果自動寫入資料庫並回填到右側"

#: admin/views/translate-page.php:115
msgid "Translate with AI"
msgstr "AI 翻譯"

#: admin/views/translate-page.php:117
msgid "Save"
msgstr "儲存"

#: admin/views/translate-page.php:132
msgid "Choose a language and a page to load the data."
msgstr "選擇語言與頁面後載入資料。"

#: admin/views/translate-page.php:140
msgid "Source JSON (read-only)"
msgstr "原文 JSON（唯讀）"

#: admin/views/translate-page.php:147
msgid "Translation JSON (editable)"
msgstr "譯文 JSON（可編輯）"

#: admin/views/translate-page.php:148
msgid "The keys match the left-hand side one for one. Emptying a translation and saving deletes that record."
msgstr "鍵與左側一一對應；清空某條譯文並儲存即刪除該筆記錄"

#: admin/views/translate-page.php:157
msgid "Translate with AI runs the source text on the left through the current prompt and stores the result immediately with the engine marked ai, filling it into the right-hand side for you to check. Editing by hand and pressing Save overwrites the record with the engine marked manual."
msgstr "「AI 翻譯」會按目前指令翻譯左側原文並立即寫入資料庫（引擎標記為 ai），結果自動填入右側供核對；手動修改後點「儲存」會以 manual 引擎覆蓋寫入。"

#: admin/views/translate-page.php:159
msgid "Skip items that already have a translation applies to the translate button only, not to what is shown here — the editor always lists every item on the page, with stored translations filled in."
msgstr "「AI 翻譯時略過已有譯文」只作用於翻譯按鈕，不影響這裡的顯示——編輯區始終列出該頁面的全部項目，已翻譯的直接帶出資料庫裡的譯文。"

#: includes/class-apgt-lock.php:201
msgid "another process"
msgstr "其他行程"

#: includes/class-apgt-pages.php:29
msgid "Site home page"
msgstr "網站首頁"

#: includes/class-apgt-pages.php:30
msgid "Home"
msgstr "首頁"

#. translators: %d: post ID
#: includes/class-apgt-pages.php:69
#, php-format
msgid "(untitled #%d)"
msgstr "(無標題 #%d)"

#: includes/class-apgt-service.php:95
msgid "No service address has been entered yet"
msgstr "尚未填寫服務位址"

#. translators: %d: HTTP status code
#: includes/class-apgt-service.php:130
#, php-format
msgid "The service returned something that could not be read (HTTP %d)"
msgstr "服務端回傳了無法解析的內容（HTTP %d）"

#: includes/class-apgt-service.php:231
msgid "There is nothing to translate"
msgstr "沒有需要翻譯的內容"

#: includes/class-apgt-service.php:341
msgid "The connection could not be verified. Start the connection again."
msgstr "連線驗證失敗，請重新發起連線。"

#. translators: %s: subscription product name
#: includes/class-apgt-service.php:366
#, php-format
msgid "Connected to \"%s\". This site can start translating."
msgstr "已連線到「%s」，本網站可以開始翻譯了。"

#: includes/class-apgt-service.php:379
msgid "No access key has been entered yet."
msgstr "還沒有填寫存取金鑰。"

#: includes/class-apgt-service.php:380
msgid "That access key is not valid. Check that you copied all of it."
msgstr "金鑰無效，請檢查是否複製完整。"

#: includes/class-apgt-service.php:381
msgid "That access key has been revoked. Generate a new one in your account."
msgstr "金鑰已被撤銷，請到會員中心重新產生一組。"

#: includes/class-apgt-service.php:382
msgid "The subscription has expired or was cancelled. Renew it to carry on."
msgstr "訂閱已過期或已取消，續費後即可繼續使用。"

#: includes/class-apgt-service.php:383
msgid "This billing period's translation quota is used up. Upgrade the plan or wait for the next period."
msgstr "本週期的翻譯額度已用完，可升級方案或等待下個週期。"

#: includes/class-apgt-service.php:384
msgid "The subscription is already linked to as many sites as it allows. Release another site in your account first."
msgstr "綁定的網站數已達上限，請先在會員中心解除綁定其他網站。"

#: includes/class-apgt-service.php:385
msgid "This site is not activated yet. Press \"Activate this site\" once."
msgstr "本網站尚未啟用，請先按一次「啟用本網站」。"

#: includes/class-apgt-service.php:386
msgid "The service could not be reached. Check the service address and the server's network access."
msgstr "連不上服務端，請檢查服務位址與網路。"

#: includes/class-apgt-service.php:387
msgid "The service returned an error. Please try again shortly."
msgstr "服務端回傳異常，請稍後再試。"

#: includes/class-apgt-service.php:388
msgid "That batch was too large for one request. It will be split up and retried."
msgstr "這一批內容太多，一次請求放不下，將拆分後重試。"

#: includes/class-apgt-service.php:389
msgid "The translation service could not reach its AI provider. Please try again shortly."
msgstr "翻譯服務暫時連不上 AI 平台，請稍後再試。"

#: includes/class-apgt-service.php:390
msgid "The AI returned nothing this time. Please try again shortly."
msgstr "AI 這次沒有回傳任何內容，請稍後再試。"

#: includes/class-apgt-service.php:391
msgid "The translation service has no AI model configured yet. Please contact support."
msgstr "翻譯服務尚未設定 AI 模型，請聯絡客服。"

#: includes/class-apgt-service.php:399
msgid "That did not work. Please try again shortly."
msgstr "操作失敗，請稍後再試。"

#: includes/class-apgt-translator.php:210
msgid "This WordPress version has no built-in AI client. Switch this plugin back to its own AI service settings."
msgstr "目前的 WordPress 版本沒有內建 AI 用戶端，請把本外掛切回它自己的 AI 服務設定。"

#. translators: 1: limit allowed by the provider, 2: original error
#: includes/class-apgt-translator.php:434
#, php-format
msgid "Max output tokens in the settings exceeds this model's limit (at most %1$s). Lower it, or enter 0 to follow the model's built-in value. Original error: %2$s"
msgstr "設定裡的「最大輸出 token」超過該模型上限（最大 %1$s），請調小或填 0 跟隨模型內建值。原始錯誤：%2$s"

#. translators: %s: original error
#: includes/class-apgt-translator.php:444
#, php-format
msgid "AI request failed: %s"
msgstr "AI 請求異常：%s"

#: includes/class-apgt-translator.php:463
msgid "The AI library is not loaded. Run composer install in the plugin directory."
msgstr "AI 程式庫未載入，請在外掛目錄執行 composer install。"

#: includes/class-apgt-translator.php:490
msgid "The site default language is not set"
msgstr "未設定網站預設語言"

#: includes/class-apgt-translator.php:493
msgid "Invalid target language"
msgstr "目標語言無效"

#: includes/class-apgt-translator.php:514
msgid "This page has no translatable text"
msgstr "該頁面無可翻譯文字"

#: includes/class-apgt-translator.php:534
msgid "Every text on this page is already translated"
msgstr "該頁面文字均已翻譯"

#. translators: 1: succeeded, 2: skipped, 3: failed
#: includes/class-apgt-translator.php:570
#, php-format
msgid "%1$d succeeded, %2$d skipped, %3$d failed"
msgstr "成功 %1$d 條，略過 %2$d 條，失敗 %3$d 條"

#. translators: %s: error message
#: includes/class-apgt-translator.php:694
#, php-format
msgid "Could not fetch the page: %s"
msgstr "抓取頁面失敗：%s"

#. translators: %d: HTTP status code
#: includes/class-apgt-translator.php:705
#, php-format
msgid "Could not fetch the page, HTTP %d"
msgstr "抓取頁面失敗，HTTP %d"

#. translators: %d: number of items
#: includes/class-apgt-translator.php:1128
#, php-format
msgid "%d texts still came back without a translation after retrying"
msgstr "有 %d 條文字重試後仍未回傳譯文"

#: includes/class-apgt-translator.php:1146
msgid "The AI returned no translation for a single-text request"
msgstr "單條文字 AI 未回傳對應譯文"

#: includes/class-apgt-translator.php:1192
msgid "No subscription is connected yet. Press \"Connect to Aipogeo\" in the settings."
msgstr "尚未連線訂閱，請在設定中按「連線到 Aipogeo」。"

#: includes/class-apgt-translator.php:1204
msgid "The subscription quota is used up. Upgrade the plan or wait for the next period."
msgstr "訂閱額度已用完，可升級方案或等待下個週期。"

#: includes/class-apgt-translator.php:1214
msgid "This site has no AI provider configured yet. Set one up under Settings, or switch this plugin back to its own AI service settings."
msgstr "本網站尚未設定 AI 平台。請到「設定」裡設定一個，或把本外掛切回它自己的 AI 服務設定。"

#: includes/class-apgt-translator.php:1226
msgid "No AI API key configured"
msgstr "未設定 AI API Key"

#: includes/class-apgt-translator.php:1319
msgid "The AI returned an empty response"
msgstr "AI 回傳為空"

#: includes/class-apgt-translator.php:1337
msgid "The AI response was cut off by the length limit and contained nothing usable"
msgstr "AI 回傳被長度上限截斷，且無可用內容"

#: includes/class-apgt-translator.php:1338
msgid "The AI response is not valid JSON"
msgstr "AI 回傳不是有效 JSON"

#. translators: %s: raw AI response, truncated. Note the leading space: this is appended to an error message.
#: includes/functions.php:199
#, php-format
msgid " (AI returned: %s)"
msgstr "（AI 回傳：%s）"

#: includes/functions.php:215
msgid "Afrikaans"
msgstr "南非荷蘭語"

#: includes/functions.php:216
msgid "Arabic"
msgstr "阿拉伯語"

#: includes/functions.php:217
msgid "Azerbaijani"
msgstr "亞塞拜然語"

#: includes/functions.php:218
msgid "Bulgarian"
msgstr "保加利亞語"

#: includes/functions.php:219
msgid "Bengali"
msgstr "孟加拉語"

#: includes/functions.php:220
msgid "Czech"
msgstr "捷克語"

#: includes/functions.php:221
msgid "Danish"
msgstr "丹麥語"

#: includes/functions.php:222
msgid "German"
msgstr "德語"

#: includes/functions.php:223
msgid "Greek"
msgstr "希臘語"

#: includes/functions.php:224
msgid "English"
msgstr "英語"

#: includes/functions.php:225
msgid "Spanish"
msgstr "西班牙語"

#: includes/functions.php:226
msgid "Amharic"
msgstr "阿姆哈拉語"

#: includes/functions.php:227
msgid "Persian"
msgstr "波斯語"

#: includes/functions.php:228
msgid "Finnish"
msgstr "芬蘭語"

#: includes/functions.php:229
msgid "French"
msgstr "法語"

#: includes/functions.php:230
msgid "Irish"
msgstr "愛爾蘭語"

#: includes/functions.php:231
msgid "Gujarati"
msgstr "古吉拉特語"

#: includes/functions.php:232
msgid "Hebrew"
msgstr "希伯來語"

#: includes/functions.php:233
msgid "Hindi"
msgstr "印地語"

#: includes/functions.php:234
msgid "Croatian"
msgstr "克羅埃西亞語"

#: includes/functions.php:235
msgid "Haitian"
msgstr "海地克里奧爾語"

#: includes/functions.php:236
msgid "Hungarian"
msgstr "匈牙利語"

#: includes/functions.php:237
msgid "Armenian"
msgstr "亞美尼亞語"

#: includes/functions.php:238
msgid "Indonesian"
msgstr "印尼語"

#: includes/functions.php:239
msgid "Icelandic"
msgstr "冰島語"

#: includes/functions.php:240
msgid "Italian"
msgstr "義大利語"

#: includes/functions.php:241
msgid "Inuktitut"
msgstr "因紐特語"

#: includes/functions.php:242
msgid "Japanese"
msgstr "日語"

#: includes/functions.php:243
msgid "Central Khmer"
msgstr "高棉語"

#: includes/functions.php:244
msgid "Kannada"
msgstr "坎那達語"

#: includes/functions.php:245
msgid "Korean"
msgstr "韓語"

#: includes/functions.php:246
msgid "Kurdish"
msgstr "庫德語"

#: includes/functions.php:247
msgid "Lao"
msgstr "寮語"

#: includes/functions.php:248
msgid "Lithuanian"
msgstr "立陶宛語"

#: includes/functions.php:249
msgid "Latvian"
msgstr "拉脫維亞語"

#: includes/functions.php:250
msgid "Malagasy"
msgstr "馬拉加西語"

#: includes/functions.php:251
msgid "Maori"
msgstr "毛利語"

#: includes/functions.php:252
msgid "Malayalam"
msgstr "馬拉雅拉姆語"

#: includes/functions.php:253
msgid "Marathi"
msgstr "馬拉地語"

#: includes/functions.php:254
msgid "Malay"
msgstr "馬來語"

#: includes/functions.php:255
msgid "Maltese"
msgstr "馬爾他語"

#: includes/functions.php:256
msgid "Burmese"
msgstr "緬甸語"

#: includes/functions.php:257
msgid "Nepali"
msgstr "尼泊爾語"

#: includes/functions.php:258
msgid "Dutch"
msgstr "荷蘭語"

#: includes/functions.php:259
msgid "Norwegian"
msgstr "挪威語"

#: includes/functions.php:260
msgid "Oriya"
msgstr "奧里亞語"

#: includes/functions.php:261
msgid "Punjabi"
msgstr "旁遮普語"

#: includes/functions.php:262
msgid "Polish"
msgstr "波蘭語"

#: includes/functions.php:263
msgid "Pashto"
msgstr "普什圖語"

#: includes/functions.php:264
msgid "Portuguese"
msgstr "葡萄牙語"

#: includes/functions.php:265
msgid "Romanian"
msgstr "羅馬尼亞語"

#: includes/functions.php:266
msgid "Russian"
msgstr "俄語"

#: includes/functions.php:267
msgid "Slovak"
msgstr "斯洛伐克語"

#: includes/functions.php:268
msgid "Slovenian"
msgstr "斯洛維尼亞語"

#: includes/functions.php:269
msgid "Samoan"
msgstr "薩摩亞語"

#: includes/functions.php:270
msgid "Albanian"
msgstr "阿爾巴尼亞語"

#: includes/functions.php:271
msgid "Swedish"
msgstr "瑞典語"

#: includes/functions.php:272
msgid "Swahili"
msgstr "史瓦希里語"

#: includes/functions.php:273
msgid "Tamil"
msgstr "坦米爾語"

#: includes/functions.php:274
msgid "Telugu"
msgstr "泰盧固語"

#: includes/functions.php:275
msgid "Thai"
msgstr "泰語"

#: includes/functions.php:276
msgid "Tonga"
msgstr "東加語"

#: includes/functions.php:277
msgid "Turkish"
msgstr "土耳其語"

#: includes/functions.php:278
msgid "Ukrainian"
msgstr "烏克蘭語"

#: includes/functions.php:279
msgid "Urdu"
msgstr "烏爾都語"

#: includes/functions.php:280
msgid "Vietnamese"
msgstr "越南語"

#: includes/functions.php:281
msgid "Chinese Simplified"
msgstr "簡體中文"

#: includes/functions.php:282
msgid "Chinese Traditional"
msgstr "繁體中文"

#. translators: 1: language name 2: ISO language code
#: includes/functions.php:317
#, php-format
msgctxt "language name with code"
msgid "%1$s (%2$s)"
msgstr "%1$s（%2$s）"

#: admin/class-apgt-admin.php:346
msgid "HTML tags are not allowed in the switcher CSS. Remove every \"<\" character and save again."
msgstr "切換選單的 CSS 裡不允許出現 HTML 標籤。請刪除所有「<」字元後再儲存。"

#: admin/class-apgt-admin.php:347
msgid "This replaces the editor content with the plugin's default switcher styles and discards your edits. Continue?"
msgstr "這會以外掛預設的切換選單樣式取代編輯框內容，你的修改將被捨棄。要繼續嗎？"

#: admin/views/settings-page.php:59
msgid "The custom switcher CSS was not saved: it contains a \"<\" character. CSS never needs one, and HTML tags are not allowed here. Every other setting was saved normally."
msgstr "自訂切換選單 CSS 未儲存：其中含有「<」字元。CSS 用不到這個字元，這裡也不允許寫 HTML 標籤。其餘設定已正常儲存。"

#: admin/views/settings-page.php:65
msgid "The custom switcher CSS was not saved: it is longer than 64 KB. Every other setting was saved normally."
msgstr "自訂切換選單 CSS 未儲存：內容超過 64 KB。其餘設定已正常儲存。"

#: admin/views/settings-page.php:380
#: admin/views/settings-page.php:383
msgid "Switcher styles"
msgstr "切換選單樣式"

#: admin/views/settings-page.php:386
msgid "Plugin default"
msgstr "外掛預設樣式"

#: admin/views/settings-page.php:391
msgid "My own CSS (edit below) — used instead of the default stylesheet"
msgstr "我自己的 CSS（在下方編輯）——取代預設樣式表"

#: admin/views/settings-page.php:396
msgid "No styles — my theme styles the switcher"
msgstr "不載入樣式——由我的佈景主題撰寫切換選單樣式"

#: admin/views/settings-page.php:400
msgid "The switcher markup stays the same whichever you pick; only the stylesheet changes. The class names it uses are listed in the plugin FAQ and will not be renamed."
msgstr "無論選哪一項，切換選單的 HTML 結構都不變，變的只是樣式表。它用到的類別名稱列在外掛的常見問題裡，日後不會更名。"

#. translators: 1: CSS class name, 2: CSS class name
#: admin/views/settings-page.php:405
#, php-format
msgid "With No styles, your theme also takes over the parts that are not just looks: floating in the corner, and showing the menu only while the %1$s class is present on the switcher. Docking it into a theme element with Container ID above is usually the easiest way to use this option. Developers can also return false from the %2$s filter."
msgstr "選「不載入樣式」時，那些不只是外觀的部分也要由佈景主題負責：浮動在角落，以及只在切換選單帶有 %1$s 類別時才顯示下拉選單。通常最省事的用法是搭配上方的「選單容器 ID」把它放進佈景主題的某個元素。開發者也可以讓 %2$s 篩選器傳回 false。"

#: admin/views/settings-page.php:415
msgid "The plugin's default switcher stylesheet has changed since you saved your own CSS, so yours is based on an older version. Use Restore default styles to see the new one; your saved CSS keeps working until you change it."
msgstr "你儲存自訂 CSS 之後，外掛的預設切換選單樣式有過更新，你這份是以舊版為基礎修改的。按「還原預設樣式」可查看新版；在你修改之前，已儲存的 CSS 照常生效。"

#: admin/views/settings-page.php:420
msgid "Restore default styles"
msgstr "還原預設樣式"

#: admin/views/settings-page.php:426
msgid "Stored in the database and printed inline on the front end; no file is written. HTML tags are not allowed. If this is left empty, the default stylesheet is used."
msgstr "儲存在資料庫中，前台以內嵌樣式輸出，不會寫入任何檔案。不允許寫 HTML 標籤。留空則使用預設樣式表。"

#. translators: %1$s: seconds until translation resumes
#: admin/class-apgt-admin.php:271
#, php-format
msgid "The server asked us to slow down (rate limit). Resuming in %1$s seconds…"
msgstr "伺服器要求放慢請求（觸發限流），%1$s 秒後繼續…"

#: admin/views/settings-page.php:159
msgid "Off"
msgstr "關閉"

#: admin/views/settings-page.php:169
msgid "On a schedule (WP-Cron): the server works through the pending pages one at a time, whether or not anyone is logged in"
msgstr "依排程（WP-Cron）：由伺服器逐一翻譯待翻譯頁面，不論是否有人登入"

#: admin/views/settings-page.php:175
msgid "The scheduled option needs no open browser, so pages are translated ahead of time and no visitor has to trigger them. It keeps using AI credit until every page in every target language is done."
msgstr "排程方式不需要開著瀏覽器，頁面會預先翻譯好，不必等訪客觸發。在所有目標語言的所有頁面翻譯完成之前，它會持續消耗 AI 額度。"

#. translators: %s: date and time of the next run
#: admin/views/settings-page.php:189
#, php-format
msgid "Next run: %s"
msgstr "下次執行：%s"

#: admin/views/settings-page.php:194
msgid "Not scheduled yet: set the default language and add at least one target language first."
msgstr "尚未排入排程：請先設定預設語言，並至少新增一個目標語言。"

#. translators: 1: date and time, 2: page title and language, 3: result
#: admin/views/settings-page.php:201
#, php-format
msgid "Last run %1$s: %2$s %3$s"
msgstr "上次執行 %1$s：%2$s %3$s"

#. translators: 1: constant name, 2: file name
#: admin/views/settings-page.php:215
#, php-format
msgid "%1$s is set on this site, so WordPress does not run scheduled tasks by itself. Make sure a system cron job requests %2$s regularly, otherwise background translation never runs."
msgstr "本網站設定了 %1$s，WordPress 不會自行執行排程工作。請確認有系統排程（cron）定期請求 %2$s，否則後台翻譯永遠不會執行。"

#: admin/views/settings-page.php:233
msgid "On a schedule the minimum is 60 seconds. WP-Cron only runs when the site gets a request, so on a quiet site the real gap can be longer."
msgstr "排程方式最短 60 秒。WP-Cron 要有造訪才會觸發，造訪較少的網站實際間隔可能更長。"

#: admin/views/settings-page.php:238
msgid "Pages at a time (Translate all)"
msgstr "同時翻譯的頁面數（全部翻譯）"

#: admin/views/settings-page.php:243
msgid "How many pages the Translate all button works on at once, 1 to 5. Higher is faster but sends more requests to your server and the AI provider. If your host or the AI provider answers \"too many requests\", the queue pauses and retries on its own; lower this number if that happens often."
msgstr "「全部翻譯」按鈕同時處理幾個頁面，1 到 5。數值越大越快，但送往伺服器與 AI 平台的請求也越多。如果主機或 AI 平台回應「請求過多」，佇列會自動暫停並重試；若經常發生，請調低這個數值。"

#: includes/class-apgt-cron.php:82
msgid "Aipogeo Context Translate background translation"
msgstr "Aipogeo 上下文翻譯後台翻譯"

#: includes/class-apgt-cron.php:140
msgid "The next page is already being translated elsewhere"
msgstr "下一個頁面正在別處翻譯中"

#: admin/views/settings-page.php:266
msgid "Coverage is the number of stored translations for the page divided by the number of items extracted from it; text that only appears in structured data (JSON-LD) is not counted. The default of 100 means the translated page is only served once the whole page is done; below that the source page is shown as usual, which keeps half-translated pages out of search indexes. This applies to every translated page, whether or not live translation is on. To see why a page came out untranslated, check its X-APGT-Status response header."
msgstr "佔比 = 該頁面已有譯文的條數 ÷ 擷取到的條數；只出現在結構化資料（JSON-LD）裡的文字不計入。預設 100 表示整頁翻完才輸出譯文，達不到就先照常顯示原文，避免半中半英的頁面被搜尋引擎收錄。無論是否開啟即時翻譯，這條規則對所有譯文頁面都生效。想知道某個頁面為什麼沒翻譯，請看它的 X-APGT-Status 回應標頭。"

#: admin/views/help-page.php:211
msgid "3. Customizing the translation prompt"
msgstr "三、自訂翻譯指令"

#: admin/views/help-page.php:214
msgid "The translation prompt is the instruction sent to the AI together with every batch of text. The default is generic: it knows nothing about your business, so it cannot tell that \"Acme Cloud\" is your company rather than two ordinary words, or that a model number has to stay as it is. Anything specific to your site has to come from you. Edit it under Translation Settings, in the Translation prompt section at the bottom of the page."
msgstr "翻譯指令是隨每一批文字一起送給 AI 的說明。預設指令是通用的：它對你的業務一無所知，分不清「Acme Cloud」是你的公司名還是兩個普通單字，也不知道型號必須原樣保留。凡是和你網站相關的具體資訊，都得由你來告訴它。在「翻譯設定」頁面底部的「翻譯指令」區塊編輯。"

#: admin/views/help-page.php:217
msgid "What to tell the AI"
msgstr "該告訴 AI 什麼"

#: admin/views/help-page.php:222
msgid "What"
msgstr "內容"

#: admin/views/help-page.php:223
msgid "Why it matters"
msgstr "為什麼要寫"

#: admin/views/help-page.php:228
msgid "Brand, company and site names"
msgstr "品牌、公司和網站名稱"

#: admin/views/help-page.php:229
msgid "Left alone, the AI may translate them word by word, transliterate them into the target script, or treat them as ordinary words. This is the most common reason a translated page reads wrongly."
msgstr "不交代的話，AI 可能把它們逐字翻譯、音譯成目標語言的文字，或者當成普通詞彙處理。翻譯後的頁面讀起來不對勁，這是最常見的原因。"

#: admin/views/help-page.php:232
msgid "Product, series and model names"
msgstr "產品、系列和型號名稱"

#: admin/views/help-page.php:233
msgid "Names such as \"Sunrise Pro\" or \"X-200\" look like everyday words or codes to the AI, so it does not know they are fixed."
msgstr "「Sunrise Pro」「X-200」這類名稱在 AI 看來像日常詞彙或編號，它並不知道這些是固定不變的。"

#: admin/views/help-page.php:236
msgid "People, places and addresses"
msgstr "人名、地名和地址"

#: admin/views/help-page.php:237
msgid "Team members, office locations and street addresses usually stay as they are written."
msgstr "團隊成員、辦公地點和街道地址通常要照原樣保留。"

#: admin/views/help-page.php:240
msgid "Fixed terminology"
msgstr "固定術語"

#: admin/views/help-page.php:241
msgid "Words your business uses in one particular way (\"plan\", \"seat\", \"quote\") otherwise come out differently from page to page."
msgstr "你的業務裡有特定用法的詞（如「方案」「席位」「報價」），不指定的話，每個頁面的譯法可能都不一樣。"

#: admin/views/help-page.php:244
msgid "The site and its audience"
msgstr "網站與受眾"

#: admin/views/help-page.php:245
msgid "A sentence about your industry, your readers and the tone you want lets the AI choose the right register and vocabulary."
msgstr "用一句話說明你的產業、讀者和想要的語氣，AI 就能選對措辭和用語。"

#: admin/views/help-page.php:250
msgid "Example: adding notes to the default prompt"
msgstr "範例：在預設指令裡追加說明"

#: admin/views/help-page.php:253
msgid "Keep the default prompt as it is and add lines of your own under \"Notes:\". In the example below, the first line stands for the notes that are already there; everything after it is new. Write your additions in the same language as the rest of the prompt."
msgstr "保留預設指令不動，在「Notes:」下面追加你自己的行。下面範例中，第一行代表已有的說明，其後的內容都是新增的。追加的內容請使用和指令其餘部分相同的語言撰寫。"

#: admin/views/help-page.php:268
msgid "Names the AI keeps getting wrong"
msgstr "AI 總是譯錯的名稱"

#: admin/views/help-page.php:271
msgid "A prompt is a request, and the AI can still slip. Two other tools are stricter, and the three work well together:"
msgstr "指令只是一個請求，AI 仍可能出錯。還有兩個更嚴格的手段，三者搭配效果最好："

#: admin/views/help-page.php:277
msgid "Tool"
msgstr "手段"

#: admin/views/help-page.php:278
msgid "How it works"
msgstr "運作方式"

#: admin/views/help-page.php:279
msgid "Best for"
msgstr "最適合"

#: admin/views/help-page.php:285
msgid "Asks the AI to leave names alone or to use your wording. It applies to every string that is sent."
msgstr "請 AI 不要動這些名稱，或者使用你指定的說法。對每一條送去翻譯的文字都生效。"

#: admin/views/help-page.php:286
msgid "Names inside sentences, terminology, tone."
msgstr "句子中間的名稱、術語、語氣。"

#: admin/views/help-page.php:289
msgid "Markers (section 2)"
msgstr "不翻譯標記（第二節）"

#: admin/views/help-page.php:290
msgid "A marked element is never sent to the AI at all. It applies to a whole element, so it suits blocks rather than a single word inside a sentence."
msgstr "帶標記的元素根本不會送給 AI。標記作用於整個元素，所以適合整塊內容，不適合句子裡的單一詞。"

#: admin/views/help-page.php:291
msgid "A model number, a code snippet, an address block."
msgstr "型號、程式碼片段、地址區塊。"

#: admin/views/help-page.php:294
msgid "Replacement rules (Languages screen)"
msgstr "取代規則（語言管理頁面）"

#: admin/views/help-page.php:296
msgid "A name the AI keeps rendering wrongly in one language."
msgstr "AI 在某個語言裡總是譯錯的名稱。"

#: admin/views/help-page.php:302
msgid "For example, if the German translation keeps turning \"Acme Cloud\" into \"Acme Wolke\", add a Word match rule for German: search for \"Acme Wolke\", replace with \"Acme Cloud\"."
msgstr "例如德語譯文總把「Acme Cloud」譯成「Acme Wolke」，就為德語新增一條「模糊取代」規則：尋找「Acme Wolke」，取代為「Acme Cloud」。"

#: admin/views/help-page.php:336
msgid "Good to know"
msgstr "注意事項"

#: admin/views/help-page.php:340
msgid "Keep the three variables."
msgstr "保留三個變數。"

#: admin/views/help-page.php:341
msgid "The prompt must contain {{language_from}}, {{language_to}} and {{translate_data}}, and should ask for JSON only with the keys unchanged. If a variable is missing, the prompt is not saved (the other settings still are)."
msgstr "指令裡必須包含 {{language_from}}、{{language_to}} 和 {{translate_data}}，並且應要求只回傳 JSON、鍵保持不變。缺少任何一個變數，指令就不會儲存（其他設定仍會儲存）。"

#: admin/views/help-page.php:344
msgid "Add, do not rewrite."
msgstr "追加，別重寫。"

#: admin/views/help-page.php:345
msgid "Start from the default prompt and add lines. Restore default prompt brings it back at any time."
msgstr "從預設指令出發，往裡加行。隨時可以用「還原預設指令」還原。"

#: admin/views/help-page.php:348
msgid "Name things one by one."
msgstr "逐個寫明名稱。"

#: admin/views/help-page.php:349
msgid "List the actual names. \"Keep our brand names\" tells the AI nothing, because it cannot know which words those are."
msgstr "把具體名稱列出來。只寫「保留我們的品牌名」等於什麼也沒說，AI 無從知道哪些詞是品牌名。"

#: admin/views/help-page.php:352
msgid "It only affects new translations."
msgstr "只對新的翻譯生效。"

#: admin/views/help-page.php:353
msgid "Strings that are already translated keep their translation. Edit or delete their records under Translation Data, then translate the page again."
msgstr "已經翻譯過的文字保留原來的譯文。請在「譯文資料」裡編輯或刪除對應記錄，再重新翻譯該頁面。"

#: admin/views/help-page.php:356
msgid "Try one page first."
msgstr "先試一個頁面。"

#: admin/views/help-page.php:357
msgid "Translate a single page under Translate Pages, read it side by side with the original, and adjust the prompt before you translate the rest."
msgstr "在「頁面翻譯」裡翻譯單一頁面，與原文對照著讀，調整好指令之後再翻譯其餘頁面。"

#: admin/views/help-page.php:360
msgid "URL paths have their own prompt."
msgstr "URL 路徑有單獨的指令。"

#: admin/views/help-page.php:361
msgid "If Translate URL paths is on, the URL path prompt is a separate setting; add your names there as well."
msgstr "開啟「翻譯 URL 路徑」後，「URL 路徑翻譯指令」是另一項獨立設定，請把名稱也加到那裡。"

#: admin/views/settings-page.php:738
msgid "Tell the AI what must not be translated."
msgstr "告訴 AI 哪些內容不能翻譯。"

#: admin/views/settings-page.php:739
msgid "The AI knows nothing about your business. Unless you say so, it may translate or transliterate your brand name, company name, product and model names or people's names, or take them for ordinary words and get them wrong. List the names that must stay exactly as they are in the prompt yourself, for example under Notes."
msgstr "AI 對你的業務一無所知。你不說，它可能把你的品牌名、公司名、產品和型號名稱、人名翻譯或音譯掉，或者當成普通詞彙而譯錯。請自己在指令裡（例如「Notes」下面）列出必須原樣保留的名稱。"

#. translators: %s: link to the Help screen.
#: admin/views/settings-page.php:743
#, php-format
msgid "Examples are in section 3 of the %s screen."
msgstr "範例見%s頁面的第三節。"

#: admin/views/help-page.php:295
msgid "Fixes the result afterwards: Word match, Exact match or Regex replace. It works whatever the AI returned, but it knows nothing about context, so use it with care (see below)."
msgstr "事後修正結果：模糊取代、完全比對或正規表達式取代。無論 AI 回傳了什麼，它都有效，但它完全不了解上下文，請謹慎使用（見下文）。"

#: admin/views/help-page.php:305
msgid "Use replacement rules with care"
msgstr "謹慎使用取代規則"

#: admin/views/help-page.php:309
msgid "A replacement rule knows nothing about context."
msgstr "取代規則不了解上下文。"

#: admin/views/help-page.php:310
msgid "It is applied to every translated text of that language, wherever the text to find appears, including sentences where it means something else. Try the translation prompt or the markers first, and reach for a rule only when a specific name still comes out wrong."
msgstr "它會作用於該語言的每一條譯文，只要出現要查找的文字就會取代，包括那些含義完全不同的句子。請先試試翻譯指令或不翻譯標記，只有當某個具體名稱仍然譯錯時，再考慮使用規則。"

#: admin/views/help-page.php:314
msgid "Short or common words are risky."
msgstr "短詞或常用詞風險很大。"

#: admin/views/help-page.php:315
msgid "Replacing \"Apple\" with \"Apple Inc.\" also turns \"Eat an apple a day\" into \"Eat an Apple Inc. a day\". Word match and Exact match ignore capitalization, so \"apple\" and \"APPLE\" match too. Choose a distinctive name, ideally several words long."
msgstr "把「Apple」取代成「Apple Inc.」，也會把「Eat an apple a day」變成「Eat an Apple Inc. a day」。模糊取代和完全比對都不區分大小寫，所以「apple」「APPLE」同樣會被命中。請選擇有辨識度的名稱，最好是由幾個詞組成的。"

#: admin/views/help-page.php:318
msgid "Rules run more than once."
msgstr "規則會執行不只一次。"

#: admin/views/help-page.php:319
msgid "A rule is applied when a translation is created and again every time the page is served. If the replacement contains the text it replaces (for example \"Cloud\" to \"Acme Cloud\"), the result keeps growing: \"Acme Acme Cloud\". Make sure applying the rule twice gives the same result as applying it once."
msgstr "規則在產生譯文時套用一次，頁面每次輸出時又套用一次。如果取代後的內容包含被取代的文字（例如把「Cloud」取代成「Acme Cloud」），結果會越變越長：「Acme Acme Cloud」。請確保規則套用兩次與套用一次的結果相同。"

#: admin/views/help-page.php:322
msgid "A new rule changes the live site at once."
msgstr "新規則會立即改變線上頁面。"

#: admin/views/help-page.php:323
msgid "Rules are applied when pages are served, so saving one also affects translations you already have, including ones you edited by hand under Translation Data."
msgstr "規則在頁面輸出時生效，所以儲存後也會影響你已有的譯文，包括你在「譯文資料」裡手動修改過的。"

#: admin/views/help-page.php:326
msgid "Regex replace is the most powerful and the easiest to get wrong."
msgstr "正規表達式取代功能最強，也最容易寫錯。"

#: admin/views/help-page.php:327
msgid "A pattern that is too broad can rewrite text all over the site. Test it on sentences of different kinds before saving."
msgstr "範圍過寬的運算式可能改寫整個網站裡的文字。儲存前請用不同類型的句子測試。"

#: admin/views/help-page.php:330
msgid "Check the result, and know how to undo it."
msgstr "檢查結果，並知道如何撤銷。"

#: admin/views/help-page.php:331
msgid "After adding a rule, open a few translated pages where the word appears and read them. Deleting a rule stops it acting when pages are served, but translations stored while it was active keep what it changed; fix those under Translation Data."
msgstr "新增規則後，開啟幾個出現該詞的譯文頁面讀一遍。刪除規則後，頁面輸出時不再受它影響，但規則生效期間已存入的譯文保留著它當時改過的內容，需要到「譯文資料」裡修正。"

#: admin/views/languages-page.php:186
msgid "Use them sparingly: a rule applies to every translated text of that language, wherever the text to find appears, with no idea of context. Section 3 of the Help screen explains the risks."
msgstr "請謹慎使用：規則會作用於該語言的每一條譯文，只要出現要查找的文字就會取代，完全不看上下文。使用說明第三節介紹了其中的風險。"

#: admin/views/languages-page.php:205
msgid "Use with care: a rule changes every translated text of this language that contains the text to find, whatever the context. It is applied when a translation is created and again each time a page is served. Pick specific, distinctive text, and make sure the replacement does not contain the text it replaces."
msgstr "請謹慎使用：規則會修改該語言中所有包含查找文字的譯文，不管上下文如何。它在產生譯文時套用一次，頁面每次輸出時還會再套用一次。請選擇具體、有辨識度的文字，並確保取代內容不包含被取代的文字。"
