**JavaScript**
- DOM Manipulation
- Event Handling
- Array Methods (forEach, filter, map, ...)
- Async/Await
- Promise
- Fetch API
- Storage Management (cookie, localStorage, ...)
---
شرکت Mockstar به تازگی با توجه به آمارهایی که از بازیکنان جمعآوری کرده،
متوجه شده است که در طی چند ماه گذشته، تعداد بازیکنان ایرانی روبهرشد بوده و بهشدت زیاد شده است؛
بنابراین تصمیم گرفته است تا از زبان فارسی در محصولات خود پشتیبانی کند.
حال از پمبه خواسته شده است تا این کار را برای سایت معرفی بازیها انجام دهد.
این نکته را در نظر بگیرید که زمانی که کاربر دوباره وارد صفحه میشود،
باید زبان سایت و بازیای که آخرین بار مشاهده کرده، بارگذاری شود.
مدیر پمبه از او خواسته است که در کد خود فقط از `localStorage` برای ذخیرهسازی اطلاعات کاربران استفاده کند.
## توضیحات سوال
<details class="green">
<summary>تصویر خروجی نمونه</summary>
![خروجی نمونه](https://codestar.s3.ir-thr-at1.arvanstorage.com/challenge-07.png)
</details>
میتوانید برای بررسی دقیقتر نتیجۀ نهایی،
[این فیلم](https://codestar.s3.ir-thr-at1.arvanstorage.com/challenge-07.mp4)
را مشاهده کنید.
## پروژه اولیه
پروژه اولیه را از [این لینک](https://quera.ir/contest/assignments/41564/download_problem_initial_project/139932) دانلود کنید.
<details class="blue">
<summary>ساختار فایلها</summary>
```
initial-project-05.zip
├── data
│ └── games.json
├── fonts
│ ├── shabnam.woff
│ └── shabnam-bold.woff
├── icons
│ └── languages.svg
├── images
│ ├── dota2.jpg
│ ├── god-of-war.jpg
│ ├── horizon.jpg
│ └── rdr2.jpg
├── languages
│ ├── en.json
│ └── fa.json
├── dynamic.js
├── index.html
└── static.css
```
</details>
<details class="pink">
<summary>راهاندازی پروژه</summary>
+ ابتدا پروژۀ اولیه را دانلود و از حالت فشرده خارج کنید.
+ سپس فایل `index.html` را در مرورگر خود باز کنید.
</details>
## خواستههای مسئله
- استفاده از اطلاعات فایل `data/games.json` برای تغییر نام و عکس بازیها
- استفاده از اطلاعات فایل `data/games.json` برای تغییر رنگ دکمۀ موجود در `nav`
- استفاده از اطلاعات فایلهای موجود در پوشۀ `languages` برای تغییر زبان سایت
- افزودن صفات `lang`و `dir` به المان `html`، متناسب با زبان سایت
- مشخصکردن شمارۀ بازی فعلی با استفاده از کلاس `active`
## نکات
- شما تنها مجاز به تغییر در فایل `dynamic.js` هستید. تغییرات در باقی فایلها نادیده گرفته میشود.
- توجه کنید که داوری خودکار بر مبنای ساختار فایل `index.html` انجام میشود.
- برای ثبت پاسخ، پروژه را با ساختار زیر ارسال کنید.
```
[your-zip-file-name].zip
└── dynamic.js
```