В моем текущем приложении я хочу реализовать локализацию ASP.Net с глобальными ресурсами.У меня проблема в том, что после изменения CurrentThread.CurrentUICulture и CurrentThread.CurrentCulture и перехода на другую страницу эти значения перезаписываются значениями браузера по умолчанию.
У меня есть DropDownList, который позволяет выбирать между разными языками.В событии ItemChanged я сохраняю имя культуры в сеансе, перенаправляю на страницу по умолчанию и использую этот код
protected override void InitializeCulture()
{
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-DE");
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
base.InitializeCulture();
}
После переключения на другую страницу содержимого, которая не переопределяет InitializeCulture, я вернулся к языку браузера по умолчанию.Как я могу сделать это постоянным?
Какие варианты у меня есть?Мне в голову приходит следующее:
- На каждой странице * .aspx я реализую InitializeCulture
- Я создаю новый класс, который наследуется от System.Web.UI.Page и переопределяетInitializeCulture Eventhandler.Каждая * .aspx-страница, которую я использую, происходит от нее.
Нет ли более «встроенного» способа?ASP.net предлагает такую хорошую поддержку локализации, поэтому я думаю, что должен быть более простой / более эффективный способ достижения моей цели.Кто там?