日付のフォーマットに関してMicrosoftConnectでリクエストを出しました(「DateTimeフォーマットはその日の正しいサフィックスを計算する必要があります」)。基本的に、日番号にサフィックスを追加するためのフォーマット文字列コードが必要でした。したがって、「1月1日」は「1月1日」にフォーマットされ、「1月2日」は「1月2日」にフォーマットされます。
これは英語の場合は非常に簡単ですが、Microsoftは、国際化するのが難しすぎるという理由でこのアイデアを拒否しました。
英語以外の市場に対応できないという理由だけで、Microsoftが英語の市場のためだけに書く英語のプログラマーの生活を困難にすることが合理的であることに人々が同意するかどうか疑問に思っていました。
編集:わかりました、私は彼らがやりたいことをするためのフレームワークがあるという議論を受け入れます。私はイデオロギー的な意味からもっと多くを求めていました。また、英語以外の文化には何も追加しないという簡単なフォールバックがあり、それによって人々は現在よりも悪化することはありません。
編集2:私にとって、これは1時間以上の作業です。次のようなコードをサポートする必要があります。
DateTime minDate = new DateTime(2003, 12, 10);
string errorMessage = ValidationMessageResource.DateTooEarly;
Console.WriteLine(String.Format(errorMessage, minDate));
リソースファイルの内容を制御することはできません。リソース文字列は、多くの場合、「日付は{0:D}より前であってはなりません」のようになります。これを行うには、Microsoftのフォーマッターが受け入れるすべての異なるフォーマット文字列をサポートする必要がある独自のIFormatProviderクラスを実装する必要があります。Microsoftは、継承を通じてフォーマッタを拡張する簡単な方法を提供していないようです。