我们正在开发将以下列方式使用的产品:
我已经知道像RCWinTrans这样的产品,并且在VC ++ / MFC应用程序中处理多种语言。但是,我们在这里面临的要求更为广泛,因此需要我们做出一些可能难以长期改变的前期决策,因此理想情况下我们希望现在做出最佳选择。
根据我自己的知识,我有几个问题,虽然我可能会遗漏一些带有.net的技巧,会很高兴收到。以下是我的问题:
先谢谢,
罗杰
答案 0 :(得分:2)
您是否考虑使用Inversion of Control container或StructureMap等Unity?这可能允许您将默认资源与项目(IMHO最有意义)保持在一起,同时仍然允许客户在必要时在本地覆盖资源。
例如,假设您有以下界面:
public interface IResourceSupplier
{
// Returns the localized text for a given identifier.
string Localized(string identifier);
// Returns the invariant (English) text for a given identifier.
string Invariant(string identifier);
}
使用IOC,您可以为解决方案创建集中式资源供应商,以检查用户提供的覆盖。如果未提供用户覆盖,则可以查询每个项目特定的资源提供者(在应用程序启动时检测到),直到找到返回所需资源的资源。
显然,根据您的需要,您可能需要调整性能,例如通过缓存常用资源。使用IOC确实提供了这样的优势:只要接口没有改变,插入替代实现可能是一项相对简单的任务。
这有帮助吗?