【发布时间】:2010-10-11 13:50:09
【问题描述】:
另一个简单的问题。 我有不同语言的网站。如果我想从资源文件中访问一个字符串,我会像这样使用它
Resources.MyResourceFile.MyStringIdentifier
很容易。这样我在编译时就知道资源字符串存在。
现在,这仅在我想使用当前文化时才有效。有时我需要指定一种特定的文化(假设当前用户使用德语作为一种语言,但他的操作会触发消息以收件人的语言发送给其他用户)。现在,我看到了两个选项:
Resources.MyResourceFile.ResourceManager.GetString("MyStringIdentifier", neededCulturInfo)
另一个是更改当前线程的文化信息,我需要多次这样做。
还有第三种方法吗?在编译时告诉我资源存在但不需要一直更改线程文化的东西?
【问题讨论】:
-
您应该使用 CurrentUICulture 访问可翻译的字符串,而不是 CurrentCulture。 CurrentCulture 负责格式化。
-
是的,谢谢,我自然用的是CurrentUICulture
-
如果您在编译时不知道要显示哪种语言,编译器应该如何为您解决?
-
我很想知道如何优雅地解决这个问题,因为我遇到了同样的问题,并且不特别喜欢您描述的第一种或第二种方式,尽管它们似乎是唯一可用的选项。
标签: asp.net resources internationalization cultureinfo currentuiculture