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 string Language;
19 public string Territory;
20 public string EnglishName;
21 public string DisplayName;
22 public string NativeName;
23 public string IcuName;
24 public string Win3Lang;
25 public string ISO2Lang;
26 public string ISO3Lang;
28 public string ParentLcid;
29 public string SpecificLcid;
30 public DateTimeFormatEntry DateTimeFormatEntry;
31 public NumberFormatEntry NumberFormatEntry;
32 public int [] CalendarData = new int [5];
33 public int DateTimeIndex;
34 public int NumberIndex;
39 public CultureInfoEntry ()
41 DateTimeFormatEntry = new DateTimeFormatEntry ();
42 NumberFormatEntry = new NumberFormatEntry ();
47 if (Territory == null)
49 return Language + "-" + Territory;
53 public override string ToString ()
55 StringBuilder builder = new StringBuilder ();
56 AppendTableRow (builder);
57 return builder.ToString ();
60 public void AppendTableRow (StringBuilder builder)
62 builder.Append ("\t{");
63 builder.AppendFormat ("{0}, {1}, {2}, " +
64 "\"{3}\", \"{4}\", \"{5}\", " +
65 "\"{6}\", \"{7}\", \"{8}\", " +
66 "\"{9}\", \"{10}\", " +
69 Lcid, ParentLcid, SpecificLcid,
70 EncodeString (Name), EncodeString (IcuName), EncodeString (EnglishName),
71 EncodeString (DisplayName), EncodeString (NativeName), EncodeString (Win3Lang),
72 EncodeString (ISO3Lang), EncodeString (ISO2Lang),
73 ValuesString (CalendarData),
74 DateTimeFormatEntry == null ? -1 : DateTimeFormatEntry.Row,
75 NumberFormatEntry == null ? -1 : NumberFormatEntry.Row);
79 private string ValuesString (int [] values)
81 StringBuilder builder = new StringBuilder ();
83 for (int i=0; i<values.Length; i++) {
84 builder.Append (values [i].ToString ());
85 if (i+1 < values.Length)
86 builder.Append (", ");
89 return builder.ToString ();