Skip to content

Commit 3b52e43

Browse files
authored
Add Swedish [sv] localization. Fix #561 (#562)
* Add Swedish [sv] localization. Fix #561
1 parent 8ef497a commit 3b52e43

File tree

4 files changed

+329
-0
lines changed

4 files changed

+329
-0
lines changed

pendulum/locales/sv/__init__.py

Whitespace-only changes.

pendulum/locales/sv/custom.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
"""
2+
sv custom locale file.
3+
"""
4+
5+
translations = {
6+
# Relative time
7+
"ago": "{} sedan",
8+
"from_now": "från nu {}",
9+
"after": "{0} efter",
10+
"before": "{0} innan",
11+
# Date formats
12+
"date_formats": {
13+
"LTS": "HH:mm:ss",
14+
"LT": "HH:mm",
15+
"L": "YYYY-MM-DD",
16+
"LL": "D MMMM YYYY",
17+
"LLL": "D MMMM YYYY, HH:mm",
18+
"LLLL": "dddd, D MMMM YYYY, HH:mm",
19+
},
20+
}

pendulum/locales/sv/locale.py

Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
from .custom import translations as custom_translations
2+
3+
4+
"""
5+
sv locale file.
6+
7+
It has been generated automatically and must not be modified directly.
8+
"""
9+
10+
11+
locale = {
12+
"plural": lambda n: "one"
13+
if ((n == n and (n == 1)) and (0 == 0 and (0 == 0)))
14+
else "other",
15+
"ordinal": lambda n: "one"
16+
if (
17+
((n % 10) == (n % 10) and (((n % 10) == 1) or ((n % 10) == 2)))
18+
and (not ((n % 100) == (n % 100) and (((n % 100) == 11) or ((n % 100) == 12))))
19+
)
20+
else "other",
21+
"translations": {
22+
"days": {
23+
"abbreviated": {
24+
0: "sön",
25+
1: "mån",
26+
2: "tis",
27+
3: "ons",
28+
4: "tors",
29+
5: "fre",
30+
6: "lör",
31+
},
32+
"narrow": {
33+
0: "S",
34+
1: "M",
35+
2: "T",
36+
3: "O",
37+
4: "T",
38+
5: "F",
39+
6: "L",
40+
},
41+
"short": {
42+
0: "sö",
43+
1: "må",
44+
2: "ti",
45+
3: "on",
46+
4: "to",
47+
5: "fr",
48+
6: "lö",
49+
},
50+
"wide": {
51+
0: "söndag",
52+
1: "måndag",
53+
2: "tisdag",
54+
3: "onsdag",
55+
4: "torsdag",
56+
5: "fredag",
57+
6: "lördag",
58+
},
59+
},
60+
"months": {
61+
"abbreviated": {
62+
1: "jan.",
63+
2: "feb.",
64+
3: "mars",
65+
4: "apr.",
66+
5: "maj",
67+
6: "juni",
68+
7: "juli",
69+
8: "aug.",
70+
9: "sep.",
71+
10: "okt.",
72+
11: "nov.",
73+
12: "dec.",
74+
},
75+
"narrow": {
76+
1: "J",
77+
2: "F",
78+
3: "M",
79+
4: "A",
80+
5: "M",
81+
6: "J",
82+
7: "J",
83+
8: "A",
84+
9: "S",
85+
10: "O",
86+
11: "N",
87+
12: "D",
88+
},
89+
"wide": {
90+
1: "januari",
91+
2: "februari",
92+
3: "mars",
93+
4: "april",
94+
5: "maj",
95+
6: "juni",
96+
7: "juli",
97+
8: "augusti",
98+
9: "september",
99+
10: "oktober",
100+
11: "november",
101+
12: "december",
102+
},
103+
},
104+
"units": {
105+
"year": {
106+
"one": "{0} år",
107+
"other": "{0} år",
108+
},
109+
"month": {
110+
"one": "{0} månad",
111+
"other": "{0} månader",
112+
},
113+
"week": {
114+
"one": "{0} vecka",
115+
"other": "{0} veckor",
116+
},
117+
"day": {
118+
"one": "{0} dygn",
119+
"other": "{0} dygn",
120+
},
121+
"hour": {
122+
"one": "{0} timme",
123+
"other": "{0} timmar",
124+
},
125+
"minute": {
126+
"one": "{0} minut",
127+
"other": "{0} minuter",
128+
},
129+
"second": {
130+
"one": "{0} sekund",
131+
"other": "{0} sekunder",
132+
},
133+
"microsecond": {
134+
"one": "{0} mikrosekund",
135+
"other": "{0} mikrosekunder",
136+
},
137+
},
138+
"relative": {
139+
"year": {
140+
"future": {
141+
"other": "om {0} år",
142+
"one": "om {0} år",
143+
},
144+
"past": {
145+
"other": "för {0} år sedan",
146+
"one": "för {0} år sedan",
147+
},
148+
},
149+
"month": {
150+
"future": {
151+
"other": "om {0} månader",
152+
"one": "om {0} månad",
153+
},
154+
"past": {
155+
"other": "för {0} månader sedan",
156+
"one": "för {0} månad sedan",
157+
},
158+
},
159+
"week": {
160+
"future": {
161+
"other": "om {0} veckor",
162+
"one": "om {0} vecka",
163+
},
164+
"past": {
165+
"other": "för {0} veckor sedan",
166+
"one": "för {0} vecka sedan",
167+
},
168+
},
169+
"day": {
170+
"future": {
171+
"other": "om {0} dagar",
172+
"one": "om {0} dag",
173+
},
174+
"past": {
175+
"other": "för {0} dagar sedan",
176+
"one": "för {0} dag sedan",
177+
},
178+
},
179+
"hour": {
180+
"future": {
181+
"other": "om {0} timmar",
182+
"one": "om {0} timme",
183+
},
184+
"past": {
185+
"other": "för {0} timmar sedan",
186+
"one": "för {0} timme sedan",
187+
},
188+
},
189+
"minute": {
190+
"future": {
191+
"other": "om {0} minuter",
192+
"one": "om {0} minut",
193+
},
194+
"past": {
195+
"other": "för {0} minuter sedan",
196+
"one": "för {0} minut sedan",
197+
},
198+
},
199+
"second": {
200+
"future": {
201+
"other": "om {0} sekunder",
202+
"one": "om {0} sekund",
203+
},
204+
"past": {
205+
"other": "för {0} sekunder sedan",
206+
"one": "för {0} sekund sedan",
207+
},
208+
},
209+
},
210+
"day_periods": {
211+
"midnight": "midnatt",
212+
"am": "fm",
213+
"pm": "em",
214+
"morning1": "på morgonen",
215+
"morning2": "på förmiddagen",
216+
"afternoon1": "på eftermiddagen",
217+
"evening1": "på kvällen",
218+
"night1": "på natten",
219+
},
220+
},
221+
"custom": custom_translations,
222+
}

tests/localization/test_sv.py

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
from __future__ import annotations
2+
3+
import pendulum
4+
5+
6+
locale = "sv"
7+
8+
9+
def test_diff_for_humans():
10+
with pendulum.test(pendulum.datetime(2016, 8, 29)):
11+
diff_for_humans()
12+
13+
14+
def diff_for_humans():
15+
d = pendulum.now().subtract(seconds=1)
16+
assert d.diff_for_humans(locale=locale) == "för 1 sekund sedan"
17+
18+
d = pendulum.now().subtract(seconds=2)
19+
assert d.diff_for_humans(locale=locale) == "för 2 sekunder sedan"
20+
21+
d = pendulum.now().subtract(seconds=5)
22+
assert d.diff_for_humans(locale=locale) == "för 5 sekunder sedan"
23+
24+
d = pendulum.now().subtract(seconds=21)
25+
assert d.diff_for_humans(locale=locale) == "för 21 sekunder sedan"
26+
27+
d = pendulum.now().subtract(minutes=1)
28+
assert d.diff_for_humans(locale=locale) == "för 1 minut sedan"
29+
30+
d = pendulum.now().subtract(minutes=2)
31+
assert d.diff_for_humans(locale=locale) == "för 2 minuter sedan"
32+
33+
d = pendulum.now().subtract(minutes=5)
34+
assert d.diff_for_humans(locale=locale) == "för 5 minuter sedan"
35+
36+
d = pendulum.now().subtract(hours=1)
37+
assert d.diff_for_humans(locale=locale) == "för 1 timme sedan"
38+
39+
d = pendulum.now().subtract(hours=2)
40+
assert d.diff_for_humans(locale=locale) == "för 2 timmar sedan"
41+
42+
d = pendulum.now().subtract(hours=5)
43+
assert d.diff_for_humans(locale=locale) == "för 5 timmar sedan"
44+
45+
d = pendulum.now().subtract(days=1)
46+
assert d.diff_for_humans(locale=locale) == "för 1 dag sedan"
47+
48+
d = pendulum.now().subtract(days=2)
49+
assert d.diff_for_humans(locale=locale) == "för 2 dagar sedan"
50+
51+
d = pendulum.now().subtract(days=5)
52+
assert d.diff_for_humans(locale=locale) == "för 5 dagar sedan"
53+
54+
d = pendulum.now().subtract(weeks=1)
55+
assert d.diff_for_humans(locale=locale) == "för 1 vecka sedan"
56+
57+
d = pendulum.now().subtract(weeks=2)
58+
assert d.diff_for_humans(locale=locale) == "för 2 veckor sedan"
59+
60+
d = pendulum.now().subtract(months=1)
61+
assert d.diff_for_humans(locale=locale) == "för 1 månad sedan"
62+
63+
d = pendulum.now().subtract(months=2)
64+
assert d.diff_for_humans(locale=locale) == "för 2 månader sedan"
65+
66+
d = pendulum.now().subtract(months=5)
67+
assert d.diff_for_humans(locale=locale) == "för 5 månader sedan"
68+
69+
d = pendulum.now().subtract(years=1)
70+
assert d.diff_for_humans(locale=locale) == "för 1 år sedan"
71+
72+
d = pendulum.now().subtract(years=2)
73+
assert d.diff_for_humans(locale=locale) == "för 2 år sedan"
74+
75+
d = pendulum.now().subtract(years=5)
76+
assert d.diff_for_humans(locale=locale) == "för 5 år sedan"
77+
78+
d = pendulum.now().add(seconds=1)
79+
assert d.diff_for_humans(locale=locale) == "om 1 sekund"
80+
81+
d = pendulum.now().add(seconds=1)
82+
d2 = pendulum.now()
83+
assert d.diff_for_humans(d2, locale=locale) == "1 sekund efter"
84+
assert d2.diff_for_humans(d, locale=locale) == "1 sekund innan"
85+
86+
assert d.diff_for_humans(d2, True, locale=locale) == "1 sekund"
87+
assert d2.diff_for_humans(d.add(seconds=1), True, locale=locale) == "2 sekunder"

0 commit comments

Comments
 (0)