private void WriteCatalog(TextWriter writer, POCatalog catalog, CultureInfo?culture) { var now = DateTimeOffset.Now; try { catalog.Encoding = Encoding.GetEncoding(writer.Encoding.CodePage).BodyName; } catch (NotSupportedException) { catalog.Encoding = "(n/a)"; } if (culture != null) { catalog.Language = culture.Name.Replace('-', '_'); if (PluralFormHelper.TryGetPluralForm(culture, out var pluralFormCount, out var pluralFormSelector)) { (catalog.PluralFormCount, catalog.PluralFormSelector) = (pluralFormCount, pluralFormSelector); for (int i = 0, n = catalog.Count; i < n; i++) { EnsureTranslationCount(catalog[i], pluralFormCount); } }
private string GetName(TimeSpan period) { string name; if (period.TotalDays < 1) { name = string.Format(NAME_FORMAT, Period.Hours, PluralFormHelper.GetPluralForm(Period.Hours, AppResources.HoursFirstForm, AppResources.HoursSecondForm, AppResources.HoursThirdForm)); } else if (period.Days < 30) { name = string.Format(NAME_FORMAT, Period.Days, PluralFormHelper.GetPluralForm(Period.Days, AppResources.DayFirstForm, AppResources.DaySecondForm, AppResources.DayThirdForm)); } else { var months = (int)Math.Floor(Period.Days / 30f); name = string.Format(NAME_FORMAT, months, PluralFormHelper.GetPluralForm(months, AppResources.MonthFirstForm, AppResources.MonthSecondForm, AppResources.MonthThirdForm)); } return(name); }