CultureInfo и (resx) файлы ресурсов
Я использовал механизм ресурсов C#s (Visual Studios), и он работал хорошо. Мне нужно иметь возможность использовать ресурсы, но вместо того, чтобы использовать CultureInfo в качестве определителя, использовать что-то еще. Это моя текущая настройка, которая работает нормально, но мне нужно определить, какой Resource Manager использовать. Либо Брюссель, либо Париж. Затем менеджер ресурсов определяет, какой ресурс использовать в Брюсселе или Париже для вызова. Мне нужен один менеджер ресурсов для обоих, поэтому мне не нужно решать, какой менеджер ресурсов использовать. Частично проблема заключается в том, что пользовательский инструмент PublicResXFileCodeGenerator генерирует код для вас (что очень удобно, если вы используете стандартный подход)
Вот как это выглядит в настоящее время (это работает нормально)
Брюссельские Ресурсы
- brussels.en-GB.resx
- brussels.ja-JP.resx
- brussels.fr-FR.resx
- brussels.resx
Париж
- paris.en-GB.resx
- paris.ja-JP.resx
- paris.fr-FR.resx
- paris.resx
Я не хочу использовать CultureInfo, но вместо этого указываю свой собственный идентификатор resx. Есть ли способ сделать это с помощью файла resx?
так далее
Брюссель и Париж Ресурсы
- MyResourceManager.brussels-ан-GB.resx
- MyResourceManager.brussels-я- JP.resx
- MyResourceManager.brussels-фр-FR.resx
- MyResourceManager.paris-ан-GB.resx
- MyResourceManager.paris-я- JP.resx
- MyResourceManager.paris-фр-FR.resx
- MyResourceManager.resx
РЕДАКТИРОВАТЬ: пример того, как я хотел бы использовать его (или что-то подобное)
MyResourceManager.Header
вместо
brussels.Header
paris.Header
Пример подобной проблемы, но решаемой с помощью пользовательских культур, можно найти здесь. Как загружать разные файлы RESX, основываясь на каком-то параметре, однако я не хочу этого делать, поскольку установка культур на разных компьютерах невозможна.
1 ответ
Используйте CultureInfo для определения набора ресурсов для загрузки, это будет проще, поскольку он интегрируется в Thread.CurrentUICulture.
Если у вас есть культуры, которые не являются стандартными из поддерживаемых коробок, используйте CultureAndRegionInfoBuilder для создания дополнительных культур, которые вам нужны. См. http://msdn.microsoft.com/en-us/library/system.globalization.cultureandregioninfobuilder.aspx. Должно быть множество примеров использования этого API в Stackru, т. Е. Создание настраиваемой культуры в ASP.NET.