diff --git a/framework/messages/config.php b/framework/messages/config.php
index cf32760..c2db795 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', 'es', 'it', 'ja', 'pl', 'pt-BR', 'pt-PT', 'ro', 'ru', 'sk', 'sr', 'sr-Latn', 'zh-CN'],
+	'languages' => ['ar', 'da', 'de', 'es', 'fa-IR', 'it', 'ja', 'pl', 'pt-BR', 'pt-PT', 'ro', 'ru', 'sk', 'sr', 'sr-Latn', '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/fa-IR/yii.php b/framework/messages/fa-IR/yii.php
new file mode 100644
index 0000000..1344ffc
--- /dev/null
+++ b/framework/messages/fa-IR/yii.php
@@ -0,0 +1,83 @@
+<?php
+/**
+* Persian (Farsi) Translation
+* By: Nabi KaramAliZadeh <info@nabi.ir> <www.nabi.ir>
+* 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 array(
+        'the input value' => 'مقدار ورودی',
+        '(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}.' => 'فقط فایل‌های با این پسوندها مجاز هستند: {extentions}.',
+        'Only files with these mimeTypes are allowed: {mimeTypes}.' => 'فقط فایل‌های با این قوائد مجاز هستند: {extentions}.',
+        'Page not found.' => 'صفحه‌ای یافت نشد.',
+        'Please fix the following errors:' => 'لطفاً خطاهای زیر را رفع نمائید:',
+        'Please upload a file.' => 'لطفاً یک فایل آپلود کنید.',
+        'Showing <b>{begin, number}-{end, number}</b> of <b>{totalCount, number}</b> {totalCount, plural, one{item} other{items}}.' => 'نمایش <b>{begin, number} تا {end, number}</b> مورد از کل <b>{totalCount, number}</b> مورد.',
+        '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} بایت باشد.',
+        'The file "{file}" is too small. Its size cannot be smaller than {limit, number} {limit, plural, one{byte} other{bytes}}.' => 'حجم فایل "{file}" بیش از حد کم است. مقدار آن نمی‌تواند کمتر از {limit, number} بایت باشد.',
+        '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} پیکسل باشد.',
+        'The image "{file}" is too large. The width cannot be larger than {limit, number} {limit, plural, one{pixel} other{pixels}}.' => 'تصویر "{file}" خیلی بزرگ است. عرض نمی‌تواند بزرگتر از {limit, number} پیکسل باشد.',
+        'The image "{file}" is too small. The height cannot be smaller than {limit, number} {limit, plural, one{pixel} other{pixels}}.' => 'تصویر "{file}" خیلی کوچک است. ارتفاع نمی‌تواند کوچکتر از {limit, number} پیکسل باشد.',
+        'The image "{file}" is too small. The width cannot be smaller than {limit, number} {limit, plural, one{pixel} other{pixels}}.' => 'تصویر "{file}" خیلی کوچک است. عرض نمی‌تواند کوچکتر از {limit, number} پیکسل باشد.',
+        'The verification code is incorrect.' => 'کد تائید اشتباه است.',
+        'Total <b>{count, number}</b> {count, plural, one{item} other{items}}.' => 'مجموع <b>{count, number}</b> مورد.',
+        'Unable to verify your data submission.' => 'قادر به تائید اطلاعات ارسالی شما نمی‌باشد.',
+        'Unknown command "{command}".' => 'فرمان ناشناخته "{command}".',
+        'Unknown option: --{name}' => 'گزینه ناشناخته: --{name}',
+        'Update' => 'بروزرسانی',
+        'View' => 'نما',
+        'Yes' => 'بله',
+        'You are not allowed to perform this action.' => 'شما دسترسی به انجام این عملیات را ندارید.',
+        'You can upload at most {limit, number} {limit, plural, one{file} other{files}}.' => 'شما حداکثر {limit, number} فایل را می‌توانید آپلود کنید.',
+        '{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} یک آدرس ایمیل معتبر نیست.',
+        '{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} نباید بیشتر از "{compareValue}" باشد.',
+        '{attribute} must be no less than {min}.' => '{attribute} نباید کمتر از "{compareValue}" باشد.',
+        '{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} کارکتر باشد.',
+        '{attribute} should contain at most {max, number} {max, plural, one{character} other{characters}}.' => '{attribute} حداکثر باید شامل {max, number} کارکتر باشد.',
+        '{attribute} should contain {length, number} {length, plural, one{character} other{characters}}.' => '{attribute} باید شامل {length, number} کارکتر باشد.',
+);
\ No newline at end of file