2 // Mono.Tools.LocaleBuilder.CultureInfoEntry
5 // Jackson Harper (jackson@ximian.com)
7 // (C) 2004 Novell, Inc (http://www.novell.com)
14 namespace Mono.Tools.LocaleBuilder {
16 public class CultureInfoEntry : Entry {
18 public static CultureInfoEntry ShallowCopy (CultureInfoEntry e)
20 return (CultureInfoEntry) e.MemberwiseClone ();
25 public string Territory;
26 public string EnglishName;
27 public string DisplayName;
28 public string NativeName;
29 public string IcuName;
30 public string Win3Lang;
31 public string ISO2Lang;
32 public string ISO3Lang;
34 public string ParentLcid;
35 public string SpecificLcid;
36 public int RegionId = -1;
37 public DateTimeFormatEntry DateTimeFormatEntry;
38 public NumberFormatEntry NumberFormatEntry;
39 public TextInfoEntry TextInfoEntry;
40 public int [] CalendarData = new int [5];
41 public int DateTimeIndex;
42 public int NumberIndex;
47 public CultureInfoEntry ()
49 DateTimeFormatEntry = new DateTimeFormatEntry ();
50 NumberFormatEntry = new NumberFormatEntry ();
53 public string Language {
58 language = (value == "zh") ? "zh-CHS" : value;
64 if (Territory == null)
66 return (Language.StartsWith ("zh") ? "zh" : Language) + "-" + Territory;
70 public override string ToString ()
72 StringBuilder builder = new StringBuilder ();
73 AppendTableRow (builder);
74 return builder.ToString ();
77 public void AppendTableRow (StringBuilder builder)
79 builder.Append ("\t{");
80 builder.AppendFormat ("{0}, {1}, {2}, {3}," +
83 "{10}, {11}, {12}, " +
86 Lcid, ParentLcid, SpecificLcid, RegionId,
87 EncodeStringIdx (Name), EncodeStringIdx (IcuName), EncodeStringIdx (EnglishName),
88 EncodeStringIdx (DisplayName), EncodeStringIdx (NativeName), EncodeStringIdx (Win3Lang),
89 EncodeStringIdx (ISO3Lang), EncodeStringIdx (ISO2Lang),
90 EncodeStringIdx (Territory),
91 ValuesString (CalendarData),
92 DateTimeFormatEntry == null ? -1 : DateTimeFormatEntry.Row,
93 NumberFormatEntry == null ? -1 : NumberFormatEntry.Row,
94 TextInfoEntry.ToString ());
98 private string ValuesString (int [] values)
100 StringBuilder builder = new StringBuilder ();
101 builder.Append ('{');
102 for (int i=0; i<values.Length; i++) {
103 builder.Append (values [i].ToString ());
104 if (i+1 < values.Length)
105 builder.Append (", ");
107 builder.Append ("}");
108 return builder.ToString ();