Как преобразовать boolean в локализованную строку

есть ли способ, чтобы преобразовать значение в локализованную строку. Я пробовал:

var x = true;

var culture = new CultureInfo("en-US")
x.ToString(culture) // returns True

culture = new CultureInfo("pt-BR")
x.ToString(culture) // returns True, expected Verdadeiro

или я должен начать вводить переключатель сейчас, чтобы закончить до 2020 года?

2 ответов


ну, начните печатать, потому что это документированное поведение:)

Boolean.Метод ToString(Объекта Iformatprovider)

Примечания

параметр provider зарезервирован. Она не участвует в выполнение данного метода. Это означает, что Логический.Метод ToString(IFormatProvider), в отличие от большинства методов с параметр provider, не отражает параметры культуры.


Как указал @Michal, это задокументированное поведение.

Если ваша система поддерживает много языков, у вас должен быть какой-то i18 поддержка. Использовать это, чтобы преобразовать значение в строку. Вы можете добавить метод расширения следующим образом:

public string ToLocalizedString(this bool b)
{
    return ...i18n version of true or false...
}