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 DateTimeFormatEntry DateTimeFormatEntry;
37 public NumberFormatEntry NumberFormatEntry;
38 public TextInfoEntry TextInfoEntry;
39 public int [] CalendarData = new int [5];
40 public int DateTimeIndex;
41 public int NumberIndex;
46 public CultureInfoEntry ()
48 DateTimeFormatEntry = new DateTimeFormatEntry ();
49 NumberFormatEntry = new NumberFormatEntry ();
52 public string Language {
57 language = (value == "zh") ? "zh-CHS" : value;
63 if (Territory == null)
65 return (Language.StartsWith ("zh") ? "zh" : Language) + "-" + Territory;
69 public override string ToString ()
71 StringBuilder builder = new StringBuilder ();
72 AppendTableRow (builder);
73 return builder.ToString ();
76 public void AppendTableRow (StringBuilder builder)
78 builder.Append ("\t{");
79 builder.AppendFormat ("{0}, {1}, {2}, " +
85 Lcid, ParentLcid, SpecificLcid,
86 EncodeStringIdx (Name), EncodeStringIdx (IcuName), EncodeStringIdx (EnglishName),
87 EncodeStringIdx (DisplayName), EncodeStringIdx (NativeName), EncodeStringIdx (Win3Lang),
88 EncodeStringIdx (ISO3Lang), EncodeStringIdx (ISO2Lang),
89 ValuesString (CalendarData),
90 DateTimeFormatEntry == null ? -1 : DateTimeFormatEntry.Row,
91 NumberFormatEntry == null ? -1 : NumberFormatEntry.Row,
92 TextInfoEntry.ToString ());
96 private string ValuesString (int [] values)
98 StringBuilder builder = new StringBuilder ();
100 for (int i=0; i<values.Length; i++) {
101 builder.Append (values [i].ToString ());
102 if (i+1 < values.Length)
103 builder.Append (", ");
105 builder.Append ("}");
106 return builder.ToString ();