Skip to content

Commit 42b4a1d

Browse files
Add Sinhala (si_LK) locale (#360)
1 parent c3a124c commit 42b4a1d

3 files changed

Lines changed: 242 additions & 0 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ size or throughput. It is localized to:
3838
- Polish
3939
- Russian
4040
- Simplified Chinese
41+
- Sinhala
4142
- Slovak
4243
- Slovenian
4344
- Spanish
Lines changed: 231 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,231 @@
1+
# Sinhala (si_LK) translations for the humanize package.
2+
# This file is distributed under the same license as the humanize package.
3+
#
4+
msgid ""
5+
msgstr ""
6+
"Project-Id-Version: humanize\n"
7+
"Report-Msgid-Bugs-To: \n"
8+
"POT-Creation-Date: 2026-07-25 11:51+0530\n"
9+
"PO-Revision-Date: 2026-07-25 11:51+0530\n"
10+
"Last-Translator: Ravindu Pabasara Karunarathna\n"
11+
"Language-Team: Sinhala\n"
12+
"Language: si_LK\n"
13+
"MIME-Version: 1.0\n"
14+
"Content-Type: text/plain; charset=UTF-8\n"
15+
"Content-Transfer-Encoding: 8bit\n"
16+
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
17+
18+
#: src/humanize/filesize.py:96
19+
#, python-format
20+
msgid "%d Byte"
21+
msgstr "බයිට් %d"
22+
23+
#: src/humanize/filesize.py:99
24+
#, python-format
25+
msgid "%d Bytes"
26+
msgstr "බයිට් %d"
27+
28+
#: src/humanize/number.py:181
29+
msgid "thousand"
30+
msgid_plural "thousand"
31+
msgstr[0] "දහස"
32+
msgstr[1] "දහස"
33+
34+
#: src/humanize/number.py:182
35+
msgid "million"
36+
msgid_plural "million"
37+
msgstr[0] "මිලියන"
38+
msgstr[1] "මිලියන"
39+
40+
#: src/humanize/number.py:183
41+
msgid "billion"
42+
msgid_plural "billion"
43+
msgstr[0] "බිලියන"
44+
msgstr[1] "බිලියන"
45+
46+
#: src/humanize/number.py:184
47+
msgid "trillion"
48+
msgid_plural "trillion"
49+
msgstr[0] "ට්‍රිලියන"
50+
msgstr[1] "ට්‍රිලියන"
51+
52+
#: src/humanize/number.py:185
53+
msgid "quadrillion"
54+
msgid_plural "quadrillion"
55+
msgstr[0] "ක්වඩ්‍රිලියන"
56+
msgstr[1] "ක්වඩ්‍රිලියන"
57+
58+
#: src/humanize/number.py:186
59+
msgid "quintillion"
60+
msgid_plural "quintillion"
61+
msgstr[0] "ක්වින්ටිලියන"
62+
msgstr[1] "ක්වින්ටිලියන"
63+
64+
#: src/humanize/number.py:187
65+
msgid "sextillion"
66+
msgid_plural "sextillion"
67+
msgstr[0] "සෙක්ස්ටිලියන"
68+
msgstr[1] "සෙක්ස්ටිලියන"
69+
70+
#: src/humanize/number.py:188
71+
msgid "septillion"
72+
msgid_plural "septillion"
73+
msgstr[0] "සෙප්ටිලියන"
74+
msgstr[1] "සෙප්ටිලියන"
75+
76+
#: src/humanize/number.py:189
77+
msgid "octillion"
78+
msgid_plural "octillion"
79+
msgstr[0] "ඔක්ටිලියන"
80+
msgstr[1] "ඔක්ටිලියන"
81+
82+
#: src/humanize/number.py:190
83+
msgid "nonillion"
84+
msgid_plural "nonillion"
85+
msgstr[0] "නොනිලියන"
86+
msgstr[1] "නොනිලියන"
87+
88+
#: src/humanize/number.py:191
89+
msgid "decillion"
90+
msgid_plural "decillion"
91+
msgstr[0] "ඩෙසිලියන"
92+
msgstr[1] "ඩෙසිලියන"
93+
94+
#: src/humanize/number.py:192
95+
msgid "googol"
96+
msgid_plural "googol"
97+
msgstr[0] "ගූගොල්"
98+
msgstr[1] "ගූගොල්"
99+
100+
#: src/humanize/time.py:168
101+
#, python-format
102+
msgid "%d microsecond"
103+
msgid_plural "%d microseconds"
104+
msgstr[0] "මයික්‍රො තත්පර %d"
105+
msgstr[1] "මයික්‍රො තත්පර %d"
106+
107+
#: src/humanize/time.py:177
108+
#, python-format
109+
msgid "%d millisecond"
110+
msgid_plural "%d milliseconds"
111+
msgstr[0] "මිලි තත්පර %d"
112+
msgstr[1] "මිලි තත්පර %d"
113+
114+
#: src/humanize/time.py:180 src/humanize/time.py:296
115+
msgid "a moment"
116+
msgstr "මොහොතක්"
117+
118+
#: src/humanize/time.py:183
119+
msgid "a second"
120+
msgstr "තත්පරය"
121+
122+
#: src/humanize/time.py:186
123+
#, python-format
124+
msgid "%d second"
125+
msgid_plural "%d seconds"
126+
msgstr[0] "තත්පර %d"
127+
msgstr[1] "තත්පර %d"
128+
129+
#: src/humanize/time.py:191
130+
msgid "a minute"
131+
msgstr "විනාඩිය"
132+
133+
#: src/humanize/time.py:194 src/humanize/time.py:201
134+
msgid "an hour"
135+
msgstr "පැය"
136+
137+
#: src/humanize/time.py:196
138+
#, python-format
139+
msgid "%d minute"
140+
msgid_plural "%d minutes"
141+
msgstr[0] "විනාඩි %d"
142+
msgstr[1] "විනාඩි %d"
143+
144+
#: src/humanize/time.py:204 src/humanize/time.py:210
145+
msgid "a day"
146+
msgstr "දවස"
147+
148+
#: src/humanize/time.py:206
149+
#, python-format
150+
msgid "%d hour"
151+
msgid_plural "%d hours"
152+
msgstr[0] "පැය %d"
153+
msgstr[1] "පැය %d"
154+
155+
#: src/humanize/time.py:213 src/humanize/time.py:216
156+
#, python-format
157+
msgid "%d day"
158+
msgid_plural "%d days"
159+
msgstr[0] "දින %d"
160+
msgstr[1] "දින %d"
161+
162+
#: src/humanize/time.py:219
163+
msgid "a month"
164+
msgstr "මාසය"
165+
166+
#: src/humanize/time.py:222 src/humanize/time.py:228
167+
msgid "a year"
168+
msgstr "අවුරුද්ද"
169+
170+
#: src/humanize/time.py:224
171+
#, python-format
172+
msgid "%d month"
173+
msgid_plural "%d months"
174+
msgstr[0] "මාස %d"
175+
msgstr[1] "මාස %d"
176+
177+
#: src/humanize/time.py:231 src/humanize/time.py:246
178+
#, python-format
179+
msgid "1 year, %d day"
180+
msgid_plural "1 year, %d days"
181+
msgstr[0] "අවුරුද්දයි දින %d"
182+
msgstr[1] "අවුරුද්දයි දින %d"
183+
184+
#: src/humanize/time.py:235
185+
msgid "1 year, 1 month"
186+
msgstr "අවුරුද්දයි මාසය"
187+
188+
#: src/humanize/time.py:239 src/humanize/time.py:248
189+
#, python-format
190+
msgid "%d year"
191+
msgid_plural "%d years"
192+
msgstr[0] "අවුරුදු %d"
193+
msgstr[1] "අවුරුදු %d"
194+
195+
#: src/humanize/time.py:242
196+
#, python-format
197+
msgid "1 year, %d month"
198+
msgid_plural "1 year, %d months"
199+
msgstr[0] "අවුරුද්දයි මාස %d"
200+
msgstr[1] "අවුරුද්දයි මාස %d"
201+
202+
#: src/humanize/time.py:293
203+
#, python-format
204+
msgid "%s from now"
205+
msgstr "තව %sකින්"
206+
207+
#: src/humanize/time.py:293
208+
#, python-format
209+
msgid "%s ago"
210+
msgstr "%sකට පෙර"
211+
212+
#: src/humanize/time.py:297
213+
msgid "now"
214+
msgstr "දැන්"
215+
216+
#: src/humanize/time.py:343
217+
msgid "today"
218+
msgstr "අද"
219+
220+
#: src/humanize/time.py:346
221+
msgid "tomorrow"
222+
msgstr "හෙට"
223+
224+
#: src/humanize/time.py:349
225+
msgid "yesterday"
226+
msgstr "ඊයේ"
227+
228+
#: src/humanize/time.py:671
229+
#, python-format
230+
msgid "%s and %s"
231+
msgstr "%sයි %sක්"

tests/test_i18n.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ def test_i18n() -> None:
3333
assert humanize.ordinal(5) == "5ый"
3434
assert humanize.precisedelta(one_min_three_seconds) == "1 минута и 7 секунд"
3535

36+
humanize.i18n.activate("si_LK")
37+
assert humanize.naturaltime(three_seconds) == "තත්පර 3කට පෙර"
38+
assert humanize.precisedelta(one_min_three_seconds) == "විනාඩි 1යි තත්පර 7ක්"
39+
3640
except FileNotFoundError:
3741
pytest.skip("Generate .mo with scripts/generate-translation-binaries.sh")
3842

@@ -100,6 +104,10 @@ def test_naturaldelta() -> None:
100104
("it_IT", 1_200_000, "1,2 milioni"),
101105
("it_IT", 1_000_000_000, "1,0 miliardo"),
102106
("it_IT", 3_500_000_000, "3,5 miliardi"),
107+
# Sinhala uses borrowed scale words with a dot decimal separator
108+
("si_LK", 1_000_000, "1.0 මිලියන"),
109+
("si_LK", 1_200_000, "1.2 මිලියන"),
110+
("si_LK", 3_500_000_000, "3.5 බිලියන"),
103111
# Spanish uses dot as decimal separator
104112
("es_ES", 1_000_000, "1.0 millón"),
105113
("es_ES", 3_500_000, "3.5 millones"),
@@ -176,6 +184,8 @@ def test_intword_i18n(locale: str, number: int, expected_result: str) -> None:
176184
[
177185
("fr_FR", 1, "1 octet"),
178186
("fr_FR", 42, "42 octets"),
187+
("si_LK", 1, "බයිට් 1"),
188+
("si_LK", 42, "බයිට් 42"),
179189
("fr_FR", 42_000, "42.0 Ko"),
180190
("fr_FR", 42_000_000, "42.0 Mo"),
181191
("fr_FR", 42_000_000_000, "42.0 Go"),

0 commit comments

Comments
 (0)