0

我有一个本地化的网站,我正在使用 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;
                    }
            }

还是有其他方法?

非常感谢你。

4

1 回答 1

1

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

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

语言名称由浏览器提供,并且没有所有可能代码的明确列表。通常,这些代码由语言的两个字符代码、一个连字符和一个文化的两个字符代码组成,例如美国英语的“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"))
{
    // ...
}
于 2013-04-17T07:01:44.743 回答