Я работал через свое первое приложение 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:
Я нашел ОДИН метод для этого, но я не уверен, что это лучший метод. Вот идея
- Вы помещаете папку
App_LocalResources
в качестве подпапки в вашей соответствующей папке просмотра
- Вы создаете файлы resx, соответствующие вашим представлениям ... IE:
Index.resx
или About.resx
- Вы устанавливаете свойства файлов Resx на «Public» (PublicResXFileCodeGenerator), «Embeded Resource», «Views. [Viewname]» namespace
- Создайте новое имя ресурса под названием «Заголовок» и поместите все, что вы хотите, в Значение.
Теперь я могу ссылаться на локальные ресурсы, используя что-то вроде этого
<%= MyProj.Views.Home.Index.Title%>
Единственная проблема, с которой я сталкиваюсь, заключается в том, что ресурсы встроены, и я не могу добавлять новые локали без повторной компиляции проекта.
Вот моя ссылка на этот метод.