これはローカリゼーションではなく、市場固有の標準に関するものです。具体的には、国際住所形式です。私はこれに対する既成の解決策を知りませんが、これらの形式を定義する既存のリソースを見つけることができます(たとえば、MSDNのここ: http: //msdn.microsoft.com/en-us/library/cc195167。 aspx)。
各市場で好みのアプローチ(おそらくXML、おそらくハードコードされたデータ定義)を使用してフォーマットを定義し、適切な「構造」(構造とはどのフィールドと順序を意味するか)を定義し、標準のローカリゼーションを使用してそれぞれを変換できると思います。対応するラベル。
編集:
日付、時刻、および通貨に関しては、CultureInfoのDateTimeFormatおよびNumberFormatプロパティ( MSDNリンク)からアクセスできる.NETFrameworkのカルチャ定義を利用できます。例(今日の日付や現在の時刻など)で日付、時刻、通貨を表示するのか、形式自体(mm / dd / yyやhh:mm:ssなど)で表示するのかわかりません。前者の場合、CultureInfoをインスタンス化し、IFormatProviderを受け取るToStringオーバーライドに渡します。日付と時刻の良い例は、このMSDNページに示されています。同じことが通貨のフォーマットにも当てはまります(MSDNリンク)。それはこのように動作します:
CultureInfo cultureInfo = new CultureInfo("en-GB"); // Change en-GB to the desired culture name
DateTime now = DateTime.Now;
string sampleTime = now.ToString("T", cultureInfo); // Result: 5:04:32 PM
string sampleDate = now.ToString("d", cultureInfo); // Result: 13/3/2012
double value = 16325.62901;
string sampleCurrency = value.ToString("C", cultureInfo); // Result: £16,325.63
一方、フォーマットを表示したい場合は、DateTimeFormatInfoとNumberFormatInfoの関連するプロパティを取得することでこのデータを取得できます。例えば:
CultureInfo cultureInfo = new CultureInfo("en-GB");
string shortDatePattern = cultureInfo.DateTimeFormat.ShortDatePattern; // Result: d/M/yyyy
string shortTimePattern = cultureInfo.DateTimeFormat.ShortTimePattern; // Result: h:mm tt
string currencySymbol = cultureInfo.NumberFormat.CurrencySymbol; // Result: £