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 ();