У меня есть веб-приложение, которое просто отображает форму контроля пользователя.Я сгенерировал свои resx файлы, связанные с пользовательским элементом управления, перейдя к дизайну пользовательского элемента управления и затем щелкнув Инструменты> Создать локальный ресурс
Выполнение этого создалонеобходимый resx файл:
App_LocalResources
ContactUsForm.ascx.resx
Затем я просто скопировал и вставил существующий файл resx и переименовал его, чтобы у меня было следующее:
App_LocalResources
ContactUsForm.ascx.fr-FR.resx
ContactUsForm.ascx.resx
В качестве теста я изменил пару элементов управления dotnet в новом файле ресурсов fr-FR , просто чтобы проверить, все ли работает должным образом и не работает.
Я использую следующий код для установки конкретной информации о культуре на основе параметра строки запроса:
protected void Page_Init(object sender, EventArgs e)
{
string cultureName = Request.QueryString["lang"];
if (!string.IsNullOrEmpty(cultureName))
{
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(cultureName);
}
}
Затем я могу просто перейти на страницу, содержащую пользовательский элемент управления, выполнив следующие действия:
http://localhost/Default.aspx?lang=fr-FR
Я могу подтвердить, что информация о культуре задана, выполнив следующий код:
CultureInfo currentCultureUI = Thread.CurrentThread.CurrentUICulture;
CultureInfo currentCulture = Thread.CurrentThread.CurrentUICulture;
Я могу подтвердить, что заданная культура действительно fr-FR однакотекст не заменяется в соответствии с изменениями в файле ContactUsForm.ascx.fr-FR.resx .
Я не могу заставить работать так, как ожидалось.Что я делаю не так и есть ли другой способ добиться желаемого результата?
Заранее спасибо.
ОБНОВЛЕНИЕ:
Если я это сделаюследующее в коде работает нормально:
lHeadingResource1.Text = GetLocalResourceObject("lHeadingResource1.Text").ToString();
На самом деле читает правильную строку из файла ContactUsForm.ascx.fr-FR.resx .
Iтакже может подтвердить, что мои элементы управления также имеют все необходимые ссылки meta:resourcekey
.
Просто странно, что если я не установлю его в коде, по умолчанию он вернется к культуре по умолчанию и не использует FR-FR указано выше.