Я строю норвежский веб-сайт, который также получит некоторых иностранных гостей. Поскольку большинство скандинавов могут читать норвежские, это будет язык по умолчанию. (I.e., * .resx на норвежском языке.) Только для наших финских и английских посетителей я создаю отдельные ресурсы (* .fi.resx и * .en.resx).Интернационализация ASP.NET возвращается на английский язык вместо языкового файла по умолчанию
Однако, к моему большому шок, все посетители, кроме финского, видят текст на английском языке! Я сам тестировал это, и я могу воспроизвести проблему в различных веб-браузерах (Internet Explorer, Firefox, Chrome, Opera), пробовать различные языковые предпочтения и следить за тем, чтобы английский был не один из них.
Почему файл ресурса fall-back (* .resx) никогда не загружается? Согласно документации (http://msdn.microsoft.com/en-us/library/ms227427.aspx), файл fall-back должен быть загружен, если языковой файл не доступен для указанного языка.
Если вы сделать некоторые отладки и проверить значение 'Thread.CurrentThread.CurrentUICulture' в вашем Page_Load (или в контроллере, если используется MVC), что вы видите? Похоже, что ASP.NET выбрала английскую культуру, поэтому вы не получаете резерв ресурсов с тех пор, как присутствуют английские ресурсы. – Clafou
@Peter: Какую технологию вы используете точно? Простой Asp.Net или Asp.Net MVC? Какая версия (например, .NET Framework)? Я подозреваю неправильные настройки или отсутствие назначения uiCulture (в простой Asp.Net попробуйте 'uiCulture =" auto: no "'). –
Я использую простой ASP.NET (с файлами ресурсов в App_LocalResources), версия 4.0. Проверка CurrentCulture и CurrentUICulture возвращает ожидаемые культуры (например, при использовании «nb-no» в браузере он возвращает «nb-NO» и «nb» в качестве культур, при использовании «en» он возвращает «en-US» и «en»,). Однако при использовании неясных языков (например, Afar [aa]) это становится более интересным: на сервере разработки VS он возвращает «nb-NO» и «no», в IIS 7.5 он возвращает «nb-NO» для CurrentCulture и «en- US "(!) Для CurrentUICulture. Тем не менее, во всех случаях используется файл ресурсов .en.resx. – Peter