本主題提供多語應用程式工具組 (MAT) 相關常見問題的解答。
另請參閱 使用多語應用程式工具組。
注意 工具組同時支援 .resw (XAML) 和 .resjson (JavaScript) 檔案。 但在本主題中,我們只會參考 .resw 檔案。 .resw 檔案稱為資源檔。 它包含預設語言或翻譯成其他語言的字串。 包含 .resw 檔案的資料夾通常會針對語言標記的值命名。
我需要多種語言的 .resw 檔案嗎?
否。 工具組的主要優點之一是不需要多種語言的 .resw 檔案。 工具組會使用 .xlf 檔案來管理和同步處理應用程式的資源。 這可移除與讓內容在多個 .resw 檔案之間保持同步處理相關的挑戰。
包含相符 .resw 和 .xlf 檔案的專案會導致忽略 .xlf 檔案的翻譯。 發生這種情況時,會在組建期間顯示警告,讓您知道最終應用程式中未包含 .xlf 翻譯。 當 .resw 檔案和 .xlf 檔案具有相同語言程式代碼的目標語言時,會相符。 相符配對的範例是 Strings\de-DE\Resources.resw
和 <project-name>.de-DE.xlf
檔案 (包含 target-language="de-DE"
)。
我可以有多種語言的 .resw 檔案嗎?
可以,但是不建議您這麼做。 如果您想要在專案中以多種語言包含 .resw 檔案並使用工具組,請確定您沒有相符的 .resw 和 .xlf 檔案。
我在 [工具] 選單中看不到啟用多語應用程式工具組的選項
請嘗試這些步驟。
- 開啟 [工具] 功能表之前,請務必先選取項目節點,而不是方案節點。
- 使用 Visual Studio 擴充功能管理員確認已安裝工具組擴充功能。
- 確認您的專案是 UWP 專案。
當我建置專案時,我看不到一則訊息,指出多語應用程式工具組組建已啟動
確認您已為項目啟用 MAT。 在工具功能表上,選擇多語言應用程式工具組>啟用選擇。 如果您的專案使用舊版啟用,請使用 [工具] 功能表停用並重新啟用 MAT。 這會更新專案以使用新版工具組。
確定已安裝「所有 Visual Studio 版本的建置工作」元件。 此組建元件會隨延伸模組一起安裝,但在安裝期間可以手動取消選取。 需要此元件才能更新 .xlf 檔案,並將翻譯新增至 PRI 檔案。 安裝此元件並正常運作時,您會看到這些組建訊息。
1> Multilingual App Toolkit build started.
1> Multilingual App Toolkit build completed successfully.
工具組報告在建置期間找不到任何 XLIFF 語言檔案
No XLIFF language files were found. The app will not contain any localized resources.
當工具組在專案中找不到擴展名為 .xlf 的任何檔案時,就會顯示此訊息。 工具組預設會在資料夾中產生並保留這些檔案 MultilingualResources
。 它們可以移動;但最好將它們留在該資料夾中,因為這樣可讓多語編輯器找出相關的元數據檔案。
我的 .xlf 檔案不包含在建置期間工具組處理的檔案清單中
如果您手動從專案排除 .xlf 檔案,然後重新包含它,則可能無法正確設定檔類型專案。 在 Visual Studio 中,選取檔案並檢查 屬性視窗。 檔案的建置動作應該設定為 XliffResource,而 [複製到輸出目錄] 應該設定為 [不要複製]。 這是參考應該在項目檔中查看的方式。
<XliffResource Include="MultilingualResources\<project-name>.fr-FR.xlf" />
我新增了以 .xlf 為基礎的語言。 我的字串在哪裡?
您的預設語言資源檔 (.resw) 是您應用程式所使用的字串標準「架構」。 翻譯的資源檔案可以包含這些字串的所有或子集。
當您建置專案時,會同步處理您的資源檔案和 .xlf 檔案。
- .xlf 檔案會更新以反映任何新增或移除的字串,或新增或移除的資源檔案。
- 資源檔會更新為反映 .xlf 檔案中任何已翻譯的字串。
使用多語應用程式工具組中會詳細說明這一點。
當我建置專案時,.xlf 檔案會保持空白
在有效使用 MAT 之前,您的應用程式需要可在地化。 使用多語應用程式工具組中會詳細說明這一點。
什麼是 Microsoft 翻譯工具?
Microsoft 翻譯工具 是雲端式服務,可提供機器型翻譯。 當人類翻譯不合理時,機器翻譯很適合用來取得翻譯。 您可以在 Microsoft 翻譯工具 深入瞭解。
工具組會使用 Microsoft 翻譯工具 服務來提供翻譯建議給您。 當 [翻譯語言] 對話框中出現 Microsoft 翻譯工具 圖示時,您可以看到 Microsoft 翻譯工具 支援的語言。
您可以從多語編輯器中選取字串並按兩下 [翻譯],以使用 Microsoft 翻譯工具 快速翻譯您的應用程式。
什麼是虛擬語言,什麼是虛擬資源追蹤器?
虛擬語言是模擬實際語言本地化的軟體產品的人工修改。 您可以在使用多語應用程式工具組中找到虛擬語言和虛擬資源追蹤器的詳細資料。
如何? 我的語言喜好設定為虛擬語言,這樣我就可以測試我的虛擬區域字串嗎?
使用多語應用程式工具組中會說明這一點。
我可以使用虛擬語言找到哪種當地語系化問題?
使用多語應用程式工具組中會說明這一點。
當我啟動應用程式時,我看不到任何翻譯,或我的應用程式只是部分翻譯
在多語編輯器中開啟 .xlf 檔案,以查看翻譯是否存在。 當默認語言 .resw 檔案中的字串明確變更時,會從 .xlf 檔案中移除任何對應的翻譯。 這是為了確保翻譯符合其來源字串。 翻譯 .xlf 檔案中的字串(s),然後重建以更新非默認語言 .resw 檔案(s)。
如果您的字串是在 .xlf 檔案中轉譯的,但它們未出現在您的應用程式中,請重建您的專案以更新非默認語言 .resw 檔案(s)。 Visual Studio 會將 Build 命令優化,只建置自上次建置後已變更的檔案。
檢查您的語言喜好設定順序。 確定您想要測試的語言列在 [設定] 中語言喜好設定清單頂端。
工具組在組建輸出中報告錯誤0x80004004
Merge of Loc PRI file failed calling makepri.exe: "0x80004004"
當區域格式與工具組建置作業衝突時,即可顯示此訊息。 因應措施是在建置時,將 [設定] 中的語言變更為 en-US。
工具組在組建輸出中報告錯誤0x80004005
Merge of Loc PRI file failed calling makepri.exe: "0x80004005"
當 .xlf 檔案包含不支援的目標語言時,即可顯示此訊息。 例如,“zh-cht” 不正確(將其變更為 “zh-hant”),而 “zh-chs” 不正確(將其變更為 “zh-hans” )。
是否有辦法找出我看到之錯誤的詳細資訊?
是,您可以在 Visual Studio 中開啟詳細信息記錄。 按兩下 [工具>選項>專案] 和 [方案>建置並執行]。 將 MSBuild 專案建置輸出詳細資訊從 [最小] 變更為 [一般] 或更新版本。
從命令行執行 MSBuild 也可以產生其他訊息。
msbuild /t:rebuild <project-name>
匯入翻譯失敗
匯入程式會在匯入之前執行基本驗證。 這可確保匯入的文件中的目標區域性資訊與現有 .xlf 檔案中的目標區域性資訊相符。 在多語編輯器中開啟 .xlf 檔案,並確定文化特性資訊相符。
如果我的翻譯工具未安裝 Windows 10、Windows 11 和/或 Visual Studio 和/或多語應用程式工具組,該怎麼辦?
當您在 [匯出字串資源] 對話框中選取 [輸出:郵件收件者 ] 時,電子郵件會包含下載並安裝多語應用程式工具組 (MAT) 的連結。 即使沒有 Windows 10、Windows 11 或 Visual Studio,您的翻譯工具仍然可以安裝 MAT 獨立多語編輯器工具。
如需詳細資訊,請參閱使用多語應用程式工具組。
「MarkupRules.xml」和「ResourcesLocks.xml」檔案發生什麼事?
多語應用程式工具組不會使用專屬資源鎖定檔案。 相反地,XLIFF 1.2 標記 <mrk>
會直接新增至 .xlf 檔案,以識別機器翻譯期間未修改的字串。 這可讓 XLIFF 檔案獨立,並允許個別檔案型資源鎖定。
不再需要這些額外的支援檔案,而且如果您有這些檔案,您可以安全地刪除它們。
.tpx 檔案發生什麼事?
.tpx 檔案提供一個簡單的方式來包含 MarkupRules.xml
和 ResourcesLocks.xml
檔案時,.xlf 檔案已送出以進行翻譯。 不再需要此功能。
如果您在需要擷取的 .tpx 檔案中有翻譯,只要將 .tpx 擴展名重新命名為 .zip。 這可讓您使用 檔案總管 或任何.zip相容工具開啟和擷取內容。
我認為我已經做了一切正確, 但它仍然沒有工作
請嘗試這些步驟。
- 使用已描述的其中一種方法來新增翻譯。
- 傾印 .pri 檔案(請參閱 MakePri.exe命令行選項),以查看您的翻譯是否位於 .pri 檔案中。 翻譯會出現語言代碼和翻譯值,如下所示。
<Candidate qualifiers="Language-QPS-PLOC" type="String"> <Value>[!!_Ŝéãřćĥ_!!]</Value> </Candidate>
- 從命令提示字元建置;產生的錯誤可能比建置輸出中報告的詳細數據更多。
我的應用程式無法向 Microsoft 市集認證
在開始 Microsoft Store 認證流程之前,必須從專案中排除該 <project-name>.qps-ploc.xlf
檔案。 偽語言用於檢測潛在的本地化問題或錯誤,但它不是有效的 Microsoft Store 語言。 如果未將其刪除,那麼您的應用程式將在 Microsoft Store 認證過程中失敗。
您要收集哪些資料?
多語言應用程式工具組 Visual Studio (MAT VS) 擴充功能收集匿名使用資料並將其發送到 Microsoft 伺服器,以協助改善我們的產品和服務。 遙測預設為關閉狀態,可以隨時啟用或停用。
使用方式數據:這是使用哪些功能的匿名資訊。 例如:將新語言新增至已啟用 MAT 的解決方案。
組態數據:這是有關已安裝之 MAT VS 版本的匿名資訊,以及其執行時所執行的 Windows 版本。
以下是以下欄格式收集之資料的具體範例:索引鍵/值/附註:
- AddLanguage / MachineID:xxxx / 這是以網路適配器 NIC 的哈希為基礎。 不保證是唯一的。
- TimeStamp / 2022/01/07T22:04:45.0000000Z / Time 事件發生。
- 已安裝 MAT_Version / 4.1.02 / MAT 版本。
- Languages / fr,es,de/DE / List of languages added to project.
所有數據都會使用Application Insights收集,並傳送至 Azure Log Analytics。 數據會保留90天,然後刪除。