Расширение С# на основе файлов менеджер ресурсов

Я хочу хранить свои ресурсы в другом формате, отличном от NET.resources(в частности,.po), поэтому я написал собственный набор ресурсов с помощью специального читателя ресурсов для их извлечения. Я создал ResourceManager, используя статический метод CreateFileBasedResourceManager, который создает новый экземпляр менеджера, который извлекает наборы ресурсов из файлов в определенном каталоге, используя указанный набор ресурсов (пользовательский, который я написал в моем случае), используя Name.culture.resources имена файлов.

Однако я хотел бы изменить соглашение об имени файла. Я заметил, что для этой цели существует переопределяемый метод GetResourceFileName. Но с использованием рефлектора я заметил, что конструктор, используемый CreateFileBasedResourceManager, является закрытым, и в противном случае невозможно установить флаг "использовать файлы вместо сборок".

Есть ли способ обойти это без необходимости переопределять весь метод InternalGetResourceSet?

Спасибо большое!

Ответ 1

У Mono есть хорошая небольшая утилита, которая помогает с этим, называется Msgfmt, которая может быть использована для создания файлов .resources из каталога файлов .po.

Msgfmt.exe -iMessages.es.po -oMessages.es.resources

Я наткнулся на интересную статью @http://weblogs.manas.com.ar/spalladino/2009/10/01/using-gnu-gettext-for-i18n-in-c-and-asp-net/, которая помогла мне, и это тоже может помочь вам.

Это другой подход, но это сработало для меня!