последняя точка на странице конвейера, чтобы изменить культуру? - PullRequest
1 голос
/ 19 мая 2011

Какая последняя точка в конвейере загрузки страниц asp.net, когда я могу изменить язык страницы, выполнив следующие действия?

Thread.CurrentThread.CurrentCulture = << new culture >>;
Thread.CurrentThread.CurrentUICulture = << new culture >>;

Я изменяю культуру в своем коде и хочузнать, в какой момент я могу изменить последний язык, чтобы можно было выбрать правильные файлы ресурсов и т. д.

Не слишком ли поздно в процессе подготовки страницы преинсталлировать, чтобы изменить культуру?Я знаю, что в классе Page есть метод InitialiseCulture, но я работаю за его пределами.

Ответы [ 2 ]

0 голосов
/ 19 мая 2011

Согласно документации MSDN, правильный способ - использовать InitialiseCulture - он вызывается очень рано в жизненном цикле страницы до того, как будут созданы даже элементы управления. И это даже до PreInit события.

Сказал, что люди установили информацию о культуре уже как Page_Load событие. Например, см. эту статью базы знаний или код проекта статьи . Так что я думаю, что событие PreInit должно быть в порядке.

Есть два соответствующих свойства - Культура и UICulture. AFAIK, UICulture используется для загрузки правильных локальных (специфичных для страницы) / глобальных ресурсов, и это будет сделано на этапе рендеринга, поэтому это не должно быть проблемой. Информация о культуре из потока используется многими методами фреймворков, и вам нужно быть осторожным с использованием любого кода, который зависит от информации о культуре, прежде чем устанавливать культуру в жизненном цикле страницы - примером такого кода может быть форматирование данных или разбор по запросу данные и т. д.

0 голосов
/ 19 мая 2011

Смотрите мой комментарий к вашему исходному сообщению тоже.

protected override void InitializeCulture()
{
    UICulture = "en";
    Culture   = "en-US";
}

http://msdn.microsoft.com/en-us/library/bz9tc508.aspx

...