Skip to content

Commit ac7bc93

Browse files
committed
Add Norwegian nynorsk (nn) locale
1 parent 61c2ff6 commit ac7bc93

File tree

4 files changed

+269
-0
lines changed

4 files changed

+269
-0
lines changed

pendulum/locales/nn/__init__.py

Whitespace-only changes.

pendulum/locales/nn/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/nn/locale.py

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
"""
5+
nn 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: 'mån.',
21+
2: 'tys.',
22+
3: 'ons.',
23+
4: 'tor.',
24+
5: 'fre.',
25+
6: 'lau.',
26+
},
27+
'narrow': {0: 'S', 1: 'M', 2: 'T', 3: 'O', 4: 'T', 5: 'F', 6: 'L'},
28+
'short': {
29+
0: 'sø.',
30+
1: 'må.',
31+
2: 'ty.',
32+
3: 'on.',
33+
4: 'to.',
34+
5: 'fr.',
35+
6: 'la.',
36+
},
37+
'wide': {
38+
0: 'søndag',
39+
1: 'måndag',
40+
2: 'tysdag',
41+
3: 'onsdag',
42+
4: 'torsdag',
43+
5: 'fredag',
44+
6: 'laurdag',
45+
},
46+
},
47+
'months': {
48+
'abbreviated': {
49+
1: 'jan.',
50+
2: 'feb.',
51+
3: 'mars',
52+
4: 'apr.',
53+
5: 'mai',
54+
6: 'juni',
55+
7: 'juli',
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ånad', 'other': '{0} månadar'},
94+
'week': {'one': '{0} veke', 'other': '{0} veker'},
95+
'day': {'one': '{0} dag', 'other': '{0} dagar'},
96+
'hour': {'one': '{0} time', 'other': '{0} timar'},
97+
'minute': {'one': '{0} minutt', 'other': '{0} minutt'},
98+
'second': {'one': '{0} sekund', 'other': '{0} sekund'},
99+
'microsecond': {
100+
'one': '{0} mikrosekund',
101+
'other': '{0} mikrosekund',
102+
},
103+
},
104+
'relative': {
105+
'year': {
106+
'future': {'other': 'om {0} år', 'one': 'om {0} år'},
107+
'past': {
108+
'other': 'for {0} år sidan',
109+
'one': 'for {0} år sidan',
110+
},
111+
},
112+
'month': {
113+
'future': {'other': 'om {0} månadar', 'one': 'om {0} månad'},
114+
'past': {
115+
'other': 'for {0} månadar sidan',
116+
'one': 'for {0} månad sidan',
117+
},
118+
},
119+
'week': {
120+
'future': {'other': 'om {0} veker', 'one': 'om {0} veke'},
121+
'past': {
122+
'other': 'for {0} veker sidan',
123+
'one': 'for {0} veke sidan',
124+
},
125+
},
126+
'day': {
127+
'future': {'other': 'om {0} dagar', 'one': 'om {0} dag'},
128+
'past': {
129+
'other': 'for {0} dagar sidan',
130+
'one': 'for {0} dag sidan',
131+
},
132+
},
133+
'hour': {
134+
'future': {'other': 'om {0} timar', 'one': 'om {0} time'},
135+
'past': {
136+
'other': 'for {0} timar sidan',
137+
'one': 'for {0} time sidan',
138+
},
139+
},
140+
'minute': {
141+
'future': {'other': 'om {0} minutt', 'one': 'om {0} minutt'},
142+
'past': {
143+
'other': 'for {0} minutt sidan',
144+
'one': 'for {0} minutt sidan',
145+
},
146+
},
147+
'second': {
148+
'future': {'other': 'om {0} sekund', 'one': 'om {0} sekund'},
149+
'past': {
150+
'other': 'for {0} sekund sidan',
151+
'one': 'for {0} sekund sidan',
152+
},
153+
},
154+
},
155+
'day_periods': {'am': 'formiddag', 'pm': 'ettermiddag'},
156+
},
157+
'custom': custom_translations,
158+
}

tests/localization/test_nn.py

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
import pendulum
5+
6+
7+
locale = "nn"
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 sidan"
18+
19+
d = pendulum.now().subtract(seconds=2)
20+
assert d.diff_for_humans(locale=locale) == "for 2 sekund sidan"
21+
22+
d = pendulum.now().subtract(minutes=1)
23+
assert d.diff_for_humans(locale=locale) == "for 1 minutt sidan"
24+
25+
d = pendulum.now().subtract(minutes=2)
26+
assert d.diff_for_humans(locale=locale) == "for 2 minutt sidan"
27+
28+
d = pendulum.now().subtract(hours=1)
29+
assert d.diff_for_humans(locale=locale) == "for 1 time sidan"
30+
31+
d = pendulum.now().subtract(hours=2)
32+
assert d.diff_for_humans(locale=locale) == "for 2 timar sidan"
33+
34+
d = pendulum.now().subtract(days=1)
35+
assert d.diff_for_humans(locale=locale) == "for 1 dag sidan"
36+
37+
d = pendulum.now().subtract(days=2)
38+
assert d.diff_for_humans(locale=locale) == "for 2 dagar sidan"
39+
40+
d = pendulum.now().subtract(weeks=1)
41+
assert d.diff_for_humans(locale=locale) == "for 1 veke sidan"
42+
43+
d = pendulum.now().subtract(weeks=2)
44+
assert d.diff_for_humans(locale=locale) == "for 2 veker sidan"
45+
46+
d = pendulum.now().subtract(months=1)
47+
assert d.diff_for_humans(locale=locale) == "for 1 månad sidan"
48+
49+
d = pendulum.now().subtract(months=2)
50+
assert d.diff_for_humans(locale=locale) == "for 2 månadar sidan"
51+
52+
d = pendulum.now().subtract(years=1)
53+
assert d.diff_for_humans(locale=locale) == "for 1 år sidan"
54+
55+
d = pendulum.now().subtract(years=2)
56+
assert d.diff_for_humans(locale=locale) == "for 2 år sidan"
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) == "2 sekund"
69+
)
70+
71+
72+
def test_format():
73+
d = pendulum.datetime(2016, 8, 29, 7, 3, 6, 123456)
74+
assert d.format("dddd", locale=locale) == "måndag"
75+
assert d.format("ddd", locale=locale) == "mån."
76+
assert d.format("MMMM", locale=locale) == "august"
77+
assert d.format("MMM", locale=locale) == "aug."
78+
assert d.format("A", locale=locale) == "formiddag"
79+
assert d.format("Qo", locale=locale) == "3."
80+
assert d.format("Mo", locale=locale) == "8."
81+
assert d.format("Do", locale=locale) == "29."
82+
83+
assert d.format("LT", locale=locale) == "07:03"
84+
assert d.format("LTS", locale=locale) == "07:03:06"
85+
assert d.format("L", locale=locale) == "29.08.2016"
86+
assert d.format("LL", locale=locale) == "29. august 2016"
87+
assert d.format("LLL", locale=locale) == "29. august 2016 07:03"
88+
assert d.format("LLLL", locale=locale) == "måndag 29. august 2016 07:03"

0 commit comments

Comments
 (0)