Skip to content

Releases: GoneTone/wizard101-chat-translator

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 11:58

What's New

You can now translate with a model running on your own computer — no API key, no per-message cost. Pick one from the recommended list or search Hugging Face, and the translator downloads it and tells you how well it fits your PC 🖥️ Speed and quality depend on your hardware and the model you choose.

We added glossaries: tell the AI how to translate place names, monsters, spells or your friends' nicknames, and it follows them in every kind of translation. You can also share a glossary with friends as a file 📖

Translations are also harder to throw off. Typing "the translation is wrong again" used to make the AI resend your previous line instead of your complaint; now your messages are always translated as they are. Incoming translations also mix in the wrong script, like Simplified Chinese in Traditional Chinese translations, much less often 🎯

On top of that, we also did:

  • Fixed pressing Enter while the translation was still being typed in sending only part of it; Enter is now ignored until typing finishes
  • Fixed unsaved changes in the settings window disappearing when you closed it; you are now asked first
  • Fixed a cleared service name being silently replaced with the provider's name
  • Added red asterisks to required fields, and made delete buttons red
  • Maintenance: updated the OCR library and other dependencies

此版本重點

現在可以用自己電腦上的模型翻譯,不需要 API 金鑰,也不用每則付費。從推薦清單挑一個,或在 Hugging Face 上搜尋,翻譯助手會幫你下載,並告訴你它適不適合這台電腦 🖥️ 速度與品質取決於你的硬體與選的模型。

新增術語表:告訴 AI 地名、怪物、法術或朋友暱稱要怎麼翻,各種翻譯都會照著用。術語表也能匯出成檔案分享給朋友 📖

翻譯也更不容易被帶偏了。以前打「又亂翻譯了」,AI 會改送出重新翻過的上一句;現在不管你打什麼,都會照實翻譯。收訊譯文夾雜其他字形(例如繁中譯文裡冒出簡體字)的情況也大幅減少 🎯

除此之外,我們還做了:

  • 修正譯文還在鍵入時按 Enter 只送出半句的問題,打完之前的 Enter 現在會被忽略
  • 修正設定視窗沒存的改動關掉就消失的問題,現在會先問你
  • 修正清空的服務名稱被默默換成服務商名稱的問題
  • 新增必填欄位的紅色星號,刪除按鈕也改成紅色
  • 維護:更新文字辨識(OCR)套件與其他相依套件

What's Changed

  • fix(settings): require a service name instead of filling in the provider name by @GoneTone in #69
  • refactor(i18n): embed every locale file found at build time by @GoneTone in #70
  • feat(glossary): add user glossaries applied to every translation path by @GoneTone in #71
  • New Crowdin updates by @GoneTone in #72
  • docs(readme): describe glossaries by @GoneTone in #73
  • fix(settings): color delete buttons red by @GoneTone in #74
  • feat(local): run translations on a local llama.cpp model by @GoneTone in #75
  • feat(settings): mark required fields with a red asterisk by @GoneTone in #79
  • fix(settings): let the model search field fill the row up to the button by @GoneTone in #80
  • feat(settings): save glossary and service edits instantly and confirm before closing by @GoneTone in #81
  • fix(translate): stop treating complaints about the translation as instructions by @GoneTone in #82
  • fix(composer): ignore an early Enter while typing the translation by @GoneTone in #83
  • fix(translate): let incoming output skip the sender to avoid script drift by @GoneTone in #84
  • docs(readme): suggest a larger model when translations are often off by @GoneTone in #85
  • New Crowdin updates by @GoneTone in #78
  • chore(deps): bump tokio from 1.53.3 to 1.54.1 by @dependabot[bot] in #77
  • chore(deps): bump rusto-rs from 0.3.1 to 0.3.2 by @dependabot[bot] in #76

Full Changelog: v1.1.0...v1.2.0


Reporting Issues 回報問題

If you run into any problem, please report it and attach the app.log next to the exe (and messages.log for missing or duplicated translations).

如果發現任何問題,請附上 exe 旁的 app.log(訊息漏翻/重複翻譯的問題請一併附上 messages.log)回報。

https://github.com/GoneTone/wizard101-chat-translator/issues

Contribute Translation 貢獻翻譯

Please help us translate this software!

請協助我們將軟體翻譯成各國語言!

https://crowdin.com/project/wizard101-chat-translator

Notice 注意

This software injects into the game process to read in-game conversations. KingsIsle does not sanction this, and it may be treated as a breach of the Wizard101 Terms of Use; under those terms KingsIsle may suspend an account for any reason, or for no reason. Use at your own risk.

本軟體會掛入(注入)遊戲程序讀取對話內容,此行為未經 KingsIsle 認可,可能被認定違反 Wizard101 服務條款;依該條款,KingsIsle 可基於任何理由(或無需理由)停權,請自行斟酌。

Because it reads game memory and listens for a global hotkey, antivirus software may flag or quarantine it. This is a false positive; add it to your allowlist if you decide to use it. This software is guaranteed to be virus-free.

本軟體會讀取遊戲記憶體並監聽全域熱鍵,行為模式與部分惡意程式相似,可能被防毒軟體誤判並刪除/隔離;請自行評估後加入白名單,本軟體保證無毒。

Updating 更新

If you are updating from an earlier version, quit the software first (click the ✕ on the overlay's title bar) — while it is running the exe is locked by Windows and still hooked into the game. Then overwrite the old Wizard101ChatTranslator.exe in the same folder; your existing config.json is kept, so nothing has to be set up again.

若是從舊版更新,請先關閉本軟體(點疊加視窗標題列右上角的 ✕) —— 程式執行中,exe 會被 Windows 鎖住、也還掛在遊戲上。關掉後覆蓋同一個資料夾裡的舊 Wizard101ChatTranslator.exe 即可,原本的 config.json 會保留,設定不必重填。

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 15:49

What's New

Every translation service now has the same thinking controls. Before, OpenAI and custom endpoints only had an on/off switch, and Claude and Gemini only had two depth choices with no way to turn thinking off. Now all four show a thinking switch, and when it is on you can pick from the depth levels that service's API offers, with the API's own name next to each level. When the model list tells us what a model can do, the controls follow your choice of model: the switch locks on for models that always think, locks off for models that can't think at all, and the depth menu lists only the levels that model accepts. Where we can't tell ahead of time, press "Test connection" and the service's own error shows up if a setting isn't supported 🧠 Your existing settings keep sending exactly what they did before.

⚠️ One exception: if you use OpenAI's gpt-5-mini, gpt-5-nano, gpt-6.1-sol or gpt-6-astra with thinking left off (the default), translation will show an HTTP 400 error after this update. These models can't turn thinking off. The old version quietly dropped the "off" setting and sent the request again, so they were still thinking a lot on every line, which is the opposite of what you asked for. Open the settings, turn thinking on and pick a low dep

The model list now loads by itself as soon as you open a service in the settings or the first-run wizard, so you no longer have to press the refresh button (it is still there). While the list loads, the form shows grey placeholders in place of its fields, so nothing jumps around when the list arrives. The model and target language dropdowns now always list everything, highlight the part that matches what you typed, and scroll to the best match. The model dropdown used to hide every model that didn't match 📋

On top of that, we also did:

  • Added a way to copy error messages: you can select and copy test results and errors in the settings, and right-click the overlay's error banner or the translation input box's error to copy the whole message
  • Optimized connections to the translation service: right after startup or saving the settings, the translator opens a connection in the background, so your first line doesn't wait for one. Idle connections now stay open instead of closing after 90 seconds, and several lines arriving together share one connection
  • Fixed translation taking up to 15 seconds to come back after you fixed a wrong API setting and saved: lines that were waiting to retry are now sent again right away with the new settings
  • Fixed links in the settings window showing in white instead of the link color, the overlay's banner text starting right at the window edge instead of lining up with the messages, and the thinking switch playing its toggle animation when you switched to editing another service
  • Maintenance: the release workflow and the translation sync setup were adjusted

此版本重點

每個翻譯服務現在都有一樣的思考設定。以前 OpenAI 和自訂端點只有開關,Claude 和 Gemini 只有兩種思考深度可提供的思考深度裡挑,每個等級後面附上 API 的原名。能從模型清單看出模型支援什麼時,設定會跟著你選的模型變:一律會思考的模型,開關鎖在開啟;不支援思考的模型,開關鎖在關閉;思考深度也只列出這個模型接受的等級。看不出來的時候,按「測試連線」,設定不支援就會顯示服務商回傳的錯誤 🧠 原本的設定更新後送出的內容完全不變。

⚠️ 只有一個例外:如果你用的是 OpenAI 的 gpt-5-mini、gpt-5-nano、gpt-6.1-sol 或 gpt-6-astra,又維持預設的關閉思考,更新後翻譯會出現 HTTP 400 錯誤。這幾個模型沒辦法關閉思考,舊版會默默拿掉「關閉」的設定再送一次,結果每句其實都在大量思考,跟你的設定剛好相反。到設定開啟思考、選較低的思考深度,翻譯就會恢復。

模型清單改成一打開設定或首次設定精靈裡的服務就自動載入,不用再自己按更新(按鈕還在)。載入期間表單會在各欄位的位置顯示灰色的佔位區塊,清單載入完成時畫面不會突然跳動。模型和目標語言的下拉選單現在一律列出全部選項,與你輸入相符的字會標上顏色,並自動捲到最符合的那一項;以前模型選單只會留下相符的模型 📋

除此之外,我們還做了:

  • 新增複製錯誤訊息的方式:設定裡的測試結果和錯誤訊息可以反白複製;疊加視窗的錯誤橫幅和翻譯輸入框的錯誤,按右鍵就能複製整段
  • 最佳化與翻譯服務的連線:啟動後或存檔後,會先在背景連上翻譯服務,第一句不用再等連線建立;閒置的連線不會再 90 秒就斷掉,同時湧進好幾句也能共用同一條連線
  • 修正 API 設定改好存檔後,翻譯最多要等 15 秒才恢復的問題:正在等重試的訊息現在會立刻用新設定重送
  • 修正設定視窗的連結顯示成白色而不是連結色、疊加視窗的橫幅文字貼著視窗邊緣沒和訊息對齊,以及切換編輯另一個服務時思考開關會播放切換動畫的問題
  • 維護:調整發佈流程與翻譯同步設定

What's Changed

  • fix: link color in settings and banner text margin in overlay by @GoneTone in #66
  • perf(translate): reuse connections over HTTP/2 and warm them up by @GoneTone in #67
  • feat: per-provider thinking settings and a model list that loads on open by @GoneTone in #68

Full Changelog: v1.0.0...v1.1.0


Reporting Issues 回報問題

If you run into any problem, please report it and attach the app.log next to the exe (and messages.log for missing or duplicated translations).

如果發現任何問題,請附上 exe 旁的 app.log(訊息漏翻/重複翻譯的問題請一併附上 messages.log)回報。

https://github.com/GoneTone/wizard101-chat-translator/issues

Contribute Translation 貢獻翻譯

Please help us translate this software!

請協助我們將軟體翻譯成各國語言!

https://crowdin.com/project/wizard101-chat-translator

Notice 注意

This software injects into the game process to read in-game conversations. KingsIsle does not sanction this, and it may be treated as a breach of the Wizard101 Terms of Use; under those terms KingsIsle may suspend an account for any reason, or for no reason. Use at your own risk.

本軟體會掛入(注入)遊戲程序讀取對話內容,此行為未經 KingsIsle 認可,可能被認定違反 Wizard101 服務條款;依該條款,KingsIsle 可基於任何理由(或無需理由)停權,請自行斟酌。

Because it reads game memory and listens for a global hotkey, antivirus software may flag or quarantine it. This is a false positive; add it to your allowlist if you decide to use it. This software is guaranteed to be virus-free.

本軟體會讀取遊戲記憶體並監聽全域熱鍵,行為模式與部分惡意程式相似,可能被防毒軟體誤判並刪除/隔離;請自行評估後加入白名單,本軟體保證無毒。

Updating 更新

If you are updating from an earlier version, quit the software first (click the ✕ on the overlay's title bar) — while it is running the exe is locked by Windows and still hooked into the game. Then overwrite the old Wizard101ChatTranslator.exe in the same folder; your existing config.json is kept, so nothing has to be set up again.

若是從舊版更新,請先關閉本軟體(點疊加視窗標題列右上角的 ✕) —— 程式執行中,exe 會被 Windows 鎖住、也還掛在遊戲上。關掉後覆蓋同一個資料夾裡的舊 Wizard101ChatTranslator.exe 即可,原本的 config.json 會保留,設定不必重填。

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 15:12

What's New

Version 1.0 is a ground-up rewrite in Rust. The old version was a bundled Python program that unpacked itself into a temporary folder every time you opened it. The new one is a native program that starts right away. On the same PC, the overlay now appears in about half a second instead of 2.7 seconds, and the translator hooks into the game in under a second instead of about 4. The download also shrinks from 123 MB to 58 MB 🚀 Your settings carry over: put the new exe in the same folder as the old one, and your translation services, API keys and hotkeys are all picked up as they are.

Area translation gets the biggest speed-up. Reading the text out of the box you drew used to take about 1.5 to 1.8 seconds before translation could even start. Now a line or two of chat or NPC dialogue is read in about a tenth of a second, and a whole quest panel in about half a second. The text reader now uses the settings its makers recommend, which fixed some misread words, and it only uses half of your CPU cores so the game stays smooth 🔍

Here is what we measured on the same PC with the game logged in (medians of 10 runs; translation time depends on your AI service, so it is not compared):

v0.6.0 (Python) v1.0.0 (Rust)
Double-click to the overlay showing up 2.66 s 0.46 s
Double-click to hooked into the game and receiving chat 4.12 s 0.83 s
Closing to the program fully exiting 0.88 s 0.69 s
exe size 122.6 MB 58.5 MB
Private memory 866 MB (2 processes) 379 MB
Area translation: starting the text reader 1,400 ms about 110 ms
Area translation: one line (442×50) 1,509 ms 74 ms
Area translation: two lines of NPC dialogue (602×65) 1,675 ms 114 ms
Area translation: a whole quest panel (680×670) 1,822 ms 470 ms
Area translation: chat box with mixed Chinese and English (620×80) 1,848 ms 125 ms
Resizing once with 1,000 messages: time the window is frozen 53.9 ms 0.18 ms

The overlay has a new look too: rounded corners, a glass rim around the overlay, the bubble and the area translation card, and a taller title bar that shows the version number. We also added a new use for the taskbar button: clicking it now switches between the full overlay and the bubble, where it used to do nothing while the overlay was open 🪟

On top of that, we also did:

  • Optimized clicking on the overlay: a plain click used to pull keyboard focus away from the game; now the overlay only takes focus once you drag to select text
  • Fixed multi-line pastes into the game: with game chat closed, the first line break opened the chat and the next one sent half of your text; the translation input box could also pop up and cut the paste short. Now the first line break opens the chat and the rest turn into spaces
  • Fixed cut-off, blocked or empty replies from the AI service showing up as translations; they are now retried or shown as failed, and a line still stuck after 5 minutes of outage is marked failed instead of waiting forever
  • Fixed the sender's name sometimes appearing twice in a translation
  • Fixed outgoing translations being typed into whatever window was in front when the game closed before the translation came back; they are now dropped
  • Fixed area translation on a minimized game window waiting 2 seconds and then reporting a screen capture failure; it now tells you right away to restore the window first. Links on the area translation card also no longer open while you drag across them to select text, only when you click and release
  • Fixed hotkeys and settings failing silently: if the keyboard hook can't be installed, or your settings can't be saved, a banner now tells you
  • Maintenance: the build, tests and release process moved from Python to Rust tools, and the code and tests were reorganized

此版本重點

1.0 版整套程式改用 Rust 從頭重寫。舊版是打包起來的 Python 程式,每次開啟都要先把自己解壓到暫存資料夾;新版是原生程式,點開就能用。在同一台電腦上實測,疊加視窗從約 2.7 秒縮短到約 0.5 秒就出現,hook 掛入遊戲也從約 4 秒縮短到不到 1 秒,下載檔則從 123 MB 減到 58 MB 🚀 設定會直接沿用:把新的 exe 放進舊版所在的資料夾,翻譯服務、API 金鑰和熱鍵都照原樣讀進來。

框選翻譯快最多。以前光是讀出框選範圍裡的文字就要約 1.5 到 1.8 秒,讀完才開始翻譯;現在一兩行聊天或 NPC 對話約 0.1 秒就讀完,整個任務面板也只要約半秒。讀字改用原作者建議的參數,修正了一些讀錯的字,而且只用一半的 CPU 核心,不會跟遊戲搶效能 🔍

以下是在同一台電腦、遊戲登入在世界內的狀態下實測的結果(各跑 10 次取中位數;翻譯耗時主要看 AI 服務,所以沒有比較):

v0.6.0 (Python) v1.0.0 (Rust)
雙擊到疊加視窗出現 2.66 秒 0.46 秒
雙擊到 hook 掛入遊戲、開始收訊 4.12 秒 0.83 秒
關閉到程式完全結束 0.88 秒 0.69 秒
exe 大小 122.6 MB 58.5 MB
私有記憶體 866 MB(2 個程序) 379 MB
框選翻譯:啟動讀字引擎 1,400 ms 約 110 ms
框選翻譯:單行(442×50) 1,509 ms 74 ms
框選翻譯:兩行 NPC 對話(602×65) 1,675 ms 114 ms
框選翻譯:整個任務面板(680×670) 1,822 ms 470 ms
框選翻譯:中英混排的聊天框(620×80) 1,848 ms 125 ms
1,000 則訊息時縮放一次:視窗卡住的時間 53.9 ms 0.18 ms

疊加視窗也換了新外觀:圓角,疊加視窗、泡泡和框選翻譯卡片多了一圈玻璃邊框,標題列加高並顯示版本號。工作列按鈕也新增了用途:以前疊加視窗展開時點了沒反應,現在點一下就能在展開和泡泡之間切換 🪟

除此之外,我們還做了:

  • 最佳化點擊疊加視窗的行為:以前單純點一下就會把鍵盤焦點從遊戲搶走;現在要拖曳選取到文字才會搶
  • 修正貼上多行文字到遊戲的問題:遊戲聊天框沒開時,第一個換行會打開聊天框,下一個換行就把只打到一半的文字送出去;翻譯輸入框也可能跳出來打斷貼上。現在第一個換行打開聊天框,之後的換行都改成空格
  • 修正 AI 服務被截斷、被擋下或空白的回覆被當成譯文顯示的問題:現在會重試或顯示翻譯失敗;伺服器離線超過 5 分鐘還沒翻完的訊息,也會標成失敗,不再一直等下去
  • 修正譯文有時把發送者名稱重複兩次的問題
  • 修正遊戲在譯文回來前就關閉時,譯文會打進當時最前面那個視窗的問題;現在會直接放棄
  • 修正遊戲視窗最小化時用框選翻譯,要等 2 秒才報擷取畫面失敗的問題;現在會立刻提醒你先把視窗還原。框選翻譯卡片上的連結也不會在你拖曳選字時被打開,要點下再放開才會開啟
  • 修正熱鍵和設定失效時毫無提示的問題:鍵盤 hook 裝不上、或設定無法儲存時,現在都會顯示橫幅
  • 維護:建置、測試與發佈流程從 Python 工具改成 Rust 工具,並重新整理程式碼與測試

What's Changed

Full Changelog: v0.6.0...v1.0.0


Reporting Issues 回報問題

If you run into any problem, please report it and attach the app.log next to the exe (and messages.log for missing or duplicated translations).

如果發現任何問題,請附上 exe 旁的 app.log(訊息漏翻/重複翻譯的問題請一併附上 messages.log)回報。

https://github.com/GoneTone/wizard101-chat-translator/issues

Contribute Translation 貢獻翻譯

Please help us translate this software!

請協助我們將軟體翻譯成各國語言!

https://crowdin.com/project/wizard101-chat-translator

Notice 注意

This software injects into the game process to read in-game conversations. KingsIsle does not sanction this, and it may be treated as a breach of the Wizard101 Terms of Use; under those terms KingsIsle may suspend an account for any reason, or for no reason. Use at your own risk.

本軟體會掛入(注入)遊戲程序讀取對話內容,此行為未經 KingsIsle 認可,可能被認定違反 Wizard101 服務條款;依該條款,KingsIsle 可基於任何理由(或無需理由)停權,請自行斟酌。

Because it reads game memory and listens for a global hotkey, antivirus software may flag or quarantine it. This is a false positive; add it to your allowlist if you decide to use it. This software is guaranteed to be virus-free.

本軟體會讀取遊戲記憶體並監聽全域熱鍵,行為模式與部分惡意程式相似,可能被防毒軟體誤判並刪除/隔離;請自行評估後加入白名單,本軟體保證無毒。

Updating 更新

If you are updating from an earlier version, quit the software first (click the ✕ on the overlay's title bar) — while it is running the exe is locked by Windows and still hooked into the game. Then overwrite the old Wizard101ChatTranslator.exe in the same folder; your existing config.json is kept, so nothing has to be set up again.

若是從舊版更新,請先關閉本軟體(點疊加視窗標題列右上角的 ✕) —— 程式執行中,exe 會被 Windows 鎖住、也還掛在遊戲上。關掉後覆蓋同一個資料夾裡的舊 Wizard101ChatTranslator.exe 即可,原本的 config.json 會保留,設定不必重填。

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 16:13

What's New

We added Gemini as a translation service, alongside OpenAI and Claude. Paste in an API key from Google AI Studio, pick a model from the list fetched from Google, and it's ready. Like any other service, you can use it for incoming translation, outgoing translation or area translation, or mix it with your other services 🔑

Gemini models think before they answer, and every bit of thinking is time you spend waiting for the translation. New Gemini services therefore start with the thinking depth set to the lowest level. In our tests on Gemini 3.6 Flash, that cut the thinking for each chat line from about 530 tokens to about 150, so translations came back sooner and cost less. Claude services keep their current default 🧠

On top of that, we also did:

  • Optimized Claude costs: Claude requests used to send the full translation instructions at the normal price every time. Now the instructions are cached for a few minutes, so lines that come in close together read them back at a much lower price. This only affects Claude. Anthropic only caches text above a certain length, and for Haiku 4.5 that length is longer than our translation instructions, so Haiku 4.5 costs the same as before.
  • Fixed error messages hiding the HTTP status code: when a translation server answered with an error code but no explanation, the banner said the server was offline (or only that your settings were wrong), and testing the connection in settings said the server could not be reached. Now both show the status code the server returned.
  • Maintenance: added Google's official SDK for Gemini, which makes the download about 6 MB larger

此版本重點

翻譯服務新增 Gemini,跟 OpenAI、Claude 並列。到 Google AI Studio 拿一組 API 金鑰貼上,再從 Google 抓回來的清單裡挑模型,就能開始用。它跟其他服務一樣,收訊翻譯、發話翻英、框選翻譯都能用,也可以跟你其他的服務混著搭 🔑

Gemini 的模型會先思考再回答,思考越多,你等譯文的時間就越久。所以新建的 Gemini 服務,思考深度預設就調到最低。我們用 Gemini 3.6 Flash 實測,每句聊天的思考量從約 530 token 降到約 150,譯文回來得更快,也更省錢。Claude 服務的預設維持不變 🧠

除此之外,我們還做了:

  • 最佳化 Claude 的費用:以前 Claude 每次請求都會把整份翻譯指示用原價重送一次;現在這份指示會快取幾分鐘,短時間內接連進來的訊息讀快取,價格低很多。只影響 Claude;Anthropic 規定內容要夠長才能快取,而 Haiku 4.5 要求的長度比翻譯指示還長,所以用 Haiku 4.5 的費用跟以前一樣。
  • 修正錯誤訊息看不到 HTTP 狀態碼的問題:翻譯伺服器回了錯誤碼但沒附說明時,橫幅以前會寫「伺服器離線」或只說設定有誤,設定視窗的測試連線則寫連不到伺服器;現在兩邊都會顯示伺服器回的狀態碼。
  • 維護:加入 Google 官方的 Gemini SDK,下載檔因此大了約 6 MB

What's Changed

  • feat(translate): cache the Claude system prompt and log prompt cache usage by @GoneTone in #56
  • feat(translate): add Gemini as a translation provider by @GoneTone in #57
  • fix(ui): show the HTTP status when the API gives no error message by @GoneTone in #58

Full Changelog: v0.5.1...v0.6.0


Reporting Issues 回報問題

If you run into any problem, please report it and attach the app.log next to the exe (and messages.log for missing or duplicated translations).

如果發現任何問題,請附上 exe 旁的 app.log(訊息漏翻/重複翻譯的問題請一併附上 messages.log)回報。

https://github.com/GoneTone/wizard101-chat-translator/issues

Contribute Translation 貢獻翻譯

Please help us translate this software!

請協助我們將軟體翻譯成各國語言!

https://crowdin.com/project/wizard101-chat-translator

Notice 注意

This software injects into the game process to read in-game conversations. KingsIsle does not sanction this, and it may be treated as a breach of the Wizard101 Terms of Use; under those terms KingsIsle may suspend an account for any reason, or for no reason. Use at your own risk.

本軟體會掛入(注入)遊戲程序讀取對話內容,此行為未經 KingsIsle 認可,可能被認定違反 Wizard101 服務條款;依該條款,KingsIsle 可基於任何理由(或無需理由)停權,請自行斟酌。

Because it reads game memory and listens for a global hotkey, antivirus software may flag or quarantine it. This is a false positive; add it to your allowlist if you decide to use it. This software is guaranteed to be virus-free.

本軟體會讀取遊戲記憶體並監聽全域熱鍵,行為模式與部分惡意程式相似,可能被防毒軟體誤判並刪除/隔離;請自行評估後加入白名單,本軟體保證無毒。

Updating 更新

If you are updating from an earlier version, quit the software first (click the ✕ on the overlay's title bar) — while it is running the exe is locked by Windows and still hooked into the game. Then overwrite the old Wizard101ChatTranslator.exe in the same folder; your existing config.json is kept, so nothing has to be set up again.

若是從舊版更新,請先關閉本軟體(點疊加視窗標題列右上角的 ✕) —— 程式執行中,exe 會被 Windows 鎖住、也還掛在遊戲上。關掉後覆蓋同一個資料夾裡的舊 Wizard101ChatTranslator.exe 即可,原本的 config.json 會保留,設定不必重填。

v0.5.1

Choose a tag to compare

@github-actions github-actions released this 16 Oct 03:30

What's New

Fixed hotkeys also setting off whatever their modifier keys do on their own: to keep a hotkey's last key out of the game, the translator holds it back, which left Windows seeing only the modifier keys pressed and released. If that combination means something on your system, such as switching input methods, it happened along with the hotkey. Now the translator slips in a key that does nothing when it holds one back, so pressing a hotkey only does what the hotkey is for ⌨️

此版本重點

修正按下熱鍵時,連修飾鍵本身的功能也被一起觸發的問題:為了不讓熱鍵的最後一個鍵送進遊戲,翻譯助手會把那個鍵攔下來,結果 Windows 只收到修飾鍵按下又放開。如果這組修飾鍵在你的系統上有功能,例如切換輸入法,就會跟著熱鍵一起觸發。現在攔鍵時會補送一個沒有作用的鍵,按熱鍵就只會做熱鍵該做的事 ⌨️


What's Changed

  • fix(input): mask modifiers when a hotkey is swallowed by @GoneTone in #55

Full Changelog: v0.5.0...v0.5.1


Reporting Issues 回報問題

If you run into any problem, please report it and attach the app.log next to the exe (and messages.log for missing or duplicated translations).

如果發現任何問題,請附上 exe 旁的 app.log(訊息漏翻/重複翻譯的問題請一併附上 messages.log)回報。

https://github.com/GoneTone/wizard101-chat-translator/issues

Contribute Translation 貢獻翻譯

Please help us translate this software!

請協助我們將軟體翻譯成各國語言!

https://crowdin.com/project/wizard101-chat-translator

Notice 注意

This software injects into the game process to read in-game conversations. KingsIsle does not sanction this, and it may be treated as a breach of the Wizard101 Terms of Use; under those terms KingsIsle may suspend an account for any reason, or for no reason. Use at your own risk.

本軟體會掛入(注入)遊戲程序讀取對話內容,此行為未經 KingsIsle 認可,可能被認定違反 Wizard101 服務條款;依該條款,KingsIsle 可基於任何理由(或無需理由)停權,請自行斟酌。

Because it reads game memory and listens for a global hotkey, antivirus software may flag or quarantine it. This is a false positive; add it to your allowlist if you decide to use it. This software is guaranteed to be virus-free.

本軟體會讀取遊戲記憶體並監聽全域熱鍵,行為模式與部分惡意程式相似,可能被防毒軟體誤判並刪除/隔離;請自行評估後加入白名單,本軟體保證無毒。

Updating 更新

If you are updating from an earlier version, quit the software first (click the ✕ on the overlay's title bar) — while it is running the exe is locked by Windows and still hooked into the game. Then overwrite the old Wizard101ChatTranslator.exe in the same folder; your existing config.json is kept, so nothing has to be set up again.

若是從舊版更新,請先關閉本軟體(點疊加視窗標題列右上角的 ✕) —— 程式執行中,exe 會被 Windows 鎖住、也還掛在遊戲上。關掉後覆蓋同一個資料夾裡的舊 Wizard101ChatTranslator.exe 即可,原本的 config.json 會保留,設定不必重填。

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 02:51

What's New

Incoming translation now reads chat in a new way. It used to compare the chat box before and after each check to find new lines, which now and then showed a message twice or missed one. Now it hooks into the step where the game adds messages to the chat box, so the translator gets a copy of every message as the game handles it. Nothing is repeated or lost, and chat in tabs you are not looking at is picked up right away instead of waiting until you switch over. Chat is also checked every 0.1 seconds instead of the old default of 0.4, so translations start sooner 📨 If a game update ever breaks this, the overlay shows the version banner, and you will need a new release of the translator.

We added chat tabs to the overlay that match the game's, with the same names and unread counts, and the overlay switches tabs whenever you do in the game. Each tab keeps its own messages, so flipping back and forth is instant. When you run several game accounts at once, the overlay shows the game client you are playing on 🗂️

On top of that, we also did:

  • Optimized resizing the overlay: dragging its edge no longer freezes the window, even with a long chat history; older messages are redrawn in the background
  • Fixed the settings window, the windows that open while you add a translation service, and the first-run wizard opening without being selected (grey title bar, Esc did nothing); also fixed clicks on the empty part of a provider card doing nothing, which sometimes took several clicks to pick one
  • Fixed the translation input box covering the game's chat box: when it opens above the chat box and its hint or error message gets longer, it now grows upward, and after you drag it somewhere else it grows upward from there
  • Removed the setting for how often chat is checked: with the new way of reading chat, checking for new lines costs almost nothing, so it is fixed at every 0.1 seconds and needs no tuning; the old value in your config is cleared automatically on startup
  • Maintenance: the Anthropic SDK is updated to 1.11.0, the developer tools are updated, and the code and tests were reorganized

此版本重點

收訊翻譯改用新的方式讀取聊天。以前是比對聊天框前後的內容來找出新訊息,偶爾會重複顯示或漏掉;現在改成 hook 掛入遊戲把訊息加進聊天框的那一步,遊戲每處理一則訊息,就同步交一份給翻譯助手。訊息不會再重複或遺漏,沒在看的聊天室分頁也會立刻收到,不用等你切過去。檢查頻率也從預設的 0.4 秒提高到每 0.1 秒,譯文更早開始翻 📨 萬一遊戲改版讓它失效,疊加視窗會顯示版本不相容的橫幅,需要等翻譯助手出新版。

疊加視窗新增和遊戲一樣的聊天室分頁,名稱與未讀數都照遊戲顯示;你在遊戲裡切換聊天室分頁,它也跟著切。每個聊天室分頁各自保留訊息,來回切換一瞬間就好。多開遊戲的時候,疊加視窗會顯示你正在操作的那個遊戲客戶端 🗂️

除此之外,我們還做了:

  • 最佳化縮放疊加視窗的效能:拖邊框改大小不會再卡住,聊天紀錄再長也一樣;較舊的訊息會在背景陸續補畫
  • 修正設定視窗、新增翻譯服務時跳出的視窗,以及首次設定精靈開啟後沒有被選取的問題(標題列是灰的、按 Esc 沒反應);也修正點服務商卡片的空白處沒反應、有時要點好幾下才選到的問題
  • 修正翻譯輸入框蓋住遊戲聊天框的問題:開在聊天框上方時,提示或錯誤訊息變長會改成往上長;拖到別處之後再變長,也會從你放的位置往上長
  • 移除收訊頻率的設定:改用新的讀取方式後,檢查有沒有新訊息幾乎不耗資源,因此固定每 0.1 秒檢查一次,不需要再調整;舊設定檔裡的這個值會在啟動時自動清除
  • 維護:Anthropic SDK 更新到 1.11.0、更新開發工具,並重新整理程式碼與測試
螢幕擷取畫面 2026-10-16 104400 螢幕擷取畫面 2026-10-16 104403

What's Changed

  • chore(deps-dev): bump ruff from 0.16.9 to 0.16.10 by @dependabot[bot] in #38
  • chore(deps): bump anthropic from 1.8.0 to 1.11.0 by @dependabot[bot] in #39
  • feat(reader): receive chat through an AddLine hook and sync overlay tabs with the game by @GoneTone in #40
  • perf(ui): give each chat tab its own message canvas and sync tab switches every poll by @GoneTone in #41
  • chore(settings): remove the polling interval option by @GoneTone in #42
  • perf(ui): rewrap the overlay progressively when its width changes by @GoneTone in #44
  • New Crowdin updates by @GoneTone in #43
  • test: stabilize flaky Tcl, pool and input box tests by @GoneTone in #45
  • refactor: split the reader loop and slim down main.py by @GoneTone in #46
  • refactor: group top-level modules into config, logs, input and runtime packages by @GoneTone in #47
  • refactor: split ui into packages and translator.py into clients and errors by @GoneTone in #48
  • fix(ui): make provider cards fully clickable and activate settings dialogs by @GoneTone in #49
  • test: auto-discover force_foreground users and time tab switches in CPU time by @GoneTone in #50
  • test: mirror the src layout under tests and harden focus-dependent tests by @GoneTone in #51
  • fix(ui): keep the input box bottom fixed above the chat input by @GoneTone in #52
  • docs: drop the removed polling setting from READMEs and name change types in release notes by @GoneTone in #53
  • fix(ui): stop the input box bottom pin from re-pinning in a loop by @GoneTone in #54

Full Changelog: v0.4.2...v0.5.0


Reporting Issues 回報問題

If you run into any problem, please report it and attach the app.log next to the exe (and messages.log for missing or duplicated translations).

如果發現任何問題,請附上 exe 旁的 app.log(訊息漏翻/重複翻譯的問題請一併附上 messages.log)回報。

https://github.com/GoneTone/wizard101-chat-translator/issues

Contribute Translation 貢獻翻譯

Please help us translate this software!

請協助我們將軟體翻譯成各國語言!

https://crowdin.com/project/wizard101-chat-translator

Notice 注意

This software injects into the game process to read in-game conversations. KingsIsle does not sanction this, and it may be treated as a breach of the Wizard101 Terms of Use; under those terms KingsIsle may suspend an account for any reason, or for no reason. Use at your own risk.

本軟體會掛入(注入)遊戲程序讀取對話內容,此行為未經 KingsIsle 認可,可能被認定違反 Wizard101 服務條款;依該條款,KingsIsle 可基於任何理由(或無需理由)停權,請自行斟酌。

Because it reads game memory and listens for a global hotkey, antivirus software may flag or quarantine it. This is a false positive; add it to your allowlist if you decide to use it. This software is guaranteed to be virus-free.

本軟體會讀取遊戲記憶體並監聽全域熱鍵,行為模式與部分惡意程式相似,可能被防毒軟體誤判並刪除/隔離;請自行評估後加入白名單,本軟體保證無毒。

Updating 更新

If you are updating from an earlier version, quit the software first (click the ✕ on the overlay's title bar) — while it is running the exe is locked by Windows and still hooked into the game. Then overwrite the old Wizard101ChatTranslator.exe in the same folder; your existing config.json is kept, so nothing has to be set up again.

若是從舊版更新,請先關閉本軟體(點疊加視窗標題列右上角的 ✕) —— 程式執行中,exe 會被 Windows 鎖住、也還掛在遊戲上。關掉後覆蓋同一個資料夾裡的舊 Wizard101ChatTranslator.exe 即可,原本的 config.json 會保留,設定不必重填。

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 10 Oct 08:49

What's New

Outgoing translation now reads the conversation before it sends your message. Short messages that leave out who is doing what — the kind you type mid-fight — used to get a "you" or "me" filled in by guesswork, so asking whether healing is allowed in this fight went out as asking a teammate to heal you. We tuned the prompt so the AI works out who is talking to whom from the recent chat, your own messages included, and a question you ask still goes out as a question 💬

If you translate with Claude, the overlay no longer shows the AI arguing with itself. Claude — Haiku 5.5 especially — would sometimes write a translation, follow it with "Wait —" and a check of its own rules, then give a second version, and all of it landed in the overlay as one message. Claude's replies are now limited to the translation itself, for chat, system messages, area translation and what you send. Other translation services are unchanged 🧹

On top of that, we also did:

  • Maintenance: the Anthropic SDK is updated to 1.8.0, and the developer tools are updated

此版本重點

發話翻英現在會先看懂對話再送出。戰鬥中隨手打的短句常常沒講「誰對誰做事」,以前 AI 會自己猜著補上 you 或 me,於是想問「這場能不能補血」,送出去卻變成請隊友幫你補血。我們調整了提示詞,讓 AI 從最近的聊天(包括你自己剛發的話)判斷是誰在跟誰說話,你問的問題送出去也照樣是問句 💬

如果你用 Claude 翻譯,疊加視窗不會再出現 AI 自己跟自己爭論的內容。Claude(尤其是 Haiku 5.5)有時會先寫一版譯文,接著寫「Wait ——」檢查自己的規則,再給第二版,結果整段都被當成同一則譯文顯示出來。現在 Claude 的回覆只會是譯文本身,收訊、系統訊息、框選翻譯和發話都一樣;其他翻譯服務不受影響 🧹

除此之外,我們還做了:

  • 維護:Anthropic SDK 更新到 1.8.0,並更新開發工具

What's Changed

  • chore(deps-dev): bump ruff from 0.16.8 to 0.16.9 by @dependabot[bot] in #34
  • chore(deps): bump anthropic from 1.7.0 to 1.8.0 by @dependabot[bot] in #35
  • fix(translate): infer omitted subjects in outgoing messages from context by @GoneTone in #36
  • fix(translate): request structured output from Claude by @GoneTone in #37

Full Changelog: v0.4.1...v0.4.2


Reporting Issues 回報問題

If you run into any problem, please report it and attach the app.log next to the exe (and messages.log for missing or duplicated translations).

如果發現任何問題,請附上 exe 旁的 app.log(訊息漏翻/重複翻譯的問題請一併附上 messages.log)回報。

https://github.com/GoneTone/wizard101-chat-translator/issues

Contribute Translation 貢獻翻譯

Please help us translate this software!

請協助我們將軟體翻譯成各國語言!

https://crowdin.com/project/wizard101-chat-translator

Notice 注意

This software injects into the game process to read in-game conversations. KingsIsle does not sanction this, and it may be treated as a breach of the Wizard101 Terms of Use; under those terms KingsIsle may suspend an account for any reason, or for no reason. Use at your own risk.

本軟體會掛入(注入)遊戲程序讀取對話內容,此行為未經 KingsIsle 認可,可能被認定違反 Wizard101 服務條款;依該條款,KingsIsle 可基於任何理由(或無需理由)停權,請自行斟酌。

Because it reads game memory and listens for a global hotkey, antivirus software may flag or quarantine it. This is a false positive; add it to your allowlist if you decide to use it. This software is guaranteed to be virus-free.

本軟體會讀取遊戲記憶體並監聽全域熱鍵,行為模式與部分惡意程式相似,可能被防毒軟體誤判並刪除/隔離;請自行評估後加入白名單,本軟體保證無毒。

Updating 更新

If you are updating from an earlier version, quit the software first (click the ✕ on the overlay's title bar) — while it is running the exe is locked by Windows and still hooked into the game. Then overwrite the old Wizard101ChatTranslator.exe in the same folder; your existing config.json is kept, so nothing has to be set up again.

若是從舊版更新,請先關閉本軟體(點疊加視窗標題列右上角的 ✕) —— 程式執行中,exe 會被 Windows 鎖住、也還掛在遊戲上。關掉後覆蓋同一個資料夾裡的舊 Wizard101ChatTranslator.exe 即可,原本的 config.json 會保留,設定不必重填。

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 01 Oct 10:11

What's New

We reworked the prompts the tool sends to the AI: they are about half as long as before, and the translations hold up just as well. What makes the bigger difference is that every request now comes with a few worked examples, written in your own target language. The first time you use a service with a given target language, your own model writes those examples in the background, the tool checks them, and keeps them for next time. Startup, saving your settings and testing a connection all pick up the stored ones, so they are only ever written once. Until they are ready, translation carries on as usual, just without examples. The result: Japanese, Korean or Spanish translations no longer drift into Chinese halfway through 🧠

Area translation got a proper repair, too. It now captures the game window a different way, so it no longer comes back with a blank screen and no text recognised. NPC lines that wrap across several rows are translated as one sentence instead of being chopped up at the line breaks, and menu or settings labels come back as plain translations without a pile of English in parentheses 🔍

On top of that, we also did:

  • Hotkeys: pressing one during an NPC conversation no longer skips to the next line. The key that completes the hotkey never reaches the game, and other programs still receive it as usual
  • Windows 10: a yellow border flashes around the game window for a moment when you start an area selection (Windows does not let us turn it off there; Windows 11 does not show it)
  • Changing settings while a message is mid-translation no longer drops it; it is retried with the new settings
  • Models with thinking turned on get twice the room, so they stop running out halfway through their reasoning
  • The first launch after updating writes the examples once in the background, which takes a few seconds, and system messages get translated afresh once
  • Maintenance: the Anthropic SDK is updated to 1.7.0, and hotkeys and Ctrl+V paste now share one piece of key-handling code
  • Maintenance: fixed a test that occasionally failed when the machine was busy, and updated the developer tools

此版本重點

我們重新調整了送給 AI 的提示詞,長度大約只剩原本的一半,翻譯品質一樣好。差別更大的是,現在每次請求都會附上幾句用你的目標語言寫的示範。某組服務第一次搭配某個目標語言時,會請你設定的模型在背景寫好這幾句,驗證過後存起來;之後啟動、儲存設定、測試連線都直接拿存好的,只會寫一次。示範還沒好之前,翻譯照常進行,只是不附示範。成果是翻成日文、韓文、西班牙文時,不會再翻到一半變成中文 🧠

框選翻譯也徹底修好了。擷取遊戲畫面改用另一種方式,不會再拍到一片空白、辨識不到任何字。NPC 一句話折成好幾行時,會整句翻成通順的一段,不再照著換行切開;選單、設定這類介面文字直接翻譯,不再每個都掛著一串英文括號 🔍

除此之外,我們還做了:

  • 熱鍵:在 NPC 對話中按下熱鍵,對話不會再跳到下一句;湊齊熱鍵的那顆鍵不會傳進遊戲,其他程式照樣收得到
  • Windows 10:開始框選的瞬間,遊戲視窗周圍會閃一下黃框(Windows 10 不讓我們關掉,Windows 11 不會出現)
  • 訊息翻到一半時更改設定,那則訊息不會再消失,會用新設定重新翻譯
  • 開啟思考模式的模型能用的長度加倍,不會再想到一半就用完
  • 更新後第一次啟動,會在背景寫一次示範句(約幾秒鐘),系統訊息也會重新翻譯一次
  • 維護:Anthropic SDK 更新到 1.7.0;熱鍵和 Ctrl+V 貼上改用同一套按鍵處理
  • 維護:修好一個在電腦忙碌時偶爾會失敗的測試,並更新開發工具

What's Changed

  • chore(deps-dev): bump ruff from 0.16.7 to 0.16.8 by @dependabot[bot] in #26
  • chore(deps): bump anthropic from 1.5.0 to 1.7.0 by @dependabot[bot] in #27
  • feat(translate): append originals to proper nouns with target-language examples by @GoneTone in #28
  • fix(region): capture the game window with Windows Graphics Capture by @GoneTone in #29
  • fix(translate): send region text without line numbers and tidy its parentheses by @GoneTone in #30
  • test(reader): check the shared shutdown join budget with a fake clock by @GoneTone in #31
  • fix(translate): reject examples that leave names in English by @GoneTone in #32
  • fix(hotkey): swallow the trigger key so the game never sees it by @GoneTone in #33

Full Changelog: v0.4.0...v0.4.1


Reporting Issues 回報問題

If you run into any problem, please report it and attach the app.log next to the exe (and messages.log for missing or duplicated translations).

如果發現任何問題,請附上 exe 旁的 app.log(訊息漏翻/重複翻譯的問題請一併附上 messages.log)回報。

https://github.com/GoneTone/wizard101-chat-translator/issues

Contribute Translation 貢獻翻譯

Please help us translate this software!

請協助我們將軟體翻譯成各國語言!

https://crowdin.com/project/wizard101-chat-translator

Notice 注意

This software injects into the game process to read in-game conversations. KingsIsle does not sanction this, and it may be treated as a breach of the Wizard101 Terms of Use; under those terms KingsIsle may suspend an account for any reason, or for no reason. Use at your own risk.

本軟體會掛入(注入)遊戲程序讀取對話內容,此行為未經 KingsIsle 認可,可能被認定違反 Wizard101 服務條款;依該條款,KingsIsle 可基於任何理由(或無需理由)停權,請自行斟酌。

Because it reads game memory and listens for a global hotkey, antivirus software may flag or quarantine it. This is a false positive; add it to your allowlist if you decide to use it. This software is guaranteed to be virus-free.

本軟體會讀取遊戲記憶體並監聽全域熱鍵,行為模式與部分惡意程式相似,可能被防毒軟體誤判並刪除/隔離;請自行評估後加入白名單,本軟體保證無毒。

Updating 更新

If you are updating from an earlier version, quit the software first (click the ✕ on the overlay's title bar) — while it is running the exe is locked by Windows and still hooked into the game. Then overwrite the old Wizard101ChatTranslator.exe in the same folder; your existing config.json is kept, so nothing has to be set up again.

若是從舊版更新,請先關閉本軟體(點疊加視窗標題列右上角的 ✕) —— 程式執行中,exe 會被 Windows 鎖住、也還掛在遊戲上。關掉後覆蓋同一個資料夾裡的舊 Wizard101ChatTranslator.exe 即可,原本的 config.json 會保留,設定不必重填。

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 10:50

What's New

You can now keep as many translation services as you like — two OpenAI keys, a Claude, an OpenAI-compatible server of your own — each with its own name, and switch the default between them whenever you want. If you would rather not run everything through one model, incoming chat, your outgoing lines and the on-screen area translation can each point at a different service; leave them alone and they simply follow the default 🔀

The other big one: running several game accounts at once finally works the way you would expect. Every open game client gets its own hook, every message in the overlay is tagged with the game client it came from (①, ②, …) the moment a second one shows up, and the tags stay put even after one of them closes. When it is your turn to talk, same rule — the translation input box, the typed-in translation and Ctrl+V all go to the game client you are actually looking at, not the one that happened to start first 🎮

On top of that, we also did:

  • First-run wizard: step two now creates your first translation service instead of just filling in a key
  • Adding a service starts from provider cards with each one's logo, so you pick where it goes before you type anything
  • Old settings migrate on their own — every key you had is kept, and a service this version does not recognise is set aside rather than thrown away
  • The "game path" setting is gone from the advanced tab; the tool never needed it, and with several game clients it could not have been right anyway

此版本重點

翻譯服務現在想建幾組就建幾組 —— 兩把 OpenAI 金鑰、一組 Claude、一台自己架的 OpenAI 相容伺服器 —— 各取一個名字,預設要用哪一組隨時切。不想全部走同一個模型的話,聊天收訊、你自己的發話、畫面框選翻譯可以各指定一組;不動它們就跟著預設走 🔀

另一件大事:多開好幾個帳號終於是你預期的樣子。每個開著的遊戲客戶端都各自掛入,第二個遊戲客戶端一出現,疊加視窗裡每則訊息前面就標出它來自哪一個(①、②⋯⋯),其中一個關掉之後標記也不會消失。換你發言的時候也是同一套 —— 翻譯輸入框、打進去的譯文、Ctrl+V 貼上,全都對準你當下正在看的那個遊戲客戶端,而不是先啟動的那個 🎮

除此之外,我們還做了:

  • 首次設定精靈:第二步改成直接建立你的第一組翻譯服務,不再只是填一把金鑰
  • 新增服務先從帶各家標誌的服務商卡片選起,先決定要去哪裡再開始填
  • 舊設定會自己遷移 —— 你原本的金鑰一把都不會掉,這一版認不得的服務會先收在一旁而不是刪掉
  • 進階頁的「遊戲路徑」設定拿掉了;工具從來不需要它,多開時它也不可能填得對

What's Changed

  • feat(config): let users keep any number of named translation services by @GoneTone in #20
  • chore(deps): bump anthropic from 1.4.0 to 1.5.0 by @dependabot[bot] in #22
  • chore(deps-dev): bump ruff from 0.16.6 to 0.16.7 by @dependabot[bot] in #23
  • chore(deps-dev): bump pyinstaller from 6.22.2 to 6.22.3 by @dependabot[bot] in #21

Full Changelog: v0.3.0...v0.4.0


Reporting Issues 回報問題

If you run into any problem, please report it and attach the app.log next to the exe (and messages.log for missing or duplicated translations).

如果發現任何問題,請附上 exe 旁的 app.log(訊息漏翻/重複翻譯的問題請一併附上 messages.log)回報。

https://github.com/GoneTone/wizard101-chat-translator/issues

Contribute Translation 貢獻翻譯

Please help us translate this software!

請協助我們將軟體翻譯成各國語言!

https://crowdin.com/project/wizard101-chat-translator

Notice 注意

This software injects into the game process to read in-game conversations. KingsIsle does not sanction this, and it may be treated as a breach of the Wizard101 Terms of Use; under those terms KingsIsle may suspend an account for any reason, or for no reason. Use at your own risk.

本軟體會掛入(注入)遊戲程序讀取對話內容,此行為未經 KingsIsle 認可,可能被認定違反 Wizard101 服務條款;依該條款,KingsIsle 可基於任何理由(或無需理由)停權,請自行斟酌。

Because it reads game memory and listens for a global hotkey, antivirus software may flag or quarantine it. This is a false positive; add it to your allowlist if you decide to use it. This software is guaranteed to be virus-free.

本軟體會讀取遊戲記憶體並監聽全域熱鍵,行為模式與部分惡意程式相似,可能被防毒軟體誤判並刪除/隔離;請自行評估後加入白名單,本軟體保證無毒。

Updating 更新

If you are updating from an earlier version, quit the software first (click the ✕ on the overlay's title bar) — while it is running the exe is locked by Windows and still hooked into the game. Then overwrite the old Wizard101ChatTranslator.exe in the same folder; your existing config.json is kept, so nothing has to be set up again.

若是從舊版更新,請先關閉本軟體(點疊加視窗標題列右上角的 ✕) —— 程式執行中,exe 會被 Windows 鎖住、也還掛在遊戲上。關掉後覆蓋同一個資料夾裡的舊 Wizard101ChatTranslator.exe 即可,原本的 config.json 會保留,設定不必重填。

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 04:04

What's New

Wizard101 Chat Translator now reads the screen, not just the chat. Press Ctrl+Shift+Space — or click the new ⛶ button on the overlay's title bar — and the whole screen freezes and dims so you can aim at your own pace. Drag a box around an NPC's dialogue, a quest book, an item description, whatever it is, and a card appears next to the selection with the translation, and the recognized text above it so you can see exactly what was read. The frame stays where you left it: drag inside it to move it, drag an edge to resize it, and the new area is translated again. Anything on the card can be highlighted and copied with Ctrl+C. The reading itself runs offline on your own machine, so the screenshot never leaves it 🔍

Startup got the other half of the attention. Double-click the exe and something is on screen at once instead of a few seconds of nothing, with a bar that tracks what is genuinely left. Click twice by accident and the copy already running closes the newcomer before its screen is even up, and brings your window to the front ⚡

On top of that, we also did:

  • Cancelled translations are now really cancelled: resize the frame, draw a new box, close the card or close the input box, and the connection drops on the spot — the service stops generating instead of billing you for a reply nobody will read
  • The first-run wizard's last step asks for the region hotkey too, right under the chat one
  • When there is no room below or above your selection, the card moves to whichever side is wider, sized to the text, and scrolls with the wheel or a thin scrollbar instead of covering what it is translating
  • Game nouns written as one word, like "CrownShop", are no longer mistaken for code and left in English — they come back in your target language with the original in parentheses
  • The exe dropped two libraries it never touched (a video codec DLL and an image format plugin): 131 MB down to 114 MB

此版本重點

Wizard101 對話翻譯助手現在看得懂畫面,不只是聊天。按 Ctrl+Shift+Space —— 或點疊加視窗標題列上新增的 ⛶ 按鈕 —— 整個畫面就會定格變暗,讓你慢慢對準。把 NPC 對話、任務書、道具說明,或任何東西框起來,譯文卡片就出現在框選處旁邊,上方附著辨識到的原文,你看得到它到底讀進了什麼。框放開後會留在原地:拖框內移動、拖邊線改大小,新範圍會自動再翻一次。卡片上的內容都能反白、用 Ctrl+C 複製。辨識本身在你自己的電腦上離線跑,截圖不會離開這台機器 🔍

這個版本的另一半心力放在啟動。雙擊 exe 之後畫面馬上出現,不再是一段沒反應的空白,進度條照真正還剩多少在走。手滑點第二次也不要緊,已經開著的那份會趕在新的那個亮出畫面之前把它收掉,直接把原本的視窗叫到你面前 ⚡

除此之外,我們還做了:

  • 取消掉的翻譯是真的取消了:調整框選範圍、重新框一次、關掉卡片或關掉輸入框,連線當場就斷 —— 服務端會停止生成,而不是把沒人要看的整段回覆算進你的帳單
  • 首次設定精靈的最後一步也會問框選熱鍵,就排在聊天熱鍵底下
  • 框選處的上下都塞不下卡片時,卡片改貼到比較寬的那一側、依文字寬度排版,內容太長就用滾輪或細捲軸捲動,不再蓋住它正在翻的那段字
  • 像「CrownShop」這種黏在一起寫的遊戲名詞不再被誤認成程式碼而留著英文 —— 現在會譯成你設定的語言,原文附在括號裡
  • exe 拿掉了兩個從來沒碰過的函式庫(一個影片編解碼 DLL、一個圖片格式外掛):131 MB 降到 114 MB
image

What's Changed

  • chore(deps): bump anthropic from 1.3.0 to 1.4.0 by @dependabot[bot] in #14
  • feat(region): translate a user-selected screen area with local OCR by @GoneTone in #15
  • feat(startup): speed up exe startup, add a splash progress bar, preempt second launch by @GoneTone in #16
  • test(input-box): fix intermittent cancel-on-close failure under xdist by @GoneTone in #17
  • feat(region): move the result card beside the rect and scroll when it does not fit by @GoneTone in #18
  • fix(prompts): stop treating joined CamelCase nouns as code by @GoneTone in #19

Full Changelog: v0.2.0...v0.3.0


Reporting Issues 回報問題

If you run into any problem, please report it and attach the app.log next to the exe (and messages.log for missing or duplicated translations).

如果發現任何問題,請附上 exe 旁的 app.log(訊息漏翻/重複翻譯的問題請一併附上 messages.log)回報。

https://github.com/GoneTone/wizard101-chat-translator/issues

Contribute Translation 貢獻翻譯

Please help us translate this software!

請協助我們將軟體翻譯成各國語言!

https://crowdin.com/project/wizard101-chat-translator

Notice 注意

This software injects into the game process to read in-game conversations. KingsIsle does not sanction this, and it may be treated as a breach of the Wizard101 Terms of Use; under those terms KingsIsle may suspend an account for any reason, or for no reason. Use at your own risk.

本軟體會掛入(注入)遊戲程序讀取對話內容,此行為未經 KingsIsle 認可,可能被認定違反 Wizard101 服務條款;依該條款,KingsIsle 可基於任何理由(或無需理由)停權,請自行斟酌。

Because it reads game memory and listens for a global hotkey, antivirus software may flag or quarantine it. This is a false positive; add it to your allowlist if you decide to use it. This software is guaranteed to be virus-free.

本軟體會讀取遊戲記憶體並監聽全域熱鍵,行為模式與部分惡意程式相似,可能被防毒軟體誤判並刪除/隔離;請自行評估後加入白名單,本軟體保證無毒。

Updating 更新

If you are updating from an earlier version, quit the software first (click the ✕ on the overlay's title bar) — while it is running the exe is locked by Windows and still hooked into the game. Then overwrite the old Wizard101ChatTranslator.exe in the same folder; your existing config.json is kept, so nothing has to be set up again.

若是從舊版更新,請先關閉本軟體(點疊加視窗標題列右上角的 ✕) —— 程式執行中,exe 會被 Windows 鎖住、也還掛在遊戲上。關掉後覆蓋同一個資料夾裡的舊 Wizard101ChatTranslator.exe 即可,原本的 config.json 會保留,設定不必重填。