Windows 資源在地化編輯器(Winres.exe)是一款視覺化版面工具,協助在地化專家在地化表單中使用的 Windows 表單使用者介面(UI)資源。 你可以用像 Visual Studio 這樣的視覺設計環境,建立 .resx 或 .resources 檔案作為 Winres.exe 輸入Microsoft。 關於在 .NET Framework 應用程式中部署資源的資訊,請參見 .NET 應用程式中的資源。
Winres.exe 是用 Visual Studio 安裝的。 要執行此工具,請使用 Visual Studio 開發者命令提示字元或 Visual Studio 開發者 PowerShell。
警告
請勿使用此工具開啟不受信任的檔案。 如果檔案是二進位檔案,則會使用二進位反序列化來反序列化,這是不安全的。 欲了解更多資訊,請參閱 BinaryFormatter 及相關類型使用時的反序列化風險。
語法
winres resourceFile
winres /?
Arguments
| Argument | Description |
|---|---|
resourceFile |
資源檔案用來在地化。 此檔案必須是 Visual Studio 設計器產生的 Windows Forms 表單 .resx 或 .resources 檔案。 Winres.exe 無法開啟一般的 .resx 或 .resources 檔案。 |
| Option | Description |
|---|---|
| /? | 顯示工具的指令語法與選項。 |
備註
Windows Forms 專案中表單的 UI 元素狀態通常儲存在資源檔案中,這些檔案可能是基於 XML 的檔案,副檔名為 .resx,或是對應的編譯後二進位版本,副檔名為 .resources。 Winres.exe 是一個工具,能在 Visual Studio 設計環境外有限度編輯任一類型的檔案。 具體來說,它允許以下類型的編輯操作:
- 中立或特定文化資源檔案可以編輯,以更改表單或其控制項的 UI 屬性,例如文字、大小或位置。
- 中立或特定文化資源檔案可由預設資源檔案產生。
- 文化資源檔案可以儲存為另一個文化資源檔案。 例如,一個英文(美國)資源檔可以儲存為波蘭語資源檔。 通常新檔案會被編輯以符合新文化。
另見資源階層 組織以促進在地化 或資源階層 組織以促進在地化。
Winres.exe 無法將 .resx 檔案轉換成對應的 .resources 檔案;建議改用 Resgen.exe 工具。 欲了解更多關於 Resgen.exe的資訊,請參見 Resgen.exe(資源檔案產生器)。
Winres.exe 是一個圖形化應用程式,僅從資源檔案重現設計時版本的 Windows 表單,且無法取得原始碼。 Winres.exe 主機上有 Visual Studio 的 Windows 表單設計器 和 Properties 視窗。 這些功能允許對包含 Windows 表單的 .resources 或 .resx 檔案進行視覺化編輯。 通常,本地化工具會使用 Winres.exe 來編輯控制標籤,並調整控制點的位置與大小,以適應目標文化的標籤。
如果 Winres.exe 無法解析控制項的類型,則會在本地化的 .resx 或 .resources 檔案中建立一個佔位控制項。 佔位符控制項會以陰影視窗的形式出現在 Windows 表單中。 陰影窗的大小與位置與實際控制裝置相符。 所有可用於佔位控制的在地屬性都會出現在視窗中 Properties 。 你對佔位控制項所做的任何變更都會被保留給實際控制項。
Winres.exe 與 Visual Studio 的比較
一般來說,在開始本地化應用程式的 Windows 表單之前,你應該決定要使用 Visual Studio 還是 Winres.exe 作為本地化工具。 如後述,版本相容性可能會讓你無法在不同工具間切換。
Visual Studio 的優點是你可以用它來開發和在地化應用程式。 要在開發完成後,將表單 LocalizableAttributeLocalizableProperties 的屬性設定為 , true 並將其屬性改 Language 為想要的目標文化。 接著,編輯字串並調整控制項的位置與大小,以配合目標文化的字串。 當你儲存本地化的 .resx 檔案時,Visual Studio 只會寫入可本地化的屬性(目標文化中變更的屬性)。 Visual Studio 會自動在正確的目錄位置為本地化的 .resx 檔案建立衛星組件。
雖然 Visual Studio 提供整合的開發與在地化環境,但如果由第三方本地化工具完成,Winres.exe 仍是推薦使用的工具。 由於 Winres.exe 僅是本地化工具,它能更乾淨地將應用程式程式碼與待在地表單區分,對管理大型專案更為實用。
使用 Winres.exe
要使用 Winres.exe來在地化,你必須先使用像 Visual Studio 中的 Windows Forms Designer 這樣的視覺設計器開發應用程式。 開發完成後,將表單LocalizableAttribute(編輯器中的Properties屬性)設為 true,然後將預設文化的 .resx 檔案交給第三方Localizable本地化工具。 此 .resx 檔案包含額外資訊,Winres.exe 用來重現原始表單的設計時版本。
備註
Winres.exe 無法用來編輯預設的資源檔案。 Winres.exe 將所有變更的屬性解讀為本地化屬性,並儲存到目標文化資源檔案中。
文化資源檔案的最終版本終於可以用來建立應用程式的在地化版本。 欲了解更多資訊,請參閱 .NET 應用程式中的資源。
Winres.exe 具備以下功能與能力:
Winres 可運作於單一檔案模式(SFM)或 Visual Studio 檔案模式(VSFM)。 SFM 是舊有模式,將表單及其內容的完整資訊儲存在資源檔案中。 VSFM 只儲存在資源檔案中的文化變化。
一個錯誤報告視窗,停靠在主視窗左下角。
可以檢查快捷鍵是否有重複:從
Format選單中點選「 檢查快捷鍵 」指令。
版本相容性
你應該使用你正在使用的 .NET Framework 所發布的 Winres.exe 版本。 下表列出相容版本:
| Visual Studio | .NET Framework | Winres.exe |
|---|---|---|
| Visual Studio .NET 2002 | 1.0 | 1.0 |
| Visual Studio .NET 2003 | 1.1 | 1.1 |
| Visual Studio 2005 | 2.0 | 2.0 |
| Visual Studio 2008 | 3.0 與 3.5 | 3.0 與 3.5 |
| Visual Studio 2010 | 4.0 | 4.0 |
| Visual Studio 2017 | 4.6 | 4.6 |
備註
雖然 VSFM 的優點是與 Visual Studio 相容,因為它只在資源檔案中儲存變更的值,但 Winres.exe 要求目前資源檔案的父檔案必須位於同一目錄中。 例如,編輯 TestApp.de-DE.resources在德國的德國資源檔,需要預設的資源檔 TestApp.resx,以及可能的文化中立資源檔 TestApp.de.resources。
範例
本地化與表單相關的 .resx 或 .resources 檔案
要執行 Winres.exe,請輸入
winres開發者指令提示字元。要開啟表單預設資源以在地化,請選擇「 檔案 > 開啟 」並導向該檔案開啟。
-或-
啟動時請指定要在命令列開啟的檔案 Winres.exe。 以下指令啟動並載入表
TestApp.resx單設計器中的表單 Winres.exe。winres TestApp.resx以下指令啟動並載入表
TestApp.resources單設計器中的表單 Winres.exe。winres TestApp.resources備註
如果你編輯的資源表單是繼承表單,則包含繼承表單的組合語言與包含繼承(衍生)表單的組合語言都必須在全域組合快取(GAC)中註冊,或與 WinRes.exe同存於同一目錄中。 欲了解更多關於將 .NET Framework 元件安裝至 GAC 的資訊,請參閱 全域組合快取(Global Assembly Cache)。
在表單上選擇控制項,並更改它們 Text 及其他屬性以反映當地文化及其語言。 可根據需要移動或調整控制鍵以配合本地化文字。
若要儲存 .resx 或 .resources 檔案的本地化版本,請點擊圖
Save示或選擇 檔案 > 儲存。 工具會顯示 「選擇文化 」視窗。選擇適當的文化和檔案模式,然後點擊 確定。
該工具會依照執行時對本地化資源檔案所期望的命名規則來儲存檔案。 例如,如果你在德國本地化
TestApp.resources德語,工具會將檔案儲存為TestApp.de-DE.resources。 如果你在德國本地化TestApp.resx德語,工具會將檔案儲存為TestApp.de-DE.resx。 欲了解更多資源命名慣例,請參閱 Package and Deploy 資源。 關於執行時所使用的預設文化名稱清單,請參見類別。CultureInfo