资源字符串位置

时间:2009-12-14 14:42:44

标签: .net resources

放置资源字符串的最佳位置在哪里?它取决于范围吗?目前,我们的大多数字符串都放在项目级别,但只有一个表单需要某些字符串。我的想法是这些字符串应尽可能靠近它们使用。

2 个答案:

答案 0 :(得分:4)

您应该非常支持在表单级别使用资源(在设计器中将表单的Localizable属性设置为True)。设计人员对它有很好的支持,WinRes.exe实用程序可用于离线本地化字符串。无需代码。

可以本地化项目资源字符串,但IDE不能很好地支持。在this thread中查看我的答案,了解方法。

答案 1 :(得分:3)

除了在表单上直接使用语言敏感的字符串之外,这是我做的(不一定是最好的方法,但它迄今为止运行良好)添加程序化字符串:

除了在项目中添加一个荒谬数量的文件夹以按表单分组之外,除了将.resx文件保存在自己的Resources文件夹中之外,我还没有找到一个干净的解决方案。通常我会有类似的东西:

资源\语言
资源\ XML
资源\图像

我发现每个表单使用一个.resx文件是最好的方法,因为你永远不知道什么时候需要添加另一个字符串。我还为诸如“保存”,“加载”等字符串创建了一个Common.resx,它们适用于整个应用程序,并将在多个位置使用。使用单一.resx-per-form模型,您必须严格仅使用该形式的字符串,这可能意味着在应用程序增长时重复使用几个字符串。但是这比使用表单和.resx文件之间的引用蜘蛛网要容易得多。

对于自定义控件,我将.resx文件与源文件放在一起,因为它们通常有自己的文件夹,并且无论如何都不会在该自定义控件之外使用字符串。 (注意:这也意味着自定义控件不应在其自己的.resx文件之外使用字符串。)如果需要,这还允许您轻松地将整个自定义控件提取到单独的程序集中。

对于用户控件,通常它们是特定于应用程序的,因此将公共语言的东西与它绑在一起并不是那么糟糕,但我肯定会对用户控件特有的字符串使用单独的.resx,并遵循相同的文件夹结构与自定义控件一样。