diff --git a/framework/messages/az/yii.php b/framework/messages/az/yii.php
new file mode 100644
index 0000000..9b3276e
--- /dev/null
+++ b/framework/messages/az/yii.php
@@ -0,0 +1,93 @@
+<?php
+/**
+ * Message translations.
+ *
+ * This file is automatically generated by 'yii message' command.
+ * It contains the localizable messages extracted from source code.
+ * You may modify this file by translating the extracted messages.
+ *
+ * Each array element represents the translation (value) of a message (key).
+ * If the value is empty, the message is considered as not translated.
+ * Messages that no longer need translation will have their translations
+ * enclosed between a pair of '@@' marks.
+ *
+ * Message string can be used with plural forms format. Check i18n section
+ * of the guide for details.
+ *
+ * NOTE: this file must be saved in UTF-8 encoding.
+ */
+return [
+    '(not set)' => '(məlumat yoxdur)',
+    'An internal server error occurred.' => 'Daxili server xətasi meydana gəldi.',
+    'Are you sure you want to delete this item?' => 'Bu elementi silmək istədiyinizə əminsinizmi?',
+    'Delete' => 'Sil',
+    'Error' => 'Xəta',
+    'File upload failed.' => 'Fayl yüklənmədi.',
+    'Home' => 'Ana səhifə',
+    'Invalid data received for parameter "{param}".' => 'Bu "{param}" parametri üçün yalnış məlumat alındı.',
+    'Login Required' => 'İstifadəçi girişi tələb olunur',
+    'Missing required arguments: {params}' => 'Tələb olunan arqumentlər tapılmadı: {params}',
+    'Missing required parameters: {params}' => 'Tələb olunan parametrlər tapılmadı: {params}',
+    'No' => 'Xeyr',
+    'No help for unknown command "{command}".' => 'Qeyri-müəyyən "{command}" əmri üçün kömək yoxdur.',
+    'No help for unknown sub-command "{command}".' => 'Qeyri-müəyyən "{command}" sub-əmri üçün kömək yoxdur.',
+    'No results found.' => 'Heç bir nəticə tapılmadı',
+    'Only files with these MIME types are allowed: {mimeTypes}.' => 'Ancaq bu MIME tipli fayllara icazə verilib: {mimeTypes}.',
+    'Only files with these extensions are allowed: {extensions}.' => 'Genislənmələri ancaq bu tipdə olan fayllara icazə verilib: {extensions}.',
+    'Page not found.' => 'Səhifə tapılmadı.',
+    'Please fix the following errors:' => 'Xahiş olunur xətaları düzəldin:',
+    'Please upload a file.' => 'Xahiş olunur fayl yükləyin.',
+    'Showing <b>{begin, number}-{end, number}</b> of <b>{totalCount, number}</b> {totalCount, plural, one{item} other{items}}.' => '<b>{totalCount, number}</b> {totalCount, plural, one{elementin} other{element}} <b>{begin, number}-{end, number} arasi göstərilir.</b>',
+    'The file "{file}" is not an image.' => '"{file}" təsvir faylı deyil.',
+    'The file "{file}" is too big. Its size cannot exceed {limit, number} {limit, plural, one{byte} other{bytes}}.' => '"{file}" faylı çox böyükdür. Həcmi {limit, number} {limit, plural, one{byte} other{bytes}} qiymətindən böyük ola bilməz.',
+    'The file "{file}" is too small. Its size cannot be smaller than {limit, number} {limit, plural, one{byte} other{bytes}}.' => '"{file}" faylı çox kiçikdir. Həcmi {limit, number} {limit, plural, one{byte} other{bytes}} qiymətindən kiçik ola bilməz.',
+    'The format of {attribute} is invalid.' => '{attribute} formati düzgün deyil.',
+    'The image "{file}" is too large. The height cannot be larger than {limit, number} {limit, plural, one{pixel} other{pixels}}.' => '"{file}" çox böyükdür. Uzunluq {limit, plural, one{pixel} other{pixels}} qiymətindən böyük ola bilməz.',
+    'The image "{file}" is too large. The width cannot be larger than {limit, number} {limit, plural, one{pixel} other{pixels}}.' => '"{file}" çox böyükdür. En {limit, number} {limit, plural, one{pixel} other{pixel}} qiymətindən böyük ola bilməz.',
+    'The image "{file}" is too small. The height cannot be smaller than {limit, number} {limit, plural, one{pixel} other{pixels}}.' => '"{file}" çox kiçikdir. En {limit, number} {limit, plural, one{pixel} other{pixel}} qiymətindən kiçik ola bilməz.',
+    'The image "{file}" is too small. The width cannot be smaller than {limit, number} {limit, plural, one{pixel} other{pixels}}.' => '"{file}" çox kiçikdir. En {limit, number} {limit, plural, one{pixel} other{pixels}} qiymətindən kiçik ola bilməz.',
+    'The verification code is incorrect.' => 'Təsdiqləmə kodu səhvdir.',
+    'Total <b>{count, number}</b> {count, plural, one{item} other{items}}.' => 'Toplam <b>{count, number}</b> {count, plural, one{element} other{element}}.',
+    'Unable to verify your data submission.' => 'Təqdim etdiyiniz məlumat təsdiqlənmədi.',
+    'Unknown command "{command}".' => 'Qeyri-müəyyən əmr "{command}".',
+    'Unknown option: --{name}' => 'Qeyri-müəyyən seçim: --{name}',
+    'Update' => 'Yenilə',
+    'View' => 'Bax',
+    'Yes' => 'Bəli',
+    'You are not allowed to perform this action.' => 'Bu əməliyyati yerinə yetirmək üçün icazəniz yoxdur.',
+    'You can upload at most {limit, number} {limit, plural, one{file} other{files}}.' => 'Ancaq {limit, number} {limit, plural, one{fayl} other{fayl}} yükləyə bilərsiniz.',
+    'the input value' => 'daxil olunmuş qiymət',
+    '{attribute} "{value}" has already been taken.' => '{attribute} "{value}" artıq istifadə olunub.',
+    '{attribute} cannot be blank.' => '{attribute} boş qoyula bilməz.',
+    '{attribute} is invalid.' => '{attribute} düzgün deyil.',
+    '{attribute} is not a valid URL.' => '{attribute} düzgün URL deyil.',
+    '{attribute} is not a valid email address.' => '{attribute} düzgün e-mail deyil.',
+    '{attribute} must be "{requiredValue}".' => '{attribute} {requiredValue} olmalıdır.',
+    '{attribute} must be a number.' => '{attribute} ədəd olmalıdır.',
+    '{attribute} must be a string.' => '{attribute} hərf olmalıdır.',
+    '{attribute} must be an integer.' => '{attribute} tam ədəd olmalıdır.',
+    '{attribute} must be either "{true}" or "{false}".' => '{attribute} {true} ya da {false} ola bilər.',
+    '{attribute} must be greater than "{compareValue}".' => '{attribute}, "{compareValue}" dən böyük olmalıdır.',
+    '{attribute} must be greater than or equal to "{compareValue}".' => '{attribute}, "{compareValue}" dən böyük və ya bərabər olmalıdır.',
+    '{attribute} must be less than "{compareValue}".' => '{attribute}, "{compareValue}" dən az olmalıdır.',
+    '{attribute} must be less than or equal to "{compareValue}".' => '{attribute}, "{compareValue}" dən az və ya bərabər olmalıdır.',
+    '{attribute} must be no greater than {max}.' => '{attribute} {max} dən böyük olmamalıdır.',
+    '{attribute} must be no less than {min}.' => '{attribute} {min} dən kiçik olmamalıdır.',
+    '{attribute} must be repeated exactly.' => '{attribute} dəqiq təkrar olunmalidir.',
+    '{attribute} must not be equal to "{compareValue}".' => '{attribute}, "{compareValue}" ilə eyni olmamalıdır',
+    '{attribute} should contain at least {min, number} {min, plural, one{character} other{characters}}.' => '{attribute} ən az {min, number} simvol olmalıdır.',
+    '{attribute} should contain at most {max, number} {max, plural, one{character} other{characters}}.' => '{attribute} ən çox {max, number} simvol olmalıdır.',
+    '{attribute} should contain {length, number} {length, plural, one{character} other{characters}}.' => '{attribute} {length, number} simvol olmalıdır.',
+    '{n, plural, =1{# byte} other{# bytes}}' => '{n} Bayt',
+    '{n, plural, =1{# gigabyte} other{# gigabytes}}' => '{n} Giqabayt',
+    '{n, plural, =1{# kilobyte} other{# kilobytes}}' => '{n} Kilobayt',
+    '{n, plural, =1{# megabyte} other{# megabytes}}' => '{n} Meqabayt',
+    '{n, plural, =1{# petabyte} other{# petabytes}}' => '{n} Petabayt',
+    '{n, plural, =1{# terabyte} other{# terabytes}}' => '{n} Terabayt',
+    '{n} B' => '{n} B',
+    '{n} GB' => '{n} GB',
+    '{n} KB' => '{n} KB',
+    '{n} MB' => '{n} MB',
+    '{n} PB' => '{n} PB',
+    '{n} TB' => '{n} TB',
+];
diff --git a/framework/messages/config.php b/framework/messages/config.php
index aa48817..ebb4821 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', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'es', 'et', 'fa-IR', 'fi', 'fr', 'hu', 'id', 'it', 'ja', 'kk', 'ko', 'lt', 'lv', 'nl', 'pl', 'pt', 'pt-BR', 'ro', 'ru', 'sk', 'sr', 'sr-Latn', 'sv', 'th', 'uk', 'vi', 'zh-CN','zh-TW'],
+    'languages' => ['ar', 'az', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'es', 'et', 'fa-IR', 'fi', 'fr', 'hu', 'id', 'it', 'ja', 'kk', 'ko', 'lt', 'lv', 'nl', 'pl', 'pt', 'pt-BR', 'ro', 'ru', 'sk', 'sr', 'sr-Latn', 'sv', 'th', 'uk', 'vi', 'zh-CN','zh-TW'],
     // 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