4 using System.Globalization;
6 using System.Collections.Generic;
10 public static void Main ()
12 var all = CultureInfo.GetCultures (CultureTypes.SpecificCultures | CultureTypes.NeutralCultures).OrderBy (l => l.LCID);
14 Console.OutputEncoding = Encoding.UTF8;
15 var writer = Console.Out;
17 foreach (var c in all) {
18 if (c.LCID == CultureInfo.InvariantCulture.LCID)
21 writer.WriteLine ("Name: {0}, LCID 0x{1}", c.Name , c.LCID.ToString ("X4"));
23 writer.WriteLine ("{0}: {1}", "DisplayName", c.DisplayName);
24 writer.WriteLine ("{0}: {1}", "EnglishName", c.EnglishName);
25 writer.WriteLine ("{0}: {1}", "NativeName", c.NativeName);
26 // writer.WriteLine ("{0}: {1}", "OptionalCalendars", c.OptionalCalendars);
27 writer.WriteLine ("{0}: {1}", "ThreeLetterISOLanguageName", c.ThreeLetterISOLanguageName);
28 writer.WriteLine ("{0}: {1}", "ThreeLetterWindowsLanguageName", c.ThreeLetterWindowsLanguageName);
29 writer.WriteLine ("{0}: {1}", "TwoLetterISOLanguageName", c.TwoLetterISOLanguageName);
30 writer.WriteLine ("{0}: {1}", "Calendar", c.Calendar.GetType ());
32 var df = c.DateTimeFormat;
33 writer.WriteLine ("-- DateTimeFormat --");
34 Dump (writer, df.AbbreviatedDayNames, "AbbreviatedDayNames");
35 Dump (writer, df.AbbreviatedMonthGenitiveNames, "AbbreviatedMonthGenitiveNames");
36 Dump (writer, df.AbbreviatedMonthNames, "AbbreviatedMonthNames");
37 writer.WriteLine ("{0}: {1}", "AMDesignator", df.AMDesignator);
38 writer.WriteLine ("{0}: {1}", "CalendarWeekRule", df.CalendarWeekRule);
39 writer.WriteLine ("{0}: {1}", "DateSeparator", df.DateSeparator);
40 Dump (writer, df.DayNames, "DayNames");
41 writer.WriteLine ("{0}: {1}", "FirstDayOfWeek", df.FirstDayOfWeek);
42 Dump (writer, df.GetAllDateTimePatterns (), "GetAllDateTimePatterns");
43 // df.GetAbbreviatedEraName
46 writer.WriteLine ("{0}: {1}", "LongDatePattern", df.LongDatePattern);
47 writer.WriteLine ("{0}: {1}", "LongTimePattern", df.LongTimePattern);
48 writer.WriteLine ("{0}: {1}", "MonthDayPattern", df.MonthDayPattern);
49 Dump (writer, df.MonthGenitiveNames, "MonthGenitiveNames");
50 Dump (writer, df.MonthNames, "MonthNames");
51 writer.WriteLine ("{0}: {1}", "NativeCalendarName", df.NativeCalendarName);
52 writer.WriteLine ("{0}: {1}", "PMDesignator", df.PMDesignator);
53 writer.WriteLine ("{0}: {1}", "ShortDatePattern", df.ShortDatePattern);
54 Dump (writer, df.ShortestDayNames, "ShortestDayNames");
55 writer.WriteLine ("{0}: {1}", "ShortTimePattern", df.ShortTimePattern);
56 writer.WriteLine ("{0}: {1}", "TimeSeparator", df.TimeSeparator);
57 writer.WriteLine ("{0}: {1}", "YearMonthPattern", df.YearMonthPattern);
60 writer.WriteLine ("-- TextInfo --");
61 writer.WriteLine ("{0}: {1}", "ANSICodePage", ti.ANSICodePage);
62 writer.WriteLine ("{0}: {1}", "EBCDICCodePage", ti.EBCDICCodePage);
63 writer.WriteLine ("{0}: {1}", "IsRightToLeft", ti.IsRightToLeft);
64 writer.WriteLine ("{0}: {1}", "ListSeparator", ti.ListSeparator);
65 writer.WriteLine ("{0}: {1}", "MacCodePage", ti.MacCodePage);
66 writer.WriteLine ("{0}: {1}", "OEMCodePage", ti.OEMCodePage);
68 var nf = c.NumberFormat;
69 writer.WriteLine ("-- NumberFormat --");
70 writer.WriteLine ("{0}: {1}", "CurrencyDecimalDigits", nf.CurrencyDecimalDigits);
71 writer.WriteLine ("{0}: {1}", "CurrencyDecimalSeparator", nf.CurrencyDecimalSeparator);
72 writer.WriteLine ("{0}: {1}", "CurrencyGroupSeparator", nf.CurrencyGroupSeparator);
73 Dump (writer, nf.CurrencyGroupSizes, "CurrencyGroupSizes");
74 writer.WriteLine ("{0}: {1}", "CurrencyNegativePattern", nf.CurrencyNegativePattern);
75 writer.WriteLine ("{0}: {1}", "CurrencyPositivePattern", nf.CurrencyPositivePattern);
76 writer.WriteLine ("{0}: {1}", "CurrencySymbol", nf.CurrencySymbol);
77 writer.WriteLine ("{0}: {1}", "DigitSubstitution", nf.DigitSubstitution);
78 writer.WriteLine ("{0}: {1}", "NaNSymbol", nf.NaNSymbol);
79 Dump (writer, nf.NativeDigits, "NativeDigits");
80 writer.WriteLine ("{0}: {1}", "NegativeInfinitySymbol", nf.NegativeInfinitySymbol);
81 writer.WriteLine ("{0}: {1}", "NegativeSign", nf.NegativeSign);
82 writer.WriteLine ("{0}: {1}", "NumberDecimalDigits", nf.NumberDecimalDigits);
83 writer.WriteLine ("{0}: {1}", "NumberDecimalSeparator", nf.NumberDecimalSeparator);
84 writer.WriteLine ("{0}: {1}", "NumberGroupSeparator", nf.NumberGroupSeparator);
85 Dump (writer, nf.NumberGroupSizes, "NumberGroupSizes");
86 writer.WriteLine ("{0}: {1}", "NumberNegativePattern", nf.NumberNegativePattern);
87 writer.WriteLine ("{0}: {1}", "PercentDecimalDigits", nf.PercentDecimalDigits);
88 writer.WriteLine ("{0}: {1}", "PercentDecimalSeparator", nf.PercentDecimalSeparator);
89 writer.WriteLine ("{0}: {1}", "PercentGroupSeparator", nf.PercentGroupSeparator);
90 Dump (writer, nf.PercentGroupSizes, "PercentGroupSizes");
91 writer.WriteLine ("{0}: {1}", "PercentNegativePattern", nf.PercentNegativePattern);
92 writer.WriteLine ("{0}: {1}", "PercentPositivePattern", nf.PercentPositivePattern);
93 writer.WriteLine ("{0}: {1}", "PercentSymbol", nf.PercentSymbol);
94 writer.WriteLine ("{0}: {1}", "PerMilleSymbol", nf.PerMilleSymbol);
95 writer.WriteLine ("{0}: {1}", "PositiveInfinitySymbol", nf.PositiveInfinitySymbol);
96 writer.WriteLine ("{0}: {1}", "PositiveSign", nf.PositiveSign);
98 if (!c.IsNeutralCulture) {
99 var ri = new RegionInfo (c.LCID);
100 writer.WriteLine ("-- RegionInfo --");
101 writer.WriteLine ("{0}: {1}", "CurrencyEnglishName", ri.CurrencyEnglishName);
102 writer.WriteLine ("{0}: {1}", "CurrencyNativeName", ri.CurrencyNativeName);
103 writer.WriteLine ("{0}: {1}", "CurrencySymbol", ri.CurrencySymbol);
104 writer.WriteLine ("{0}: {1}", "DisplayName", ri.DisplayName);
105 writer.WriteLine ("{0}: {1}", "EnglishName", ri.EnglishName);
106 writer.WriteLine ("{0}: {1}", "GeoId", ri.GeoId);
107 writer.WriteLine ("{0}: {1}", "IsMetric", ri.IsMetric);
108 writer.WriteLine ("{0}: {1}", "ISOCurrencySymbol", ri.ISOCurrencySymbol);
109 writer.WriteLine ("{0}: {1}", "Name", ri.Name);
110 writer.WriteLine ("{0}: {1}", "NativeName", ri.NativeName);
111 writer.WriteLine ("{0}: {1}", "ThreeLetterISORegionName", ri.ThreeLetterISORegionName);
112 writer.WriteLine ("{0}: {1}", "ThreeLetterWindowsRegionName", ri.ThreeLetterWindowsRegionName);
113 writer.WriteLine ("{0}: {1}", "TwoLetterISORegionName", ri.TwoLetterISORegionName);
116 CompareInfo ci = CompareInfo.GetCompareInfo (c.LCID);
117 writer.WriteLine ("-- CompareInfo --");
118 writer.WriteLine ("{0}: {1}", "Name", ci.Name);
119 //writer.WriteLine ("{0}: {1}", "Version", ci.Version);
125 static void Dump<T> (TextWriter tw, T[] values, string name)
130 for (int i = 0; i < values.Length; ++i) {
134 tw.Write (values[i]);