Организация файлов .resx в приложении MVC 3

У меня вопрос по организации файлов .resx в приложении mvc3. Пока мне удалось сделать следующее:

  • Создание новой библиотеки классов в решении для ресурсов и добавление ресурсов для двух языков. Все работает нормально, например, когда у меня есть:

Resources.resx // язык по умолчанию Resources.en.resx // английский язык

Но я хочу, чтобы в моей библиотеке классов была такая организация:

DefaultLanguage foder - Resources.resx

en папка - Resources.en.resx

Я хочу организовать ресурсы по папкам. Я думаю, что это больше подходит для людей, которые будут переводить сайт, к тому же он более удобен в обслуживании. Когда я организовываю ресурсы таким образом, веб-страница возвращает ошибку ... не могу найти ошибку. Я что-то упускаю? Я знаю, что у вас не должно быть имени папки в пространстве имен, потому что это будет означать, что ссылка на ресурс в представлении зависит от имени папки, а это неверно.

Дело в том, что я хотел бы иметь такое же поведение ресурсов, независимо от того, организованы они в папки или нет ...

Между прочим: я проверял в Интернете и не нашел подходящего решения.

Спасибо за ваши ответы!


person TheMentor    schedule 22.11.2011    source источник


Ответы (1)


MVC3 использует управление ресурсами ASP.NET. Дополнительные сведения см. В документации по ASP.NET. Если вы хотите полагаться на поведение ASP.NET и сгенерированные строго типизированные классы, вы должны сохранить файл ресурсов для языка по умолчанию и других файлов ресурсов для других языков вместе.

Чтобы получить ту же древовидную структуру, которую вы предложили, вам необходимо реализовать собственное управление ресурсами. Вы, вероятно, не захотите этого делать, потому что (по крайней мере, некоторые) инструменты редактирования ресурсов полагаются на это поведение.

В наших проектах у нас есть один ресурс (и его переводы) для каждого просмотра. Они находятся в папке Localization в проекте MVC3. Внутри мы сохраняем ту же древовидную структуру, что и в папке Views. Это более или менее похоже на организацию локальных ресурсов ASP.NET. Общие строки хранятся в одном RESX-файле в корне папки Localization. Это обеспечивает ремонтопригодность.

Чтобы ваши сотрудники были довольны переводом, вам нужно выбрать хороший инструмент для редактирования .resx.

person danijelk    schedule 22.11.2011
comment
Tnx за ответ. Да, у меня такая же структура ресурсов, как и в представлениях. Я просто хотел отсортировать эти взгляды по языку. Coz, если у вас 10 просмотров и три языка, то это 30 файлов resx, если они все вместе. Ну, лучше так, чем реализовать собственный ResourceManager :) - person TheMentor; 22.11.2011