將 ClickOnce 應用程式當地語系化
當地語系化是讓應用程式適合特定文化特性的程序, 這個程序包括將使用者介面 (UI) 文字翻譯成特定地區的語言、使用正確的日期和貨幣格式、調整表單上控制項的大小,以及視需要將控制項左右反轉。
將應用程式當地語系化時,會為應用程式建立一個或多個附屬組件, 每個組件都包含指定之文化特性特有的 UI 字串、影像和其他資源 (應用程式的主要可執行檔包含應用程式預設的文化特性字串)。
本主題描述三種針對其他文化特性部署 ClickOnce 應用程式的方法:
在單一部署內包含所有附屬組件。
為每種文化特性產生一個部署,每個部署內都包含單一附屬組件。
視需要下載附屬組件。
在部署中包含所有附屬組件
您可以發佈單一 ClickOnce 部署,其中包含所有的附屬組件,而不是發佈多個 ClickOnce 部署。
此方法是 Visual Studio 中的預設值。 若要在 Visual Studio 中使用此方法,您不必執行任何額外的工作。
若要搭配 MageUI.exe 使用這個方法,您必須在 MageUI.exe 中將應用程式的文化特性設為中性。 接著,您必須手動加入部署中所有附屬組件。 在 MageUI.exe 中,您可以使用應用程式資訊清單中 [檔案] 索引標籤上的 [填入] 按鈕新增附屬組件。
這種方法的優點是會建立單一部署,並簡化了當地語系化部署的過程。 在執行階段,將會根據使用者 Windows 作業系統之預設文化特性而使用適當的附屬組件。 這種方法的缺點是不管應用程式要在用戶端電腦上安裝或更新,都會下載所有的附屬組件。 如果您的應用程式包含大量的字串,或是您的客戶使用慢速的網路連接,這種處理序可能會在應用程式更新期間影響效能。
注意
這個方法假設您的應用程式會自動調整控制項的高度、寬度和位置,使其符合不同文化特性中的不同文字字串大小。 Windows Form 包含各種控制項和技術,讓您可用來設計方便進行當地語系化的表單,包括 FlowLayoutPanel 和 TableLayoutPanel 控制項以及 AutoSize 屬性。 另請參閱如何:使用 AutoSize 和 TableLayoutPanel 控制項支援 Windows Forms 上的當地語系化。
為每種文化特性產生一個部署
在這種部署策略中,您會產生多個部署。 在每個部署內,您只會加入特定文化特性所需的附屬組件,並且將部署標記為具有於該種文化特性。
若要在 Visual Studio 中使用這種方法,請將 [發佈] 索引標籤上的 [發佈語言] 屬性設定為所需的地區。 Visual Studio 將會自動包含選定地區所需的附屬組件,並且從部署中排除所有其他的附屬組件。
注意
在 ClickOnce for .NET Core 3.1 和 .NET 5 或更新版本中,您可以使用 [發佈] 工具來設定部署屬性,而不是 [發行精靈] 和 [專案設計工具的發佈] 頁面。 如需詳細資訊,請參閱使用 ClickOnce 部署 .NET Windows 應用程式以及 ClickOnce for .NET。
您可以使用 Microsoft Windows 軟體開發套件 (SDK) 中的 MageUI.exe 工具來完成相同的事項。 請使用應用程式資訊清單之 [檔案] 索引標籤上的 [填入] 按鈕,從應用程式目錄中排除所有其他附屬組件,然後再使用 MageUI.exe 為您的部署資訊清單設定 [名稱] 索引標籤上的 [文化特性] 欄位。 這些步驟不只會包含正確的附屬組件,也會將部署資訊清單內 assemblyIdentity
項目上的 language
屬性設定為對應的文化特性。
在發行應用程式後,您必須針對應用程式支援的每一個其他文化特性重複這個步驟。 發佈至不同的 Web 伺服器目錄或檔案共用目錄時都必須確認,因為每個應用程式資訊清單都會參考不同的附屬組件,而每個部署資訊清單將會使用不同的 language
屬性值。
視需要下載附屬組件
如果您決定要在單一部署中包含所有的附屬組件,則可以使用視需要下載的方式改善效能,這種方式可讓您將組件標記為選擇項, 標記的組件在應用程式安裝或更新期間將不會下載。 您可以在需要時呼叫 ApplicationDeployment 類別上的 DownloadFileGroup 方法來安裝這些組件。
注意
.NET Core 和 .NET 5 和更新版本中不支援 System.Deployment.Application 命名空間中的 ApplicationDeployment 類別和 API。 .NET 7 支援存取應用程式部署屬性的新方法。 如需詳細資訊,請參閱在 .NET 中存取 ClickOnce 部署屬性。 .NET 7 不支援 ApplicationDeployment 方法的同等項。
視需要下載附屬組件與視需要下載其他類型的組件有些許的不同。 如需如何針對 ClickOnce 使用 Windows SDK 工具來啟用此案例的詳細資訊和程式碼範例,請參閱逐步解說:依 ClickOnce 部署 API 的要求下載附屬組件。
您也可以在 Visual Studio 中啟用此案例。 如需詳細資訊,請參閱逐步解說:使用設計工具依 ClickOnce 部署 API 的要求下載附屬組件。
在部署之前測試當地語系化的 ClickOnce 應用程式
只有當 Windows Forms 應用程式之主執行緒的 CurrentUICulture 屬性設定為附屬組件的文化特性時,才會將附屬組件用於此應用程式。 當地市場的客戶可能已經在執行文化特性設定為適當預設值的當地語系化 Windows 版本。
在將應用程式提供給客戶使用之前,您有三種選擇可測試當地語系化的部署:
您可以在適合的當地語系化 Windows 版本上執行 ClickOnce 應用程式。
您可以透過程式設計方式在應用程式內設定 CurrentUICulture 屬性 (這個屬性必須在呼叫 Run 方法之前設定)。