示例#1
0
        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());
        }