У меня есть Default.aspx
файл, в который я получаю локализованные значения:
Default.aspx :
<asp:Localize meta:resourcekey="lblTitle" runat="server">Welcome</asp:Localize>
Затем я создаю соответствующий резервный файл ресурса:
Default.aspx.resx
lblTitle.Text Welcome to Stackoverflow Localized
И это работает:
![enter image description here](https://i.stack.imgur.com/p3Ee9.png)
Теперь я хочу создать, например, французскую локализацию:
Default.aspx.fr.resx
lblTitle.Text Bienvenue Stackoverflow
И я изменяю свой браузер, чтобы отправить локаль на французском языке:
![enter image description here](https://i.stack.imgur.com/Z2dyf.png)
(что и делает):
GET http://stackoverflow.com/ HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
Accept-Language: fr-CH,qps-ploc;q=0.5
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: stackoverflow.com
За исключением того, что он просто не работает:
![enter image description here](https://i.stack.imgur.com/JbdSl.png)
Я следую тому, что Microsoft говорит :
Например, если у вас есть страница с именем Default.aspx в папке App_LocalResources, вы можете создать следующие файлы:
Default.aspx.resx
. Это файл локальных ресурсов по умолчанию (резервный файл ресурсов), если совпадение языков не найдено.
Default.aspx.es.resx
. Это файл ресурсов для испанского языка без информации о культуре.
Default.aspx.es-mx.resx
. Это файл ресурсов для испанского (Мексика), в частности.
Default.aspx.fr.resx
. Это файл ресурсов для французского языка, без информации о культуре.
Почему .NET делает не то, что должен делать .NET?
Обновление:
Из MSDN:
Выбор файлов ресурсов для разных языков
ASP.NET может установить для свойств страницы UICulture и Culture значения языка и культуры, которые передаются браузером. ... Подробнее см. Как: установить культуру и культуру пользовательского интерфейса для глобализации веб-страниц ASP.NET.
Как мне заставить ASP.NET установить для свойств UICulture
и Culture
страницы значения языка и культуры, которые передаются браузером?
С Как: установить культуру и культуру пользовательского интерфейса для глобализации веб-страниц ASP.NET :
Пользователи могут устанавливать культуру пользовательского интерфейса в своих браузерах. За
Например, в Microsoft Internet Explorer, в меню Сервис, пользователи могут
нажмите Свойства обозревателя, на вкладке Общие нажмите Язык, а затем
установить свои языковые предпочтения. Если enableClientBasedCulture
атрибут элемента глобализации в файле Web.config установлен
истинно, ASP.NET может установить культуру пользовательского интерфейса для веб-страницы
автоматически на основе значений, отправляемых браузером.
Чтобы декларативно установить культуру и культуру пользовательского интерфейса для веб-страницы ASP.NET
- Чтобы ASP.NET установил для языка и культуры пользовательского интерфейса первый язык, указанный в текущих настройках браузера, установите для UICulture и Culture значение auto. В качестве альтернативы вы можете установить это значение на auto: culture_info_name , где culture_info_name - это имя культуры. Список названий культур см. В CultureInfo . Вы можете сделать этот параметр либо в директиве @ Page , либо в файле Web.config.