static BgNumberSpeller() { var digitsSpeller = new DigitSpeller(); var numTo19Speller = new NumbersTo19Speller(digitsSpeller); var tensSpeller = new TensSpeller(numTo19Speller); var hundredsSpeller = new HundredsSpeller(tensSpeller); var thousandsSpeller = new GenericSpeller( childSpeller: hundredsSpeller, settings: new GenericSpellerSettings(1_000, "хиляда", " хиляди", Gender.Female, "хиляден", "хилядна", "хилядно")); var millionsSpeller = new GenericSpeller( childSpeller: thousandsSpeller, settings: new GenericSpellerSettings(1_000_000, "един милион", " милиона", Gender.Male, "милионен", "милионна", "милионно")); var billionsSpeller = new GenericSpeller( childSpeller: millionsSpeller, settings: new GenericSpellerSettings(1_000_000_000, "един милиард", " милиарда", Gender.Male, "милиарден", "милиардна", "милиардно")); var trillionsSpeller = new GenericSpeller( childSpeller: billionsSpeller, settings: new GenericSpellerSettings(1_000_000_000_000, "един трилион", " трилиона", Gender.Male, "трилионен", "трилионна", "трилионно")); var kvadrilionsSpeller = new GenericSpeller( childSpeller: trillionsSpeller, settings: new GenericSpellerSettings(1_000_000_000_000_000, "един квадрилион", " квадрилиона", Gender.Male, "квадрилионен", "квадрилионна", "квадрилионно")); var kvintalionsSpeller = new GenericSpeller( childSpeller: kvadrilionsSpeller, settings: new GenericSpellerSettings(1_000_000_000_000_000_000, "един квинталион", " квинталиона", Gender.Male, "квинталионен", "квинталионна", "квинталионно")); s_speller = new ZeroSpeller(kvintalionsSpeller); }
public string Spell() { var sb = new StringBuilder(); if (HundredsSpeller != null && HundredsSpeller.Value > 0) { sb.Append($"{HundredsSpeller.Spell()} hundred"); if (TensAndUnitsSpeller != null && TensAndUnitsSpeller.Value > 0) { sb.Append(" and "); } } if (TensAndUnitsSpeller?.Value > 0) { sb.Append(TensAndUnitsSpeller.Spell()); } if (BigNumberSpeller != null && BigNumberSpeller.Value > 0) { sb.Append(" ").Append(BigNumberSpeller.Spell()); } return(sb.ToString()); }