Mig*_*Mig 8 c# asp.net localization
我正在寻找最佳解决方案,以便在不部署/构建现有代码库的情况下轻松地将新语言添加到asp.net网站.
根据我的研究,似乎你可以动态编译资源文件到Satellite程序集,但我不确定如何使应用程序使用这些DLL一旦生成?
我看到的另一个选项是将翻译存储在数据库中,并编写自定义的ResourceProvider,以便可以使用内置的本地化方法,同时抽象实际的实现(在本例中是数据库).
无论哪种方式,此站点的前端都是相同的(meta:控件的resourcekey等).
但我正在努力决定哪种方法最容易保养.例如,发布一个新的Satellite程序集是否会重新启动应用程序池,或者是否可以很好地检查所有内容?
编辑
翻译将由第三方API提供,因此人员维护质量并不重要.由于收到的答案,我想我会加上这个.
使用 Asp.Net(当前),您不必自己编译,只需部署 resx 文件(到 App_LocalResources 或 App_GlobalResources 文件夹),Asp.Net 就会负责将它们编译成 Satellite Assemblies。这很酷。
使用数据库方法,您将面临同步问题的风险:您如何知道给定的资源字符串是否已翻译?此外,纠正它们也不是很容易(对于译者/本地化工程师来说)。无论如何,您都需要准备“安装”脚本。如果这就是您要给予译者的,祝您好运。您将面临大量的过度翻译,并且必须纠正它们(手动?)。
Resx 文件(简单的 XML)更容易验证(就给定的 XSD 而言,它要么是有效的 XML,要么不是)。此外,它是标准技术,您不需要自己实现任何东西。这就是为什么,我会推荐它。
编辑
数据库驱动资源的另一个问题可能是字符编码。您需要创建自己的翻译工具包。我的经验是,结果可能是几种不同的编码。特别是,如果您想使用纯文本文件。另一方面,XML 文件的默认编码是 UTF-8...
归档时间: |
|
查看次数: |
1300 次 |
最近记录: |