.NET уже поддерживает несколько ресурсов для нескольких культур, используя соглашение об именах:
<default resource file name>.<culture>.resx
По сути, как отметил Джош, VS2008 создает красивую безопасную оболочку для доступа к этим ресурсам.
Тем не менее, пользовательский интерфейс VS предоставляет медвежий минимум того, что вы можете сделать.
Если вы создаете новый файл ресурсов, который называется точно так же, как и файл по умолчанию, добавьте информацию о культуре перед resx. (ПРИМЕЧАНИЕ. Вам нужно будет создать его где-то еще, а затем скопировать в папку волшебных свойств.)
Тогда ваше приложение, если вы применили культуру к потоку, обращающемуся к ресурсу, извлечет правильную строку из определенных ресурсов.
Например:
// Using the default culture
string s = Resources.Error1Msg;
Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-CO");
// Using the specific culture specified as above:
s = Resources.Error1Msg;
Если вам нужно параметризовать ваше сообщение, используйте string.Format для параметризации вывода.
Одним из предостережений является попытка сконструировать уровни приложения таким образом, чтобы ваши исключения содержали богатую полезную нагрузку (для описания ошибки) вместо того, чтобы полагаться только на текст.
Таким образом, ваш уровень представления может представить лучший пользовательский интерфейс, который может использовать полезную нагрузку.
НТН
Philip