Skip to content

Commit d688de4

Browse files
authored
Kazakh Locale (#1069)
1 parent 56e58ee commit d688de4

File tree

4 files changed

+139
-0
lines changed

4 files changed

+139
-0
lines changed

arrow/constants.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,4 +145,6 @@
145145
"ta-lk",
146146
"ur",
147147
"ur-pk",
148+
"kk",
149+
"kk-kz",
148150
}

arrow/locales.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5909,3 +5909,71 @@ class UrduLocale(Locale):
59095909
"ہفتہ",
59105910
"اتوار",
59115911
]
5912+
5913+
5914+
class KazakhLocale(Locale):
5915+
5916+
names = ["kk", "kk-kz"]
5917+
5918+
past = "{0} бұрын"
5919+
future = "{0} кейін"
5920+
timeframes = {
5921+
"now": "қазір",
5922+
"second": "бір секунд",
5923+
"seconds": "{0} секунд",
5924+
"minute": "бір минут",
5925+
"minutes": "{0} минут",
5926+
"hour": "бір сағат",
5927+
"hours": "{0} сағат",
5928+
"day": "бір күн",
5929+
"days": "{0} күн",
5930+
"week": "бір апта",
5931+
"weeks": "{0} апта",
5932+
"month": "бір ай",
5933+
"months": "{0} ай",
5934+
"year": "бір жыл",
5935+
"years": "{0} жыл",
5936+
}
5937+
5938+
month_names = [
5939+
"",
5940+
"Қаңтар",
5941+
"Ақпан",
5942+
"Наурыз",
5943+
"Сәуір",
5944+
"Мамыр",
5945+
"Маусым",
5946+
"Шілде",
5947+
"Тамыз",
5948+
"Қыркүйек",
5949+
"Қазан",
5950+
"Қараша",
5951+
"Желтоқсан",
5952+
]
5953+
month_abbreviations = [
5954+
"",
5955+
"Қан",
5956+
"Ақп",
5957+
"Нау",
5958+
"Сәу",
5959+
"Мам",
5960+
"Мау",
5961+
"Шіл",
5962+
"Там",
5963+
"Қыр",
5964+
"Қаз",
5965+
"Қар",
5966+
"Жел",
5967+
]
5968+
5969+
day_names = [
5970+
"",
5971+
"Дүйсембі",
5972+
"Сейсенбі",
5973+
"Сәрсенбі",
5974+
"Бейсенбі",
5975+
"Жұма",
5976+
"Сенбі",
5977+
"Жексенбі",
5978+
]
5979+
day_abbreviations = ["", "Дс", "Сс", "Ср", "Бс", "Жм", "Сб", "Жс"]

tests/test_arrow.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2449,6 +2449,8 @@ def locale_list_no_weeks() -> List[str]:
24492449
"ta-lk",
24502450
"ur",
24512451
"ur-pk",
2452+
"kk",
2453+
"kk-kz",
24522454
]
24532455

24542456
return tested_langs
@@ -2511,6 +2513,8 @@ def locale_list_with_weeks() -> List[str]:
25112513
"ta",
25122514
"ta-in",
25132515
"ta-lk",
2516+
"kk",
2517+
"kk-kz",
25142518
]
25152519

25162520
return tested_langs

tests/test_locales.py

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2261,3 +2261,68 @@ def test_weekday(self):
22612261
dt = arrow.Arrow(2015, 4, 11, 17, 30, 00)
22622262
assert self.locale.day_name(dt.isoweekday()) == "සෙනසුරාදා"
22632263
assert self.locale.day_abbreviation(dt.isoweekday()) == "අ"
2264+
2265+
2266+
@pytest.mark.usefixtures("lang_locale")
2267+
class TestKazakhLocale:
2268+
def test_singles_mk(self):
2269+
assert self.locale._format_timeframe("second", 1) == "бір секунд"
2270+
assert self.locale._format_timeframe("minute", 1) == "бір минут"
2271+
assert self.locale._format_timeframe("hour", 1) == "бір сағат"
2272+
assert self.locale._format_timeframe("day", 1) == "бір күн"
2273+
assert self.locale._format_timeframe("week", 1) == "бір апта"
2274+
assert self.locale._format_timeframe("month", 1) == "бір ай"
2275+
assert self.locale._format_timeframe("year", 1) == "бір жыл"
2276+
2277+
def test_describe_mk(self):
2278+
assert self.locale.describe("second", only_distance=True) == "бір секунд"
2279+
assert self.locale.describe("second", only_distance=False) == "бір секунд кейін"
2280+
assert self.locale.describe("minute", only_distance=True) == "бір минут"
2281+
assert self.locale.describe("minute", only_distance=False) == "бір минут кейін"
2282+
assert self.locale.describe("hour", only_distance=True) == "бір сағат"
2283+
assert self.locale.describe("hour", only_distance=False) == "бір сағат кейін"
2284+
assert self.locale.describe("day", only_distance=True) == "бір күн"
2285+
assert self.locale.describe("day", only_distance=False) == "бір күн кейін"
2286+
assert self.locale.describe("week", only_distance=True) == "бір апта"
2287+
assert self.locale.describe("week", only_distance=False) == "бір апта кейін"
2288+
assert self.locale.describe("month", only_distance=True) == "бір ай"
2289+
assert self.locale.describe("month", only_distance=False) == "бір ай кейін"
2290+
assert self.locale.describe("year", only_distance=True) == "бір жыл"
2291+
assert self.locale.describe("year", only_distance=False) == "бір жыл кейін"
2292+
2293+
def test_relative_mk(self):
2294+
assert self.locale._format_relative("қазір", "now", 0) == "қазір"
2295+
assert (
2296+
self.locale._format_relative("1 секунд", "seconds", 1) == "1 секунд кейін"
2297+
)
2298+
assert (
2299+
self.locale._format_relative("1 секунд", "seconds", -1) == "1 секунд бұрын"
2300+
)
2301+
assert self.locale._format_relative("1 минут", "minutes", 1) == "1 минут кейін"
2302+
assert self.locale._format_relative("1 минут", "minutes", -1) == "1 минут бұрын"
2303+
assert self.locale._format_relative("1 сағат", "hours", 1) == "1 сағат кейін"
2304+
assert self.locale._format_relative("1 сағат", "hours", -1) == "1 сағат бұрын"
2305+
assert self.locale._format_relative("1 күн", "days", 1) == "1 күн кейін"
2306+
assert self.locale._format_relative("1 күн", "days", -1) == "1 күн бұрын"
2307+
assert self.locale._format_relative("1 апта", "weeks", 1) == "1 апта кейін"
2308+
assert self.locale._format_relative("1 апта", "weeks", -1) == "1 апта бұрын"
2309+
assert self.locale._format_relative("1 ай", "months", 1) == "1 ай кейін"
2310+
assert self.locale._format_relative("1 ай", "months", -1) == "1 ай бұрын"
2311+
assert self.locale._format_relative("1 жыл", "years", 1) == "1 жыл кейін"
2312+
assert self.locale._format_relative("1 жыл", "years", -1) == "1 жыл бұрын"
2313+
2314+
def test_plurals_mk(self):
2315+
assert self.locale._format_timeframe("now", 0) == "қазір"
2316+
assert self.locale._format_timeframe("second", 1) == "бір секунд"
2317+
assert self.locale._format_timeframe("seconds", 30) == "30 секунд"
2318+
assert self.locale._format_timeframe("minute", 1) == "бір минут"
2319+
assert self.locale._format_timeframe("minutes", 40) == "40 минут"
2320+
assert self.locale._format_timeframe("hour", 1) == "бір сағат"
2321+
assert self.locale._format_timeframe("hours", 23) == "23 сағат"
2322+
assert self.locale._format_timeframe("days", 12) == "12 күн"
2323+
assert self.locale._format_timeframe("week", 1) == "бір апта"
2324+
assert self.locale._format_timeframe("weeks", 38) == "38 апта"
2325+
assert self.locale._format_timeframe("month", 1) == "бір ай"
2326+
assert self.locale._format_timeframe("months", 11) == "11 ай"
2327+
assert self.locale._format_timeframe("year", 1) == "бір жыл"
2328+
assert self.locale._format_timeframe("years", 12) == "12 жыл"

0 commit comments

Comments
 (0)