在 .net 站点中使用资源文件的最佳替代方法

本文关键字:最佳 方法 源文件 资源 站点 net | 更新日期: 2023-09-27 17:56:58

过去,我使用asp.net的内置资源文件来处理本地化。它运行良好,我们发现它在我们的业务中易于使用和维护。

但有一个很大的缺点 - 我们客户的支持团队无法自行更新资源文件。我们即将开始一个大项目,允许外部支持团队管理本地化的选项是主要要求。到目前为止,我们一直有客户与我们联系,我们翻译了这篇文章,然后将更新的 resx 文件滚动到实时服务器。

我知道更新 resx 文件会导致应用程序重新编译,我不喜欢允许非技术人员下载和弄乱 resx 文件的想法(更不用说在实时环境中取消编译站点了),所以我想知道除了沿着数据库路线走下去之外,我们还有其他选择吗?

如果我们必须将这种类型的本地化功能构建到几个数据库表中,有没有人有任何好的模板来开始?

不确定它是否有帮助,但我们在这里谈论的网站将被本地化为大约 15 种不同的语言,包括中文和阿拉伯语。翻译将应用于aspx页面和XML,将我们的系统留给第三方。

在 .net 站点中使用资源文件的最佳替代方法

无论你做什么,你都可能需要编写自定义的资源提供程序。

您可能会考虑使用 XML 作为可本地化资源的源 - 在这种情况下,您可以使用未编译的 resx 文件,但我想这就是您抱怨的。否则,您可以使用捆绑文件,类似于 Java 属性,我的意思是带有键=值对的纯文本文件。这应该很容易编辑。

当然 - 使用配置文件。这基本上是一个XML文件。

<messages locale="DE">
    <message id="FileNotFound" Value="Die Datei wird nicht gefunden" />
    <message id="FatalErr" Value="Es ist ein schwerwiegender Fehler gewesen. Das Programm muss beendet." />
    ...
</messages>

每种语言可以有一个文件,也可以将它们合并到一个文件中。

不信由你,你不是第一个有这个想法的人! :)下面是我几年前找到的一篇关于如何为 .NET 实现自定义资源提供程序的文章。您可以在代码中保留旧的基于资源的方法,并让提供程序从您喜欢的任何位置获取数据。

与其编写自己的资源提供程序,不如像 ResX 在线翻译器这样的在线翻译器会有所帮助?翻译人员无需下载任何 resx,文件会自动上传到您的实时(或开发)asp.net 应用程序。

使用 MAT 或编写自己的 MAT 提供程序Microsoft。更多信息在他们的网站上: https://developer.microsoft.com/en-us/windows/develop/multilingual-app-toolkit ;-)