在英语英国和瑞典语的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
请纠正我哪一个是正确的方法还是有其他好办法吗?
答案 0 :(得分:1)
您可以像上面提到的那样轻松替换基类中的值。我将远离创建一个复制数据的额外资源文件,因为它将更难维护。
if (Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName.ToLower() != "sv")
...replace with sv-SE
编辑有关其他信息,请参阅此另一个问题] 1。在该问题的答案中引用了一篇很好的文章