本地化 ClickOnce 应用程序

本地化是使您的应用程序适合某个特定区域性的过程。 该过程包括将用户界面 (UI) 文本翻译为特定区域的语言、使用正确的日期和货币格式设置、调整窗体上控件的大小,以及将控件从右边镜像到左边(如果需要的话)。

本地化应用程序将导致创建一个或多个附属程序集。 每个程序集均包含 UI 字符串、图像及特定于给定区域性的其他资源。 (应用程序的主可执行文件包含应用程序默认区域性的字符串。)

本主题描述了三种部署其他区域性的 ClickOnce 应用程序的方法:

  • 在一个部署中包含所有附属程序集。

  • 为每个区域性生成一个部署,每个部署中包含一个附属程序集。

  • 按需下载附属程序集。

在一个部署中包含所有附属程序集

可以发布一个包含所有附属程序集的 ClickOnce 部署来代替发布多个 ClickOnce 部署。

此方法是 Visual Studio 中的默认方法。 若要在 Visual Studio 中使用此方法,您不必再进行任何其他工作。

若要将此方法与 MageUI.exe 结合使用,必须在 MageUI.exe 中将应用程序的区域性设置为**“非特定语言”。 接着,必须手动将所有附属程序集包括在您的部署中。 在 MageUI.exe 中,可以使用应用程序清单的“文件”选项卡上的“填充”**按钮来添加附属程序集。

这种方法的好处在于其只创建一个部署且简化了本地化部署工作。 在运行时,会根据用户的 Windows 操作系统的默认区域性来使用适当的附属程序集。 这种方法的缺点是,无论何时在客户端计算机上安装或更新应用程序都会下载所有的附属程序集。 如果您的应用程序含有大量字符串或您客户的网络连接速度较慢,则此过程会在应用程序更新时影响性能。

为每个区域性生成一个部署

在这种部署策略中,您将生成多个部署。 每个部署只包含某特定区域性需要的附属程序集,并将该部署标记为特定于该区域性。

若要在 Visual Studio 中使用此方法,请将**“发布”选项卡上的“发布语言”**属性设置为所需区域。 Visual Studio 将自动包含选定的区域所需的附属程序集,并将所有其他附属程序集排除在部署之外。

可使用 Microsoft Windows 软件开发包 (SDK) 中的 MageUI.exe 工具来完成相同的任务。 使用应用程序清单的**“文件”选项卡上的“填充”按钮,将所有其他附属程序集排除在应用程序目录之外,然后在 MageUI.exe 中设置部署清单的“名称”选项卡上的“区域性”**字段。 这些步骤不仅包含正确的附属程序集,而且将部署清单中 assemblyIdentity 元素的 language 特性设置为相应的区域性。

在发布应用程序之后,必须对应用程序支持的每个其他区域性重复该步骤。 由于每个应用程序清单将引用不同的附属程序集,而且每个部署清单将具有不同的 language 特性值,因此必须确保每次将其发布到不同的 Web 服务器目录或文件共享目录。

按需下载附属程序集

如果决定在一个部署中包含所有附属程序集,则可以使用按需下载(让您将程序集标记为可选)来提高性能。 在应用程序已安装或更新后,将不会下载标记的程序集。 可以在需要程序集时通过对 ApplicationDeployment 类调用 DownloadFileGroup 方法来安装程序集。

按需下载附属程序集与按需下载其他类型的程序集稍有不同。 有关如何使用 ClickOnce 的 Windows SDK 工具来实现此方案的更多信息和代码示例,请参见演练:使用 ClickOnce 部署 API 按需下载附属程序集

也可以在 Visual Studio 中实现此方案。 演练:在设计器中使用 ClickOnce 部署 API 按需下载附属程序集
演练:在设计器中使用 ClickOnce 部署 API 按需下载附属程序集
演练:在设计器中使用 ClickOnce 部署 API 按需下载附属程序集
演练:在设计器中使用 ClickOnce 部署 API 按需下载附属程序集

在部署前测试本地化 ClickOnce 应用程序

只有在将应用程序主线程的 CurrentUICulture 属性设置为附属程序集的区域性时,才能将附属程序集用于 Windows 窗体应用程序。 本地市场的客户可能正在运行区域性已设置为适当默认值的本地化版本的 Windows。

在将应用程序提供给客户之前,有三种测试本地化部署的选择:

  • 可以在适当的本地化版本的 Windows 上运行 ClickOnce 应用程序。

  • 可以通过编程方式在应用程序中设置 CurrentUICulture 属性。 (必须在调用 Run 方法之前设置此属性。)

  • 如果安装有 Windows 多语言用户界面包(MUI 包),可以切换操作系统上的区域性。 但是,MUI 只支持所有可能区域性的一个子集,因此,这一选择可能不适用于您的项目。

    有关 MUI 的更多信息,请参见 Microsoft Global Development and Computing Portal(Microsoft 全球开发与计算门户网站)。

    备注

    在 Windows Vista 上,您不用安装任何 MUI 包就可以切换区域性。

请参见

参考

<assemblyIdentity> 元素(ClickOnce 部署)

概念

ClickOnce 安全和部署

其他资源

全球化 Windows 窗体