asp.net多语言网站文化设置

时间:2010-01-18 06:02:19

标签: asp.net multilingual

在英语英国和瑞典语的asp.net多语言网站中,我有三个rsources文件

1. en-GB.resx
2. sv-SE.resx
3. Culture neutral file.

我创建了一个基类,所有页面都是从该类继承的。在那里我写下以下行来设置UICULTURE和文化

1. Thread.CurrentThread.CurrentUICulture = CultureInfo.CurrentUICulture.Name;
2. Thread.CurrentThread.CurrentCulture = CultureInfo.CurrentCulture.Name;

问题:假设我的浏览器语言是瑞典语(sv-SE),那么此代码将运行,因为它找到CurrentUICulture and CurrentCulture values as sv-SE.

现在假设浏览器语言仅为瑞典语(sv),那么值将设置为

CurrentUICulture = sv; and CurrentCulture = sv-SE

现在的问题是,用户可以查看我保留为英文的Culture neutral资源文件中的所有文本,而所有十进制的saperator,货币和其他文件将以瑞典语显示。 它看起来让我们感到困惑。

什么是正确的方法。我在想解决方案。请纠正我?

1. i can create extra resource file for sv also.
2. I check value of CurrentUICulture in base class and if it is sv then replace it with sv-SE

请纠正我哪一个是正确的方法还是有其他好办法吗?

1 个答案:

答案 0 :(得分:1)

您可以像上面提到的那样轻松替换基类中的值。我将远离创建一个复制数据的额外资源文件,因为它将更难维护。

 if (Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName.ToLower() != "sv")
      ...replace with sv-SE

编辑有关其他信息,请参阅此另一个问题] 1。在该问题的答案中引用了一篇很好的文章