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

C# 在.net站点中使用资源文件的最佳替代方案,c#,localization,internationalization,resx,C#,Localization,Internationalization,Resx,在过去,我使用asp.net的内置资源文件来处理本地化。它工作得很好,我们发现它在我们的业务中易于使用和维护 但是有一个很大的缺点——我们客户的支持团队不能自己更新资源文件。我们有一个大项目即将启动,允许外部支持团队管理本地化是一个主要要求。到目前为止,我们已经有客户与我们联系,我们得到翻译后的文章,然后将更新的resx文件滚动到实时服务器 我知道更新resx文件会导致应用程序重新编译,我不喜欢让非技术人员下载并处理resx文件的想法(更不用说在实时环境中解压站点),所以我想知道除了使用数据库之

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

但是有一个很大的缺点——我们客户的支持团队不能自己更新资源文件。我们有一个大项目即将启动,允许外部支持团队管理本地化是一个主要要求。到目前为止,我们已经有客户与我们联系,我们得到翻译后的文章,然后将更新的resx文件滚动到实时服务器

我知道更新resx文件会导致应用程序重新编译,我不喜欢让非技术人员下载并处理resx文件的想法(更不用说在实时环境中解压站点),所以我想知道除了使用数据库之外,我们是否还有其他选择

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


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

当然-使用配置文件。这基本上是一个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实现自定义资源提供程序的示例。您可以在代码中保留旧的基于资源的方法,并让提供者从您喜欢的任何地方获取数据。

无论您做什么,您都可能需要编写


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

与其自己编写资源提供者,不如找个在线翻译来帮你?翻译人员无需下载任何resx,文件将自动上载到您的live(或dev)asp.net应用程序。

使用Microsoft MAT或为MAT编写自己的提供程序。更多信息请访问他们的网站:;-)

谢谢你的反馈。您是使用自定义资源提供程序将此xml映射到aspx页面中的aspx控件,还是仅在代码隐藏中手动处理所有这些控件?谢谢链接。看起来很有趣。稍后将下载并仔细查看:)