بلاگ ابرفردوسی > آموزش ژوپیتر لب ابری : نصب افزونه VSCode در اینترنت ملی؛ نصب آفلاین VSIX

نصب افزونه VSCode در اینترنت ملی؛ نصب آفلاین VSIX

نصب افزونه VSCode در اینترنت ملی

توسعه‌دهنده‌ای نیست که موقع کار در شبکه داخلی، با خطای لود نشدن یا تایم‌اوت مارکت‌پلیس ویژوال استودیو کد در شرایط قطعی نت کلافه نشده باشد. نصب افزونه VSCode در اینترنت ملی مهارتی حیاتی است که در زمان اختلالات شدید شبکه یا قطع دسترسی به وب جهانی، جلوی بن‌بست فنی و توقف پروژه‌های شما را می‌گیرد. موضوع پیچیده‌ای هم در میان نیست؛ وقتی سرورهای رسمی مایکروسافت از داخل کشور به‌درستی در دسترس نباشند، ابزار Visual Studio Code توانایی ارتباط و دریافت خودکار پکیج‌ها را از دست می‌دهد.

راهکار منطقی و اثبات‌شده برای حل این چالش، جایگزینی فرآیند آنلاین با معماری نصب محلی است؛ یعنی دانلود دستی بسته‌های الحاقی با پسوند vsix ازطریق آینه‌ها (Mirrors) یا وب‌سایت‌های واسط داخلی و سپس بارگذاری مستقیم آن‌ها روی کلاینت. این متدولوژی به شما اجازه می‌دهد حتی کلیدی‌ترین ابزارها (مانند اکستنشن پایتون یا پکیج‌های توسعه وب) را بدون نیاز به ابزارهای تغییر آی‌پی یا اینترنت بین‌الملل، روی محیط کدنویسی خود مستقر کنید.

در این مقاله، راهکارهای عملی رفع مشکل دانلود افزونه در Visual Studio Code را بررسی می‌کنیم؛ ابتدا به‌سراغ منابع معتبر جایگزین برای دریافت فایل‌ها می‌رویم، سپس فرایند قدم‌به‌قدم نصب دستی VSIX را پیاده‌سازی می‌کنیم و در نهایت، خطاهای رایج سازگاری نسخه‌ها را برطرف خواهیم کرد.

راه‌حل‌های عملی برای نصب آفلاین افزونه vscode

وقتی دسترسی به مارکت‌پلیس رسمی به دلیل اختلالات شبکه قطع می‌شود، فقط به‌خاطر ناتوانی در نصب extension در vscode نباید کار را متوقف کرد. در چنین شرایطی به‌جای متصل شدن مستقیم به سرورهای مایکروسافت، باید از روش‌های غیرمستقیم و آفلاین استفاده کنیم. به‌طورکلی دو استراتژی کاملاً عملیاتی و تست‌شده برای دور زدن این محدودیت وجود دارد که فرایند توسعه شما را زنده نگه می‌دارد:

  • دریافت مستقیم بسته نصب (VSIX): دانلود جداگانه فایل افزونه از آینه‌های دانلود و سایت‌های واسط داخلی
  • انتقال سیستمی (Local Migration): کپی اکستنشن‌های نصب‌شده از یک سیستمِ متصل به شبکه آزاد، به سیستم هدف

1- دانلود دستی افزونه‌های VSCode از منابع جایگزین

یکی از سریع‌ترین راه‌ها برای حل مشکل دانلود افزونه vscode، دانلود مستقل بسته‌های افزونه با پسوند vsix است. مستندات رسمی وب‌سایت ویژوال استودیو کد نیز تأیید می‌کند که تمام افزونه‌ها قابلیت نصب دستی و بدون نیاز به اینترنت را دارند.

وب‌سایت‌های واسط داخلی و سرورهای میرور، پکیج‌های پرکاربرد را در قالب سرورهای داخلی در اختیار برنامه‌نویسان قرار می‌دهند. برای نصب افزونه پایتون در VSCode بدون اینترنت آزاد، کافی است فایل VSIX مربوط به این اکستنشن را از این منابع جایگزین -که در ادامه معرفی می‌شوند- دریافت کنید.

⚠️ هشدار خیلی مهم
تطابق نسخه افزونه با نسخه VSCode
پیش‌از دانلود دستی افزونه‌های VSCode، حتماً نسخه فعلی نرم‌افزار خود را از بخش Help > About چک کنید. فایل‌های VSIX جدید معمولاً برای اجرا به آخرین آپدیت‌های VSCode نیاز دارند. اگر از نسخه‌های قدیمی‌تر استفاده می‌کنید، باید در سایت واسط، نسخه‌هایی را پیدا کنید که با آن تاریخ  هم‌خوانی داشته باشند؛ در غیر این صورت با خطای عدم سازگاری (Compatibility Error) مواجه خواهید شد.

2- انتقال افزونه از یک سیستم دارای اینترنت (مخصوص تیم‌های توسعه)

این روش برای مجموعه‌ها، شرکت‌ها یا تیم‌های نرم‌افزاری که به‌دنبال رفع مشکل دانلود افزونه در Visual Studio Code برای چندین سیستم به‌صورت هم‌زمان هستند، بالاترین بازدهی را دارد.

اگر در شرکت یا میان همکاران، حتی یک سیستم به اینترنت آزاد یا ابزارهای عبور از محدودیت دسترسی داشته باشد، نیازی نیست تک‌تک اعضا درگیر فرایند دانلود افزونه VSCode شوند. در این راهکار، افزونه‌ها ابتدا روی سیستم واسط دانلود و نصب می‌شوند و سپس پوشه پکیج‌ها مستقیماً به سیستم‌های دیگر منتقل می‌گردد. برای اجرای این کار، کافی است مسیرهای زیر را در سیستم مبدأ پیدا کنید و کل محتویات آن را منتقل کنید:

  • در ویندوز: C:\Users\Username\.vscode\extensions
  • در لینوکس: ~/.vscode/extensions
  • در مک (macOS): ~/.vscode/extensions

با انتقال این پوشه به سیستم‌های تحت شبکه و بدون نیاز به هیچ‌گونه فرایند نصب، ابزارها فعال می‌شوند و محیط VSCode بدون تحریم در اختیارتان قرار می‌گیرد.

آموزش نصب افزونه‌های VSCode در اینترنت ملی

مراحل نصب افزونه vscode در اینترنت ملی

وقتی برای اولین‌بار با مشکل marketplace vscode در ایران مواجه می‌شوید، شاید فرایند نصب دستی کمی پیچیده به‌نظر برسد. اما راه‌اندازی این سیستم ساختار بسیار ساده‌ای دارد. در این بخش، روش کامل نصب آفلاین extension در VSCode را براساس ابزارهای در دسترس داخلی جلو می‌بریم.

مرحله ۱- پیداکردن و انتخاب ابزار جایگزین

ازآنجاکه دسترسی به مخزن اصلی با اختلال همراه است، باید از پلتفرم‌های آینه داخلی استفاده کنیم. درحال حاضر دو مرجع معتبر ایرانی برای دانلود دستی افزونه‌های VSCode وجود دارند که فرایند توسعه را تسهیل کرده‌اند:

۱. وب‌سایت devneeds یک آینه مستقیم است که پکیج‌ها را به‌صورت آماده در اختیارتان می‌گذارد.

۲. وب‌سایت thealibigdeli که یک آرشیو کاربردی دیگر است.

باکس نکته وردپرس – راست‌چین
✨ نکته مهم
تغییر پسوند فایل‌ها در منبع دوم
فایل‌هایی که از وب‌سایت thealibigdeli دانلود می‌کنید، به دلایل فنی با پسوند فشرده (مانند zip) دانلود می‌شوند. برای اینکه این فایل‌ها توسط ویرایشگر کد شناسایی شوند، باید بعداز دانلود، روی فایل با راست‌کلیک، گزینه Rename را بزنید و پسوند آن را به‌طور دستی از zip به vsix تغییر دهید.

مرحله ۲- دریافت فایل VSIX

پس‌از ورود به این سایت‌ها و جست‌وجوی ابزار موردنظر خود (مثلاً اکستنشن پایتون یا گیت‌لنز)، روی دکمه دانلود کلیک کنید. مطمئن شوید که فایل به‌طور کامل دانلود شده و پکیج ناقص نباشد. این فایل، هسته اصلی برای نصب افزونه VSCode در اینترنت ملی خواهد بود.

مرحله ۳- نصب فایل در محیط VS Code

حالا ویرایشگر کد خود را باز کنید و مراحل زیر را به ترتیب پیش ببرید:

  • از منوی سمت چپ، روی آیکون Extensions کلیک کنید (یا کلیدهای میانبر Ctrl + Shift + X را فشار دهید).
  • در بالای پنل بازشده، روی آیکون سه نقطه (…) یا همان Views and More Actions کلیک کنید.
  • از منوی آبشاری بازشده، گزینه Install from VSIX… را انتخاب کنید.
  • در پنجره بازشده به مسیری که فایل را دانلود کرده‌اید بروید، پس‌از انتخاب فایل vsix، روی دکمه Install کلیک کنید.

مرحله ۴- ری‌لود یا راه‌اندازی مجدد

پس‌از کلیک روی دکمه نصب، فرایند بارگذاری پکیج در پس‌زمینه انجام می‌شود. در اکثر مواقع، یک نوتیفیکیشن در گوشه سمت راست پایین صفحه ظاهر می‌شود که از شما می‌خواهد محیط نرم‌افزار را بازنشانی کنید. روی گزینه Reload Required کلیک کنید یا یک‌بار نرم‌افزار VS Code را ببندید و دوباره باز کنید تا تغییرات اعمال شوند.

مرحله ۵- بررسی و تایید فعال‌سازی افزونه

برای اینکه مطمئن شوید نصب VSIX در VSCode با موفقیت انجام شده است، دوباره به بخش Extensions بروید. در لیست افزونه‌های نصب‌شده (Installed)، نام ابزار جدید را چک کنید. اگر آیکون افزونه به‌صورت شفاف و بدون خطا نمایش داده شود، یعنی فرایند با موفقیت به پایان رسیده و آماده کدنویسی هستید.

خطاهای رایج و راه‌حل‌ها

هرچند کار با VSCode بدون تحریم بین‌المللی و با نصب آفلاین ممکن است، اما گاهی در فرایند دریافت دستی پکیج‌ها، معمولاً با چند خطای مشخص روبرو می‌شوید. در جدول زیر، این خطاها و راه‌های رفع آن‌ها را برای شما خلاصه کرده‌ایم.

نوع خطا یا مشکلعلت اصلی بروز خطاراهکار عملی رفع مشکل
مشکل دانلود افزونه VSCode (خطای ترافیک یا عدم لود مارکت‌پلیس)مسدودبودن آی‌پی‌ها یا اختلال شدید در پروتکل‌های ارتباطی بین‌المللاستفاده از آینه‌های دانلود داخلی (مانند مراجع معرفی‌شده در بخش قبل) و دانلود پکیج‌ها با ابزارهای مدیریت دانلود (IDM)
خطای عدم سازگاری نسخه (Incompatible Version)دانلود آخرین نسخه افزونه برای یک نسخه قدیمی از نرم‌افزار VSCodeآپدیت کردن خود نرم‌افزار VSCode یا مراجعه به آرشیو سایت‌های واسط و دانلود پکیج‌های قدیمی‌تر (متناسب با نسخه نرم‌افزارتان)
خطای خراب بودن یا باز نشدن فایل (Invalid VSIX / Corrupted)دانلود ناقص فایل به‌دلیل نوسان شبکه یا اشتباه در تغییر دادن پسوند فایل از zip به vsixدانلود مجدد فایل با یک دانلود منیجر مطمئن و بررسی دقیق پسوند فایل به‌صورت کوچک (vsix)
فعال نشدن افزونه بعداز نصب موفقلود نشدن کامپوننت‌های داخلی ادیتور در لحظه یا نیاز به ابزارهای جانبییک‌بار بستن و باز کردن کامل نرم‌افزار یا اجرای دستور Reload Window. همچنین مطمئن شوید افزونه به پیش‌نیاز دیگری وابسته نیست.
خطای معماری سیستم‌عامل (Architecture Mismatch)دانلود پکیج مخصوص پردازنده‌های دیگر (مثلاً دانلود نسخه ARM برای پردازنده x64).هنگام دانلود دستی به شناسه معماری فایل (مانند win32-x64 برای ویندوز ۶۴ بیت یا darwin-arm64 برای مک‌های جدید) دقت کنید.
💡 ترفند کاربردی
پیش‌نیازهای پنهان افزونه‌ها
بعضی از اکستنشن‌های سنگین (مثل ابزارهای فرمت‌کننده کد یا پکیج‌های زبان‌های خاص) پس‌از نصب فایل VSIX، در اولین اجرا سعی می‌کنند برخی پیش‌نیازها را به‌صورت مخفیانه از گیت‌هاب دانلود کنند که در شرایط قطعی نت این فرایند با شکست مواجه می‌شود. اگر باوجود نصب صحیح، ابزار کار نکرد، بخش Output نرم‌افزار را در تب پایین چک کنید تا ببینید آیا درحال تلاش برای دانلود فایل جانبی شکست‌خورده است یا خیر. در این حالت، باید آن فایل جانبی را نیز دستی دانلود و در مسیر افزونه قرار دهید.

بهترین روش کدنویسی آفلاین در چند سیستم

دانلود دستی فایل‌های VSIX و انتقال پوشه‌ای اکستنشن‌ها، روش‌های کارآمدی برای یک یا دو سیستم خانگی است. اما وقتی مسئولیت یک تیم توسعه را برعهده دارید یا می‌خواهید محیط کدنویسی چندین سیستم را در شبکه داخلی یکپارچه کنید، این کارهای دستی خیلی زود به یک فرایند فرساینده تبدیل می‌شود. ناهماهنگی در نسخه‌ها، پکیج‌های ناقص و خطاهای معماری سیستم‌عامل، سرعت تیم را می‌گیرد.

راه‌حل منطقی و پایدار در این سناریوها، عبور از کلاینت‌های محلی و انتقال به یک محیط توسعه متمرکز و ابری است. اگر علاوه‌بر ابزارهای عمومی ادیتور به یک محیط آماده، پایدار و قدرتمند برای توسعه پایتون، کار با نوت‌بوک‌ها و پردازش داده نیاز دارید، استفاده از سرور ژوپیتر لب (jupyter server) بهترین میان‌بر فنی است.

بزرگ‌ترین مزیت این روش این است که شما می‌توانید با یک تیر دو نشان بزنید؛ یعنی هم ساختار یکپارچه ابری داشته باشید و هم درصورت تمایل، ازطریق راهنمای استفاده از ژوپیتر در vscode، کدهای خود را همچنان در ادیتور محبوب‌تان بنویسید، اما پردازش و مدیریت پکیج‌ها را به یک سرور ابری پایدار بسپارید.

مزایای استقرار ژوپیتر لب در شبکه ملی ابر فردوسی

در پلتفرم ابر فردوسی زیرساخت شما در داخل شبکه ملی مستقر است و دغدغه قطعی یا اختلال مارکت‌پلیس را ندارید. ویژگی‌های کلیدی ابزار ما عبارت‌اند از:

  1. بازارچه ابری با نصب اتوماتیک: می‌توانید پکیج‌ها و افزونه‌های موردنیاز خود را تنها با یک کلیک و بدون درگیر شدن با خطاهای دانلود مارکت‌پلیس، به‌صورت اتوماتیک نصب و فعال‌سازی کنید.
  2. دسترسی به سخت‌افزار اختصاصی و غول‌پیکر: به قدرتمندترین پردازنده‌های هوشمند (AMD EPYC و Intel Xeon)، هاردهای NVMe بهینه و سری‌های متنوع پردازش گرافیکی دسترسی دارید:
    • سری RTX: مجهز به هسته‌های RT و حافظه GDDR7X؛ ایده‌آل برای توسعه بازی، رندرینگ و آموزش هوش مصنوعی در مقیاس متوسط
    • سری TESLA: مجهز به هسته‌های Tensor و حافظه HBM2؛ مناسب برای یادگیری عمیق و تحلیل داده‌های سازمانی
    • سری H: با موتور پیشرفته Transformer و پهنای باند عالی؛ مخصوص آموزش مدل‌های غول‌پیکر (LLMs) و شبیه‌سازی‌های پیچیده
  3. مدیریت هوشمند هزینه‌ها (امکان خاموشی سرور): نیازی نیست برای زمان‌هایی که کار نمی‌کنید هزینه‌ای بپردازید. شما می‌توانید سرور ژوپیتر خود را در ساعات عدم استفاده خاموش کنید؛ پس‌از روشن کردن مجدد، دقیقاً از همان‌جایی که کار را رها کرده بودید ادامه خواهید داد.
  4. پرداخت ساعتی و تحویل آنی: تعرفه استفاده به‌صورت ساعتی، روزانه و هفتگی محاسبه می‌شود تا کنترل کاملی روی هزینه‌ها داشته باشید. همچنین تحویل سرویس کاملاً آنی و بدون وقفه است.
  5. امنیت و کنترل بالا با کلید API: امکان تغییر رمزهای اتصال، بک‌آپ‌گیری لحظه‌ای (Snapshot) و مدیریت گروه‌های امنیتی برای تضمین پایداری ارتباط در اختیارتان قرار دارد.
سرور ژوپیتر لب

جمع‌بندی

نصب افزونه VSCode در اینترنت ملی شاید در نگاه اول به‌دلیل وابستگی شدید این ویرایشگر به مارکت‌پلیس رسمی یک بن‌بست به‌نظر برسد، اما معماری انعطاف‌پذیر ویژوال استودیو کد همیشه راه‌های جایگزین را برای ما باز نگه می‌دارد. در این مقاله یاد گرفتیم که چطور با استفاده از آینه‌های دانلود داخلی، فایل‌های vsix را به‌صورت دستی دریافت و نصب کنیم، خطاهای رایج عدم سازگاری نسخه‌ها را برطرف سازیم و حتی چطور پکیج‌های نصب‌شده را به‌صورت گروهی بین سیستم‌های یک تیم توسعه انتقال دهیم.

در نهایت بررسی کردیم که برای پروژه‌های تیمی و سنگین پایتون و هوش مصنوعی، انتقال به یک ساختار متمرکز مانند سرور ژوپیتر لب، راهکاری بسیار پایدارتر و اقتصادی‌تر از کلنجار رفتن روزمره با ابزارهای تغییر آی‌پی است.

شما در زمان اختلالات شبکه چطور محیط توسعه خود را زنده نگه می‌دارید؟ آیا تجربه استفاده از نصب آفلاین VSIX یا انتقال به محیط‌های ابری را داشته‌اید؟ تجربیات و پرسش‌های خود را در بخش نظرات با ما به اشتراک بگذارید تا باهم به راهکارهای بهتری برسیم.

منابع:
blogs.sas | vscode-docs | stackoverflow

 سؤالات متداول

چگونه افزونه VSCode را بدون تحریم نصب کنیم؟

ساده‌ترین و اصولی‌ترین راه، نصب آفلاین افزونه vscode است. برای این کار کافی است شناسه اکستنشن را در سایت‌های واسط داخلی جست‌وجو کنید، فایل نصب آن را با پسوند vsix دانلود دستی کنید و ازطریق منوی داخلی ادیتور (گزینه Install from VSIX) بدون نیاز به اینترنت جهانی و ابزارهای تغییر آی‌پی روی سیستم خود مستقر کنید.

چرا Marketplace ویژوال استودیو کد در ایران باز نمی‌شود؟

دلایل اصلی این مشکل می‌توانند قطعی اینترنت خارجی (احتمال زیاد) و یا مسدود شدن آی‌پی‌های ایران از سمت مارکت‌پلیس رسمی مایکروسافت (علت ضعیف‌تر) و نوسانات شدید پروتکل‌های ارتباطی در اینترنت ملی باشند. این اختلال باعث می‌شود VSCode نتواند به دیتابیس افزونه‌ها وصل شود و با خطای تایم‌اوت یا لود نشدن دائمی روبه‌رو شوید.

فایل VSIX چیست و از کجا باید آن را دانلود کنیم؟

فایل vsix فرمت استاندارد و خروجی نهایی پکیج‌های الحاقی ویژوال استودیو کد است که تمام کدهای افزونه را به‌صورت یک‌جا و آفلاین در خود دارد. در ایران بهترین منابع برای دانلود دستی افزونه‌های VSCode و دسترسی به این فایل‌ها، وب‌سایت‌های داخلی مانند vscode.devneeds.ir و thealibigdeli.ir/vscode-extensions هستند.

اگر دانلود افزونه در VSCode خطا داد یا دکمه Install کار نکرد، چه کار کنیم؟

وقتی ادیتور در حالت آنلاین ارور می‌دهد، یعنی ارتباط شبکه قطع است. در این حالت فورا دکمه نصب آنلاین را رها کنید؛ پکیج VSIX افزونه را از مراجع معرفی‌شده دریافت و آن را به‌صورت دستی نصب کنید. اگر بازهم دکمه نصب دستی کار نکرد، احتمالاً نسخه VSCode شما قدیمی است و با آن افزونه سازگاری ندارد.

آیا نسخه‌های مختلف VSCode روی نصب افزونه تأثیر دارند؟

بله، شدیداً! افزونه‌های جدید معمولاً برای اجرا به قابلیت‌های آخرین آپدیت‌های VSCode نیاز دارند. اگر از نسخه‌های قدیمی‌تر استفاده می‌کنید و هنگام نصب دستی با خطا مواجه می‌شوید، باید از بخش آرشیو سایت‌های واسط، نسخه‌های قدیمی‌تر همان افزونه (متناسب با تاریخ انتشار ادیتورتان) را دانلود کنید.

آیا افزونه‌های مهم و سنگین مثل Python یا Pylance هم آفلاین نصب می‌شوند؟

بله، فرایند نصب هیچ تفاوتی ندارد. اما یک نکته تجربی وجود دارد: برخی افزونه‌های سنگین مثل پایتون، پس‌از نصب آفلاینِ فایل اصلی، سعی می‌کنند برخی پیش‌نیازهای فرعی را پنهانی از گیت‌هاب دانلود کنند. اگر اینترنت آزاد ندارید و افزونه کار نکرد، بخش Output ادیتور را چک کنید تا فایل‌های فرعی ناقص را هم دستی دانلود و در مسیر افزونه کپی کنید.

آیا نصب افزونه از فایل VSIX و منابع واسط امن است؟

اگر فایل VSIX را از سایت‌های معتبر و شناخته‌شده داخلی دانلود کنید، کاملاً امن است؛ چون این سایت‌ها عموماً نسخه‌های دست‌نخورده و اصلی را بازنشر می‌کنند. بااین‌حال، همیشه برای پروژه‌های مهم سازمانی پیشنهاد می‌شود فایل‌ها را دقیق بررسی کنید.

آیا می‌شود افزونه‌های VSCode را روی یک سیستم دیگر دانلود و به سیستم بدون اینترنت منتقل کرد؟

بله و این بهترین روش برای تیم‌های حرفه‌ای است. شما می‌توانید تمام افزونه‌های نصب‌شده روی یک سیستم متصل به اینترنت آزاد را از مسیر C:\Users\Username\.vscode\extensions کپی کنید و با فلش یا شبکه داخلی، عینا به همین مسیر در سیستم‌های دیگر منتقل کنید. افزونه‌ها بدون نیاز به هیچ فرایند نصبی فوراً فعال می‌شوند.

یاسین اسدی

اگه می‌خوای زندگیت تغیر کنه کتاب نخون؛ نوشته‌های منو بخون!
پست های مرتبط

آموزش کار با فرمت ها در پایتون

هنگام توسعه یک اسکریپت، معمولاً فرایند کار با چالشِ واقعیِ خواندن، نوشتن یا تبدیل ساختار داده‌ها گره می‌خورد؛ موقعیتی که یک فرمت نامعتبر در آرایه‌های JSON یا انتخاب اِنکودینگ اشتباه در فایل‌های متنی، پایتون را با ارورهای…

۷ مرداد ۱۴۰۵

بهترین مخازن جایگزین pip (میرورهای داخلی)

دستور pip install را می‌زنید و منتظر می‌مانید؛ اما یا فرایند نصب به‌شکل عجیبی کند است یا در نهایت با خطای Timeout مواجه می‌شوید. این تجربه‌‌ای است که تقریباً هر توسعه‌دهنده پایتون در ایران مخصوصا در این…

۱۷ خرداد ۱۴۰۵

جایگزین Google Colab؛ مقایسه بهترین پلتفرم‌های پردازشی جایگزین کولب

قطعی‌های مکرر VPN در میانه آموزش مدل‌های ماشین لرنینگ و مسدودشدن آی‌پی‌های ایران، استفاده از گوگل کولب را به تجربه‌ای پر از تاخیر و کلافگی تبدیل کرده است. ازطرفی، محدودیت‌های منابع در نسخه رایگان و عدم امکان…

۷ خرداد ۱۴۰۵
0 0 رای ها
به مقاله امتیاز بدید
0 نظرات