Update lang_PL.py

- typo in "kwadryliard"
- expanded long scale up to decilliard (10^63)
This commit is contained in:
Marek Madejski
2018-11-30 09:42:15 +01:00
committed by GitHub
parent 58613e0a18
commit 562e446716

View File

@@ -70,16 +70,27 @@ HUNDREDS = {
} }
THOUSANDS = { THOUSANDS = {
1: ('tysiąc', 'tysiące', 'tysięcy'), # 10^3 1: ('tysiąc', 'tysiące', 'tysięcy'), # 10^3
2: ('milion', 'miliony', 'milionów'), # 10^6 2: ('milion', 'miliony', 'milionów'), # 10^6
3: ('miliard', 'miliardy', 'miliardów'), # 10^9 3: ('miliard', 'miliardy', 'miliardów'), # 10^9
4: ('bilion', 'biliony', 'bilionów'), # 10^12 4: ('bilion', 'biliony', 'bilionów'), # 10^12
5: ('biliard', 'biliardy', 'biliardów'), # 10^15 5: ('biliard', 'biliardy', 'biliardów'), # 10^15
6: ('trylion', 'tryliony', 'trylionów'), # 10^18 6: ('trylion', 'tryliony', 'trylionów'), # 10^18
7: ('tryliard', 'tryliardy', 'tryliardów'), # 10^21 7: ('tryliard', 'tryliardy', 'tryliardów'), # 10^21
8: ('kwadrylion', 'kwadryliony', 'kwadrylionów'), # 10^24 8: ('kwadrylion', 'kwadryliony', 'kwadrylionów'), # 10^24
9: ('kwaryliard', 'kwadryliardy', 'kwadryliardów'), # 10^27 9: ('kwadryliard', 'kwadryliardy', 'kwadryliardów'), # 10^27
10: ('kwintylion', 'kwintyliony', 'kwintylionów'), # 10^30 10: ('kwintylion', 'kwintyliony', 'kwintylionów'), # 10^30
11: ('kwintyliard', 'kwintyliardy', 'kwintyliardów'), # 10^33
12: ('sekstylion', 'sekstyliony', 'sekstylionów'), # 10^36
13: ('sekstyliard', 'sekstyliardy', 'sekstyliardów'), # 10^39
14: ('septylion', 'septyliony', 'septylionów'), # 10^42
15: ('septyliard', 'septyliardy', 'septyliardów'), # 10^45
16: ('oktylion', 'oktyliony', 'oktylionów'), # 10^48
17: ('oktyliard', 'oktyliardy', 'oktyliardów'), # 10^51
18: ('nonylion', 'nonyliony', 'nonylionów'), # 10^54
19: ('nonyliard', 'nonyliardy', 'nonyliardów'), # 10^57
20: ('decylion', 'decyliony', 'decylionów'), # 10^60
21: ('decyliard', 'decyliardy', 'decyliardów'), # 10^63
} }
@@ -92,11 +103,11 @@ class Num2Word_PL(Num2Word_Base):
('euro', 'euro', 'euro'), ('cent', 'centy', 'centów') ('euro', 'euro', 'euro'), ('cent', 'centy', 'centów')
), ),
} }
def setup(self): def setup(self):
self.negword = "minus" self.negword = "minus"
self.pointword = "przecinek" self.pointword = "przecinek"
def to_cardinal(self, number): def to_cardinal(self, number):
n = str(number).replace(',', '.') n = str(number).replace(',', '.')
if '.' in n: if '.' in n:
@@ -108,7 +119,7 @@ class Num2Word_PL(Num2Word_Base):
) )
else: else:
return self._int2word(int(n)) return self._int2word(int(n))
def pluralize(self, n, forms): def pluralize(self, n, forms):
if n == 1: if n == 1:
form = 0 form = 0
@@ -117,33 +128,33 @@ class Num2Word_PL(Num2Word_Base):
else: else:
form = 2 form = 2
return forms[form] return forms[form]
def to_ordinal(self, number): def to_ordinal(self, number):
raise NotImplementedError() raise NotImplementedError()
def _int2word(self, n): def _int2word(self, n):
if n == 0: if n == 0:
return ZERO[0] return ZERO[0]
words = [] words = []
chunks = list(splitbyx(str(n), 3)) chunks = list(splitbyx(str(n), 3))
i = len(chunks) i = len(chunks)
for x in chunks: for x in chunks:
i -= 1 i -= 1
n1, n2, n3 = get_digits(x) n1, n2, n3 = get_digits(x)
if n3 > 0: if n3 > 0:
words.append(HUNDREDS[n3][0]) words.append(HUNDREDS[n3][0])
if n2 > 1: if n2 > 1:
words.append(TWENTIES[n2][0]) words.append(TWENTIES[n2][0])
if n2 == 1: if n2 == 1:
words.append(TENS[n1][0]) words.append(TENS[n1][0])
elif n1 > 0 and not (i > 0 and x == 1): elif n1 > 0 and not (i > 0 and x == 1):
words.append(ONES[n1][0]) words.append(ONES[n1][0])
if i > 0: if i > 0:
words.append(self.pluralize(x, THOUSANDS[i])) words.append(self.pluralize(x, THOUSANDS[i]))
return ' '.join(words) return ' '.join(words)