如何检查“localize = english”,如果“localize =其他语言”...后面的代码 - (ASP.NET C#)

时间:2013-04-17 06:52:31

标签: c# asp.net localization

我有一个本地化的网站,我正在使用LINQ来调用某些程序 - 这些程序包含一些我需要在语言切换后翻译的文本。这是我的程序调用之一:

public static IQueryable VyhledejCPN()
        {
            LINQDataContext db = new LINQDataContext();
            IQueryable result = db.spSearchPartNumber(PartNumber).AsQueryable();
            return result;
        }

我需要这样的事情:

if (localize == english)
            {
                public static IQueryable VyhledejCPN()
                    {
                        LINQDataContext db = new LINQDataContext();
                        IQueryable resultEN = db.spSearchPartNumberEN(PartNumber).AsQueryable();
                        return resultEN;
                    }
            }

            else if (localize == czech)
            {
                public static IQueryable VyhledejCPN()
                    {
                        LINQDataContext db = new LINQDataContext();
                        IQueryable resultCZ = db.spSearchPartNumberCZ(PartNumber).AsQueryable();
                        return resultCZ;
                    }
            }

或者还有其他方法吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

如果您想了解客户的文化,可以使用HttpRequest.UserLanguages Property(浏览器的Accept-Language header作为语言优先级。)

  

获取客户端语言首选项的已排序字符串数组。

     

语言名称由浏览器提供,但没有   所有可能代码的确切列表。通常这些包括a   语言的双字符代码,连字符和双字符   文化的代码,例如美国英语的“en-us”和“fr-ca”   加拿大法语。

int count;
String[] userLang = Request.UserLanguages;    

for (count = 0; count < userLang.Length; count++) 
{
   Response.Write("User Language " + count +": " + userLang[count] + "<br>");
}

所以在你的情况下:

if (Request.UserLanguages.Contains("en-US"))
{
    // ...
}