Files
Vocard/langs/VN.json
Choco 1633f14b64 Refactor playlist view and update language files
Refactored playlist viewing logic for improved modularity and maintainability, introducing PlaylistViewManager and DynamicViewManager. Updated language files to standardize playlist view titles and descriptions, and removed unnecessary emojis. Updated requirements.txt to discord.py 2.6.3. Enhanced send function to support file attachments.
2025-09-19 23:29:42 +08:00

171 lines
13 KiB
JSON

{
"unknownException": "⚠️ Đã xảy ra lỗi khi chạy lệnh! Vui lòng thử lại sau hoặc vào server Discord của chúng tôi để được hỗ trợ.",
"enabled": "đã bật",
"disabled": "đã tắt",
"nodeReconnect": "Vui lòng thử lại! Sau khi node kết nối lại.",
"noChannel": "Không có kênh voice để kết nối. Vui lòng cung cấp một kênh hoặc tham gia một kênh.",
"alreadyConnected": "Đã kết nối với kênh voice.",
"noPermission": "Xin lỗi! Tôi không có quyền tham gia hoặc nói trong kênh voice của bạn.",
"noCreatePermission": "Xin lỗi! Tôi không có quyền tạo kênh yêu cầu bài hát.",
"noPlaySource": "Không thể tìm thấy nguồn phát nào!",
"noPlayer": "Không tìm thấy trình phát nào trên máy chủ này.",
"notVote": "Lệnh này yêu cầu bạn bình chọn! Gõ `/vote` để biết thêm thông tin.",
"missingIntents": "Xin lỗi, lệnh này không thể thực hiện vì bot thiếu quyền yêu cầu cần thiết: `({0})`.",
"languageNotFound": "Không tìm thấy gói ngôn ngữ! Vui lòng chọn một gói ngôn ngữ hiện có.",
"changedLanguage": "Đã thay đổi thành công sang gói ngôn ngữ `{0}`.",
"setPrefix": "Hoàn thành! Tiền tố của tôi trong máy chủ của bạn bây giờ là `{0}`. Thử chạy `{1}ping` để kiểm tra.",
"setDJ": "Đặt DJ thành {0}.",
"setQueue": "Đặt chế độ hàng đợi thành `{0}`.",
"247": "Chế độ 24/7 bây giờ là `{0}`.",
"bypassVote": "Bạn có hệ thống bình chọn `{0}`.",
"setVolume": "Đặt âm lượng thành `{0}`%",
"toggleController": "Bây giờ bạn đã `{0}` bộ điều khiển nhạc.",
"toggleDuplicateTrack": "Bây giờ bạn đã `{0}` tính năng ngăn chặn bài hát trùng lặp.",
"toggleControllerMsg": "Bây giờ bạn đã `{0}` tin nhắn từ bộ điều khiển nhạc.",
"toggleSilentMsg": "Bạn có {0} tin nhắn im lặng.",
"settingsMenu": "Cài Đặt Máy Chủ | {0}",
"settingsTitle": "❤️ Thông Tin Cơ Bản:",
"settingsValue": "```Tiền tố: {0}\nNgôn ngữ: {1}\nBộ Điều Khiển Nhạc: {2}\nVai Trò DJ: @{3}\nBỏ Qua Bình Chọn: {4}\n24/7: {5}\nÂm Lượng Mặc Định: {6}%\nThời Gian Phát: {7}```",
"settingsTitle2": "🔗 Thông tin hàng đợi:",
"settingsValue2": "```Chế Độ Hàng Đợi: {0}\nSố Bài Tối Đa: {1}\nBài Hát Trùng Lặp: {2}```",
"settingsTitle3": "🎤 Thông Tin Trạng Thái Voice:",
"settingsPermTitle": "✨ Quyền hạn:",
"settingsPermValue": "```{0} Quản Trị Viên\n{1} Quản_Lý_Guild\n{2} Quản_Lý_Kênh\n{3} Quản_Lý_Tin_Nhắn```",
"pingTitle1": "Thông Tin Bot:",
"pingTitle2": "Thông Tin Trình Phát:",
"pingField1": "```ID Shard: {0}/{1}\nĐộ Trễ Shard: {2:.3f}s {3}\nKhu Vực: {4}```",
"pingField2": "```Node: {0} - {1:.3f}s\nTrình Phát: {2}\nKhu Vực Voice: {3}```",
"addEffect": "Đã áp dụng hiệu ứng `{0}`.",
"clearEffect": "Các hiệu ứng âm thanh đã được xóa!",
"filterTagAlreadyInUse": "Hiệu ứng âm thanh này đã được sử dụng! Vui lòng sử dụng /cleareffect <Tag> để xóa nó.",
"playlistViewTitle": "Tất Cả Playlist Của {0}",
"playlistViewHeaders": "ID:,Thời Gian:,Tên:,Bài Hát:",
"playlistFooter": "Gõ /playlist play [playlist] để thêm playlist vào hàng đợi.",
"playlistNotFound": "Không tìm thấy playlist [`{0}`]. Gõ /playlist view để xem tất cả playlist của bạn.",
"playlistNotAccess": "Xin lỗi! Bạn không được phép truy cập playlist này!",
"playlistNoTrack": "Xin lỗi! Không có bài hát nào trong playlist [`{0}`].",
"playlistNotAllow": "Lệnh này không được phép trên playlist được liên kết và chia sẻ.",
"playlistPlay": "Đã thêm playlist [`{0}`] với `{1}` bài hát vào hàng đợi.",
"playlistOverText": "Xin lỗi! Tên playlist không thể vượt quá 10 ký tự.",
"playlistSameName": "Xin lỗi! Vui lòng chọn tên mới cho playlist.",
"playlistDeleteError": "Bạn không được phép xóa playlist mặc định.",
"playlistRemove": "Bạn đã xóa playlist [`{0}`].",
"playlistSendErrorPlayer": "Xin lỗi! Bạn không thể gửi lời mời cho chính mình.",
"playlistSendErrorBot": "Xin lỗi! Bạn không thể gửi lời mời cho một bot.",
"playlistBelongs": "Xin lỗi! Playlist này thuộc về <@{0}>.",
"playlistShare": "Xin lỗi! Playlist này đã được chia sẻ với {0}.",
"playlistSent": "Xin lỗi! Bạn đã gửi lời mời cho người dùng đó trước đó rồi.",
"noPlaylistAcc": "{0} không tạo tài khoản playlist.",
"overPlaylistCreation": "Bạn không thể tạo nhiều hơn `{0}` playlist!",
"playlistExists": "Playlist [`{0}`] đã tồn tại.",
"playlistNotInvalidUrl": "Vui lòng nhập liên kết playlist Spotify hoặc Youtube công khai hợp lệ.",
"playlistCreated": "Bạn đã tạo playlist `{0}`. Gõ /playlist view để biết thêm thông tin.",
"playlistRenamed": "Bạn đã đổi tên `{0}` thành `{1}`.",
"playlistLimitTrack": "Bạn đã đạt giới hạn! Bạn chỉ có thể thêm `{0}` bài hát vào playlist của mình.",
"playlistPlaylistLink": "Bạn không được phép sử dụng liên kết playlist.",
"playlistStream": "Bạn không được phép thêm video trực tiếp vào playlist của mình.",
"playlistPositionNotFound": "Không thể tìm thấy vị trí `{0}` từ playlist [`{1}`] của bạn!",
"playlistRemoved": "👋 Đã xóa **{0}** khỏi playlist [`{2}`] của {1}.",
"playlistClear": "Bạn đã xóa thành công playlist [`{0}`] của mình.",
"playlistView": "Trình Xem Playlist",
"playlistViewDesc": "```Tên: {0} [{1}]\nTổng Số Bài Hát: {2}\nChủ Sở Hữu: {3}\nLoại: {4}\n```",
"playlistViewPermsValue": "📖 Đọc: ✓ ✍🏽 Viết: {0} 🗑️ Xóa: {1}",
"playlistViewPermsValue2": "📖 Đọc: {0}",
"playlistViewTrack": "Bài Hát",
"playlistViewFooter": "Tổng Thời Lượng: {0}",
"inboxFull": "Xin lỗi! Hộp thư của {0} đã đầy.",
"inboxNoMsg": "Không có tin nhắn nào trong hộp thư của bạn.",
"invitationSent": "Đã gửi lời mời đến {0}.",
"notInChannel": "{0}, bạn phải ở trong {1} để sử dụng lệnh voice. Vui lòng tham gia lại nếu bạn đang ở trong voice!",
"noTrackPlaying": "Hiện tại không có bài hát nào đang phát",
"noTrackFound": "Không tìm thấy bài hát nào với truy vấn đó! Vui lòng cung cấp url hợp lệ.",
"noLinkSupport": "Lệnh tìm kiếm không hỗ trợ liên kết!",
"voted": "Bạn đã bình chọn!",
"missingPosPerm": "Chỉ DJ hoặc quản trị viên mới có thể thay đổi vị trí.",
"missingModePerm": "Chỉ DJ hoặc quản trị viên mới có thể chuyển chế độ lặp.",
"missingQueuePerm": "Chỉ DJ hoặc quản trị viên mới có thể xóa bài hát khỏi hàng đợi.",
"missingAutoPlayPerm": "Chỉ DJ hoặc quản trị viên mới có thể bật hoặc tắt chế độ tự động phát!",
"missingFunctionPerm": "Chỉ DJ hoặc Admin mới có thể sử dụng chức năng này.",
"timeFormatError": "Định dạng thời gian không chính xác. Ví dụ: 2:42 hoặc 12:39:31",
"lyricsNotFound": "Không tìm thấy lời bài hát. Gõ /lyrics <Tên Bài Hát> <Tác Giả> để tìm lời bài hát.",
"missingTrackInfo": "Một số chi tiết bài hát bị thiếu.",
"noVoiceChannel": "Không Tìm Thấy Kênh Voice!",
"playlistAddError": "Bạn không được phép thêm video trực tiếp vào playlist của mình!",
"playlistAddError2": "Đã xảy ra sự cố khi thêm bài hát vào playlist!",
"playlistLimited": "Bạn đã đạt giới hạn! Bạn chỉ có thể thêm {0} bài hát vào playlist của mình.",
"playlistRepeated": "Bài hát này đã có trong playlist của bạn!",
"playlistAdded": "❤️ Đã thêm **{0}** vào playlist [`{2}`] của {1}!",
"playerDropdown": "Chọn một bài hát để bỏ qua đến ...",
"playerFilter": "Chọn một bộ lọc để áp dụng ...",
"buttonBack": "Quay Lại",
"buttonPause": "Tạm Dừng",
"buttonResume": "Tiếp Tục",
"buttonSkip": "Bỏ Qua",
"buttonLeave": "Rời Khỏi",
"buttonLoop": "Lặp Lại",
"buttonVolumeUp": "Tăng Âm Lượng",
"buttonVolumeDown": "Giảm Âm Lượng",
"buttonVolumeMute": "Tắt Tiếng",
"buttonVolumeUnmute": "Bật Tiếng",
"buttonAutoPlay": "Tự Động Phát",
"buttonShuffle": "Trộn Bài",
"buttonForward": "Tua Tới",
"buttonRewind": "Tua Lùi",
"buttonLyrics": "Lời Bài Hát",
"nowplayingDesc": "**Đang Phát:**\n```{0}```",
"nowplayingField": "Tiếp Theo:",
"nowplayingLink": "Nghe trên {0}",
"connect": "Đã kết nối với {0}",
"live": "TRỰC TIẾP",
"playlistLoad": " 🎶 Đã thêm playlist **{0}** với `{1}` bài hát vào hàng đợi.",
"trackLoad": "Đã thêm **[{0}](<{1}>)** bởi **{2}** (`{3}`) để bắt đầu phát.\n",
"trackLoad_pos": "Đã thêm **[{0}](<{1}>)** bởi **{2}** (`{3}`) vào hàng đợi ở vị trí **{4}**\n",
"searchTitle": "Truy Vấn Tìm Kiếm: {0}",
"searchDesc": "➥ Nền tảng: {0} **{1}**\n➥ Kết quả: **{2}**\n\n{3}",
"searchWait": "Chọn bài hát bạn muốn thêm vào hàng đợi.",
"searchTimeout": "Tìm kiếm hết thời gian. Vui lòng thử lại sau.",
"searchSuccess": "Đã thêm bài hát vào hàng đợi.",
"queueTitle": "Hàng Đợi Sắp Tới:",
"historyTitle": "Lịch Sử Hàng Đợi:",
"viewTitle": "Hàng Đợi Nhạc",
"viewDesc": "**Đang Phát: [Nhấp Vào Đây]({0}) ⮯**\n{1}",
"pauseError": "Trình phát đã được tạm dừng.",
"pauseVote": "{0} đã bình chọn tạm dừng bài hát. [{1}/{2}]",
"paused": "`{0}` đã tạm dừng trình phát.",
"resumeError": "Trình phát không bị tạm dừng.",
"resumeVote": "{0} đã bình chọn tiếp tục bài hát. [{1}/{2}]",
"resumed": "`{0}` đã tiếp tục trình phát.",
"shuffleError": "Thêm nhiều bài hát vào hàng đợi trước khi trộn bài.",
"shuffleVote": "{0} đã bình chọn trộn hàng đợi. [{1}/{2}]",
"shuffled": "Hàng đợi đã được trộn.",
"skipError": "Không có bài hát nào để bỏ qua.",
"skipVote": "{0} đã bình chọn bỏ qua bài hát. [{1}/{2}]",
"skipped": "`{0}` đã bỏ qua bài hát.",
"backVote": "{0} đã bình chọn quay lại bài hát trước. [{1}/{2}]",
"backed": "`{0}` đang quay lại bài hát trước.",
"leaveVote": "{0} đã bình chọn dừng trình phát. [{1}/{2}]",
"left": "`{0}` đã dừng trình phát.",
"seek": "Đặt trình phát thành **{0}**",
"repeat": "Chế độ lặp lại đã được đặt thành `{0}`",
"cleared": "Đã xóa tất cả bài hát trong `{0}`",
"removed": "`{0}` bài hát đã được xóa khỏi hàng đợi.",
"forward": "Tua tới trình phát đến **{0}**",
"rewind": "Tua lùi trình phát đến **{0}**",
"replay": "Phát lại bài hát hiện tại.",
"swapped": "`{0}` và `{1}` đã được hoán đổi",
"moved": "Đã di chuyển `{0}` đến `{1}`",
"autoplay": "Chế độ tự động phát bây giờ là **{0}**",
"notdj": "Bạn không phải là DJ. DJ hiện tại là {0}.",
"djToMe": "Bạn không thể chuyển vai trò DJ cho chính mình hoặc một bot.",
"djNotInChannel": "`{0}` không ở trong kênh voice.",
"djswap": "Bạn đã chuyển vai trò DJ cho `{0}`.",
"voicelinkQueueFull": "Xin lỗi, bạn đã đạt tối đa `{0}` bài hát trong hàng đợi!",
"voicelinkOutofList": "Vui lòng cung cấp chỉ số bài hát hợp lệ!",
"voicelinkDuplicateTrack": "Xin lỗi, bài hát này đã có trong hàng đợi.",
"decodeError": "Đã xảy ra lỗi khi giải mã tệp!",
"invalidStartTime": "Thời gian bắt đầu không hợp lệ, phải nằm giữa `00:00` và `{0}`",
"invalidEndTime": "Thời gian kết thúc không hợp lệ, phải nằm giữa `00:00` và `{0}`",
"invalidTimeOrder": "Thời gian kết thúc không thể nhỏ hơn hoặc bằng thời gian bắt đầu",
"setStageAnnounceTemplate": "Hoàn thành! Từ bây giờ, trạng thái voice như cái bạn đang ở sẽ được đặt tên theo mẫu của bạn. Bạn sẽ thấy nó cập nhật trong vài giây.",
"createSongRequestChannel": "Một kênh yêu cầu bài hát ({0}) đã được tạo! Bạn có thể bắt đầu yêu cầu bất kỳ bài hát nào bằng tên hoặc URL trong kênh đó, mà không cần sử dụng tiền tố bot."
}