Сложная проблема с ресурсами и локализацией веб-форм ASP.NET

У меня есть следующие нестандартные настройки (VS2008, .NET 3.5 SP1):

Существует основной веб-проект под названием MainSite, и есть несколько "подключаемых" веб-проектов с разными именами.

При создании этих плагинов у меня есть пользовательский шаг сборки, который вызывает aspnet_compiler.exe а также aspnet_merge.exe, В результате получаются два файла.DLL - имя_плагина.dll и имя_плагина _deploy.dll. Первый содержит классы codebehind, второй содержит код, сгенерированный из файлов.ascx.

Эти плагины.DLL затем копируются в /MainSite/bin/Plugins/ папка. Во время выполнения (запуска приложения) приложение MainSite просматривает эту папку и динамически загружает туда все файлы.DLL.

Все мои формы находятся в плагинах, в файлах.ascx. Основное приложение - это просто скелет, который загружает эти пользовательские элементы управления.ascx по мере необходимости.

И теперь возникает необходимость в локализации. В идеале я хотел бы иметь следующее:

  • При создании ресурсов в Visual Studio для каждой формы должен быть отдельный файл ресурсов (файл.ascx), чтобы людям было легче локализовать формы параллельно.
  • Хороший meta:resourcekey метод в файлах.ascx очень удобен для локализации элементов управления;
  • Механизм автоматического восстановления ресурса / языка ресурсов в.NET должен быть применим;
  • Результат компиляции должен быть таким, чтобы файлы всех плагинов могли быть скопированы на /MainSite/bin/Plugins/ папка. Если для каждого языка / культуры есть файл.DLL, и они должны быть помещены в определенные подпапки - это нормально, если у.DLL из разных плагинов нет конфликтующих имен.

Есть идеи, как этого добиться?

1 ответ

Решение

По-видимому, можно реализовать собственные поставщики ресурсов в.NET. Вот статья, которая содержит ссылки на другие статьи, которые объясняют весь процесс. По сути, вы берете значение из meta:resourcekey и получить значение, где вы хотите. Например, в статье выше вся информация о локализации хранится в БД.

Другие вопросы по тегам