Я работал над своим первым приложением MVC, и я бы хотел его локализовать. Я знаю, как использовать App_GlobalResources, но я бы предпочел использовать App_LocalResources.
В типичном приложении WebForms вы помещаете папку App_LocalResources в тот же каталог, что и файл ASPX... это то же самое в MVC (IE: помещаю ли я их в соответствующие подпапки в каталоге "views" )?
Кроме того, при доступе к App_GlobalResources в вашем представлении вы можете сделать это так <%=Html.Encode(Resources.Index.Title)%>
, но я не могу этого сделать с App_LocalResources. Я не хочу, чтобы сделать мой <label runat="server"
, чтобы воспользоваться meta:resourcekey
EDIT:
Я обнаружил метод ONE для этого, но я не уверен, что это лучший метод. Здесь идея
- Вы помещаете папку
App_LocalResources
в качестве подпапки в соответствующей папке вида - Вы создаете файлы resx, соответствующие вашим представлениям... IE:
Index.resx
илиAbout.resx
- Вы устанавливаете свойства Resx файлов как "Public" (PublicResXFileCodeGenerator), "Embeded Resource", "Views. [viewname]" namespace
- Создайте новое имя ресурса под названием "Заголовок" и поместите все необходимое в значение.
Теперь я могу ссылаться на локальные ресурсы, используя что-то вроде этого
<%= MyProj.Views.Home.Index.Title%>
Единственная проблема, с которой я вижу, - это тот факт, что ресурсы встроены, и я не могу добавить новые локали без повторной компиляции проекта.