你可以在不强制重建的情况下添加语言吗?

问题描述 投票:1回答:1

我的应用程序设计为能够运行两种不同的语言,英语和捷克语。为了实现这一点,我创建了2个资源文件:

enter image description here

如果最终用户想要添加另一种语言,例如GlobalStrings.fr-FR.resx,是否可以在不重建应用程序的情况下允许此功能?

如果我们查看这些资源文件的属性:

enter image description here

我不了解嵌入式资源的含义。这是否意味着为了让应用程序使用此文件,必须重建应用程序?

我们如何创建一个资源文件,该文件可供最终用户扩展/更改,而无需重建整个应用程序?

c# vb.net winforms visual-studio-2017
1个回答
2
投票

常规.Net资源被编译为具有特定名称的程序集,并通过匹配该名称来加载。因此,如果“最终用户”可以在resx文件中翻译字符串并将资源编译为具有特定名称的程序集(例如“MyResources.cs-cz.dll”),则可以使用默认的.Net行为执行此操作,而无需重新编译主代码。有关更多信息,请参阅MSDN:Packing and Deploying resources及相关链接。

请注意,您不需要Visual Studio,并且可以在用户的​​计算机上使用csc命令行编译器到embed resources - 所以如果您真的希望您可以提供在本地编译相应resx的简单脚本。请注意,由于某些字符需要编码,普通人通常无法将XML(resx)编辑为文本 - 在走这条路线之前,请考虑“最终用户”的技术级别。 Plain text版本的资源可能在更多情况下工作。

通常情况并非如此 - 如果要求最终用户本地化,则可以通过从纯文本文件或用户可以在本地更新的数据库中加载字符串来创建某种自定义资源字符串管理。

© www.soinside.com 2019 - 2024. All rights reserved.