From 888e9acdbb5360c9522a032e67b62ae13e65f1c3 Mon Sep 17 00:00:00 2001 From: Marek Safar Date: Tue, 26 Mar 2013 19:17:10 +0100 Subject: Update number separators for mexican and similar locales. Fixes #8084 --- tools/locale-builder/Driver.cs | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'tools') 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 cultures; Dictionary region_currency; Dictionary currency_fractions; + Dictionary 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 (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; -- cgit v1.2.3