2010-12-27 3 views
1

У меня есть веб-страница (.aspx), которая использует главную страницу и загружает пользовательский элемент управления (.ascx) на веб-странице. Я реализую локализацию как на странице, так и на пользовательском элементе управления. однако локализация работает только с частью пользовательского элемента управления, но не с .aspx-страницей.Локализация в .aspx и .ascx

Существует базовый класс, который наследует все мои веб-страницы, и внутри класса basepage я переопределяю метод InitializeCulture(), и здесь я устанавливаю currentculture и currentuiculture. В целях тестирования я специально установил культуру и текущее обучение для «fr-CA».

Thread.CurrentThread.CurrentCulture = new CultureInfo ("fr-CA"); Thread.CurrentThread.CurrentUICulture = new CultureInfo ("fr-CA");

У меня есть файлы .resx, сгенерированные как для файла .aspx, так и для файла .ascx как для языка по умолчанию, так и для «английского» и «французского», используя визуальную студию.

Не знаете, почему локализация не работает с файлом .aspx, но отлично работает с пользовательским элементом управления.

ответ

0

Вы можете переопределить PageOnInit и установить Page.UICulture.

Кроме того, правильно ли вы назвали ваши французские ресурсы? Я бы предложил использовать «fr», а не «fr-CA», как только вы не используете более одного французского языка.

0

Попробуйте инструкции на этой странице:

http://msdn.microsoft.com/en-us/library/bz9tc508(v=VS.85).aspx

protected override void InitializeCulture() 
{ 
    string selectedLangauge = "fr-CA"; 
    Thread.CurrentThread.CurrentCulture = 
     CultureInfo.CreateSpecificCulture(selectedLanguage); 
    Thread.CurrentThread.CurrentUICulture = new 
     CultureInfo(selectedLanguage); 

    base.InitializeCulture(); 
} 

Я предполагаю, что вы не устанавливая культуру достаточно рано, но контроль пользователя работают из-за догоняющие события. (http://msdn.microsoft.com/en-us/library/ms178472.aspx#catch_up_events_for_added_controls)

Смежные вопросы