internal bool LoadInfo(CldrLoader loader, XmlReader reader) { var text = reader.GetAttribute("gdp"); if (text.HasValue()) { long.TryParse(text, NumberStyles.Integer, CultureInfo.InvariantCulture, out _gdp); } text = reader.GetAttribute("population"); if (text.HasValue()) { long.TryParse(text, NumberStyles.Integer, CultureInfo.InvariantCulture, out _population); } reader.LoadElements(loader, LanguagePopulation); return(true); }
private bool LanguagePopulation(XmlReader reader, CldrLoader loader) { if (reader.Name == "languagePopulation") { var type = reader.GetAttribute("type"); float population; var perc = reader.GetAttribute("populationPercent"); if (perc.HasValue() && float.TryParse(perc, NumberStyles.Float, CultureInfo.InvariantCulture, out population)) { LanguagePopulation lang = new LanguagePopulation(); lang.Locale = loader.GetLocaleInfo(type); lang.Percent = population; var sts = reader.GetAttribute("officialStatus"); if (sts.HasValue()) { switch (sts) { case "official": lang.OfficialStatus = LanguageOfficialStatus.Official; break; case "official_regional": lang.OfficialStatus = LanguageOfficialStatus.OfficialRegional; break; case "de_facto_official": lang.OfficialStatus = LanguageOfficialStatus.DeFactoOfficial; break; default: lang.OfficialStatus = (LanguageOfficialStatus)5; break; } } _languages.Add(lang); } } return(false); }
internal bool LoadUses(XmlReader reader, CldrLoader loader) { if (reader.Name == "usesMetazone") { int count = reader.AttributeCount; var uses = new DateRangeValue <MetaTimeZone>(); for (int i = 0; i < count; i++) { reader.MoveToAttribute(i); var val = reader.Value; if (!val.HasValue()) { continue; } switch (reader.Name) { case "from": uses.From = ParseDate(val); break; case "to": uses.To = ParseDate(val); break; case "mzone": uses.Value = loader.GetMetaZone(val); break; } } reader.MoveToElement(); if (uses.Value != null) { _uses.Add(uses); } } return(false); }
internal CldrLocale(CldrLoader loader, CldrLocale parent, LanguageInfo info) : base(loader, parent, info.Code) { _info = info; info.Locale = this; }