【问题标题】:Customer specific resource files in asp.netasp.net 中的客户特定资源文件
【发布时间】:2013-10-09 13:10:32
【问题描述】:

我正在寻找一种方法来扩展我的应用程序以使用特定于客户端的资源文件。目前我有不同文化的资源文件,这些文件运行良好。但是现在我想为每个客户端拥有不同的资源文件,如果我没有客户端特定的文件,那么它应该加载默认文件。

这就是我目前正在做的事情:

App_GlobalResources GR.resx GR.ru-RU.resx

我读到这样的资源

text=''

GetGlobalResourceObject("GR","home")

这就是我想要的: App_GlobalResources GR.resx GR.ru-RU.resx

客户1 GR.resx GR.ru-RU.resx

客户端2 GR.resx GR.ru-RU.resx

我不想像阅读资源那样更改页面上的代码,可以吗?

【问题讨论】:

  • 客户是什么意思?
  • 对不起,我的意思是客户......一位客户可能会说“开始”到“家”,这就是为什么我希望为每个客户提供不同的资源文件
  • 理论上我理解你的问题,但无法想象从用户(客户)的角度来看它是如何工作的。用户可以选择定义自己的字典(每个单词)还是什么?如您所知,资源与语言和文化有关,但它始终只是一种选择。在您的解决方案中,每个用户都需要自己的字典,但我们应该从哪里获取字典的值?因为键很明显
  • 我正在开发一个金融应用程序,每个客户似乎都以不同的方式引用这些术语。就像某些客户的“利润”可能是“可用利润”、“总利润”或“我的利润”,所以在这个例子中,我在资源文件中的键是“利润”,每个客户自己的值会有所不同资源文件。由于我的代码库对所有客户都是相同的,因此我无法在应用程序中唯一的资源文件中更改它们。
  • 客户是否需要这种多语言的字符串?还是语言总是固定为每个用户一种?然后我会进行一些自定义而不是资源。

标签: c# asp.net globalization


【解决方案1】:

Ok Safeer,在 cmets 讨论后,我真正理解您的问题。我会使用以下解决方案。根据您的利润示例:

  1. 为利润准备几个不同的条目(取决于客户类型或其他):

    • key1:“Type1Profit”值:“可用利润”
    • key2:“Type2Profit”值:“总利润”

TypeN 是您的客户类型。

在视图中执行以下操作:

text='<%$ Resources:GR, string.Format("{0}Profit", customer.Type) %>'

或者

GetGlobalResourceObject("GR",string.Format("{0}Profit", customer.Type)) 

多亏了这个解决方案,您应该获得您想要的密钥,当然还有对客户的特定价值。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2010-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多