我有一个本地化的网站,我正在使用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;
}
}
或者还有其他方法吗?
非常感谢。
答案 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"))
{
// ...
}