是否有任何 .NET 标准可以处理本地化并允许用户自定义文本?

2024-06-24

我们正在构建一个 ASP.NET MVC 应用程序,但尚未使用大量数据注释进行本地化DisplayAttribute整个代码中都有硬编码字符串和硬编码消息字符串。

现在我们要求应用程序必须可本地化,但是我们仍然需要允许用户自定义字段显示和文本。

到目前为止,我正在考虑使用RESX带有自定义的文件IResourceProvider。里克·斯特拉尔 (Rick Strahl) 写了一篇关于那件事的好文章 http://www.west-wind.com/presentations/wwdbresourceprovider/#Creating_a_custom_Resource_Provider。在这种方法中,应用程序是按照标准开发的RESX文件,但在运行时,当应用程序需要字符串时,自定义提供程序将查询数据库以查找自定义项,并在找到时使用它们。

尽管这看起来是一个很好的解决方案,但它看起来并不自然。我想知道是否有更好的选择。

这有什么标准吗?


使用静态值作为默认值并检查数据库中的本地化值有什么不自然的地方?对我来说这是一个很好的方法,因为如果有人会弄乱数据库中的资源,例如以某种方式删除其中一个资源,那么您将始终显示默认文本。

您始终可以通过不同的方式来完成此操作,仅使用基于数据库的文本,而不必担心更改代码中的默认值和数据库中的翻译,因为当资源位于少数地方时,很容易错过某些内容。当我检查代码时诺普商务 http://www.nopcommerce.com大约两年前,我看到他们仅使用数据库中的资源进行本地化。我现在不知道它是如何完成的,但你可以下载源代码并检查它。

在我一年前开发的 WinForms 应用程序中,我使用不同语言的 XML 文件,因为我们的客户希望能够允许非技术人员创建新的语言文件。我创建了内置于应用程序中的本地化工具,但对于网站来说,最好使用数据库,因为您已经可以访问该数据库并且可以轻松操作数据。

您可以阅读有关此主题的更多信息这篇博文 http://eyefetch.wordpress.com/tag/custom-resource-provider/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有任何 .NET 标准可以处理本地化并允许用户自定义文本? 的相关文章

随机推荐