Налаштування локалізації сайту казахською мовою
Казахська мова (kk / kk-KZ) використовує кирилицю в Казахстані. Мова аглютинативна: відмінкові закінчення, число та приналежність виражаються суфіксами, що суттєво впливає на підхід до локалізації — шаблонні рядки з підстановкою часто потрібно переробити на цільні фрази.
Базова конфігурація
// config/app.php
'locale' => 'kk',
'fallback_locale' => 'ru',
// resources/lang/kk/messages.php
return [
'welcome' => 'Сайтымызға қош келдіңіз',
'catalog' => 'Каталог',
'cart' => 'Себет',
'checkout' => 'Тапсырысты рәсімдеу',
'search' => 'Іздеу',
'add_to_cart' => 'Себетке қосу',
'price' => 'Баға',
'in_stock' => 'Қоймада бар',
'out_of_stock' => 'Қоймада жоқ',
'order_placed' => 'Тапсырыс берілді',
'items_in_cart' => 'Себетте :count тауар',
];
Особливості казахської граматики для розробника
У казахській мові немає граматичного роду. Число іменника: однина (явна або без закінчення) та множина (суфікс -лар/-лер/-дар/-дер/-тар/-тер — вибір залежить від останнього звука основи за законом гармонії голосів).
// Числівники в казахській — простіше, ніж в російській
// Використовується лише дві форми: однина та множина
function pluralKk(int $n, string $singular, string $plural): string
{
return $n === 1 ? "$n $singular" : "$n $plural";
}
echo pluralKk(1, 'тауар', 'тауар'); // 1 тауар
echo pluralKk(5, 'тауар', 'тауар'); // 5 тауар
// У казахській після числівника іменник стоїть у однині!
// "5 тауар" — правильно, не "5 тауарлар"
Intl.PluralRules для казахської:
const rules = new Intl.PluralRules('kk')
// kk повертає 'one' для 1 та 'other' для решти
// АЛЕ: у казахській після числівника — завжди однина
// Тому для "N товарів" просто використовуйте одну форму
const pluralize = (n: number) => `${n} тауар`
Форматування дат та валюти
// Дата
const df = new Intl.DateTimeFormat('kk-KZ', {
day: 'numeric',
month: 'long',
year: 'numeric',
})
df.format(new Date()) // "28 наурыз 2026 ж."
// Валюта Казахстану — тенге (KZT)
new Intl.NumberFormat('kk-KZ', {
style: 'currency',
currency: 'KZT',
maximumFractionDigits: 0,
}).format(14990) // "14 990 ₸"
// Числа
new Intl.NumberFormat('kk-KZ').format(1234567.89)
// "1 234 567,89"
// Відносний час
const rtf = new Intl.RelativeTimeFormat('kk', { numeric: 'auto' })
rtf.format(-1, 'day') // "кеше"
rtf.format(-3, 'day') // "3 күн бұрын"
rtf.format(1, 'hour') // "1 сағаттан кейін"
Шрифти
Казахська кирилиця містить унікальні літери: Ә ә, Ғ ғ, Қ қ, Ң ң, Ө ө, Ұ ұ, Ү ү, Һ һ, І і. Перевірте наявність глифів:
body {
/* Noto Sans підтримує всі мови з кирилицею, включно з казахською */
font-family: 'Noto Sans', 'PT Sans', Roboto, Arial, sans-serif;
}
Google Fonts: фільтр за Kazakh або Cyrillic Extended — знаходить сумісні шрифти.
Казахська в Next.js i18n
// next.config.js
module.exports = {
i18n: {
locales: ['ru', 'kk', 'en'],
defaultLocale: 'ru',
localeDetection: true,
},
}
pages/
index.tsx → /
[locale]/
index.tsx → /kk/, /en/
SEO
<html lang="kk">
<head>
<meta charset="UTF-8">
<meta property="og:locale" content="kk_KZ">
<link rel="alternate" hreflang="kk" href="https://example.kz/kk/" />
<link rel="alternate" hreflang="ru" href="https://example.kz/" />
<link rel="alternate" hreflang="x-default" href="https://example.kz/" />
</head>
Яндекс індексує казахськомовний контент. Google теж. Частка казахськомовних запитів зростає: за даними Яндекса, близько 30% пошукових запитів з Казахстану казахською мовою.
Терміни
Підключення локалі, налаштування форматування, базові переводи інтерфейсу — 1 робочий день.







