2013-12-16 10 views
7

ブール値をローカライズされた文字列に変換する方法はありません。私は試しました:ブール値をローカライズされた文字列に変換する方法

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 

また、スイッチを今すぐ入力する必要がありますか?

+0

これは、文字列からブール値に変換するためのものです。 –

+0

実際に他の言語を表示する前に、Windowsで言語パックをインストールする必要があるため、入力を開始します。 – Silvermind

+0

よく、多くの言語のNumberFormatとカレンダーがありますが、なぜブール型文字列ではないのでしょうか... –

答えて

8

まあ、それは行動を文書化しているため入力を開始します:)

Boolean.ToString(するIFormatProvider)

備考

プロバイダパラメータが予約されています。このメソッドの実行には、 は参加しません。つまり、 ブール値.String(IFormatProvider)メソッドは、 プロバイダパラメータを持つほとんどのメソッドとは異なり、カルチャ固有の設定を反映していません。

1

@Michalが指摘したように、これは文書化された動作です。

システムで多くの言語がサポートされている場合は、何らかの種類のi18がサポートされている必要があります。これを使ってブール値を文字列に変換します。次のような拡張メソッドを追加することができます:

public string ToLocalizedString(this bool b) 
{ 
    return ...i18n version of true or false... 
} 
関連する問題