diff --git a/framework/messages/config.php b/framework/messages/config.php
index 7b32bb9ae1..27d7bf1fd8 100644
--- a/framework/messages/config.php
+++ b/framework/messages/config.php
@@ -7,7 +7,7 @@ return [
'messagePath' => __DIR__,
// array, required, list of language codes that the extracted messages
// should be translated to. For example, ['zh-CN', 'de'].
- 'languages' => ['ar', 'da', 'de', 'el', 'es', 'fa-IR', 'fr', 'it', 'ja', 'lv', 'pl', 'pt-BR', 'pt-PT', 'ro', 'ru', 'sk', 'sr', 'sr-Latn', 'uk', 'zh-CN'],
+ 'languages' => ['ar', 'da', 'de', 'el', 'es', 'fa-IR', 'fr', 'it', 'ja', 'kz', 'lv', 'pl', 'pt-BR', 'pt-PT', 'ro', 'ru', 'sk', 'sr', 'sr-Latn', 'uk', 'zh-CN'],
// string, the name of the function for translating messages.
// Defaults to 'Yii::t'. This is used as a mark to find the messages to be
// translated. You may use a string for single function name or an array for
diff --git a/framework/messages/kz/yii.php b/framework/messages/kz/yii.php
new file mode 100644
index 0000000000..5db29cb3ad
--- /dev/null
+++ b/framework/messages/kz/yii.php
@@ -0,0 +1,81 @@
+ 'Көру',
+ '(not set)' => '(тапсырылған жок)',
+ 'An internal server error occurred.' => 'Сервердің ішкі қатесі туды.',
+ 'Are you sure to delete this item?' => 'Осы элементі жоюға мақұлсызба?',
+ 'Delete' => 'Жою',
+ 'Error' => 'Қате',
+ 'File upload failed.' => 'Файлды жүктеу сәті болмады',
+ 'Home' => 'Басы',
+ 'Invalid data received for parameter "{param}".' => 'Параметрдің мағынасы дұрыс емес"{param}".',
+ 'Login Required' => 'Кіруді сұрайды.',
+ 'Missing required arguments: {params}' => 'Қажетті дәлелдер жоқ: {params}',
+ 'Missing required parameters: {params}' => 'Қажетті параметрлер жоқ: {params}',
+ 'No' => 'Жоқ',
+ 'No help for unknown command "{command}".' => 'Анықтама белгісіз команда үшін ақиық "{command}".',
+ 'No help for unknown sub-command "{command}".' => 'Анықтама белгісіз субкоманда үшін ақиық "{command}".',
+ 'No results found.' => 'Ештене табылган жок.',
+ 'Only files with these extensions are allowed: {extensions}.' => 'Файлды жуктеу тек қана осы аумақтармен: {extensions}.',
+ 'Only files with these mimeTypes are allowed: {mimeTypes}.' => 'Файлды жуктеу тек қана осы MIME-үлгілермен: {mimeTypes}.',
+ 'Page not found.' => 'Парақ табылган жок.',
+ 'Please fix the following errors:' => 'Мына қателерді түзеніз:',
+ 'Please upload a file.' => 'Файлды жуктеу.',
+ 'Showing {begin, number}-{end, number} of {totalCount, number} {totalCount, plural, one{item} other{items}}.' => 'Жазбалар көрсетілген {begin, number}-{end, number} дан {totalCount, number}.',
+ 'The file "{file}" is not an image.' => 'Файл «{file}» сурет емес.',
+ 'The file "{file}" is too big. Its size cannot exceed {limit, number} {limit, plural, one{byte} other{bytes}}.' => 'Файлдын «{file}» көлемі өте үлкен. Өлшемі осыдан аспау керек {limit, number} {limit, plural, one{байт} few{байта} many{байт} other{байта}}.',
+ 'The file "{file}" is too small. Its size cannot be smaller than {limit, number} {limit, plural, one{byte} other{bytes}}.' => 'Файлдын «{file}» көлемі өте кіші. Өлшемі осыдан астам болу керек {limit, number} {limit, plural, one{байт} few{байта} many{байт} other{байта}}.',
+ 'The format of {attribute} is invalid.' => 'Форматын мағынасы дұрыс емес «{attribute}».',
+ 'The image "{file}" is too large. The height cannot be larger than {limit, number} {limit, plural, one{pixel} other{pixels}}.' => 'Файл «{file}» өте үлкен. Ұзындығы осыдан аспау керек {limit, number} {limit, plural, one{пиксель} few{пикселя} many{пикселей} other{пикселя}}.',
+ 'The image "{file}" is too large. The width cannot be larger than {limit, number} {limit, plural, one{pixel} other{pixels}}.' => 'Файл «{file}» өте үлкен. Ені осыдан аспау керек {limit, number} {limit, plural, one{пиксель} few{пикселя} many{пикселей} other{пикселя}}.',
+ 'The image "{file}" is too small. The height cannot be smaller than {limit, number} {limit, plural, one{pixel} other{pixels}}.' => 'Файл «{file}» өте кіші. Ұзындығы осыдан астам болу керек {limit, number} {limit, plural, one{пиксель} few{пикселя} many{пикселей} other{пикселя}}.',
+ 'The image "{file}" is too small. The width cannot be smaller than {limit, number} {limit, plural, one{pixel} other{pixels}}.' => 'Файл «{file}» өте кіші. Ені осыдан астам болу керек {limit, number} {limit, plural, one{пиксель} few{пикселя} many{пикселей} other{пикселя}}.',
+ 'The verification code is incorrect.' => 'Тексеріс коды қате.',
+ 'Total {count, number} {count, plural, one{item} other{items}}.' => 'Барі {count, number} {count, plural, one{жазба} few{жазбалар} many{жазбалардың} other{жазбалар}}.',
+ 'Unable to verify your data submission.' => 'Берілген мәліметердің тексеру сәті болмады.',
+ 'Unknown command "{command}".' => 'Белгісіз команда "{command}".',
+ 'Unknown option: --{name}' => 'Белгісіз опция: --{name}',
+ 'Update' => 'Редакциялау',
+ 'Yes' => 'Я',
+ 'You are not allowed to perform this action.' => 'Сізге адал әрекет жасауға болмайды',
+ 'You can upload at most {limit, number} {limit, plural, one{file} other{files}}.' => 'Сіз осыдан жүктеуге астам {limit, number} {limit, plural, one{файла} few{файлов} many{файлов} other{файла}}.',
+ 'the input value' => 'кіргізілген мағыналар',
+ '{attribute} "{value}" has already been taken.' => '{attribute} «{value}» Бұл бос емес.',
+ '{attribute} cannot be blank.' => 'Толтыруға қажет «{attribute}».',
+ '{attribute} is invalid.' => 'Мағына «{attribute}» дүрыс емес.',
+ '{attribute} is not a valid URL.' => 'Мағына «{attribute}» дұрыс URL емес.',
+ '{attribute} is not a valid email address.' => 'Мағына «{attribute}» дұрыс email адрес емес.',
+ '{attribute} must be "{requiredValue}".' => 'Мағына «{attribute}» тең болу керек «{requiredValue}».',
+ '{attribute} must be a number.' => 'Мағына «{attribute}» сан болу керек.',
+ '{attribute} must be a string.' => 'Мағына «{attribute}» әріп болу керек.',
+ '{attribute} must be an integer.' => 'Мағына «{attribute}» бүтін сан болу керек.',
+ '{attribute} must be either "{true}" or "{false}".' => 'Мағына «{attribute}» тең болу керек «{true}» немесе «{false}».',
+ '{attribute} must be greater than "{compareValue}".' => 'Мағына «{attribute}» мағынасынан үлкен болу керек «{compareValue}».',
+ '{attribute} must be greater than or equal to "{compareValue}".' => 'Мағына «{attribute}» үлкен болу керек немесе мағынасынан тең болу керек «{compareValue}».',
+ '{attribute} must be less than "{compareValue}".' => 'Мағына «{attribute}» мағынасынан кіші болу керек «{compareValue}».',
+ '{attribute} must be less than or equal to "{compareValue}".' => 'Мағына «{attribute}» кіші болу керек немесе мағынасынан тең болу керек «{compareValue}».',
+ '{attribute} must be no greater than {max}.' => 'Мағына «{attribute}» аспау керек {max}.',
+ '{attribute} must be no less than {min}.' => 'Мағына «{attribute}» көп болу керек {min}.',
+ '{attribute} must be repeated exactly.' => 'Мағына «{attribute}» дәлме-дәл қайталану керек.',
+ '{attribute} must not be equal to "{compareValue}".' => 'Мағына «{attribute}» тең болмау керек «{compareValue}».',
+ '{attribute} should contain at least {min, number} {min, plural, one{character} other{characters}}.' => 'Мағына «{attribute}» минимум болу керек {min, number} {min, plural, one{рәміз} few{рәміздер} many{рәміздерді} other{рәміздер}}.',
+ '{attribute} should contain at most {max, number} {max, plural, one{character} other{characters}}.' => 'Мағына «{attribute}» өте үлкен болау керек {max, number} {max, plural, one{рәміз} few{рәміздер} many{рәміздерді} other{рәміздер}}.',
+ '{attribute} should contain {length, number} {length, plural, one{character} other{characters}}.' => 'Мағына «{attribute}» болу керек {length, number} {length, plural, one{рәміз} few{рәміздер} many{рәміздерді} other{рәміздер}}.',
+);