Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorAtsushi Eno <atsushieno@gmail.com>2004-06-07 19:21:58 +0400
committerAtsushi Eno <atsushieno@gmail.com>2004-06-07 19:21:58 +0400
commitb80bb481642173751e95b06a7be00190a08c9aa9 (patch)
tree4b29b4fc8e8fd1c94efc86a2c6b2b9d62cb6f494 /tools
parent9f6d841887618f00b19c4c44fe071166292ffebd (diff)
2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
* DateTimeFormatEntry.cs : Added "all datetime patterns" support. * Driver.cs : Added "all datetime patterns" support and fixed some XPathNavigator use to strictly navigate to "pattern" element. svn path=/trunk/mono/; revision=28969
Diffstat (limited to 'tools')
-rw-r--r--tools/locale-builder/ChangeLog6
-rw-r--r--tools/locale-builder/DateTimeFormatEntry.cs31
-rw-r--r--tools/locale-builder/Driver.cs53
3 files changed, 81 insertions, 9 deletions
diff --git a/tools/locale-builder/ChangeLog b/tools/locale-builder/ChangeLog
index b798d2e50d4..deb9ca78933 100644
--- a/tools/locale-builder/ChangeLog
+++ b/tools/locale-builder/ChangeLog
@@ -1,3 +1,9 @@
+2004-06-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DateTimeFormatEntry.cs : Added "all datetime patterns" support.
+ * Driver.cs : Added "all datetime patterns" support and fixed some
+ XPathNavigator use to strictly navigate to "pattern" element.
+
2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
* Driver.cs : Percent patterns are not properly parsed since they are
diff --git a/tools/locale-builder/DateTimeFormatEntry.cs b/tools/locale-builder/DateTimeFormatEntry.cs
index c13f77ad83d..0ae91497b47 100644
--- a/tools/locale-builder/DateTimeFormatEntry.cs
+++ b/tools/locale-builder/DateTimeFormatEntry.cs
@@ -35,7 +35,11 @@ namespace Mono.Tools.LocaleBuilder {
public string TimeSeparator;
public string YearMonthPattern;
public int [] OptionalCalendars = new int [5];
-
+ public ArrayList ShortDatePatterns = new ArrayList (14);
+ public ArrayList LongDatePatterns = new ArrayList (8);
+ public ArrayList ShortTimePatterns = new ArrayList (5);
+ public ArrayList LongTimePatterns = new ArrayList (6);
+
public int Row;
public void AppendTableRow (StringBuilder builder)
@@ -69,8 +73,31 @@ namespace Mono.Tools.LocaleBuilder {
builder.Append (FirstDayOfWeek + ", ");
builder.Append ("\"" + EncodeString (DateSeparator) + "\", ");
- builder.Append ("\"" + EncodeString (TimeSeparator) + "\"");
+ builder.Append ("\"" + EncodeString (TimeSeparator) + "\", ");
+
+ AppendPatterns (builder, ShortDatePatterns);
+ builder.Append (',');
+ AppendPatterns (builder, LongDatePatterns);
+ builder.Append (',');
+ AppendPatterns (builder, ShortTimePatterns);
+ builder.Append (',');
+ AppendPatterns (builder, LongTimePatterns);
+
+ builder.Append ('}');
+ }
+ private void AppendPatterns (StringBuilder builder, ArrayList al)
+ {
+ string [] patterns = al.ToArray (typeof (string)) as string [];
+ builder.Append ('{');
+ for (int i = 0; i < patterns.Length; i++) {
+ string s = EncodeString (patterns [i]);
+ builder.Append ('\"');
+ builder.Append (s);
+ builder.Append ('\"');
+ if (i + 1 < patterns.Length)
+ builder.Append (',');
+ }
builder.Append ('}');
}
diff --git a/tools/locale-builder/Driver.cs b/tools/locale-builder/Driver.cs
index 89735c4f68c..c1d73fca75f 100644
--- a/tools/locale-builder/Driver.cs
+++ b/tools/locale-builder/Driver.cs
@@ -416,21 +416,41 @@ namespace Mono.Tools.LocaleBuilder {
ni2 = (XPathNodeIterator) ni.Current.Evaluate ("dateFormats/dateFormatLength");
while (ni2.MoveNext ()) {
XPathNavigator df_nav = ni2.Current;
+ XPathNodeIterator p = df_nav.Select ("dateFormat/pattern");
+ string value = "";
+ if (p.MoveNext ())
+ value = p.Current.Value;
+ XPathNodeIterator ext = null;
switch (df_nav.GetAttribute ("type", String.Empty)) {
case "full":
- ParseFullDateFormat (df, df_nav.Value);
+ ParseFullDateFormat (df, value);
break;
case "long":
- df.LongDatePattern = df_nav.Value;
+ df.LongDatePattern = value;
+ ext = df_nav.Select ("extraPatterns/pattern");
+ if (ext.MoveNext ()) {
+ df.LongDatePatterns.Clear ();
+ do {
+ df.LongDatePatterns.Add (ext.Current.Value);
+ } while (ext.MoveNext ());
+ }
break;
case "short":
- df.ShortDatePattern = df_nav.Value;
+ df.ShortDatePattern = value;
+ ext = df_nav.Select ("extraPatterns/pattern");
+ if (ext.MoveNext ()) {
+ df.ShortDatePatterns.Clear ();
+ do {
+ df.ShortDatePatterns.Add (ext.Current.Value);
+ } while (ext.MoveNext ());
+ }
+
break;
case "year_month":
- df.YearMonthPattern = df_nav.Value;
+ df.YearMonthPattern = value;
break;
case "month_day":
- df.MonthDayPattern = df_nav.Value;
+ df.MonthDayPattern = value;
break;
}
}
@@ -438,12 +458,31 @@ namespace Mono.Tools.LocaleBuilder {
ni2 = (XPathNodeIterator) ni.Current.Evaluate ("timeFormats/timeFormatLength");
while (ni2.MoveNext ()) {
XPathNavigator df_nav = ni2.Current;
+ XPathNodeIterator p = df_nav.Select ("timeFormat/pattern");
+ string value = "";
+ if (p.MoveNext ())
+ value = p.Current.Value;
+ XPathNodeIterator ext = null;
switch (df_nav.GetAttribute ("type", String.Empty)) {
case "long":
- df.LongTimePattern = df_nav.Value.Replace ('a', 't');
+ df.LongTimePattern = value.Replace ('a', 't');
+ ext = df_nav.Select ("extraPatterns/pattern");
+ if (ext.MoveNext ()) {
+ df.LongTimePatterns.Clear ();
+ do {
+ df.LongTimePatterns.Add (ext.Current.Value);
+ } while (ext.MoveNext ());
+ }
break;
case "short":
- df.ShortTimePattern = df_nav.Value.Replace ('a', 't');
+ df.ShortTimePattern = value.Replace ('a', 't');
+ ext = df_nav.Select ("extraPatterns/pattern");
+ if (ext.MoveNext ()) {
+ df.ShortTimePatterns.Clear ();
+ do {
+ df.ShortTimePatterns.Add (ext.Current.Value);
+ } while (ext.MoveNext ());
+ }
break;
}
}