X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=tools%2Flocale-builder%2FDriver.cs;h=3907485baf297ebbf7bac4d6c0a66c013e42ff3d;hb=e2a31b612868ee44b269f517ee37d12c06ed9151;hp=1a44d5eb7e19ef4a4ba5fe1ef74cd343dc0595a0;hpb=2ab02d99c44321dfc73fd10bee7a6fbf7016116b;p=mono.git diff --git a/tools/locale-builder/Driver.cs b/tools/locale-builder/Driver.cs index 1a44d5eb7e1..3907485baf2 100644 --- a/tools/locale-builder/Driver.cs +++ b/tools/locale-builder/Driver.cs @@ -174,10 +174,6 @@ namespace Mono.Tools.LocaleBuilder writer.WriteLine ("{0}: {1}", "NumberGroupSeparator", nf.NumberGroupSeparator); Dump (writer, nf.NumberGroupSizes, "NumberGroupSizes", true); writer.WriteLine ("{0}: {1}", "NumberNegativePattern", nf.NumberNegativePattern); - writer.WriteLine ("{0}: {1}", "PercentDecimalDigits", nf.PercentDecimalDigits); - writer.WriteLine ("{0}: {1}", "PercentDecimalSeparator", nf.PercentDecimalSeparator); - writer.WriteLine ("{0}: {1}", "PercentGroupSeparator", nf.PercentGroupSeparator); - Dump (writer, nf.PercentGroupSizes, "PercentGroupSizes", true); writer.WriteLine ("{0}: {1}", "PercentNegativePattern", nf.PercentNegativePattern); writer.WriteLine ("{0}: {1}", "PercentPositivePattern", nf.PercentPositivePattern); writer.WriteLine ("{0}: {1}", "PercentSymbol", nf.PercentSymbol); @@ -935,12 +931,10 @@ namespace Mono.Tools.LocaleBuilder // We don't add 3 as it's for some arabic states only switch (data.ThreeLetterISOLanguageName) { case "amh": - data.NumberFormatEntry.NumberDecimalDigits = - data.NumberFormatEntry.PercentDecimalDigits = 1; + data.NumberFormatEntry.NumberDecimalDigits = 1; break; default: - data.NumberFormatEntry.NumberDecimalDigits = - data.NumberFormatEntry.PercentDecimalDigits = 2; + data.NumberFormatEntry.NumberDecimalDigits = 2; break; } @@ -973,7 +967,7 @@ namespace Mono.Tools.LocaleBuilder string calendar; // Default calendar is for now always "gregorian" - switch (ci.Name) { + switch (ci.OriginalName) { case "th": case "th-TH": calendar = "buddhist"; ci.CalendarType = CalendarType.ThaiBuddhist; // typeof (ThaiBuddhistCalendar); @@ -1006,6 +1000,12 @@ namespace Mono.Tools.LocaleBuilder nodes = node.SelectNodes ("months/monthContext[@type='stand-alone']/monthWidth[@type='wide']/month"); ProcessAllNodes (nodes, df.MonthNames, AddOrReplaceValue); + if (df.MonthNames != null) { + if (ci.Name == "sv" || ci.Name == "sv-SE") { + ToLower (df.MonthNames); + } + } + // Apply global rule first if (ci.Name == "ja" || ci.Name == "ja-JP") { // Use common number style @@ -1016,6 +1016,12 @@ namespace Mono.Tools.LocaleBuilder ProcessAllNodes (nodes, df.AbbreviatedMonthNames, AddOrReplaceValue); } + if (df.AbbreviatedMonthNames != null) { + if (ci.Name == "sv" || ci.Name == "sv-SE") { + ToLower (df.AbbreviatedMonthNames); + } + } + nodes = node.SelectNodes ("months/monthContext[@type='format']/monthWidth[@type='wide']/month"); if (nodes != null) { ProcessAllNodes (nodes, df.MonthGenitiveNames, AddOrReplaceValue); @@ -1033,6 +1039,12 @@ namespace Mono.Tools.LocaleBuilder nodes = node.SelectNodes ("days/dayContext[@type='stand-alone']/dayWidth[@type='abbreviated']/day"); ProcessAllNodes (nodes, df.AbbreviatedDayNames, AddOrReplaceDayValue); + if (df.AbbreviatedDayNames != null) { + if (ci.Name == "sv" || ci.Name == "sv-SE") { + ToLower (df.AbbreviatedDayNames); + } + } + // TODO: This is not really ShortestDayNames as .NET uses it // Apply global rules first nodes = node.SelectNodes ("days/dayContext[@type='format']/dayWidth[@type='narrow']/day"); @@ -1073,10 +1085,14 @@ namespace Mono.Tools.LocaleBuilder // Apply global rule first el = node.SelectSingleNode ("dayPeriods/dayPeriodContext/dayPeriodWidth[@type='wide']/dayPeriod[@type='am']"); + // Manual edits for exact .net compatiblity switch (ci.Name) { case "en-AU": df.AMDesignator = "AM"; break; + case "en-NZ": + df.AMDesignator = "a.m."; + break; default: if (el != null) df.AMDesignator = el.InnerText; @@ -1092,6 +1108,9 @@ namespace Mono.Tools.LocaleBuilder case "en-AU": df.PMDesignator = "PM"; break; + case "en-NZ": + df.PMDesignator = "p.m."; + break; default: if (el != null) df.PMDesignator = el.InnerText; @@ -1103,12 +1122,6 @@ namespace Mono.Tools.LocaleBuilder node = doc.SelectSingleNode ("ldml/numbers/symbols"); if (node != null) { - el = node.SelectSingleNode ("decimal"); - if (el != null) { - ni.NumberDecimalSeparator = - ni.PercentDecimalSeparator = el.InnerText; - } - el = node.SelectSingleNode ("plusSign"); if (el != null) ni.PositiveSign = el.InnerText; @@ -1157,6 +1170,7 @@ namespace Mono.Tools.LocaleBuilder // .net has incorrect separators for some countries and we want to be compatible switch (ci.Name) { case "es-ES": + case "es": // es-ES does not have group separator but .net has '.' value = "."; break; @@ -1172,9 +1186,20 @@ namespace Mono.Tools.LocaleBuilder } if (value != null) { - ni.NumberGroupSeparator = - ni.PercentGroupSeparator = - ni.CurrencyGroupSeparator = value; + ni.NumberGroupSeparator = ni.CurrencyGroupSeparator = value; + } + } + + static void ToLower (string[] values) + { + if (values == null) + return; + + for (int i = 0; i < values.Length; ++i) { + if (values [i] == null) + continue; + + values [i] = values [i].ToLower (); } }