Do not call WriteString() for whitespace XText.
[mono-project.git] / tools / locale-builder / CultureInfoEntry.cs
blobfb9f642e2420449bbb9f702b218fbecfc3a41649
1 //
2 // Mono.Tools.LocaleBuilder.CultureInfoEntry
3 //
4 // Author(s):
5 // Jackson Harper (jackson@ximian.com)
6 //
7 // (C) 2004 Novell, Inc (http://www.novell.com)
8 //
11 using System;
12 using System.Text;
14 namespace Mono.Tools.LocaleBuilder {
16 public class CultureInfoEntry : Entry {
18 public static CultureInfoEntry ShallowCopy (CultureInfoEntry e)
20 return (CultureInfoEntry) e.MemberwiseClone ();
23 string language;
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;
33 public string Lcid;
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;
45 public int Row;
47 public CultureInfoEntry ()
49 DateTimeFormatEntry = new DateTimeFormatEntry ();
50 NumberFormatEntry = new NumberFormatEntry ();
53 public string Language {
54 get {
55 return language;
57 set {
58 language = (value == "zh") ? "zh-CHS" : value;
62 public string Name {
63 get {
64 if (Territory == null)
65 return Language;
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}," +
81 "{4}, {5}, {6}, " +
82 "{7}, {8}, {9}, " +
83 "{10}, {11}, {12}, " +
84 "{13}, " +
85 "{14}, {15}, {16}",
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 ());
95 builder.Append ('}');
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 ();