diff options
author | Marek Safar <marek.safar@gmail.com> | 2013-03-26 22:17:10 +0400 |
---|---|---|
committer | Marek Safar <marek.safar@gmail.com> | 2013-03-26 22:18:55 +0400 |
commit | 888e9acdbb5360c9522a032e67b62ae13e65f1c3 (patch) | |
tree | 3b464acb075a59d32fe1f09905c07202b29166d3 /tools/locale-builder/Driver.cs | |
parent | 0b62a137ab85ab36bb200c8e1024f4ac391553a6 (diff) |
Update number separators for mexican and similar locales. Fixes #8084
Diffstat (limited to 'tools/locale-builder/Driver.cs')
-rw-r--r-- | tools/locale-builder/Driver.cs | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/tools/locale-builder/Driver.cs b/tools/locale-builder/Driver.cs index 0cbf1101499..11b0980667b 100644 --- a/tools/locale-builder/Driver.cs +++ b/tools/locale-builder/Driver.cs @@ -71,6 +71,7 @@ namespace Mono.Tools.LocaleBuilder List<CultureInfoEntry> cultures; Dictionary<string, string> region_currency; Dictionary<string, string> currency_fractions; + Dictionary<string, string> extra_parent_locales; // The lang is the language that display names will be displayed in public string Lang @@ -261,6 +262,19 @@ namespace Mono.Tools.LocaleBuilder region_currency.Add (entry.Attributes["iso3166"].Value, child.Attributes["iso4217"].Value); } + // Parent locales + extra_parent_locales = new Dictionary<string, string> (StringComparer.OrdinalIgnoreCase); + foreach (XmlNode entry in supplemental.SelectNodes ("supplementalData/parentLocales/parentLocale")) { + var parent = entry.Attributes["parent"].Value; + + if (parent == "root") + continue; + + var locales = entry.Attributes["locales"].Value; + foreach (var locale in locales.Split (' ')) + extra_parent_locales.Add (locale, parent); + } + var lcdids = GetXmlDocument ("lcids.xml"); foreach (XmlNode lcid in lcdids.SelectNodes ("lcids/lcid")) { var name = lcid.Attributes["name"].Value; @@ -837,7 +851,17 @@ namespace Mono.Tools.LocaleBuilder fname += part; - var xml = GetXmlDocument (Path.Combine (data_root, "main", fname + ".xml")); + XmlDocument xml; + string extra; + if (extra_parent_locales.TryGetValue (fname, out extra)) { + xml = GetXmlDocument (Path.Combine (data_root, "main", extra + ".xml")); + if (doc == null) + doc = xml; + + Import (xml, data); + } + + xml = GetXmlDocument (Path.Combine (data_root, "main", fname + ".xml")); if (doc == null) doc = xml; |