У меня есть проект ASP.NET MVC 4, и я зарегистрировал в нем настраиваемую культуру, потому что я хочу иметь специфический для клиента перевод.ASP.NET MVC Регистрация пользовательской культуры и интернационализации
Я вызываю следующий вспомогательный метод с такими параметрами, как RegisterCulture("en-GB-CustA", "English (Customer A)", "en-GB");
Этот вызов выполняется в Application_Start
обработчиком событий класса MvcApplication : HttpApplication
.
Метод фея простой, он в основном создает новую культуру на основе существующей и заменяет ее имя.
Теперь в моем Global.asax только для целей тестирования Я поместил следующий код в класс MvcApplication
, чтобы переключить текущий поток для пользовательского.
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
var ci = new CultureInfo("en-GB-CustA");
Thread.CurrentThread.CurrentUICulture = ci;
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name);
}
Я также включил два файла ресурсов. Один из них называется Test.resx
, который предназначен для текстов по умолчанию, второй - Test.en-GB-CustA.resx
. Я добавил простой строковый ресурс, который называется Title
с двумя разными значениями.
Test.resx => "Hello World!"
Test.en-GB-CustA => "Hello from custom culture!"
Я также положить на одну из моей точки зрения кода, чтобы отобразить это название (я добавил ViewRes
, как с CustomToolNamespace
для обоих файлов ресурсов для упрощения).
@ViewRes.Test.Title
Unfortunatelly, даже если я установить пользовательскую культуру как descibed, прежде чем я получаю detault «Привет мир» значение все время. Что мне здесь не хватает?