Skip to content

Commit 61c2ff6

Browse files
committed
Add Norwegian bokmål (nb) locale
1 parent bc32743 commit 61c2ff6

File tree

4 files changed

+279
-0
lines changed

4 files changed

+279
-0
lines changed

pendulum/locales/nb/__init__.py

Whitespace-only changes.

pendulum/locales/nb/custom.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
"""
5+
nn custom locale file.
6+
"""
7+
8+
translations = {
9+
# Relative time
10+
"after": "{0} etter",
11+
"before": "{0} før",
12+
# Ordinals
13+
"ordinal": {"one": ".", "two": ".", "few": ".", "other": "."},
14+
# Date formats
15+
"date_formats": {
16+
"LTS": "HH:mm:ss",
17+
"LT": "HH:mm",
18+
"LLLL": "dddd Do MMMM YYYY HH:mm",
19+
"LLL": "Do MMMM YYYY HH:mm",
20+
"LL": "Do MMMM YYYY",
21+
"L": "DD.MM.YYYY",
22+
},
23+
}

pendulum/locales/nb/locale.py

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
"""
5+
nb locale file.
6+
7+
It has been generated automatically and must not be modified directly.
8+
"""
9+
10+
from .custom import translations as custom_translations
11+
12+
13+
locale = {
14+
'plural': lambda n: 'one' if (n == n and ((n == 1))) else 'other',
15+
'ordinal': lambda n: 'other',
16+
'translations': {
17+
'days': {
18+
'abbreviated': {
19+
0: 'søn.',
20+
1: 'man.',
21+
2: 'tir.',
22+
3: 'ons.',
23+
4: 'tor.',
24+
5: 'fre.',
25+
6: 'lør.',
26+
},
27+
'narrow': {0: 'S', 1: 'M', 2: 'T', 3: 'O', 4: 'T', 5: 'F', 6: 'L'},
28+
'short': {
29+
0: 'sø.',
30+
1: 'ma.',
31+
2: 'ti.',
32+
3: 'on.',
33+
4: 'to.',
34+
5: 'fr.',
35+
6: 'lø.',
36+
},
37+
'wide': {
38+
0: 'søndag',
39+
1: 'mandag',
40+
2: 'tirsdag',
41+
3: 'onsdag',
42+
4: 'torsdag',
43+
5: 'fredag',
44+
6: 'lørdag',
45+
},
46+
},
47+
'months': {
48+
'abbreviated': {
49+
1: 'jan.',
50+
2: 'feb.',
51+
3: 'mar.',
52+
4: 'apr.',
53+
5: 'mai',
54+
6: 'jun.',
55+
7: 'jul.',
56+
8: 'aug.',
57+
9: 'sep.',
58+
10: 'okt.',
59+
11: 'nov.',
60+
12: 'des.',
61+
},
62+
'narrow': {
63+
1: 'J',
64+
2: 'F',
65+
3: 'M',
66+
4: 'A',
67+
5: 'M',
68+
6: 'J',
69+
7: 'J',
70+
8: 'A',
71+
9: 'S',
72+
10: 'O',
73+
11: 'N',
74+
12: 'D',
75+
},
76+
'wide': {
77+
1: 'januar',
78+
2: 'februar',
79+
3: 'mars',
80+
4: 'april',
81+
5: 'mai',
82+
6: 'juni',
83+
7: 'juli',
84+
8: 'august',
85+
9: 'september',
86+
10: 'oktober',
87+
11: 'november',
88+
12: 'desember',
89+
},
90+
},
91+
'units': {
92+
'year': {'one': '{0} år', 'other': '{0} år'},
93+
'month': {'one': '{0} måned', 'other': '{0} måneder'},
94+
'week': {'one': '{0} uke', 'other': '{0} uker'},
95+
'day': {'one': '{0} dag', 'other': '{0} dager'},
96+
'hour': {'one': '{0} time', 'other': '{0} timer'},
97+
'minute': {'one': '{0} minutt', 'other': '{0} minutter'},
98+
'second': {'one': '{0} sekund', 'other': '{0} sekunder'},
99+
'microsecond': {
100+
'one': '{0} mikrosekund',
101+
'other': '{0} mikrosekunder',
102+
},
103+
},
104+
'relative': {
105+
'year': {
106+
'future': {'other': 'om {0} år', 'one': 'om {0} år'},
107+
'past': {
108+
'other': 'for {0} år siden',
109+
'one': 'for {0} år siden',
110+
},
111+
},
112+
'month': {
113+
'future': {'other': 'om {0} måneder', 'one': 'om {0} måned'},
114+
'past': {
115+
'other': 'for {0} måneder siden',
116+
'one': 'for {0} måned siden',
117+
},
118+
},
119+
'week': {
120+
'future': {'other': 'om {0} uker', 'one': 'om {0} uke'},
121+
'past': {
122+
'other': 'for {0} uker siden',
123+
'one': 'for {0} uke siden',
124+
},
125+
},
126+
'day': {
127+
'future': {'other': 'om {0} dager', 'one': 'om {0} dag'},
128+
'past': {
129+
'other': 'for {0} dager siden',
130+
'one': 'for {0} dag siden',
131+
},
132+
},
133+
'hour': {
134+
'future': {'other': 'om {0} timer', 'one': 'om {0} time'},
135+
'past': {
136+
'other': 'for {0} timer siden',
137+
'one': 'for {0} time siden',
138+
},
139+
},
140+
'minute': {
141+
'future': {'other': 'om {0} minutter', 'one': 'om {0} minutt'},
142+
'past': {
143+
'other': 'for {0} minutter siden',
144+
'one': 'for {0} minutt siden',
145+
},
146+
},
147+
'second': {
148+
'future': {'other': 'om {0} sekunder', 'one': 'om {0} sekund'},
149+
'past': {
150+
'other': 'for {0} sekunder siden',
151+
'one': 'for {0} sekund siden',
152+
},
153+
},
154+
},
155+
'day_periods': {
156+
'midnight': 'midnatt',
157+
'am': 'a.m.',
158+
'pm': 'p.m.',
159+
'morning1': 'morgenen',
160+
'morning2': 'formiddagen',
161+
'afternoon1': 'ettermiddagen',
162+
'evening1': 'kvelden',
163+
'night1': 'natten',
164+
},
165+
},
166+
'custom': custom_translations,
167+
}

tests/localization/test_nb.py

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
import pendulum
5+
6+
7+
locale = "nb"
8+
9+
10+
def test_diff_for_humans():
11+
with pendulum.test(pendulum.datetime(2016, 8, 29)):
12+
diff_for_humans()
13+
14+
15+
def diff_for_humans():
16+
d = pendulum.now().subtract(seconds=1)
17+
assert d.diff_for_humans(locale=locale) == "for 1 sekund siden"
18+
19+
d = pendulum.now().subtract(seconds=2)
20+
assert d.diff_for_humans(locale=locale) == "for 2 sekunder siden"
21+
22+
d = pendulum.now().subtract(minutes=1)
23+
assert d.diff_for_humans(locale=locale) == "for 1 minutt siden"
24+
25+
d = pendulum.now().subtract(minutes=2)
26+
assert d.diff_for_humans(locale=locale) == "for 2 minutter siden"
27+
28+
d = pendulum.now().subtract(hours=1)
29+
assert d.diff_for_humans(locale=locale) == "for 1 time siden"
30+
31+
d = pendulum.now().subtract(hours=2)
32+
assert d.diff_for_humans(locale=locale) == "for 2 timer siden"
33+
34+
d = pendulum.now().subtract(days=1)
35+
assert d.diff_for_humans(locale=locale) == "for 1 dag siden"
36+
37+
d = pendulum.now().subtract(days=2)
38+
assert d.diff_for_humans(locale=locale) == "for 2 dager siden"
39+
40+
d = pendulum.now().subtract(weeks=1)
41+
assert d.diff_for_humans(locale=locale) == "for 1 uke siden"
42+
43+
d = pendulum.now().subtract(weeks=2)
44+
assert d.diff_for_humans(locale=locale) == "for 2 uker siden"
45+
46+
d = pendulum.now().subtract(months=1)
47+
assert d.diff_for_humans(locale=locale) == "for 1 måned siden"
48+
49+
d = pendulum.now().subtract(months=2)
50+
assert d.diff_for_humans(locale=locale) == "for 2 måneder siden"
51+
52+
d = pendulum.now().subtract(years=1)
53+
assert d.diff_for_humans(locale=locale) == "for 1 år siden"
54+
55+
d = pendulum.now().subtract(years=2)
56+
assert d.diff_for_humans(locale=locale) == "for 2 år siden"
57+
58+
d = pendulum.now().add(seconds=1)
59+
assert d.diff_for_humans(locale=locale) == "om 1 sekund"
60+
61+
d = pendulum.now().add(seconds=1)
62+
d2 = pendulum.now()
63+
assert d.diff_for_humans(d2, locale=locale) == "1 sekund etter"
64+
assert d2.diff_for_humans(d, locale=locale) == "1 sekund før"
65+
66+
assert d.diff_for_humans(d2, True, locale=locale) == "1 sekund"
67+
assert (
68+
d2.diff_for_humans(d.add(seconds=1), True, locale=locale)
69+
== "2 sekunder"
70+
)
71+
72+
73+
def test_format():
74+
d = pendulum.datetime(2016, 8, 28, 7, 3, 6, 123456)
75+
assert d.format("dddd", locale=locale) == "søndag"
76+
assert d.format("ddd", locale=locale) == "søn."
77+
assert d.format("MMMM", locale=locale) == "august"
78+
assert d.format("MMM", locale=locale) == "aug."
79+
assert d.format("A", locale=locale) == "a.m."
80+
assert d.format("Qo", locale=locale) == "3."
81+
assert d.format("Mo", locale=locale) == "8."
82+
assert d.format("Do", locale=locale) == "28."
83+
84+
assert d.format("LT", locale=locale) == "07:03"
85+
assert d.format("LTS", locale=locale) == "07:03:06"
86+
assert d.format("L", locale=locale) == "28.08.2016"
87+
assert d.format("LL", locale=locale) == "28. august 2016"
88+
assert d.format("LLL", locale=locale) == "28. august 2016 07:03"
89+
assert d.format("LLLL", locale=locale) == "søndag 28. august 2016 07:03"

0 commit comments

Comments
 (0)