Pull to refresh

Comments 11

Пользуюсь 2008 студией собственно 2 года, и только сейчас, благодаря статье, в редакторе ресурсов заметил пункт Access Modifier. Прощай GetGlobal(Local)ResourceObject(), я не буду по тебе скучать.

Я так понял DataAnnotations теперь будет включена в состав ASP.Net MVC? Тоже хорошая новость.

Что касается самой статьи, то, видимо, для того чтобы она была уже совсем полная можно бы описать какой-то способ локализации Javascript файлов.
DataAnnotations не являются частью ASP.NET MVC, afair это пространство имен появилось давно, еще в .NET 3.5 SP1.
В MVC 2 было предложено использовать DataAnnotations для серверной и клиентской валидации модели данных.
Согласен, поторопился. Я скорее имел ввиду DataAnnotations ModelBinder.
Раз «Полное руководство», думаю стоит упомянуть автоматический выбор локализации.
Вверху уже спрашивали, но я повторюсь: существуют ли какие-либо стандартные средства для локализации Javascript? Например, у меня есть много кода, написанного с использованием jQuery, как его локализировать используя ресурсы?
а если не статически файлы скриптов отдавать, а как результат работы серверной страницы, не помогает?

а внутри уже локализовать как и обычную серверную страницу, через <%=...%>

можно и в клиентском скрипте сделать массив строк для локализации, чтобы весь код не разваливать
Да, это вариант. Я спрашивал о стандартых средствах — велосипедов я и сам могу придумать кучу :) Например генерировать на основе ресурсов отдельный js-файл с асоциативным масивом, из которого на стороне клиента вытягивать строки.
еще серверные сервисы могут вернуть локализованные ресурсы
что, кстати, будет почти стандартным вариантом
Есть примерно такой вариант: использовать T4/T4Toolbox, и делать один единственный JS-подобный файл в котором сами строки заменениы на <#= mystring #> и т.д. Все локализованные строки держатся в шаблоне, который после процессинга выбрасывает несколько js-файлов, например myscript.js, myscript.ru.js и так далее.

А дальше остается написать хелпер чтобы с помощью <%= Html.script("myscript") %> подгружать правильный скрипт в отличии от локали пользователя.
VaryByCustom работает только если свойство Location установленно в Server. Сам с этим столкнулся, пришлось повозиться.
Т.е. целиком это должно выглядеть так:

[OutputCache(Duration = 3600, VaryByParam = "none", VaryByCustom = "lang", Location = OutputCacheLocation.Server)]
Sign up to leave a comment.

Articles