Получение значения ресурса с явной локализацией
С различными файлами ресурсов (*.resx), как я могу получить локализованные значения, указав явную локализацию.
То есть, как правило, я могу напрямую ссылаться на атрибут с помощью custom-tool-namespace.Resource.localizedAttribute.
Значение, которое будет выдано, зависит от того, какая локализация была установлена в CurrentCulture (по потоку). Но в отличие от этого, я бы хотел передать локализацию ресурсоемщику. Возможно ли это?
Ответы
Ответ 1
Предполагая, что у вас есть несколько файлов ресурсов:
Messages.resx
Messages.fr-FR.resx
...
Messages.xx-XX.resx
все содержащие строковое значение, вы можете получить значение для определенной культуры:
var culture = new CultureInfo("fr-FR");
string value = Messages.ResourceManager.GetString("SomeKey", culture);
и это будет независимо от значения текущей культуры потоков.
Ответ 2
Лучшей практикой является использование nameof для сохранения intellisense и избежания ошибок при вводе
var culture = new CultureInfo("fr-FR");
string value = Messages.ResourceManager.GetString(nameof(Messages.SomeKey), culture);