## File: docs/cht/gooduse/gooduseocr.md

# OCR 模式綁定遊戲視窗

一般來說，用其他 OCR 軟體時，一個很折磨人的地方就是，經常需要留個神注意遊戲視窗和翻譯視窗的位置。可能翻譯視窗和截圖區域相交，或者有時遊戲視窗要切到背景，這時候都很煩。

但是，Luna 的**綁定視窗**這一設定，能完美解決這個痛苦。

點擊**綁定視窗**按鈕，然後點擊遊戲視窗，讓按鈕變成粉紅色後，表示成功綁定了遊戲視窗。





這時會有一些重要變化：

1. **截圖將是僅會對遊戲視窗的截圖，不會截圖到其他非遊戲視窗**。這樣，翻譯視窗可以隨意放在任何位置，而不會因為和截圖區域相交而激烈變化；這樣，當遊戲視窗被其他視窗遮擋，截圖也僅會截取遊戲視窗，不會截取遮擋視窗。

2. **當遊戲視窗移動時，OCR 區域會跟隨遊戲視窗同步移動**。這樣，當有時需要移動遊戲視窗時，不需要移動 OCR 範圍框了，尤其是當您隱藏了範圍框時，不需要顯示->移動->再隱藏了。


除此之外，當綁定了遊戲視窗後，還有一些別的好處是：

1. 遊戲截圖功能可以更準確地截取到遊戲視窗

2. 遊玩時間追蹤功能可以更準確地記錄時間

3. 可以使用內建的 Magpie，或使用工具按鈕呼叫您自己下載的 Magpie

4. 可以從視窗控制代碼取得遊戲位置以及軟體內部 ID，可以對遊戲進行一些個人化的設定，包括專用於該遊戲的語言／語言合成／翻譯優化／文字處理／Anki 等的設定等

---

## File: docs/cht/gooduse/multiconfigs.md

# 建立多份設定檔

在此之前，如果想讓軟體同時以不同的設定開啟多個，只能透過整個將軟體複製多份才能實現，這會浪費很多空間。

近期，對此進行了優化，可以讓軟體讀取指定目錄的設定檔，從而只需在執行時指定使用的設定檔目錄，即可使用不同的設定檔。

方法是：

1. 為主程式建立捷徑。

    

1. 修改捷徑的屬性->目標，在最後新增` --userconfig=XXXX`，其中，將`XXXX`取代為您想使用作為新的設定檔之資料夾的名字。然後使用這個捷徑啟動軟體即可。

    如果`XXXX`是一個不存在的資料夾，那麼會使用預設設定啟動軟體，並建立這個資料夾。

    如果`XXXX`是一個已經存在的資料夾，那麼會使用這個資料夾中的設定檔來啟動軟體。您可以複製舊的`userconfig`資料夾，然後指定`XXXX`為複製的資料夾的名字，這樣就可以從之前的設定之上，分叉出新的設定。

---

## File: docs/cht/gooduse/useocrinhook.md

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css">

<style>
    i{
        color:blue;
        width:20px;
    }
    .fa-icon {
  visibility: hidden;
}
.btnstatus2{
    color:deeppink;
}
</style>

# 在 HOOK 模式下臨時使用 OCR

有時，HOOK 模式不會擷取遊戲中的選單、選項等文字，而為此切換到 OCR 模式進行辨識再切換回 HOOK 模式又很麻煩。

其實，對於這種情況，早已有了內建的解決方案，即使用「進行一次OCR」按鈕或快速鍵。

這個按鈕和 OCR 模式下選取辨識範圍的按鈕的預設圖示是相同的，並且現在已經預設顯示該按鈕。

這個按鈕在選取完範圍後，只會進行一次 OCR，然後退出 OCR，然後無縫繼續使用 HOOK 自動擷取文字，完美解決了 HOOK 模式的一些缺漏。

**由於這個按鈕的圖示，很多原本就想要使用 OCR 的人，誤以為這就是 OCR 的按鈕，結果仍在 HOOK 模式下就使用這個按鈕，選取完範圍後卻不會進行自動翻譯。實際上當切換到 OCR 模式後，OCR 模式的按鈕才會顯示出來。**

如果對於固定位置的選項，不想每次重複選取，可以使用「再次進行 OCR」按鈕或快速鍵，即可延續上一次選取的範圍來進行一次 OCR。

---

## File: docs/cht/useapis/ocrapi.md

# OCR 介面設定

## 線上 OCR {#anchor-online}

::: tabs

== 百度

#### 百度智能雲 OCR

https://ai.baidu.com/ai-doc/OCR/1k3h7y3db

#### 百度智能雲 圖片翻譯

https://ai.baidu.com/ai-doc/MT/dkifdqg54

#### 百度翻譯開放平台 圖片翻譯

https://fanyi-api.baidu.com/product/22

== 騰訊

#### OCR 通用印刷體識別

https://cloud.tencent.com/document/product/866/33526

#### 圖片翻譯

https://cloud.tencent.com/document/product/551/17232

== 有道

https://ai.youdao.com/doc.s#guide

== 火山

https://www.volcengine.com/docs/6790/116978

== 訊飛

https://www.xfyun.cn/doc/platform/quickguide.html


== Google Cloud Vision

https://cloud.google.com/vision/docs

== OCRSpace

https://ocr.space/

== 大模型通用介面

和[翻譯](/zh/guochandamoxing.html)相同

:::


## 離線 OCR {#anchor-offline}

### 內建 OCR {#anchor-localocr}


內建已包含**PP-OCRv5_mobile**（中日英語的輕量級辨識模型）。如果需要辨識其他語言，或想要使用其他模型，需要在設定中下載模型並設定使用。



設定中還提供了一些高精度模型，例如（PP-OCRv6_medium、PP-OCRv5_server），可以達到極高的辨識準確率，但辨識速度相對較慢。

| 模型 | 檢測模組 Hmean(%) | 識別模組 Avg Accuracy(%) | 支援的語言 | 體積(MB) |
| - | - | - | - | - |
| PP-OCRv6_small | 84.1 | 81.3 | 任意 | 25.2 |
| PP-OCRv6_medium | 86.2 | 83.2 | 任意 | 99.7 |
| PP-OCRv6_tiny | 80.6 | 73.5 | 任意 | 5.45 |
| PP-OCRv5_mobile | 79.0 | 81.29 | 簡體中文、繁體中文、英文、日文 | 17.7 |
| PP-OCRv5_server | 83.8 | 86.38 | 簡體中文、繁體中文、英文、日文 | 148 |
| eslav_PP-OCRv5_mobile | 79.0 | 81.6 | 東斯拉夫語言 | 11.2 |
| korean_PP-OCRv5_mobile | 79.0 | 88.0 | 韓語 | 12.2 |
| latin_PP-OCRv5_mobile | 79.0 | 84.7 | 拉丁字母語言 | 11.3 |

為提高高精度模型的辨識效率，可以採用以下手段：

1. 使用 GPU 推理

    如果使用的軟體版本為 Win10 版，或系統為 Windows 11，那麼可以直接設定使用 GPU 執行模型。

    

1. 使用 OpenVINO 推理

    如果使用 Intel 的 CPU/NPU/GPU，那麼可以將推理引擎替換為 OpenVINO 來加速辨識。
    
    下載 [onnxruntime-openvino](https://globalcdn.nuget.org/packages/intel.ml.onnxruntime.openvino.1.23.0.nupkg)，解壓縮後將 **runtimes/win-x64/native** 中的所有檔案覆蓋到 **LunaTranslator/files/DLL64** 中，然後選擇使用的裝置即可。

    

### 其他OCR

::: tabs

== SnippingTool

>[!WARNING]
僅支援 Win10～Win11 作業系統

如果是最新版的 Windows 11 系統則可以直接使用，否則需要在設定中安裝該模組以使用。


== Manga OCR

>[!WARNING]
>此 OCR 引擎對於橫向文字辨識效果不佳。

CPU 整合包 https://lunatranslator.org/Resource/IntegrationPack/manga_ocr/cpu

GPU 整合包 https://lunatranslator.org/Resource/IntegrationPack/manga_ocr/gpu

== WeChat/QQ OCR

需要安裝微信或新版 QQ

== WindowsOCR

>[!WARNING]
>效果太差，不推薦使用。

>[!WARNING]
僅支援 Win10～Win11 作業系統

#### 查詢＆＆安裝＆＆移除 OCR 語言包

https://learn.microsoft.com/zh-cn/windows/powertoys/text-extractor#supported-languages

== Tesseract 5

>[!WARNING]
>效果太差，不推薦使用。

https://github.com/tesseract-ocr/tesseract/releases

:::

---

## File: docs/cht/useapis/tsapi.md

# 傳統線上翻譯介面

## 傳統 API

::: tabs

== 百度

#### 百度翻譯開放平台

https://fanyi-api.baidu.com/product/11

#### 百度智能雲

https://ai.baidu.com/ai-doc/MT/ykqq95r2y

== 騰訊

https://cloud.tencent.com/document/product/551/104415

== 有道

https://ai.youdao.com/doc.s#guide

== 阿里

**開通服務** https://www.aliyun.com/product/ai/alimt

**建立金鑰** https://help.aliyun.com/zh/ram/user-guide/create-an-accesskey-pair

== 彩雲

https://docs.caiyunapp.com/lingocloud-api/#%E7%94%B3%E8%AF%B7%E8%AE%BF%E9%97%AE%E4%BB%A4%E7%89%8C

== 火山

https://www.volcengine.com/docs/4640/127684

== Google

https://cloud.google.com/translate/docs/basic/translating-text

== DeepL

https://www.deepl.com/en/products/api

== Azure

https://learn.microsoft.com/en-us/azure/ai-services/translator/reference/v3-0-reference#authentication

**key1** Ocp-Apim-Subscription-Key	

**Location** Ocp-Apim-Subscription-Region

== 小牛

https://niutrans.com/cloud/api/list

== Yandex

https://yandex.cloud/en/docs/translate/api-ref/authentication#service-account_1

== 華為雲

https://www.huaweicloud.com/product/nlpmt.html


:::

---

## File: docs/cht/alltoolbuttons.md

# 工具按鈕

::: info
所有按鈕可以在`顯示設定`->`工具按鈕`中，進行隱藏或顯示。

所有按鈕均可以隨意調整位置。按鈕可以設定對齊分組`置左` `置中` `置右`，對相對位置的調整都會被限定在對齊分組中。

按鈕顏色可以點擊「顏色」進行自定義。

按鈕圖標可以點擊「圖標」進行自定義。

部份按鈕有兩個圖示，用來表示兩種不同的狀態。部份按鈕僅有一個圖示，不過會用不同的顏色來表示不同的狀態
:::

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css">


<style>
    i{
        color:blue;
        width:20px;
    }
    .fa-icon {
  visibility: hidden;
}
.btnstatus2{
    color:deeppink;
}
</style>

1. ####   手動執行 {#anchor-retrans}
    實際意義是，從目前的文字輸入來源，讀取一次輸入，並執行翻譯。

    例如如果目前是 OCR 模式，會再執行一次 OCR。

1. ####   自動模式 {#anchor-automodebutton}
    實際意義是，暫停／繼續自動從目前的文字輸入來源讀取文字。

    例如如果目前是 HOOK 模式，會暫停讀取遊戲文字；目前是 OCR 模式，暫停自動辨識圖像；如果目前是剪貼簿模式，會暫停自動讀取剪貼簿。

1. ####   開啟設定 {#anchor-setting}
    開啟或關閉程式的設定視窗。

1. ####   讀取剪貼簿 {#anchor-copy_once}
    這個的實際意義是，不管目前的預設文字輸入來源是什麼，都從剪貼簿讀取一次文字，並傳給之後的翻譯／TTS／…流程。

    右鍵點擊按鈕會追加讀取到的文字到目前文字之後。

1. ####   遊戲設定 {#anchor-open_game_setting}
    當使用 HOOK 模式連接到遊戲，或使用 OCR 模式綁定遊戲視窗後，則可以透過這個按鈕直接開啟目前遊戲的設定視窗。

1. ####   滑鼠游標穿透視窗 {#anchor-mousetransbutton}
    啟用這個按鈕後，滑鼠點擊翻譯視窗時，翻譯視窗不會對滑鼠點擊做出反應，而是把點擊事件傳遞給下層視窗。

    當把翻譯視窗置於遊戲視窗的文字框之上時，啟用這個按鈕可以直接點擊遊戲的文字框而不是點擊到翻譯視窗上。

    當把滑鼠游標移動到**滑鼠游標穿透視窗按鈕及其左右一個按鈕的區域**時，會自動退出穿透狀態以使用工具按鈕；移出區域時自動恢復穿透狀態。

1. ####   視窗背景透明 {#anchor-backtransbutton}
    該按鈕作用僅是一鍵使得翻譯視窗的不透明度切換到 0。當不透明度為0時，滑鼠也會穿透視窗。

1. ####   鎖定工具列 {#anchor-locktoolsbutton}
    啟用後工具列將始終顯示。

    未鎖定工具列時，當滑鼠游標移出後，工具列會自動隱藏，進入視窗後工具列才會恢復顯示；如果是使用滑鼠右鍵取消的鎖定工具列，則僅當滑鼠游標進入到**鎖定工具列按鈕及其左右一個按鈕的區域**時，工具列才會恢復顯示。

    未鎖定工具列時，如果啟用了`滑鼠游標穿透視窗`，則僅當滑鼠游標移動到**滑鼠游標穿透視窗按鈕及其左右一個按鈕的區域**時，工具列才顯示；否則只要滑鼠游標進入到翻譯視窗，工具就會顯示。

    如果目前使用了視窗特效（Aero/Arylic），且不鎖定工具列，則工具列會處於文字區的 z 軸之上的區域，而非處於文字區的 y 軸上面。這是因為由於 Windows 的原因，使用視窗特效時，如果將工具列只是隱藏而非將縮去其視窗高度，則被隱藏的工具列仍會被渲染 Aero/Arylic 背景，導致工具列所在區域會有一塊空白。

1. ####   選擇遊戲 {#anchor-selectgame}
    **該按鈕僅在 HOOK 模式下可用**

    點擊按鈕會彈出選擇遊戲處理程序視窗，來選擇要 HOOK 的遊戲處理程序。

1. ####   選擇文字 {#anchor-selecttext}
    **該按鈕僅在 HOOK 模式下可用**

    點擊按鈕會彈出選擇遊戲文字視窗，來選擇要翻譯哪項 HOOK 到的文字。

    不過，選擇文字視窗在選擇處理程序後會自動彈出，這個按鈕實際上是用來更換選擇的文字，或修改一些設定用的。

1. ####   選取 OCR 範圍 {#anchor-selectocrrange}
    **該按鈕僅在 OCR 模式下可用**

    OCR 模式下，選取 OCR 區域，或者更換 OCR 區域，或者當啟用`OCR 設定`->`其他`->`多重區域模式`時增加新的 OCR 區域。

    當按下右鍵時，會先清除所有已選取範圍，再新增新的區域。

1. ####   顯示／隱藏範圍框 {#anchor-hideocrrange}
    **該按鈕僅在 OCR 模式下可用**

    當未選擇任何 OCR 範圍時，使用該按鈕顯示 OCR 範圍，會自動設定 OCR 範圍為上一次選擇的 OCR。

    當按下右鍵時，會清除所有已選取範圍。

1. ####   進行一次 OCR {#anchor-ocr_once}
    該按鈕和`讀取剪貼簿`類似，不管目前的預設文字輸入來源是什麼，都會先進行 OCR 範圍選擇，然後進行一次 OCR，然後進行翻譯流程。

    該按鈕一般用於：在 HOOK 模式下，遊戲中遇到選項（選擇肢）時，臨時使用一次 OCR 來翻譯該選項的文字；或者在 OCR 模式下，臨時去辨識一次其他偶爾出現的新的位置。

1. ####   再次進行 OCR {#anchor-ocr_once_follow}
    當使用過一次`進行一次 OCR`後，使用這個按鈕，可以在原來的位置上再次進行一次 OCR 而無需重新選擇辨識區域。

1. ####   翻譯前取代 {#anchor-noundict_direct}
1. ####   專有名詞翻譯 {#anchor-noundict}
1. ####   翻譯結果修正 {#anchor-fix}
    以上三個按鈕效果類似，是用來快速開啟翻譯優化的設定視窗，增加新的指定詞條的。

    滑鼠左鍵點擊時，當有綁定的遊戲（HOOK 連結遊戲／剪貼簿、OCR 綁定視窗）時，開啟遊戲的專用詞典設定，否則則是開啟全域的詞典設定。

    滑鼠右鍵點擊時，必然開啟全域的詞典設定。

1. ####   最小化到系統匣 {#anchor-minmize}
    將程式最小化到系統匣。

1. ####   退出 {#anchor-quit}
    結束程式。

1. ####   移動 {#anchor-move}
    拖動翻譯視窗。

    實際上當按鈕欄有或沒有按鈕存在的額外空白區域時，都可以隨意拖動。該按鈕僅用來預留一個拖動位置。

1. ####   視窗縮放 {#anchor-fullscreen}
    可以一鍵對遊戲視窗使用內建的 Magpie 進行縮放。

    預設左鍵為視窗化縮放，右鍵為全螢幕縮放。可以設定切換右鍵和左鍵點擊功能。

1. ####   視窗截圖 {#anchor-grabwindow}
    如果目前正在使用 Magpie 進行縮放，則會對放大的視窗進行截圖。

    當綁定遊戲視窗後，可以對綁定的視窗進行截圖。優先使用 GDI 截圖，若失敗則會使用 Windows.Capture 截圖

    預設左鍵點擊時會把截圖儲存到檔案，右鍵點擊時截圖會儲存到剪貼簿。可以設定切換右鍵和左鍵點擊功能。

1. ####   遊戲靜音 {#anchor-muteprocess}
    當綁定遊戲視窗後，可以一鍵對遊戲進行靜音，節省了還要在系統音量混音程式才能將遊戲靜音的麻煩。

1. ####   顯示／隱藏原文 {#anchor-showraw}
    切換是否顯示原文，會立即生效。

1. ####   顯示／隱藏翻譯 {#anchor-showtrans}
    切換是否使用翻譯，為翻譯的總開關，關閉後將不會進行任何翻譯。

    如果已經進行過了翻譯，則關閉後將會隱藏翻譯結果，並在重新開啟時重新顯示本次的翻譯結果。

    如果未進行過翻譯，並從隱藏切換到顯示，則會觸發對目前句子的翻譯。

1. ####   朗讀 {#anchor-langdu}
    左擊按鈕會對目前文字進行語音合成。

    右鍵點擊該按鈕會中斷朗讀。

    該朗讀會無視`跳過`（如果在`語音指定`中，有將目前比對到的文字目標設為`跳過`，則使用按鈕進行朗讀時，會無視跳過，強制進行朗讀）。

1. ####   複製到剪貼簿 {#anchor-copy}
    複製目前擷取到的文字到剪貼簿一次。如果想要自動擷取到剪貼簿，應啟用`文字輸入`->`剪貼簿`->`自動輸出`->`自動輸出文字`。

1. ####   顯示／隱藏歷史文字 {#anchor-history}
    開啟或關閉歷史文字的視窗。

1. ####   遊戲管理 {#anchor-gamepad_new}
    開啟遊戲管理器介面。

1. ####   編輯 {#anchor-edit}
    開啟編輯視窗，以編輯目前擷取到的文字。

    該視窗中，可以在修改文字後，再去進行翻譯；或者可以翻譯任何自行輸入的文字。

1. ####   編輯 翻譯紀錄 {#anchor-edittrans}
    開啟目前遊戲的翻譯紀錄編輯視窗。

1. ####   模擬按鍵 Ctrl {#anchor-simulate_key_ctrl}
    用於向遊戲視窗發送一次模擬按鍵 Ctrl。對於使用串流／平板時有些用處。

1. ####   模擬按鍵 Enter {#anchor-simulate_key_enter}
    同上，用於向遊戲視窗發送一次模擬按鍵 Enter。對於使用串流／平板時有些用處。

1. ####   備忘錄 {#anchor-memory}
    對於目前正在玩的遊戲，開啟備忘錄視窗。

    點擊左鍵時，開啟目前遊戲的備忘錄。點擊右鍵時，開啟全域的備忘錄。

1. ####   綁定視窗 （點擊自己取消） {#anchor-bindwindow}
    **該按鈕非常重要，許多功能都依賴於該按鈕先進行設定後才可用**

    在綁定了遊戲視窗後，`視窗縮放` `視窗截圖` `遊戲靜音`，`跟隨遊戲視窗`->`遊戲失去焦點時取消置頂`和`遊戲視窗移動時同步移動`，以及記錄遊戲時間等功能，才可用。
    不論 HOOK／OCR／剪貼簿模式，該按鈕都可用。

    在 HOOK 模式下，會自動根據連接的遊戲，自動綁定遊戲視窗。但也可以再用該按鈕重新選擇其他視窗。

    在 OCR 模式下，綁定視窗後，還額外允許在遊戲視窗移動時，自動同步移動 OCR 區域和範圍框。
    在 OCR／剪貼簿模式下，綁定視窗後，也可以和 HOOK 模式下一樣，關聯到目前遊戲到遊戲設定，從而使用目前遊戲的專用翻譯優化詞典等。

1. ####   視窗置頂 {#anchor-keepontop}
    取消／置頂翻譯視窗。

1. ####   可選取的 {#anchor-selectable}
    使得翻譯視窗的文字區中的文字，是可以進行選擇的。

    如果啟用時點擊的是滑鼠右鍵，則會禁止拖曳非文字區域以移動視窗。

1. ####   查詞 {#anchor-searchwordW}
    如果目前有文字被選取，則會查詢選取的文字並開啟查詞視窗。否則只是開啟或關閉查詞視窗。

1. ####  重設翻譯狀態 {#anchor-reset_TS_status}
    重置翻譯狀態，主要針對用於現今日益增長的大模型翻譯需求，可清除儲存的上下文和其他資訊。

---

## File: docs/cht/apiservice.md

# 網路服務

## Web 頁面

1. #### /

    導航頁

1. #### /page/mainui

    與主視窗顯示的文字內容同步

1. #### /page/transhist

    與歷史文字顯示的文字內容同步

1. #### /page/dictionary

    查詢單字頁面。在`/page/mainui`中進行點擊單字查詞時會喚出該頁面。

1. #### /page/manyinone

    整合上述三個頁面的一個頁面。在該視窗中的`/page/mainui`子區域中進行點擊單字查詞時，不會開啟新的查詞視窗，而是會在目前視窗的`/page/dictionary`子區域中進行查詞。

1. #### /page/translate

    翻譯介面

1. #### /page/ocr

    OCR 介面

1. #### /page/tts

    TTS 介面

## API 服務

### HTTP 服務

1. #### /api/translate

    - 必須指定查詢參數`text`
    - 如果指定參數`id`（翻譯器的 ID），則會使用該翻譯器進行翻譯，否則會回傳最快的翻譯介面
    - 回傳`application/json`，包含翻譯器 ID`id`、名稱`name`和翻譯結果`result`

1. #### /api/dictionary

    - 必須指定查詢參數`word`
    - 如果指定參數`id`（詞典的 ID），則會回傳該詞典的查詢結果的`application/json`物件，包含詞典 ID`id`、詞典名稱`name`和 HTML 內容`result`。如果查詢失敗則會回傳一個空的物件
    - 否則會查詢所有詞典，回傳`event/text-stream`，每個 Event 為一個 JSON 物件，包含詞典 ID`id`、詞典名稱`name`和 HTML 內容`result`

1. #### /api/mecab

    - 必須指定查詢參數`text`
    - 回傳 Mecab 對`text`的解析結果

1. #### /api/tts

    - 必須指定查詢參數`text`
    - 回傳音訊的二進制資料

1. #### /api/ocr

    使用 POST 方法，發送 JSON 請求，包含`image`欄位，內容為 Base64 編碼的圖像。

1. #### /api/list/dictionary

    列出目前可用的辭書

1. #### /api/list/translator

    列出目前可用的翻譯器

1. #### /api/textinput

    必須指定參數`text`


### WebSocket 服務

1.  #### /api/ws/text/origin

    會持續輸出所有擷取到的原文文字

1.  #### /api/ws/text/trans

    會持續輸出所有翻譯結果

---

## File: docs/cht/basicuse.md

# 基本用法

## HOOK 模式

對於已經啟動的遊戲，使用 HOOK 模式，開啟選擇遊戲處理程序的視窗，來選擇遊戲的處理程序。



點擊確認後，遊戲將會被新增到軟體中並注入遊戲，然後會彈出選擇文字視窗。選擇文字視窗也可以在工具列按鈕中開啟。



讓遊戲執行一下，以顯示一些文字，這時選擇文字介面中將會出現若干候選文字列。選擇其中符合遊戲文字的文字列，即可開始翻譯。



如果遊戲支援內嵌翻譯，那麼會有「內嵌」這一欄按鈕，否則只會有「顯示」這一欄按鈕。



## OCR 模式



有時也可以使用 OCR 模式來辨識圖像文字。切換到 OCR 模式，然後選擇辨識區域，即可自動辨識文字翻譯。

請注意，不要使用錯誤的按鈕，後一個按鈕預設圖示相同的按鈕只用於臨時選取並辨識一次圖像，而非自動持續辨識。



## 快速啟動遊戲並 HOOK

啟動軟體後，將遊戲程式用滑鼠拖曳到軟體的視窗中，然後鬆開滑鼠後，遊戲將會被自動新增到軟體中。遊戲會自動被轉區啟動，並自動 HOOK 遊戲。



然後會彈出選擇文字視窗，之後按照和 HOOK 模式相同的繼續操作即可。

---

## File: docs/cht/embedtranslate.md

# 內嵌翻譯

## 使用方法

::: danger
首先，不是所有遊戲都支援內嵌。其次，內嵌有一定可能會導致遊戲崩潰。
:::

::: details 如果選擇文字中沒有內嵌這一欄，就代表不支援內嵌。


:::

對於支援內嵌的遊戲，選擇支援內嵌的文字條目，啟用內嵌即可。



對於支援內嵌的條目，**顯示**和**內嵌**可以隨意選擇是否同時啟用。當同時啟用時，既會在遊戲中嵌入翻譯，也會在軟體視窗中顯示更多翻譯；若只啟用內嵌，則只會在遊戲中顯示嵌入的翻譯，軟體視窗則不會顯示任何內容。

當開始內嵌翻譯後，經常會出現亂碼的情況。遊戲亂碼一般會是**字元集**和**字型**兩種問題。對於英文遊戲，通常是因為遊戲缺少中文**字型**導致的，例如：



這時，您需要啟用**修改遊戲字型**，並選擇一個適當的字型，以顯示中文字元



修改完畢字型後，中文可以正確的顯示了：



對於許多古早日本 Galgame，他們使用自己內建的 Shift_JIS 字元集處理，無法正確處理中文字元，可以嘗試**將漢字轉換成繁體／日式漢字**，減少亂碼的出現。

對於一些較新的遊戲引擎和大部份英文遊戲，一般使用 UTF-8 或 UTF-16 等 Unicode 字元集（如 **KiriKiri**，**Renpy**，**TyranoScript**，**RPG Maker MV** 等），即使出現亂碼一般也是字型的問題，而不是字元集的問題。



取消這一設定後，可以正常顯示簡體中文了。但對於一些無法正常顯示簡體中文的遊戲，可以嘗試啟用這一選項來看看能不能正常顯示。



## 內嵌翻譯設定

1. #### 顯示模式

    

    由於遊戲能顯示的文字行數的限制，所以預設沒有在翻譯和原文中間新增換行。如果確定可以容納，可以透過在**翻譯優化**->**翻譯結果修正**中新增一項正則表達式來在翻譯前面新增一個換行來實現。

    

1. #### 翻譯等待時間

    內嵌翻譯的原理是在遊戲顯示文字前，在某個函式中停住遊戲，把其中要顯示的文字發送給翻譯器，等待到翻譯後把記憶體中的文字修改成翻譯的文字，然後讓遊戲繼續執行來顯示翻譯。因此**當使用的翻譯速度較慢時，是一定會導致遊戲卡頓的**。可以透過限制等待的時間，來避免翻譯過慢導致長時間卡頓。

1. #### 將漢字轉換成繁體／日式漢字

    將漢字轉換成繁體字與日本漢字。

1. #### 限制每行字數

    有時某些遊戲每行能顯示的字元數量是有限的，超出長度的內容會顯示到文字框右邊的更外面而無法顯示。可以透過這一設定來手動分行以避免該情況。

    

1. #### 修改遊戲字型

    修改遊戲中文字的顯示字型。

1. #### 修改遊戲字體相對大小

    略


1. #### 清除遊戲內顯示的文字

    啟用該選項後，遊戲內要顯示內嵌文字處的內容將被清空。

    該選項可能滿足以下需要：

    1. 有時，內嵌翻譯有無法解決的字元編碼和字型無法顯示的問題。啟用該選項，然後將軟體視窗覆蓋到原本遊戲中顯示文字的地方，可以偽裝成內嵌翻譯的樣子。

    1. 有時，我們並不是想要進行內嵌翻譯，而是使用外掛翻譯時，有可能覺得將視窗放在文字區會和原文字重疊，放在其他地方會遮擋畫面。

    1. 有時，我們僅想要用來學習日文，然後遊戲文字沒有對文字加讀音或雙語對照的功能。