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 {
20 public string Territory;
21 public string EnglishName;
22 public string DisplayName;
23 public string NativeName;
24 public string IcuName;
25 public string Win3Lang;
26 public string ISO2Lang;
27 public string ISO3Lang;
29 public string ParentLcid;
30 public string SpecificLcid;
31 public DateTimeFormatEntry DateTimeFormatEntry;
32 public NumberFormatEntry NumberFormatEntry;
33 public TextInfoEntry TextInfoEntry;
34 public int [] CalendarData = new int [5];
35 public int DateTimeIndex;
36 public int NumberIndex;
41 public CultureInfoEntry ()
43 DateTimeFormatEntry = new DateTimeFormatEntry ();
44 NumberFormatEntry = new NumberFormatEntry ();
47 public string Language {
52 language = (value == "zh") ? "zh-CHS" : value;
58 if (Territory == null)
60 return (Language.StartsWith ("zh") ? "zh" : Language) + "-" + Territory;
64 public override string ToString ()
66 StringBuilder builder = new StringBuilder ();
67 AppendTableRow (builder);
68 return builder.ToString ();
71 public void AppendTableRow (StringBuilder builder)
73 builder.Append ("\t{");
74 builder.AppendFormat ("{0}, {1}, {2}, " +
80 Lcid, ParentLcid, SpecificLcid,
81 EncodeStringIdx (Name), EncodeStringIdx (IcuName), EncodeStringIdx (EnglishName),
82 EncodeStringIdx (DisplayName), EncodeStringIdx (NativeName), EncodeStringIdx (Win3Lang),
83 EncodeStringIdx (ISO3Lang), EncodeStringIdx (ISO2Lang),
84 ValuesString (CalendarData),
85 DateTimeFormatEntry == null ? -1 : DateTimeFormatEntry.Row,
86 NumberFormatEntry == null ? -1 : NumberFormatEntry.Row,
87 TextInfoEntry.ToString ());
91 private string ValuesString (int [] values)
93 StringBuilder builder = new StringBuilder ();
95 for (int i=0; i<values.Length; i++) {
96 builder.Append (values [i].ToString ());
97 if (i+1 < values.Length)
98 builder.Append (", ");
100 builder.Append ("}");
101 return builder.ToString ();