我即将开始在.NET 2.0(C#)中编写一个工具,该工具需要重新品牌化才能出售供其他公司使用。我们将使用其他公司的资源在内部编译该工具,因此他们不会获得源,只是生成的输出。
由于重新标记将使用相同的默认语言,因此如何管理同一语言集的多个资源,而无需像在构建时使用脚本交换resx文件那样低俗,或者甚至更加容易出错(并且更容易出错) )比如对客户A使用en-US,对客户B使用en-CA,对客户C使用en-GB等。
答案 0 :(得分:3)
我们在项目中发现,最简单的路线是在自己的DLL中建立品牌,然后通过反射动态加载。如果需要,有两种明显的方法来本地化任何品牌:
在我看来,选项1更容易,但两者都是可行的。当然,还有其他的本地化方法。
答案 1 :(得分:1)
答案 2 :(得分:1)
我决定选择的路线是拥有一个TextOverrides类。该类公开了许多属性,例如:
public static string ProductName
{
get
{
#if <companyNameA>
return Properties.Resources.ProductName_CompanyNameA;
#elif <companyNameB>
return Properties.Resources.ProductName_CompanyNameB;
#else
return Properties.Resources.ProductName;
#endif
}
}
仅当覆盖文本项的数量仍然很小时才可行。