额外的复杂性:租户应该能够编辑本地化的内容.因此,如果托管应用程序有10个租户,每个租户支持5种语言,我们最终可能会有50个单位的翻译内容.
鉴于上述情况,请建议理想的方法.
下面列出的是过去使用的方法(对于我的其他应用程序)以及它们现在不相关的原因:
选项1:ASP.Net资源文件
问题:每个可本地化资源(.aspx页面)只创建一个语言文件.因此,每个租户翻译都不可能有一个Home.aspx.resx文件.虽然resx键可以修改为包含TenantId(lblFirstName_44)并存储在同一个resx文件中,但是这样很难维护,我们最终可能会遇到大文件.
选项2:在专用数据库表中存储多语言内容(标签,消息,MenuItems)
问题:这在过去运行良好(在最终用户需要动态更新可本地化内容的情况下).早期的解决方案在很大程度上依赖于缓存数据,在多租户解决方案的情况下,每个租户需要对每页进行大量缓存.也可以按内容类型(标签,消息,MenuItems)完成缓存
另一种方法是实现自定义资源提供程序(通过构建.Net的现有提供程序)
选项3:第三方开源解决方案,如FairlyLocal
问题:虽然实现起来非常简单,但是存在与.resx文件相同的缺点 - 不是为了允许最终用户修改内容和维护同一文件的多个版本(租户)而设计的.
注意:如果没有找到其他解决方案,我们可能会选择选项2
我们的版本的Silverlight 5的Microsoft Expression Blend的预览已经6月30日到期,有否可在网上购买许可选项.
以下链接指出Blend现在是Visual Studio 2012的一个组成部分,但是由于我们当前受限制的开发和发布周期,我们无法将整个企业级应用程序升级到VS 2012.所以,我的问题是:
可以在线购买Blend(SL 5预览版)许可吗?如果是的话,在哪里?
如果没有,那么如何在不升级到VS 2012的情况下继续我们基于Blend的开发?