diff --git a/README.md b/README.md index 5249a08..463e04b 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,34 @@ - - Discord - - # Vocard Bot -Vocard is a highly customizable Discord music bot, designed to deliver a user-friendly experience. It offers support for a wide range of streaming platforms including Youtube, Soundcloud, Spotify, Twitch, and more. +Vocard یک ربات موسیقی دیسکورد است که قابلیت تنظیمات گسترده‌ای دارد و تجربه کاربری ساده‌ای را ارائه می‌دهد. این ربات از پلتفرم‌های استریم مختلف از جمله یوتیوب، ساندکلود، اسپاتیفای، توییچ و دیگر پلتفرم‌ها پشتیبانی می‌کند. -## Features -* Fast song loading -* Works with slash and message commands -* Lightweight design -* Smooth playback -* Clean and nice interface -* Supports many music platforms (YouTube, SoundCloud, etc.) -* Built-in playlist support -* Fully customizable settings -* Lyrics support -* Various sound effects -* Multiple languages available -* Easy to update -* Supports docker -* Premium dashboard (in beta) -## Screenshot -![features](https://github.com/user-attachments/assets/f34b542d-be37-4170-bb80-c44748d8eb04) +
-## Requirements -* [Python 3.11+](https://www.python.org/downloads/) -* [Lavalink Server (Requires 4.0.0+)](https://github.com/freyacodes/Lavalink) +## ویژگی‌ها +* بارگذاری سریع آهنگ‌ها +* پشتیبانی از دستورات اسلش و دستورات متنی +* طراحی سبک +* پخش روان +* رابط کاربری تمیز و زیبا +* پشتیبانی از بسیاری از پلتفرم‌های موسیقی (یوتیوب، ساندکلود و غیره) +* پشتیبانی داخلی از پلی‌لیست‌ها +* تنظیمات کاملاً قابل تنظیم +* پشتیبانی از اشعار +* انواع افکت‌های صوتی +* پشتیبانی از زبان‌های متعدد +* به‌روزرسانی آسان +* پشتیبانی از داکر +* داشبورد پریمیوم (در مرحله بتا) + +## اسکرین‌شات +![features](https://github.com/user-attachments/assets/f34b542d-be37-4170-bb80-c44748d8eb04) -## Setup -Please see the [Setup Page](https://docs.vocard.xyz) in the docs to run this bot yourself! +## نیازمندی‌ها +* [پایتون 3.11+](https://www.python.org/downloads/) +* [Lavalink Server (نیاز به نسخه ۴.۰.۰+)](https://github.com/freyacodes/Lavalink) -## Need Help? -Join the [Vocard Support Discord](https://discord.gg/wRCgB7vBQv) for help or questions. +## راه‌اندازی +لطفاً به [صفحه راه‌اندازی](https://docs.vocard.xyz) در مستندات برای اجرای این ربات به‌صورت شخصی مراجعه کنید! +## نیاز به کمک؟ +برای کمک یا سوالات، به [دیسکورد پشتیبانی Vocard](https://discord.gg/xT5ueVqA) بپیوندید. diff --git a/langs/FA.json b/langs/FA.json new file mode 100644 index 0000000..cb7104f --- /dev/null +++ b/langs/FA.json @@ -0,0 +1,190 @@ +{ + "unknownException": "⚠️ مشکلی در اجرای دستور رخ داد! لطفاً بعداً دوباره امتحان کنید یا به سرور دیسکورد ما برای پشتیبانی بیشتر بپیوندید.", + "enabled": "فعال", + "disabled": "غیرفعال", + + "nodeReconnect": "لطفاً دوباره امتحان کنید! بعد از اتصال مجدد نود.", + "noChannel": "کانال صوتی برای اتصال وجود ندارد. لطفاً یک کانال مشخص کنید یا به یکی بپیوندید.", + "alreadyConnected": "در حال حاضر به یک کانال صوتی متصل هستم.", + "noPermission": "متاسفم! من مجوز لازم برای پیوستن یا صحبت در کانال صوتی شما را ندارم.", + "noPlaySource": "منبع قابل پخش پیدا نشد!", + "noPlayer": "هیچ پلیر فعالی در این سرور پیدا نشد.", + "notVote": "این دستور نیاز به رأی شما دارد! برای اطلاعات بیشتر `/vote` را تایپ کنید.", + "languageNotFound": "هیچ بسته زبان یافت نشد! لطفاً یک بسته زبان موجود را انتخاب کنید.", + "changedLanguage": "زبان به `{0}` با موفقیت تغییر یافت.", + "setPrefix": "تمام! پیشوند من در سرور شما اکنون `{0}` است. برای آزمایش، دستور `{1}ping` را اجرا کنید.", + "setDJ": "DJ به {0} تنظیم شد.", + "setqueue": "حالت صف به `{0}` تنظیم شد.", + "247": "حالت 24/7 اکنون `{0}` است.", + "bypassVote": "سیستم رأی‌گیری اکنون `{0}` است.", + "setVolume": "بلندی صدا به `{0}`% تنظیم شد.", + "togglecontroller": "کنترل‌کننده موسیقی اکنون `{0}` است.", + "toggleDuplicateTrack": "جلوگیری از آهنگ‌های تکراری در صف اکنون `{0}` است.", + "toggleControllerMsg": "پیام‌های کنترل‌کننده موسیقی اکنون `{0}` هستند.", + "settingsMenu": "تنظیمات سرور | {0}", + "settingsTitle": "❤️ اطلاعات پایه:", + "settingsValue": "```پیشوند: {0}\nزبان: {1}\nکنترل‌کننده موسیقی: {2}\nنقش DJ: @{3}\nرد کردن رأی: {4}\n24/7: {5}\nبلندی صدای پیش‌فرض: {6}%\nزمان پخش: {7}```", + "settingsTitle2": "🔗 اطلاعات صف:", + "settingsValue2": "```حالت صف: {0}\nحداکثر آهنگ: {1}\nآهنگ‌های تکراری: {2}```", + "settingsTitle3": "🎤 وضعیت صوتی:", + "settingsPermTitle": "✨ دسترسی‌ها:", + "settingsPermValue": "```{0} مدیر\n{1} مدیریت_سرور\n{2} مدیریت_کانال\n{3} مدیریت_پیام‌ها```", + "pingTitle1": "اطلاعات بات:", + "pingTitle2": "اطلاعات پلیر:", + "pingfield1": "```شناسه شارد: {0}/{1}\nزمان تأخیر شارد: {2:.3f}s {3}\nمنطقه: {4}```", + "pingfield2": "```نود: {0} - {1:.3f}s\nپلیرها: {2}\nمنطقه صوتی: {3}```", + "addEffect": "فیلتر افکت `{0}` اعمال شد.", + "clearEffect": "تمام افکت‌های صوتی پاک شدند!", + "FilterTagAlreadyInUse": "این افکت صوتی در حال استفاده است! لطفاً از `/cleareffect ` برای حذف آن استفاده کنید.", + + "playlistViewTitle": "📜 تمامی لیست‌های پخش {0}", + "playlistViewHeaders": "شناسه:,زمان:,نام:,تعداد ترک‌ها:", + "playlistFooter": "دستور /playlist play [playlist] را تایپ کنید تا لیست پخش را به صف اضافه کنید.", + "playlistNotFound": "لیست پخش [`{0}`] یافت نشد. برای مشاهده تمامی لیست‌های پخش خود، دستور /playlist view را تایپ کنید.", + "playlistNotAccess": "متأسفیم! شما اجازه دسترسی به این لیست پخش را ندارید!", + "playlistNoTrack": "متأسفیم! هیچ تراکی در لیست پخش [`{0}`] وجود ندارد.", + "playlistNotAllow": "این دستور در لیست‌های پخش متصل و اشتراکی مجاز نیست.", + "playlistPlay": "لیست پخش [`{0}`] با `{1}` ترک به صف اضافه شد.", + "playlistOverText": "متأسفیم! نام لیست پخش نمی‌تواند بیشتر از ۱۰ کاراکتر باشد.", + "playlistSameName": "متأسفیم! این نام نمی‌تواند با نام جدید شما یکسان باشد.", + "playlistDeleteError": "شما مجاز به حذف لیست پخش پیش‌فرض نیستید.", + "playlistRemove": "شما لیست پخش [`{0}`] را حذف کردید.", + "playlistSendErrorPlayer": "متأسفیم! شما نمی‌توانید دعوتنامه‌ای برای خود ارسال کنید.", + "playlistSendErrorBot": "متأسفیم! شما نمی‌توانید دعوتنامه‌ای برای یک بات ارسال کنید.", + "playlistBelongs": "متأسفیم! این لیست پخش متعلق به <@{0}> است.", + "playlistShare": "متأسفیم! این لیست پخش با {0} به اشتراک گذاشته شده است.", + "playlistSent": "متأسفیم! شما قبلاً دعوتنامه‌ای ارسال کرده‌اید.", + "noPlaylistAcc": "{0} حسابی برای لیست پخش ایجاد نکرده است.", + "overPlaylistCreation": "شما نمی‌توانید بیشتر از `{0}` لیست پخش ایجاد کنید!", + "playlistExists": "لیست پخش [`{0}`] قبلاً وجود دارد.", + "playlistNotInvaildUrl": "لطفاً یک لینک معتبر یا لینک عمومی اسپاتیفای یا یوتیوب وارد کنید.", + "playlistCreated": "شما لیست پخش `{0}` را ایجاد کردید. برای اطلاعات بیشتر دستور /playlist view را تایپ کنید.", + "playlistRenamed": "شما نام لیست پخش `{0}` را به `{1}` تغییر دادید.", + "playlistLimitTrack": "شما به حد مجاز رسیده‌اید! فقط می‌توانید `{0}` ترک به لیست پخش خود اضافه کنید.", + "playlistPlaylistLink": "شما مجاز به استفاده از لینک لیست پخش نیستید.", + "playlistStream": "شما مجاز به اضافه کردن ویدیوهای پخش زنده به لیست پخش خود نیستید.", + "playlistPositionNotFound": "موقعیت `{0}` در لیست پخش [`{1}`] پیدا نشد!", + "playlistRemoved": "👋 **{0}** از لیست پخش {1} [`{2}`] حذف شد.", + "playlistClear": "شما با موفقیت لیست پخش خود [`{0}`] را پاک کردید.", + "playlistView": "نمایش‌دهنده لیست پخش", + "playlistViewDesc": "```نام | شناسه: {0} | {1}\nتعداد ترک‌ها: {2}\nمالک: {3}\nنوع: {4}\n```", + "playlistViewPermsValue": "📖 خواندن: ✓ ✍🏽 نوشتن: {0} 🗑️ حذف: {1}", + "playlistViewPermsValue2": "📖 خواندن: {0}", + "playlistViewTrack": "ترک‌ها", + "playlistViewPage": "صفحه: {0}/{1} | کل مدت زمان: {2}", + "inboxFull": "متأسفیم! صندوق پیام‌های {0} پر است.", + "inboxNoMsg": "هیچ پیامی در صندوق پیام‌های شما وجود ندارد.", + "invitationSent": "دعوتنامه برای {0} ارسال شد.", + + "notInChannel": "{0}، شما باید در {1} باشید تا بتوانید از دستورات صوتی استفاده کنید. لطفاً اگر در کانال صوتی هستید دوباره به آن بپیوندید!", + "noTrackPlaying": "در حال حاضر هیچ آهنگی در حال پخش نیست.", + "noTrackFound": "هیچ آهنگی با این جستجو پیدا نشد! لطفاً یک لینک معتبر ارائه دهید.", + "noLinkSupport": "دستور جستجو از لینک‌ها پشتیبانی نمی‌کند!", + "voted": "شما رأی دادید!", + "missingPerms_pos": "فقط دی‌جی یا مدیران می‌توانند موقعیت را تغییر دهند.", + "missingPerms_mode": "فقط دی‌جی یا مدیران می‌توانند حالت حلقه را تغییر دهند.", + "missingPerms_queue": "فقط دی‌جی یا مدیران می‌توانند ترک را از صف حذف کنند.", + "missingPerms_autoplay": "فقط دی‌جی یا مدیران می‌توانند حالت پخش خودکار را فعال یا غیرفعال کنند!", + "missingPerms_function": "فقط دی‌جی یا مدیر می‌تواند از این قابلیت استفاده کند.", + "timeFormatError": "فرمت زمان اشتباه است. مثال: 2:42 یا 12:39:31", + "lyricsNotFound": "متن آهنگ پیدا نشد. دستور /lyrics <نام آهنگ> <نام هنرمند> را تایپ کنید تا متن آهنگ را پیدا کنید.", + "missingTrackInfo": "برخی از اطلاعات ترک موجود نیست.", + "noVoiceChannel": "کانال صوتی یافت نشد!", + + "playlistAddError": "شما اجازه ندارید ویدیوهای استریمینگ را به لیست پخش خود اضافه کنید!", + "playlistAddError2": "مشکلی در اضافه کردن ترک‌ها به لیست پخش وجود دارد!", + "playlistlimited": "به محدودیت رسیدید! شما فقط می‌توانید {0} آهنگ به لیست پخش خود اضافه کنید.", + "playlistrepeated": "این آهنگ از قبل در لیست پخش شما وجود دارد!", + "playlistAdded": "❤️ **{0}** به لیست پخش {1} [`{2}`] اضافه شد!", + + "playerDropdown": "یک آهنگ برای رفتن به آن انتخاب کنید...", + "playerFilter": "یک فیلتر برای اعمال انتخاب کنید...", + + "buttonBack": "بازگشت", + "buttonPause": "توقف", + "buttonResume": "ادامه", + "buttonSkip": "رد کردن", + "buttonLeave": "خروج", + "buttonLoop": "تکرار", + "buttonVolumeUp": "افزایش صدا", + "buttonVolumeDown": "کاهش صدا", + "buttonVolumeMute": "بی‌صدا کردن", + "buttonVolumeUnmute": "لغو بی‌صدا", + "buttonAutoPlay": "پخش خودکار", + "buttonShuffle": "ترتیب تصادفی", + "buttonForward": "جلو رفتن", + "buttonRewind": "عقب رفتن", + + "nowplayingDesc": "**اکنون در حال پخش:**\n```{0}```", + "nowplayingField": "آیتم بعدی:", + "nowplayingLink": "گوش دادن در {0}", + + "connect": "متصل به {0}", + + "live": "زنده", + "playlistLoad": " 🎶 لیست پخش **{0}** با `{1}` آهنگ به صف اضافه شد.", + "trackLoad": "آهنگ **[{0}](<{1}>)** توسط **{2}** (`{3}`) برای پخش اضافه شد.\n", + "trackLoad_pos": "آهنگ **[{0}](<{1}>)** توسط **{2}** (`{3}`) در موقعیت **{4}** به صف اضافه شد.\n", + + "searchTitle": "جستجوی کوئری: {0}", + "searchDesc": "➥ پلتفرم: {0} **{1}**\n➥ نتایج: **{2}**\n\n{3}", + "searchWait": "آهنگی را که می‌خواهید به صف اضافه کنید انتخاب کنید.", + "searchTimeout": "زمان جستجو به پایان رسید. لطفاً دوباره امتحان کنید.", + "searchSuccess": "آهنگ به صف اضافه شد.", + + "queueTitle": "صف آینده:", + "historyTitle": "صف سابقه:", + "viewTitle": "صف موسیقی", + "viewDesc": "**اکنون در حال پخش: [کلیک کنید]({0}) ⮯**\n{1}", + "viewFooter": "صفحه: {0}/{1} | مدت کل: {2}", + + "pauseError": "پلیر قبلاً متوقف شده است.", + "pauseVote": "{0} برای متوقف کردن آهنگ رأی داد. [{1}/{2}]", + "paused": "`{0}` پلیر را متوقف کرده است.", + "resumeError": "پلیر متوقف نیست.", + "resumeVote": "{0} برای ازسرگیری آهنگ رأی داد. [{1}/{2}]", + "resumed": "`{0}` پلیر را از سر گرفته است.", + "shuffleError": "آهنگ‌های بیشتری به صف اضافه کنید تا امکان شافل فراهم شود.", + "shuffleVote": "{0} برای شافل کردن صف رأی داد. [{1}/{2}]", + "shuffled": "صف شافل شد.", + "skipError": "آهنگی برای رد کردن وجود ندارد.", + "skipVote": "{0} برای رد کردن آهنگ رأی داد. [{1}/{2}]", + "skipped": "`{0}` آهنگ را رد کرده است.", + + "backVote": "{0} برای بازگشت به آهنگ قبلی رأی داد. [{1}/{2}]", + "backed": "`{0}` به آهنگ قبلی بازگشت.", + + "leaveVote": "{0} برای توقف پلیر رأی داد. [{1}/{2}]", + "left": "`{0}` پلیر را متوقف کرد.", + + "seek": "پلیر را به **{0}** تنظیم کرد.", + "repeat": "حالت تکرار به `{0}` تنظیم شد.", + "cleared": "تمام آهنگ‌ها در `{0}` پاک شدند.", + "removed": "`{0}` آهنگ از صف حذف شدند.", + "forward": "پلیر به جلو تا **{0}** حرکت کرد.", + "rewind": "پلیر به عقب تا **{0}** برگشت.", + "replay": "آهنگ فعلی دوباره پخش می‌شود.", + "swapped": "`{0}` و `{1}` جایگزین شدند.", + "moved": "`{0}` به `{1}` منتقل شد.", + "autoplay": "حالت پخش خودکار اکنون **{0}** است.", + + "notdj": "شما DJ نیستید. DJ فعلی {0} است.", + "djToMe": "نمی‌توانید نقش DJ را به خود یا یک ربات انتقال دهید.", + "djnotinchannel": "`{0}` در کانال صوتی نیست.", + "djswap": "شما نقش DJ را به `{0}` منتقل کردید.", + + "chaptersDropdown": "یک فصل برای پرش انتخاب کنید ...", + "noChaptersFound": "هیچ فصلی یافت نشد!", + "chaptersNotSupport": "این دستور فقط از ویدیوهای یوتیوب پشتیبانی می‌کند!", + + "voicelinkQueueFull": "متأسفیم، شما به حداکثر تعداد `{0}` آهنگ در صف رسیده‌اید!", + "voicelinkOutofList": "لطفاً یک شاخص آهنگ معتبر ارائه دهید!", + "voicelinkDuplicateTrack": "متأسفیم، این آهنگ قبلاً در صف موجود است.", + + "decodeError": "هنگام رمزگشایی فایل مشکلی پیش آمد!", + "invalidStartTime": "زمان شروع نامعتبر است، باید بین `00:00` و `{0}` باشد.", + "invalidEndTime": "زمان پایان نامعتبر است، باید بین `00:00` و `{0}` باشد.", + "invalidTimeOrder": "زمان پایان نمی‌تواند کمتر یا برابر با زمان شروع باشد.", + + "SetStageAnnounceTemplate": "انجام شد! از این پس، وضعیت صوتی مانند چیزی که اکنون در آن هستید طبق الگوی شما نامگذاری می‌شود. باید طی چند ثانیه به‌روزرسانی شود." +} \ No newline at end of file