Я работаю над довольно простой веб-страницей (MVC2), использующей локализацию на основе файлов ресурсов.
У меня есть проект MVC2 и ресурсы в отдельной сборке.
Ресурсы содержат 3 языка (Resource.resx, Resource.de.resx, Resource.en.resx, Resource.ja.resx
), и я запрашиваю их через ResourceManager
.
Звоните со страницы .aspx:
<% Resources.Res resman = new Resources.Res(); %>
<%=resman.GetString("String1", new System.Globalization.CultureInfo("en")) %><br />
<%=resman.GetString("String1", new System.Globalization.CultureInfo("ja")) %><br />
<%=resman.GetString("String1", new System.Globalization.CultureInfo("de")) %><br />
ResourceManager
:
public class Res
{
private readonly ResourceManager Manager = Resources.Resource1.ResourceManager;
public string GetString(string id, CultureInfo info)
{
return Manager.GetString(id, info);
}
}
Gor скомпилированная версия в VS2008 я получаю что-то вроде этого:
String1EN
String1JA
String1DE
Скомпилировано в Visual Studio 2008, все работает нормально, но у меня возникают проблемы, если я компилирую решение в Visual Studio 2010 (также 3.5 как TargetFramework).
Там результат показывает что-то вроде:
String1DEFAULT
String1JA
String1DEFAULT
Я не знаю, что это может быть: это все еще ошибка в VS2010 RC или я что-то здесь не так делаю?
UPDATE:
Я обнаружил, что это работает на IIS 7.5, но не на IIS 7.0. К сожалению, это не решение для меня.