From f6c25118e162ffc2ffb5b54ff7988b6d300e7e9f Mon Sep 17 00:00:00 2001 From: Choco <94597336+ChocoMeow@users.noreply.github.com> Date: Sun, 10 Aug 2025 12:44:25 +0800 Subject: [PATCH] Add Vietnamese language support Added VN.json containing Vietnamese translations for bot messages. --- langs/VN.json | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 langs/VN.json diff --git a/langs/VN.json b/langs/VN.json new file mode 100644 index 0000000..6fef020 --- /dev/null +++ b/langs/VN.json @@ -0,0 +1,172 @@ +{ + "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 để 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 | ID: {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", + "playlistViewPage": "Trang: {0}/{1} | Tổng Thời Lượng: {2}", + "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ì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}", + "viewFooter": "Trang: {0}/{1} | Tổng Thời Lượng: {2}", + "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." +} \ No newline at end of file