私のウェブサイトに複数の言語とUIカルチャを表示したい。私は自動的にように、ブラウザからの文化をピックアップIIS 7のフラグを有効にしている:ASP.NET MVC 3の文化問題
<globalization
enableClientBasedCulture="true"
culture="en-GB"
uiCulture="auto:en"/>
これは正しいリソースファイルがロードされているでは完璧に動作し、正しい文化が表示されている(GB 0.00; 0、 DEは00)。
しかし、これは私の外部サービスとの干渉の予期せぬ問題を抱えていました。たとえば、ここにPayPalとのインタフェースコードがあります。
var paymentDetails = new PaymentDetailsType
{
ItemTotal = new BasicAmountType
{
currencyID = currencyCode,
Value = basket.SubTotal.ToString("0.00")
},
...
}
このコードは基本的にPayPalが常に培養は小数点(例えばDE - ドイツ語)としてコンマを有するように選択されるドット小数点を、必要しかしとして、そう'50.25'
ようにフォーマットされた文字列を作成しToString("0.00")
'50,25'
を生成するので、私のコードは失敗します。
これを修正するにはどのような方法が最適でしょうか?私はまだ文化をユーザーの文化に合わせたいと思っていますが、自分の文化を使うためにコードの特定の部分を設定したいと思います。
ToString()
メソッドに特定の培養物を摂食させることができますが、これは非常にhackishと思われます。それ以上のプロのクリーンなアプローチ?
特定の文化の中で餌:
はここ二System.IFormatProviderパラメータを取りますToStringメソッドのオーバーロード(へのリンク)です。 –