CultureInfo и (resx) файлы ресурсов - PullRequest
8 голосов
/ 15 ноября 2011

Я использовал механизм ресурсов 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-Ja-JP.resx
  • MyResourceManager.paris-FR-FR.resx * * тысяча пятьдесят-одина
  • MyResourceManager.resx

EDIT: Пример того, как я хотел бы использовать его (или что-то подобное)

MyResourceManager.Header

вместо

brussels.Header

paris.Header

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

1 Ответ

1 голос
/ 15 ноября 2011

Используйте CultureInfo для определения загружаемого ресурса, это будет проще, поскольку он интегрируется в Thread.CurrentUICulture .

Если у вас есть культуры, которые не являются стандартными из поддерживаемых коробок культур, используйте CultureAndRegionInfoBuilder для создания дополнительных культур, которые вам нужны.См. http://msdn.microsoft.com/en-us/library/system.globalization.cultureandregioninfobuilder.aspx. Должно быть множество примеров использования этого API в StackOverflow, например Создание собственной культуры в ASP.NET .

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