diff --git a/src/guide/essentials/computed.md b/src/guide/essentials/computed.md
index 64786e96..2a1fad5b 100644
--- a/src/guide/essentials/computed.md
+++ b/src/guide/essentials/computed.md
@@ -10,7 +10,7 @@
## مثال پایه {#basic-example}
-عباراتی که در تمپلیت استفاده می شوند بسیار راحت هستند، اما آنها برای عملیاتهای ساده طراحی شدهاند. قرار دادن منطق بیش از حد در تمپلیتهای شما ممکن است باعث ناخوانایی و دشواری در نگهداری کدها شود. به عنوان مثال، اگر یک آبجکت با یک آرایه تو در تو داشته باشیم:
+عباراتی که در تمپلیت استفاده میشوند بسیار راحت هستند، اما آنها برای عملیاتهای ساده طراحی شدهاند. قرار دادن منطق بیش از حد در تمپلیتهای شما ممکن است باعث ناخوانایی و دشواری در نگهداری کدها شود. به عنوان مثال، اگر یک آبجکت با یک آرایه تو در تو داشته باشیم:
@@ -56,7 +56,7 @@ const author = reactive({
در این نقطه، تمپلیت کمی پیچیده شده است. باید وقت بیشتری برای درک کد صرف کنیم که متوجه شویم شرط بر اساس `author.books` یک محاسبه انجام میدهد. مهمتر از این، اگر نیاز باشد که این محاسبه را بیش از یک بار در تمپلیت استفاده کنیم، احتمالاً نمیخواهیم یک کد را چندین بار بنویسیم.
-به همین دلیل است که وقتی منطق پیچیده و دادههای پویا داریم، استفاده از ویژگی **computed** توصیه میشود. کلمه computed به معنی محاسبه شده است. در اینجا همان مثال، بازسازی شده است:
+به همین دلیل است که وقتی منطق پیچیده و دادههای پویا داریم، استفاده از ویژگی **computed** توصیه میشود. کلمه computed به معنی محاسبه شده است. در اینجا همان مثال بازسازی شده است:
@@ -170,7 +170,7 @@ function calculateBooksMessage() {
-به جای یک پراپرتی computed، می توانیم همان تابع را به عنوان یک متد تعریف کنیم. نتیجه نهایی این دو رویکرد دقیقاً یکسان است. با این حال، تفاوت این است که **پراپرتیهای computed بر اساس وابستگیهای reactive، کش می شوند.** یک پراپرتی computed تنها زمانی دوباره ارزیابی می شود که برخی از وابستگی های reactive آن تغییر کرده باشند. این بدان معناست که تا زمانی که `author.books` تغییر نکرده باشد، دسترسی به `publishedBooksMessage` نتیجه محاسبه قبلی را برمی گرداند، بدون نیاز به اجرای مجدد تابع getter .
+به جای یک پراپرتی computed، می توانیم همان تابع را به عنوان یک متد تعریف کنیم. نتیجه نهایی این دو رویکرد دقیقاً یکسان است. با این حال، تفاوت این است که **پراپرتیهای computed بر اساس وابستگیهای reactive، کش میشوند.** یک پراپرتی computed تنها زمانی دوباره ارزیابی میشود که برخی از وابستگیهای reactive آن تغییر کرده باشند. این بدان معناست که تا زمانی که `author.books` تغییر نکرده باشد، دسترسی به `publishedBooksMessage` نتیجه محاسبه قبلی را برمیگرداند، بدون نیاز به اجرای مجدد تابع getter .
این به این معنی هم هست که پراپرتی computed زیر هیچ وقت بهروز نمیشود، زیرا `Date.now()` یک reactive نمیباشد.
@@ -313,7 +313,7 @@ const alwaysSmall = computed((previous) => {
```
-In case you're using a writable computed:
+در صورتی که از computed قابل تغییر استفاده می کنید:
@@ -371,7 +371,7 @@ const alwaysSmall = computed({
### توابع getter باید فقط مقدار مورد نظر را برگردانند و تغییر دیگری در برنامه ایجاد نکنند.{#getters-should-be-side-effect-free}
-مهم است به یاد داشته باشید که توابع getter در computed فقط باید محاسبات خالص را انجام دهند. به عبارت دیگر، **درون تابع getter، دیگر stateها را تغییر ندهید، از درخواستهای async یا تغییر DOM استفاده نکنید!** به computed به عنوان یک راه ساده برای محاسبه یک مقدار بر اساس مقادیر دیگر نگاه کنید - مسئولیت اصلی آن تنها محاسبه و بازگرداندن آن مقدار میباشد. در ادامه این بخش، به بحث در مورد انجام عملیات هایی در پاسخ به تغییرات state با [ناظرها (watchers)](./watchers) خواهیم پرداخت.
+مهم است به یاد داشته باشید که توابع getter در computed فقط باید محاسبات خالص را انجام دهند. به عبارت دیگر، **درون تابع getter، دیگر stateها را تغییر ندهید، از درخواستهای async یا تغییر DOM استفاده نکنید!** به computed به عنوان یک راه ساده برای محاسبه یک مقدار بر اساس مقادیر دیگر نگاه کنید - مسئولیت اصلی آن تنها محاسبه و بازگرداندن آن مقدار میباشد. در ادامه این فصل، به بحث در مورد انجام عملیاتهایی در پاسخ به تغییرات state با [ناظرها (watchers)](./watchers) خواهیم پرداخت.
### مقادیر computed را تغییر ندهید {#avoid-mutating-computed-value}