в моем проекте у меня есть два поддерживаемых языка (немецкий - "de" и английский - "en")
У меня есть файлы ресурсов, такие как: Home.aspx.de.resx, Home.aspx.en.resx, Home.aspx.resx
Можно ли динамически читать, какие языки поддерживаются в текущем веб-проекте?
Я не хочу проверять это вручную, если они просто "de" и "en", как я делаю в следующем коде:
if (langName != "en" || langName != "de")
{
ci = new CultureInfo("en");
this.Session["Culture"] = ci;
}
Я хотел бы получить доступ к языкам веб-проектов, таким как: CultureInfo.(Who knows)..
.
Если я добавлю новый язык, например Мне нужно снова добавить его в мою логику.
мой Application_AcquireRequestState
метод выглядит так:
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
if (HttpContext.Current.Session != null)
{
//Create culture info object
CultureInfo ci = (CultureInfo)this.Session["Culture"];
//Checking first if there is no value in session
//and set default language
//this can happen for first user's request
if (ci == null)
{
//Sets default culture to english invariant
string langName = "en";
//Try to get values from Accept lang HTTP header
if (HttpContext.Current.Request.UserLanguages != null && HttpContext.Current.Request.UserLanguages.Length != 0)
{
//Gets accepted list
langName = HttpContext.Current.Request.UserLanguages[0].Substring(0, 2);
}
if (langName != "en" || langName != "de")
{
ci = new CultureInfo("en");
this.Session["Culture"] = ci;
}
else
{
ci = new CultureInfo(langName);
this.Session["Culture"] = ci;
}
}
//Finally setting culture for each request
Thread.CurrentThread.CurrentUICulture = ci;
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name);
}
}