Это не столько о локализации, но о рынке конкретных стандартов. В частности, международные форматы адресов. Я не знаю о готовом для этого решении, но вы можете найти существующие ресурсы, которые определяют эти форматы (например, на MSDN здесь: http://msdn.microsoft.com/en-us/library/cc195167.aspx).
Я полагаю, вы могли бы определить форматы, используя ваш предпочтительный подход (возможно, XML, возможно, жестко заданные определения данных) для каждого рынка, чтобы определить его адекватную «структуру» (по структуре я имею в виду, какие поля и в каком порядке) и использовать стандартную локализацию для перевода каждой из соответствующих ярлыков.
Edit:
Что касается даты, времени и валюты, вы можете использовать определений культуры в .NET Framework, который можно получить доступ через DateTimeFormat и NumberFormat свойства CultureInfo в (MSDN link). Я не уверен, хотите ли вы отображать дату, время и валюту с помощью примера (например, сегодняшней даты или текущего времени) или самого формата (например, mm/dd/yy и hh: mm: ss). Для первого вы создаете экземпляр CultureInfo и передаете его переопределениям ToString, которые принимают IFormatProvider. Хороший пример для даты и времени показан на this MSDN page. То же самое относится к форматированию валют (MSDN link).Вот как это работает:
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: £
Привет, что вы имеете в виду, заявив: «Ищете ответ из надежных и/или официальных источников»? Это заставляет меня сомневаться, что я должен написать ответ на ваш вопрос, так как я не могу быть официальным или заслуживающим доверия к вам. – Dima