diff --git a/src/Humanizer.Tests.Shared/Localisation/bg/NumberToWordsTests.cs b/src/Humanizer.Tests.Shared/Localisation/bg/NumberToWordsTests.cs index 814caea09..4a90bda45 100644 --- a/src/Humanizer.Tests.Shared/Localisation/bg/NumberToWordsTests.cs +++ b/src/Humanizer.Tests.Shared/Localisation/bg/NumberToWordsTests.cs @@ -8,7 +8,7 @@ public class NumberToWordsTests [Theory] [InlineData(0, "нула")] - [InlineData(1, "един")] + [InlineData(1, "едно")] [InlineData(10, "десет")] [InlineData(11, "единадесет")] [InlineData(12, "дванадесет")] @@ -48,6 +48,7 @@ public class NumberToWordsTests [InlineData(4000210, "четири милиона двеста и десет")] [InlineData(5200, "пет хиляди и двеста")] [InlineData(1125000, "един милион и сто двадесет и пет хиляди")] + [InlineData(1000000000, "един милиард")] public void ToWordsBg(long number, string expected) { Assert.Equal(expected, number.ToWords()); diff --git a/src/Humanizer/Localisation/NumberToWords/BulgarianNumberToWordsConverter.cs b/src/Humanizer/Localisation/NumberToWords/BulgarianNumberToWordsConverter.cs index e6a908f5f..679c8512c 100644 --- a/src/Humanizer/Localisation/NumberToWords/BulgarianNumberToWordsConverter.cs +++ b/src/Humanizer/Localisation/NumberToWords/BulgarianNumberToWordsConverter.cs @@ -7,7 +7,7 @@ internal class BulgarianNumberToWordsConverter : GenderedNumberToWordsConverter { private static readonly string[] UnitsMap = { - "нула", "един", "две", "три", "четири", "пет", "шест", "седем", "осем", "девет", "десет", "единадесет", + "нула", "едно", "две", "три", "четири", "пет", "шест", "седем", "осем", "девет", "десет", "единадесет", "дванадесет", "тринадесет", "четиринадесет", "петнадесет", "шестнадесет", "седемнадесет", "осемнадесет", "деветнадесет" }; @@ -24,14 +24,12 @@ internal class BulgarianNumberToWordsConverter : GenderedNumberToWordsConverter "осемстотин", "деветстотин" }; - private static readonly string[] HundredsOrdinalMap = { String.Empty, "стот", "двест", "трист", "четиристот", "петстот", "шестстот", "седемстот", "осемстот", "деветстот" }; - private static readonly string[] UnitsOrdinal = { string.Empty, "първ", "втор", "трет", "четвърт", "пет", "шест", "седм", "осм", "девeт", "десeт", @@ -77,8 +75,7 @@ private string Convert(long input, GrammaticalGender gender, bool isOrdinal, boo if ((input / 1000000000) > 0) { - parts.Add(Convert(input / 1000000000, gender, false) + - $" {(input < 2000000000 ? "милиард" : "милиарда")}"); + parts.Add(input < 2000000000 ? "един милиард" : Convert(input / 1000000000, gender, false) + " милиарда"); if (isOrdinal) lastOrdinalSubstitution = Convert(input / 1000000000, gender, false) + " милиард" + @@ -88,7 +85,7 @@ private string Convert(long input, GrammaticalGender gender, bool isOrdinal, boo if ((input / 1000000) > 0) { - parts.Add(Convert(input / 1000000, gender, false) + $" {(input < 2000000 ? "милион" : "милиона")}"); + parts.Add(input < 2000000 ? "един милион" : Convert(input / 1000000, gender, false) + " милиона"); if (isOrdinal) lastOrdinalSubstitution = Convert(input / 1000000, gender, false) + " милион" +