C# 国际化:为每个客户定制本地化的resx文件?

C# 国际化:为每个客户定制本地化的resx文件?,c#,.net,internationalization,customization,resx,C#,.net,Internationalization,Customization,Resx,问题: 这是这些帖子的后续问题: 如果我将使用resx文件进行国际化(本地化),在这种情况下: 一个应用程序(一个源、一个项目、一个可执行文件)用于所有 顾客 许多顾客 每个客户使用多种语言 每个客户可以按语言定制标签 应用程序不时被新版本替换 是否可以使用resx文件来维护字段标签的自定义? 我的意思是,对于一个客户和一种语言,这肯定是可能的 但是对于使用N种语言的N个客户 难道我不需要为N个客户创建N个resx文件,并且我在一个文件中添加的每个字符串都必须添加到每个resx文件中吗?

问题:

这是这些帖子的后续问题:




如果我将使用resx文件进行国际化(本地化),在这种情况下:

  • 一个应用程序(一个源、一个项目、一个可执行文件)用于所有 顾客
  • 许多顾客
  • 每个客户使用多种语言
  • 每个客户可以按语言定制标签
  • 应用程序不时被新版本替换
是否可以使用resx文件来维护字段标签的自定义? 我的意思是,对于一个客户和一种语言,这肯定是可能的

但是对于使用N种语言的N个客户

难道我不需要为N个客户创建N个resx文件,并且我在一个文件中添加的每个字符串都必须添加到每个resx文件中吗? 此外,我还必须收回resx文件(因为客户进行了定制)

resx文件真的适用于此吗?
在我看来,这似乎不是(根本不是),但在这两篇文章中,人们似乎认为这是最好的解决方案
我对此表示怀疑。
在我看来,resx文件似乎无法提供所需的灵活性和可维护性,而且在我看来,在数据库驱动的i18n下,这将相对容易实现。


任何使用resx文件的人都有这种场景的实际经验吗,或者使用和维护他们自己的产品?

在这种情况下,我会使用
XML
文件,用户可以轻松地直接自定义或从应用程序中的表单进行自定义。

但是当我更新应用程序并必须更新这些XML文件时会发生什么情况(我不能简单地覆盖它们,因为它们将包含更改的数据)。如果我覆盖它们,就会丢失自定义数据。如果我不覆盖它们,它将不会包含新的添加内容。听起来更像是有两个XML文件,首先搜索自定义文件,如果没有找到,则搜索默认文件。为了使文件保持完整,它们需要存储在应用程序根目录之外,这在web应用程序中是不可能的(除非您想编辑目录上的IIS用户权限)。是的,我想这是一个有效的说法。我会进一步考虑的。