diff --git a/README.md b/README.md
index d564347..964161b 100644
--- a/README.md
+++ b/README.md
@@ -193,3 +193,19 @@ After installation or finishes all you can use `node .` to start the bot. or `Ru
+
+## 📃 Translate Team (Languages)
+
+- [x] **en (English)**
+ - [@Adivise](/~https://github.com/Adivise) **Discord:** `*Stylish.#4078`
+- [x] **th (Thailand)**
+ - [@Adivise](/~https://github.com/Adivise) **Discord:** `*Stylish.#4078`
+- [x] **es-ES (Spanish)**
+ - [@NoBody-UU](/~https://github.com/NoBody-UU) **Discord:** `NoBody🥀#9666`
+ - [@VenQuiDev](/~https://github.com/venquidev) **Discord:** `VenQui#6625`
+- [x] **vi (Vietnamese)**
+ - [@RainyXeon](/~https://github.com/RainyXeon) **Discord:** `RainyXeon >#0017`
+
+## ⁉ Become Translate Team?
+
+- [Crowdin](https://crowdin.com/project/nanospace)
\ No newline at end of file
diff --git a/commands/Premium/Redeem.js b/commands/Premium/Redeem.js
index ac48f72..33471b7 100644
--- a/commands/Premium/Redeem.js
+++ b/commands/Premium/Redeem.js
@@ -4,7 +4,7 @@ const Premium = require("../../settings/models/Premium.js");
const Redeem = require("../../settings/models/Redeem.js");
module.exports = {
- name: ["premium", "redeem"],
+ name: ["redeem"],
description: "Redeem your premium!",
category: "Premium",
options: [
diff --git a/commands/Premium/Setup.js b/commands/Premium/Setup.js
index 0f484a3..5c6cfbd 100644
--- a/commands/Premium/Setup.js
+++ b/commands/Premium/Setup.js
@@ -9,6 +9,10 @@ module.exports = {
await interaction.deferReply({ ephemeral: false });
if (!interaction.member.permissions.has(PermissionsBitField.Flags.ManageGuild)) return interaction.editReply(`${client.i18n.get(language, "utilities", "lang_perm")}`);
+
+ const player = client.manager.get(interaction.guild.id);
+ if (player) player.destroy();
+
try {
if (user && user.isPremium) {
await interaction.guild.channels.create({
@@ -29,7 +33,9 @@ module.exports = {
.setAuthor({ name: `${client.i18n.get(language, "setup", "setup_playembed_author")}` })
.setImage(`${client.i18n.get(language, "setup", "setup_playembed_image")}`)
.setDescription(`${client.i18n.get(language, "setup", "setup_playembed_desc")}`)
- .setFooter({ text: `${client.i18n.get(language, "setup", "setup_playembed_footer")}` });
+ .setFooter({ text: `${client.i18n.get(language, "setup", "setup_playembed_footer", {
+ prefix: "/"
+ })}` });
await channel.send({ files: [attachment] });
await channel.send({ content: `${queueMsg}`, embeds: [playEmbed], components: [client.diSwitch] }).then(async (playmsg) => {
diff --git a/events/guild/voiceStateUpdate.js b/events/guild/voiceStateUpdate.js
index 133594f..e8da9d3 100644
--- a/events/guild/voiceStateUpdate.js
+++ b/events/guild/voiceStateUpdate.js
@@ -5,7 +5,11 @@ module.exports = async (client, oldState, newState) => {
const player = client.manager?.players.get(newState.guild.id);
if (!player) return;
- if (!newState.guild.members.cache.get(client.user.id).voice.channelId) player.destroy();
+ if (!newState.guild.members.cache.get(client.user.id).voice.channelId) {
+ player.destroy();
+ client.UpdateMusic(player);
+ client.clearInterval(client.interval);
+ }
if (newState.channelId && newState.channel.type == 13 && newState.guild.members.me.voice.suppress) {
if (newState.guild.members.me.permissions.has(PermissionsBitField.Flags.Speak) || (newState.channel && newState.channel.permissionsFor(nS.guild.members.me).has(PermissionsBitField.Flags.Speak))) {
diff --git a/handlers/Player/loadContent.js b/handlers/Player/loadContent.js
index ac98bb9..0b2adf4 100644
--- a/handlers/Player/loadContent.js
+++ b/handlers/Player/loadContent.js
@@ -6,7 +6,6 @@ const delay = require("delay");
module.exports = async (client) => {
try {
client.on("interactionCreate", async (interaction) => {
- if (!interaction.guild || interaction.user.bot) return;
if (interaction.isButton()) {
const { customId, member } = interaction;
let voiceMember = interaction.guild.members.cache.get(member.id);
@@ -20,8 +19,9 @@ try {
const guildModel = await GLang.findOne({ guild: playChannel.guild.id });
const { language } = guildModel;
-
- setTimeout(() => interaction.deleteReply(), 3000);
+
+ const database = await Setup.findOne({ guild: interaction.guild.id });
+ if (database.enable === false) return;
switch (customId) {
case "sprevious":
@@ -152,7 +152,6 @@ try {
}
client.on("messageCreate", async (message) => {
- if(message.author.bot || message.channel.type === 1) return;
if (!message.guild || !message.guild.available) return;
/// Create database when not have!
@@ -165,67 +164,71 @@ client.on("messageCreate", async (message) => {
const channel = await message.guild.channels.cache.get(database.channel);
if (!channel) return;
- if (database.channel != message.channel.id) return;
+ if (database.channel != message.channel.id) return;
+
+ /// Get form here right? don't care about this, this error give affect bot!
+ const msg = await channel.messages.fetch(database.playmsg, { cache: true, force: true });
+ if (!msg) return;
const guildModel = await GLang.findOne({ guild: message.guild.id });
const { language } = guildModel;
if (message.author.id === client.user.id) {
await delay(3000);
- message.delete()
+ message.delete();
}
if (message.author.bot) return;
- const song = message.cleanContent;
- await message.delete();
-
- let voiceChannel = await message.member.voice.channel;
- if (!voiceChannel) return message.channel.send(`${client.i18n.get(language, "noplayer", "no_voice")}`).then((msg) => {
- setTimeout(() => {
- msg.delete()
- }, 4000);
- });
-
- const player = await client.manager.create({
- guild: message.guild.id,
- voiceChannel: message.member.voice.channel.id,
- textChannel: message.channel.id,
- selfDeafen: true,
- });
-
- const state = player.state;
- if (state != "CONNECTED") await player.connect();
- const res = await client.manager.search(song, message.author);
- if(res.loadType != "NO_MATCHES") {
- if(res.loadType == "TRACK_LOADED") {
- player.queue.add(res.tracks[0]);
- if(!player.playing) player.play();
- } else if(res.loadType == "PLAYLIST_LOADED") {
- player.queue.add(res.tracks)
- if(!player.playing) player.play();
- } else if(res.loadType == "SEARCH_RESULT") {
- player.queue.add(res.tracks[0]);
- if(!player.playing) player.play();
- } else if(res.loadType == "LOAD_FAILED") {
- message.channel.send(`${client.i18n.get(language, "music", "play_fail")}`).then((msg) => {
- setTimeout(() => {
- msg.delete()
- }, 4000);
- });
- player.destroy();
- }
- } else {
- message.channel.send(`${client.i18n.get(language, "music", "play_match")}`).then((msg) => {
+ const song = message.cleanContent;
+ await message.delete();
+
+ let voiceChannel = await message.member.voice.channel;
+ if (!voiceChannel) return message.channel.send(`${client.i18n.get(language, "noplayer", "no_voice")}`).then((msg) => {
+ setTimeout(() => {
+ msg.delete()
+ }, 4000);
+ });
+
+ const player = await client.manager.create({
+ guild: message.guild.id,
+ voiceChannel: message.member.voice.channel.id,
+ textChannel: message.channel.id,
+ selfDeafen: true,
+ });
+
+ const state = player.state;
+ if (state != "CONNECTED") await player.connect();
+ const res = await client.manager.search(song, message.author);
+ if(res.loadType != "NO_MATCHES") {
+ if(res.loadType == "TRACK_LOADED") {
+ player.queue.add(res.tracks[0]);
+ if(!player.playing) player.play();
+ } else if(res.loadType == "PLAYLIST_LOADED") {
+ player.queue.add(res.tracks)
+ if(!player.playing) player.play();
+ } else if(res.loadType == "SEARCH_RESULT") {
+ player.queue.add(res.tracks[0]);
+ if(!player.playing) player.play();
+ } else if(res.loadType == "LOAD_FAILED") {
+ message.channel.send(`${client.i18n.get(language, "music", "play_fail")}`).then((msg) => {
setTimeout(() => {
msg.delete()
}, 4000);
});
player.destroy();
}
+ } else {
+ message.channel.send(`${client.i18n.get(language, "music", "play_match")}`).then((msg) => {
+ setTimeout(() => {
+ msg.delete()
+ }, 4000);
+ });
+ player.destroy();
+ }
- if (player) {
- client.UpdateQueueMsg(player);
- }
+ if (player) {
+ client.UpdateQueueMsg(player);
+ }
});
};
\ No newline at end of file
diff --git a/handlers/Player/loadUpdate.js b/handlers/Player/loadUpdate.js
index 63b8682..677ceff 100644
--- a/handlers/Player/loadUpdate.js
+++ b/handlers/Player/loadUpdate.js
@@ -6,14 +6,14 @@ const Setup = require("../../settings/models/Setup.js");
module.exports = async (client) => {
client.UpdateQueueMsg = async function (player) {
- const data = await Setup.findOne({ guild: player.guild });
- if (data.enable === false) return;
+ const database = await Setup.findOne({ guild: player.guild });
+ if (database.enable === false) return;
- const channel = await client.channels.cache.get(data.channel);
+ const channel = await client.channels.cache.get(database.channel);
if (!channel) return;
- const playMsg = await channel.messages.fetch(data.playmsg, { cache: false, force: true });
- if (!playMsg) return;
+ const msg = await channel.messages.fetch(database.playmsg, { cache: false, force: true });
+ if (!msg) return;
const guildModel = await GLang.findOne({ guild: player.guild });
const { language } = guildModel;
@@ -51,7 +51,7 @@ module.exports = async (client) => {
duration: qDuration,
})}` }) //${player.queue.length} • Song's in Queue | Volume • ${player.volume}% | ${qDuration} • Total Duration
- return playMsg.edit({
+ return msg.edit({
content: `${client.i18n.get(language, "setup", "setup_content")}\n${Str == '' ? `${client.i18n.get(language, "setup", "setup_content_empty")}` : '\n' + Str}`,
embeds: [embed],
components: [client.enSwitch]
@@ -59,14 +59,14 @@ module.exports = async (client) => {
};
client.UpdateMusic = async function (player) {
- const data = await Setup.findOne({ guild: player.guild });
- if (data.enable === false) return;
+ const database = await Setup.findOne({ guild: player.guild });
+ if (database.enable === false) return;
- const channel = await client.channels.cache.get(data.channel);
+ const channel = await client.channels.cache.get(database.channel);
if (!channel) return;
- const playMsg = await channel.messages.fetch(data.playmsg, { cache: true, force: true });
- if (!playMsg) return;
+ const msg = await channel.messages.fetch(database.playmsg, { cache: true, force: true });
+ if (!msg) return;
const guildModel = await GLang.findOne({ guild: player.guild });
const { language } = guildModel;
@@ -80,9 +80,11 @@ module.exports = async (client) => {
.setDescription(`${client.i18n.get(language, "setup", "setup_playembed_desc", {
clientId: client.user.id,
})}`)
- .setFooter({ text: `${client.i18n.get(language, "setup", "setup_playembed_footer")}` });
+ .setFooter({ text: `${client.i18n.get(language, "setup", "setup_playembed_footer", {
+ prefix: "/"
+ })}` });
- return playMsg.edit({
+ return msg.edit({
content: `${queueMsg}`,
embeds: [playEmbed],
components: [client.diSwitch]
diff --git a/languages/README.md b/languages/README.md
new file mode 100644
index 0000000..5db5216
--- /dev/null
+++ b/languages/README.md
@@ -0,0 +1,15 @@
+## 📃 Translate Contributors (Languages)
+
+- [x] **en (English)**
+ - [@Adivise](/~https://github.com/Adivise) Discord: *Stylish.#4078
+- [x] **th (Thailand)**
+ - [@Adivise](/~https://github.com/Adivise) Discord: *Stylish.#4078
+- [x] **es-ES (Spanish)**
+ - [@NoBody-UU](/~https://github.com/NoBody-UU) Discord: NoBody🥀#9666
+ - [@VenQuiDev](/~https://github.com/venquidev) Discord: VenQui#6625
+- [x] **vi (Vietnamese)**
+ - [@RainyXeon](/~https://github.com/RainyXeon) Discord: RainyXeon >#0017
+
+## ⁉ Need Translate Contributors?
+
+- [Crowdin](https://crowdin.com/project/nanospace)
\ No newline at end of file
diff --git a/languages/es-ES/filters.yaml b/languages/es-ES/filters.yaml
new file mode 100644
index 0000000..285dd2c
--- /dev/null
+++ b/languages/es-ES/filters.yaml
@@ -0,0 +1,33 @@
+##### All Filter command!
+filter_loading: "Encendiendo **%{name}**. Esto puede tardar unos segundos..."
+filter_on: "`🔩` | *Activado:* `%{name}`"
+filter_number: "Por favor, introduzca un número."
+filter_greater: "El número debe ser mayor que 0."
+filter_less: "El número debe ser menor que 10."
+#Bassboost commaand!
+bassboost_loading: "Ajustando **Bassboost** a **%{amount}dB**. Esto puede tardar unos segundos..."
+bassboost_set: "`🔩` | *Bassboost establecido en:* `%{amount}`"
+bassboost_limit: "Por favor, introduzca un número entre -10 y 10."
+#Equalizer command!
+eq_author: "Equalizador Personalizado"
+eq_icon: "https://cdn.discordapp.com/emojis/758423098885275748.gif"
+eq_desc: "Hay 14 bandas que se pueden ajustar de -10 a 10. No todas las bandas tienen que ser llenadas."
+eq_field_title: "Ejemplo:"
+eq_field_value: "%{prefix}eq 2 3 0 8 0 5 0 -5 0 0"
+eq_number: "La Banda #%{num} no es un número válido."
+eq_than: "La Banda #%{num} debe ser menor que 10."
+eq_footer: "Restablecer ecualizador: %{prefix}eq reset"
+eq_loading: "Configurando **Equalizador** a... **`%{bands}`** Esto puede tardar unos segundos..."
+eq_on: "`🔩` | *Equalizador establecido en:* `%{bands}`"
+#Pitch command!
+pitch_loading: "Ajustando **Pitch** a **%{amount}**. Esto puede tardar unos segundos..."
+pitch_on: "`🔩` | *Tono establecido en:* `%{amount}`"
+#Rate command!
+rate_loading: "Ajustando **Tarifa** a **%{amount}x**. Esto puede tardar unos segundos..."
+rate_on: "`🔩` | *Tarifa establecida en:* `%{amount}x`"
+#Reset command!
+reset_loading: "Desactivando **filtro** Esto puede tardar unos segundos..."
+reset_on: "`🔩` | *Desactivado:* `filter`"
+#Speed command!
+speed_loading: "Ajustando **Velocidad** a **%{amount}x**. Esto puede tardar unos segundos..."
+speed_on: "`🔩` | *Velocidad establecida en:* `%{amount}x`"
diff --git a/languages/es-ES/interaction.yaml b/languages/es-ES/interaction.yaml
new file mode 100644
index 0000000..02c1482
--- /dev/null
+++ b/languages/es-ES/interaction.yaml
@@ -0,0 +1,9 @@
+##### InteractionCreate Event #####
+#On settings/config.js in DEV_ID
+dev_only: El bot está en mantenimiento. (Por favor, vuelve más tarde)
+#No permission to use command (this for bot!)
+no_perms: '¡No tengo permisos para ejecutar el comando!'
+#Bot getting error something!
+error: Algo salió mal.
+#You are not the client owner of this bot!
+owner_only: '¡No eres el dueño del cliente!'
diff --git a/languages/es-ES/music.yaml b/languages/es-ES/music.yaml
new file mode 100644
index 0000000..6b17c86
--- /dev/null
+++ b/languages/es-ES/music.yaml
@@ -0,0 +1,183 @@
+### 247 command
+247_loading: "Cargando, por favor, espere..."
+247_off: "`🌙` | *El modo 24/7 ha sido:* `Desactivado`"
+247_on: "`🌕` | *El modo 24/7 ha sido:* `Activado`"
+### Autoplay command!
+autoplay_loading: "Cargando, por favor, espere..."
+autoplay_off: "`📻` | *La reproducción automática ha sido:* `Desactivada`"
+autoplay_on: "`📻` | *La reproducción automática ha sido:* `Activada`"
+### Clearqueue command!
+clearqueue_loading: "Cargando, por favor, espere..."
+clearqueue_msg: "`📛` | *La lista de reproducción ha sido:* `Limpiada`"
+### Forward command!
+forward_loading: "Cargando, por favor, espere..."
+forward_msg: "`⏭` | *Avanzar a:* `%{duration}`"
+forward_beyond: "No se puede avanzar más allá de la duración de la canción."
+forward_invalid: "Argumento no válido, debes ingresar un número.\nUso correcto: `%{prefix}forward `"
+### Join command!
+join_loading: "Cargando, por favor, espere..."
+join_voice: "Tienes que estar en un canal de voz para usar el comando join."
+join_msg: "🔊` | *Me uní a:* `%{channel}`"
+### Leave command!
+leave_loading: "Cargando, por favor, espere..."
+leave_msg: "`🚫` | *Salí de:* | `%{channel}`"
+### Loop command!
+loop_loading: "Cargando, por favor, espere..."
+loop_current: "`🔁` | *Canción en bucle:* `Actual`"
+unloop_current: "`🔁` | *Canción en bucle desactivado:* `Actual`"
+loop_all: "`🔁` | *Canción en bucle:* `Todas`"
+unloop_all: "`🔁` | *Canción en bucle desactivado:* `Todas`"
+### Loopall command!
+loopall_loading: "Cargando, por favor, espere..."
+loopall: "`🔁` | *Canción en bucle:* `Todas`"
+unloopall: "`🔁` | *Canción en bucle desactivado:* `Todas`"
+### Lyrics command!
+lyrics_loading: "Buscando la letra de la canción..."
+lyrics_notfound: "¡No se encontró ninguna letra de esa canción!"
+lyrics_title: "Letra de %{song}"
+lyrics_toolong: "¡La letra de la canción es demasiado larga para mostrarla!"
+### Nowplaying command!
+np_loading: "Cargando, por favor, espere..."
+np_title: "Reproduciendo..."
+np_title_pause: "Canción en pausa..."
+np_icon: "https://cdn.discordapp.com/emojis/741605543046807626.gif"
+#Embed Field
+np_author: "Autor:"
+np_request: "Solicitante:"
+np_volume: "Volumen:"
+np_view: "Vistas:"
+np_upload: "Subir En:"
+np_download: "Descargar:"
+np_current_duration: "Duración actual: `[%{current_duration} / %{total_duration}]`"
+#Need in voice to use button
+np_invoice: "Necesitas estar en mismo/un canal de voz."
+#Message Button
+np_switch_pause: "En pausa"
+np_switch_resume: "Reanudado"
+np_pause_msg: "`⏯` | *La canción ha sido:* `%{pause}`"
+np_replay_msg: "`⏮` | *La canción ha sido:* `Repetida`"
+np_stop_msg: "`🚫` | *La Canción ha sido:* `Detenida`"
+np_skip_msg: "`⏭` | *La canción ha sido:* `Saltada`"
+np_switch_enable: "Activado"
+np_switch_disable: "Desactivado"
+np_repeat_msg: "`🔁` | *Bucle ha sido:* `%{loop}`"
+### Pause command!
+pause_loading: "Cargando, por favor, espere..."
+pause_switch_pause: "En pausa"
+pause_switch_resume: "Reanudado"
+pause_msg: "`⏯` | *La canción ha sido:* `%{pause}`"
+### Play command!
+play_loading: "Cargando, por favor, espere..."
+play_invoice: "Necesitas estar en un canal de voz para poder usar el comando."
+play_join: "No tengo permisos para unirme a tu canal de voz."
+play_speak: "No tengo permisos para hablar en tu canal de voz."
+play_arg: "Por favor proporcione un nombre de canción o enlace para la búsqueda."
+play_startwith: "Por favor, utilice el enlace para reproducir música."
+play_track: "**Añadida a la cola • [%{title}](%{url})** `%{duration}` • %{request}"
+play_playlist: "**Añadida a la cola • [%{title}](%{url})** `%{duration}` (%{songs} pistas) • %{request}"
+play_result: "**Añadida a la cola • [%{title}](%{url})** `%{duration}` • %{request}"
+play_fail: "Error al cargar la canción"
+play_match: "Error, la canción no coincide"
+### Previous command!
+previous_loading: "Cargando, por favor, espere..."
+previous_notfound: "No se encontró canción/es previa."
+previous_msg: "`⏮` | *La canción paso a:* `Anterior`"
+### Queue command!
+queue_author: "Cola - %{guild}"
+queue_description: "*Actualmente Reproduciendo*\n*[%{title}](%{url})* `[%{duration}]` • %{request}\n\n*Cola*:%{rest}"
+queue_footer: "Página • %{page}/%{pages} | %{queue_lang} • Canción | %{duration} • Duración total"
+queue_notnumber: "La página debe ser un número."
+queue_page_notfound: "Solo hay %{page} páginas disponibles."
+### Replay command!
+replay_loading: "Cargando, por favor, espere..."
+replay_msg: "`⏮` | *La canción ha sido:* `Repetida`"
+### Resume command!
+resume_loading: "Cargando, por favor, espere..."
+resume_switch_pause: "En pausa"
+resume_switch_resume: "Reanudado"
+resume_msg: "`⏯` | *La canción ha sido:* `%{resume}`"
+### Rewind command!
+rewind_loading: "Cargando, por favor, espere..."
+rewind_msg: "`⏮` | *Rebobinar a:* `%{duration}"
+rewind_beyond: "No se puede rebobinar más allá de la duración de la canción."
+rewind_invalid: "Argumento no válido, debe ser un número.\nUso correcto: `%{prefix}rewind `"
+### Search command!
+search_loading: "Cargando, por favor, espere..."
+search_invoice: "Necesitas estar en un canal de voz para poder usar el comando."
+search_join: "No tengo permisos para unirme a tu canal de voz."
+search_speak: "No tengo permisos para hablar en tu canal de voz."
+search_arg: "Por favor proporcione un nombre de canción o enlace para la búsqueda."
+search_title: "Selección de canción..."
+search_select: "**(%{num}.) [%{title}](%{url})** `%{duration}` Autor: `%{author}`"
+search_footer: "Por favor, seleccione una canción en 30 segundos."
+search_no_response: "No hay respuesta."
+search_result: "**Añadida a la cola • [%{title}](%{url})** `%{duration}` • %{request}"
+search_playlist: "**Añadida a la cola • [%{title}](%{url})** `%{duration}` (%{songs} pistas) • %{request}"
+search_fail: "Error al cargar la canción"
+search_match: "Error, la canción no coincide"
+### Seek command!
+seek_loading: "Cargando, por favor, espere..."
+seek_invalid: "Número no válido. Por favor proporcione un número en segundos.\nUso correcto: `%{prefix}seek `"
+seek_beyond: "No puede buscar más allá de la duración de la canción."
+seek_msg: "`⏭` | *Buscado en:* `%{duration}`"
+### Shuffle command!
+shuffle_loading: "Cargando, por favor, espere..."
+shuffle_msg: "`🔀` | *La cola ha sido:* `Mezclada`"
+### Skip command!
+skip_loading: "Cargando, por favor, espere..."
+skip_msg: "`⏭` | *La canción ha sido:* `Saltada`"
+### Skipto command!
+skipto_loading: "Cargando, por favor, espere..."
+skipto_invalid_position: "Número inválido"
+skipto_arg: "No se puede saltar a una canción que ya se está reproduciendo. Para saltar el tipo de canción que se está reproduciendo: `%{prefix}skip`"
+skipto_invalid: "El número de la canción no es válido."
+skipto_msg: "`⏭` | *Canción ha sido:* `Saltada a %{position}`"
+### Volume command!
+volume_loading: "Cargando, por favor, espere..."
+volume_usage: "*Volumen actual:* `%{volume}%`"
+volume_invalid: "Sólo puede ajustar el volumen a 1% - 100%"
+volume_msg: "`🔊` | *Cambia el volumen a:* `%{volume}%`"
+### PlaySkip command!
+playskip_loading: "Cargando, por favor, espere..."
+playskip_track: "**Saltado • [%{title}](%{url})** `%{duration}` • %{request}"
+playskip_playlist: "**Saltado • [%{title}](%{url})** `%{duration}` (%{songs} pistas) • %{request}"
+playskip_result: "**Saltado • [%{title}](%{url})** `%{duration}` • %{request}"
+playskip_fail: "Error al cargar la canción"
+playskip_match: "Error, la canción no coincide"
+### PlayTop command!
+playtop_loading: "Cargando, por favor, espere..."
+playtop_track: "**Desplazado • [%{title}](%{url})** `%{duration}` • %{request}"
+playtop_playlist: "Desplazado • [%{title}](%{url})** `%{duration}` (%{songs} tracks) • %{request}"
+playtop_result: "**Desplazado • [%{title}](%{url})** `%{duration}` • %{request}"
+playtop_fail: "Error al cargar la canción"
+playtop_match: "Error, la canción no coincide"
+### RemoveTrack command!
+removetrack_loading: "Cargando, por favor, espere..."
+removetrack_already: "No se puede eliminar una canción que ya se está reproduciendo."
+removetrack_notfound: "Canción no encontrada."
+removetrack_desc: "**Eliminado • [%{name}](%{url})** `%{duration}` • %{request}"
+### Move command!
+move_loading: "Cargando, por favor, espere..."
+move_already: "No se puede eliminar una canción que ya se está reproduciendo."
+move_notfound: "Canción no encontrada."
+move_desc: "**Movido • [%{name}](%{url})** a %{pos}"
+### SearchSkip command!
+searchskip_loading: "Cargando, por favor, espere..."
+searchskip_title: "Selección de canción..."
+searchskip_select: "**(%{num}.) [%{title}](%{url})** `%{duration}` Autor: `%{author}`"
+searchskip_footer: "Por favor, seleccione una canción en 30 segundos."
+searchskip_no_response: "No hay respuesta."
+searchskip_result: "**Saltado • [%{title}](%{url})** `%{duration}` • %{request}"
+searchskip_playlist: "**Saltado • [%{title}](%{url})** `%{duration}` (%{songs} pistas) • %{request}"
+searchskip_fail: "Error al cargar la canción"
+searchskip_match: "Error, la canción no coincide"
+### SearchTop command!
+searchtop_loading: "Cargando, por favor, espere..."
+searchtop_title: "Selección de canción..."
+searchtop_select: "**(%{num}.) [%{title}](%{url})** `%{duration}` Autor: `%{author}`"
+searchtop_footer: "Por favor, seleccione una canción en 30 segundos."
+searchtop_no_response: "No hay respuesta."
+searchtop_result: "**Desplazado • [%{title}](%{url})** `%{duration}` • %{request}"
+searchtop_playlist: "Desplazado • [%{title}](%{url})** `%{duration}` (%{songs} tracks) • %{request}"
+searchtop_fail: "Error al cargar la canción"
+searchtop_match: "Error, la canción no coincide"
diff --git a/languages/es-ES/noplayer.yaml b/languages/es-ES/noplayer.yaml
new file mode 100644
index 0000000..1280073
--- /dev/null
+++ b/languages/es-ES/noplayer.yaml
@@ -0,0 +1,5 @@
+##### Need to join voice channel to use command! #####
+#No song playing in guild!
+no_player: "No hay canción/s actualmente sonando dentro de este servidor."
+#Need to join voice & same voice to use command!
+no_voice: "Necesitas estar en mismo/un canal de voz."
diff --git a/languages/es-ES/nopremium.yaml b/languages/es-ES/nopremium.yaml
new file mode 100644
index 0000000..8a3a264
--- /dev/null
+++ b/languages/es-ES/nopremium.yaml
@@ -0,0 +1,5 @@
+##### No premium Event #####
+#No premium sending msg!
+premium_author: "¡Solo Premium!"
+premium_desc: "*Necesitas ser premium para usar este comando.*"
+premium_error: "Algo salió mal, inténtalo de nuevo más tarde."
diff --git a/languages/es-ES/player.yaml b/languages/es-ES/player.yaml
new file mode 100644
index 0000000..9a0b1ce
--- /dev/null
+++ b/languages/es-ES/player.yaml
@@ -0,0 +1,43 @@
+##### On track start playing! Event #####
+track_title: "Comenzando la reproducción..."
+track_icon: "https://cdn.discordapp.com/emojis/741605543046807626.gif"
+#Embed Field
+author_title: "Autor:"
+request_title: "Solicitante:"
+volume_title: "Volumen Actual:"
+queue_title: "Longitud de cola:"
+duration_title: "Duración:"
+total_duration_title: "Duración Total:"
+current_duration_title: "Duración actual: `[0:00 / %{current_duration}]`"
+#Need in voice to use button!
+join_voice: "Necesitas estar en un canal de voz para poder usar el boton."
+#Message Button
+switch_pause: En pausa
+switch_resume: Reanudado
+pause_msg: "`⏯` | *La canción ha sido:* `%{pause}`"
+skip_msg: "`⏭` | *La canción ha sido:* `Saltada`"
+stop_msg: "`🚫` | *La Canción ha sido:* `Detenida`"
+shuffle_msg: "`🔀` | *La cola ha sido:* `Mezclada`"
+switch_enable: Activado
+switch_disable: Desactivado
+repeat_msg: "`🔁` | *Loop ha sido:* `%{loop}`"
+volup_msg: "`🔊` | *Cambia el volumen a:* `%{volume}%`"
+voldown_msg: "`🔈` | *Cambia el volumen a:* `%{volume}%`"
+replay_msg: "`⏮` | *La canción ha sido:* `Repetida`"
+queue_author: "Cola - %{guild}"
+queue_description: "*Actualmente Reproduciendo*\n*[%{track}](%{track_url})* `[%{duration}]` • %{requester}\n\n*Cola*:%{list_song}"
+queue_footer: "Página • %{page}/%{pages} | %{queue_lang} • Canción | %{total_duration} • Duración total"
+clear_msg: "`📛` | *La lista de reproducción ha sido:* `Limpiada`"
+##### On QueueEnd Event #####
+queue_end_desc: "`📛` | *La canción ha:* `Terminado`"
+##### On Track get error!! Event #####
+error_desc: "`❌` | *La canción tiene error:* `Auto-Skipped`"
+##### On Track get stuck!! Event #####
+stuck_desc: "`❌` | *La canción se ha atascado:* `Auto-Skipped`"
+##### On Bot get move Event #####
+#On player get discoconnect
+dis_title: "Desconectado"
+dis_desc: "*Me he desconectado de <#%{voice}>*"
+#On player get move! = (detroy player)
+leave_title: "Movido"
+leave_desc: "*Me he movido automáticamente, desconectado*"
diff --git a/languages/es-ES/playlist.yaml b/languages/es-ES/playlist.yaml
new file mode 100644
index 0000000..0b75682
--- /dev/null
+++ b/languages/es-ES/playlist.yaml
@@ -0,0 +1,74 @@
+##### Create command #####
+create_loading: "**Creando lista de reproducción...**"
+create_arg: "Por favor, proporcione un nombre de lista de reproducción. Ejemplo: %{prefix}create "
+create_toolong: "El nombre de la lista de reproducción no puede tener más de 16 caracteres."
+create_limit_playlist: "No puedes tener más de %{limit} listas de reproducción."
+create_name_exist: "Este nombre ya esta en datos."
+create_created: "`📦` | *Creado* • `%{playlist}`"
+##### Add command #####
+add_loading: "**Añadiendo a la lista...**"
+add_arg: "Por favor, proporcione un nombre de lista de reproducción. Ejemplo: %{prefix}add "
+add_match: "El enlace de la lista de reproducción no es válido."
+add_fail: "Error al cargar la lista de reproducción."
+add_track: "**Buscado • [%{title}](%{url})** `%{duration}` • %{user}"
+add_playlist: "**Buscado • [%{title}](%{url})** `%{duration}` (%{track} pistas) • %{user}"
+add_search: "**Buscado • [%{title}](%{url})** `%{duration}` • %{user}"
+add_owner: "No se puede añadir a esta lista."
+add_limit_track: "No puedes añadir más de %{limit} pistas a esta lista."
+add_added: "`📦` | *Añadido* • [`%{count} track's`] a la *lista de reproducción* • `%{playlist}`"
+##### Delete command #####
+delete_arg: "Por favor, proporcione un nombre de lista de reproducción. Ejemplo: %{prefix}delete "
+delete_notfound: "El nombre de la lista de reproducción no es válido."
+delete_owner: "No puedes eliminar esta lista."
+delete_deleted: "`📦` | *Eliminado* • `%{name}`"
+##### Detail command #####
+detail_arg: "Por favor proporcione un nombre de lista de reproducción. Ejemplo: %{prefix}detail "
+detail_notfound: "El nombre de la lista de reproducción no es válido."
+detail_private: "Esta lista es privada."
+detail_embed_title: "Lista de reproducción • %{name}"
+detail_embed_footer: "Página • %{page}/%{pages} | %{songs} • Canciones| %{duration} • Duración total"
+detail_notnumber: "La página debe ser un número."
+detail_page_notfound: "Solo hay %{page} páginas disponibles."
+detail_track: "%{num}. **[%{title}](%{url})** | *Autor*: %{author} • `[%{duration}]`"
+##### Import command #####
+import_loading: "Importando una lista de reproducción a la cola..."
+import_voice: "Necesitas estar en un canal de voz para poder usar el comando."
+import_join: "No tengo permisos para unirme a tu canal de voz."
+import_speak: "No tengo permisos para hablar en tu canal de voz."
+import_arg: "Por favor especifique un nombre de lista de reproducción. Ejemplo: %{prefix}import **"
+import_notfound: "El nombre de la lista de reproducción no es válido."
+import_private: "Esta lista es privada."
+import_imported: "**Importado • %{name}** `[%{duration}]` (%{tracks} pistas) • %{user}"
+import_match: "El enlace de la lista de reproducción no es válido."
+import_fail: "Error al cargar la lista de reproducción."
+##### View command #####
+view_embed_title: "%{user}s • Lista de reproducción"
+view_embed_footer: "Página • %{page}/%{pages} | %{songs} • Listas de reproducción"
+view_notnumber: "La página debe ser un número."
+view_page_notfound: "Solo hay %{page} páginas disponibles."
+view_embed_playlist: "%{num}. **`%{name}`** • (%{tracks} pistas) • *Creado hace*: `[%{create}]`"
+##### Remove command #####
+remove_arg: "Por favor, proporcione un nombre de lista de reproducción. Ejemplo: %{prefix}remove "
+remove_notfound: "El nombre de la lista de reproducción no es válido."
+remove_song_notfound: "No se puede encontrar la canción a eliminar"
+remove_owner: "No puedes eliminar la canción de esta lista de reproducción."
+remove_removed: "`📦` | *Eliminado* • posición `%{position}` en `%{name}`"
+##### Savequeue command #####
+savequeue_arg: "Por favor, introduzca un nombre de lista de reproducción. Ejemplo: %{prefix}savequeue "
+savequeue_notfound: "El nombre de la lista de reproducción no es válido."
+savequeue_owner: "No puedes guardar la canción en esta lista de reproducción."
+savequeue_saved: "`📦` | *Guardado* • (%{tracks} pistas) en `%{name}`"
+##### Private command #####
+private_arg: "Por favor, introduzca un nombre de lista de reproducción. Ejemplo: %{prefix}private "
+private_notfound: "El nombre de la lista de reproducción no es válido."
+private_owner: "No puedes privatizar esta lista."
+private_already: "Esta lista ya es privada."
+private_loading: "Cargando, por favor, espere..."
+private_success: "`📦` | *La lista de reproducción ahora es:* `Privada`"
+##### Public command #####
+public_arg: "Por favor, proporcione un nombre de lista de reproducción. Ejemplo: %{prefix}public "
+public_notfound: "El nombre de la lista de reproducción no es válido."
+public_owner: "No puedes publicar esta lista."
+public_already: "Esta lista ya es pública."
+public_loading: "Cargando, por favor, espere..."
+public_success: "`📦` | *La lista de reproducción ahora es:* `Publica`"
diff --git a/languages/es-ES/premium.yaml b/languages/es-ES/premium.yaml
new file mode 100644
index 0000000..d4a43b0
--- /dev/null
+++ b/languages/es-ES/premium.yaml
@@ -0,0 +1,19 @@
+##### Generate command #####
+provide_plan: "Por favor, proporciona el plan: %{plans}"
+plan_invalid: "Plan no válido, planes disponibles: %{plans}"
+gen_author: "Generar código"
+gen_desc: "• *Generado* [`+%{codes_length}`]\n```%{codes}```\n • *Plan*: `%{plan}`\n • *Expira en*: `%{expires}`"
+gen_footer: "Escribe: %{prefix}redeem para canjear!"
+##### Profile command #####
+profile_author: "Perfil Premium"
+profile_desc: "*Usuario*: `%{user}`\n*Plan*: `%{plan}`\n*Expira en*: `%{expires}`"
+##### Redeem command #####
+redeem_arg: "¡Por favor especifica el código que quieres canjear!"
+redeem_already: "Ya eres un usuario premium"
+redeem_title: "Premium canjeado"
+redeem_desc: "**¡Has canjeado con éxito el premium!**\n\n*Expira en*: [`%{expires}`]"
+redeem_invalid: "**El código no es válido. ¡Inténtalo de nuevo usando uno válido!**"
+##### Remove command #####
+remove_mention: "¡Por favor, mencione a un miembro!"
+remove_already: "**¡Ya ha sido eliminado! %{user}**"
+remove_desc: "**¡Has eliminado correctamente! %{user}**"
diff --git a/languages/es-ES/setup.yaml b/languages/es-ES/setup.yaml
new file mode 100644
index 0000000..467c620
--- /dev/null
+++ b/languages/es-ES/setup.yaml
@@ -0,0 +1,20 @@
+##### Setup command #####
+setup_topic: "⏯ *Pausar/Reanudar la canción.*\n⬅ *Anterior canción.*\n⏹ *Detener la canción.*\n➡ *Saltar la canción.*\n🔁 *Bucle/Anular el bucle de la canción.*"
+setup_msg: "*`Configuración exitosa del sistema de música en`* %{channel}"
+setup_enable: "*`Ya tienes configurado el sistema de musica, no puedes usar este comando.`*"
+##### Setup Handler #####
+setup_queuemsg: "**__Lista de colas:__**\nÚnete a un canal de voz y poner en cola las canciones por nombre o url aquí."
+setup_playembed_author: "No se está reproduciendo ninguna canción actualmente."
+setup_nowplay: "Reproduciendo..."
+setup_songpause: "Canción en pausa..."
+setup_playembed_image: "https://images2.alphacoders.com/110/thumb-1920-1109233.jpg"
+setup_playembed_desc: ">>> [Invitación](https://discord.com/api/oauth2/authorize?client_id=%{clientId}&permissions=2184310032&scope=bot%20applications.commands) | [Servidor De Soporte](https://discord.gg/SNG3dh3MbR) | [Sitio Web](https://adivise.github.io/Stylish/)"
+setup_playembed_footer: "El prefijo es: %{prefix}"
+##### Setup Update Handler #####
+setup_author: "Comenzando la reproducción..."
+setup_author_icon: "https://cdn.discordapp.com/emojis/741605543046807626.gif"
+setup_desc: "[%{title}](%{url}) `[%{duration}]` • %{request}"
+setup_footer: "%{songs} • Canciones en Cola | Volumen • %{volume}% | %{duration} • Duración total"
+setup_content: "**__Lista de canciones:__**"
+setup_content_queue: "*`%{index} • %{title} • [%{duration}]`* • %{request}"
+setup_content_empty: "Únete a un canal de voz y poner en cola las canciones por nombre o url aquí."
diff --git a/languages/es-ES/utilities.yaml b/languages/es-ES/utilities.yaml
new file mode 100644
index 0000000..9c53065
--- /dev/null
+++ b/languages/es-ES/utilities.yaml
@@ -0,0 +1,14 @@
+##### Language command #####
+lang_perm: "Necesitas el permiso `MANAGE_GUILD` para usar este comando."
+lang_arg: "¡Por favor especifica un idioma!"
+provide_lang: "Por favor indica los idiomas: `%{languages}`"
+lang_set: "`🔧` | *El idioma se ha establecido a:* `%{language}`"
+lang_change: "`🔧` | *Se ha cambiado el idioma a:* `%{language}`"
+lang_error: "Algo salió mal, por favor inténtalo de nuevo más tarde."
+##### Restart command #####
+restart_msg: "`🤖` | *El cliente ha sido:* `Apagado`"
+##### Help command #####
+help_desc: "¡Por favor, seleccione un Menú de Categoría!"
+help_category_desc: "Seleccione la %{category} para ver todos los comandos."
+help_category: "%{category}"
+help_timeout: "```Se agotó el tiempo de espera del menú de ayuda, intente usar %{prefix}help de nuevo.```"
diff --git a/languages/th/filters.yaml b/languages/th/filters.yaml
index d101ea4..2d64117 100644
--- a/languages/th/filters.yaml
+++ b/languages/th/filters.yaml
@@ -1,17 +1,14 @@
##### All Filter command!
-filter_loading: "กำลังเปิด ฟิลเตอร์ **%{name}**. จะใช้เวลาสักครู่..."
+filter_loading: "กำลังเปิด ฟิลเตอร์ **%{name}**. โปรดรอสักครู่..."
filter_on: "`🔩` | *เปิดฟิลเตอร์:* `%{name}`"
-filter_number: "โปรดใส่ตัวเลข"
-
+filter_number: "โปรดใส่เป็นตัวเลข"
filter_greater: "ตัวเลขต้องเยอะกว่า 0"
filter_less: "ตัวเลขต้องน้อยกว่า 10"
-
-# Bassboost commaand!
+#Bassboost commaand!
bassboost_loading: "ตั้งค่า **Bassboost** เป็น **%{amount}dB**. จะใช้เวลาสักครู่..."
-bassboost_set: "`🔩` | *Bassboost เปลี่ยนเป็น:* `%{amount}`"
+bassboost_set: "`🔩` | *เพื่มเบสเป็น:* `%{amount}`"
bassboost_limit: "โปรดใส่ตัวเลข -10 ถึง 10 เท่านั้น"
-
-# Equalizer command!
+#Equalizer command!
eq_author: "ฟิลเตอร์ กำหนดเอง"
eq_icon: "https://cdn.discordapp.com/emojis/758423098885275748.gif"
eq_desc: "มี 14 แบนด์ ที่สามารถตั้งค่าได้ตั้งแต่ -10 ถึง 10 ไม่จำเป็นต้องกรอกทุกแบนด์"
@@ -20,22 +17,17 @@ eq_field_value: "%{prefix}eq 2 3 0 8 0 5 0 -5 0 0"
eq_number: "แบนด์ #%{num} ไม่ใช่ตัวเลขที่ถูกต้อง"
eq_than: "แบนด์ #%{num} ต้องน้อยกว่า 10"
eq_footer: "รีเซ็ต ฟิลเตอร์: %{prefix}eq reset"
-
-eq_loading: "ตั้งค่า **Equalizer** เป็น... **`%{bands}`** จะใช้เวลาสักครู่..."
-eq_on: "`🔩` | *Equalizer เปลี่ยนเป็น:* `%{bands}`"
-
-# Pitch command!
-pitch_loading: "ตั้งค่า **Pitch** เป็น **%{amount}**. จะใช้เวลาสักครู่..."
-pitch_on: "`🔩` | *Pitch เปลี่ยนเป็น:* `%{amount}`"
-
-# Rate command!
+eq_loading: "ตั้งค่า **Equalizer** เป็น... **`%{bands}`** โปรดรอสักครู่..."
+eq_on: "`🔩` | *Equalizer set to:* `%{bands}`"
+#Pitch command!
+pitch_loading: "ตั้งค่า **Pitch** เป็น **%{amount}**. โปรดรอสักครู่..."
+pitch_on: "`🔩` | *Pitch set to:* `%{amount}`"
+#Rate command!
rate_loading: "ตั้งค่า **Rate** เป็น **%{amount}x**. จะใช้เวลาสักครู่..."
rate_on: "`🔩` | *Rate เปลี่ยนเป็น:* `%{amount}x`"
-
-# Reset command!
-reset_loading: "กำลังปิด **ฟิลเตอร์** จะใช้เวลาสักครู่..."
+#Reset command!
+reset_loading: "กำลังปิด **ฟิลเตอร์** โปรดรอสักครู่..."
reset_on: "`🔩` | *ปิด:* `ฟิลเตอร์`"
-
-# Speed command!
-speed_loading: "ตั้งค่า **Speed** เป็น **%{amount}x**. จะใช้เวลาสักครู่..."
-speed_on: "`🔩` | *Speed เปลี่ยนเป็น:* `%{amount}x`"
\ No newline at end of file
+#Speed command!
+speed_loading: "ตั้งค่า **Speed** เป็น **%{amount}x**. โปรดรอสักครู่..."
+speed_on: "`🔩` | *Speed เปลี่ยนเป็น:* `%{amount}x`"
diff --git a/languages/th/interaction.yaml b/languages/th/interaction.yaml
index 2aaea3b..5ccda20 100644
--- a/languages/th/interaction.yaml
+++ b/languages/th/interaction.yaml
@@ -1,13 +1,9 @@
##### InteractionCreate Event #####
-
-# On settings/config.js in DEV_ID
-dev_only: "บอทอยู่ในระหว่างการพัฒนา (กรุณากลับมาใหม่ภายหลัง)"
-
-# No permission to use command (this for bot!)
-no_perms: "ฉันไม่มีสิทธิ์ดำเนินการคำสั่ง!"
-
-# Bot getting error something!
-error: "อะไรบางอย่างผิดปกติ."
-
-# You are not the client owner of this bot!
-owner_only: "คุณไม่ใช่เจ้าของบอท"
\ No newline at end of file
+#On settings/config.js in DEV_ID
+dev_only: บอททำการปิดปรับปรุงอยู่ (โปรดกลับมาในภายหลัง)
+#No permission to use command (this for bot!)
+no_perms: ฉันไม่มีความสามารถ เพื่อส่งข้อความ
+#Bot getting error something!
+error: มีบ้างอย่างผิดปกติ
+#You are not the client owner of this bot!
+owner_only: คุณไม่ใช้เจ้าของบอท
diff --git a/languages/th/music.yaml b/languages/th/music.yaml
index 43bcbfa..b464f0c 100644
--- a/languages/th/music.yaml
+++ b/languages/th/music.yaml
@@ -2,57 +2,46 @@
247_loading: "กำลังโหลด โปรดรอสักครู่..."
247_off: "`🌙` | *โหมด 24/7 ได้ถูก:* `ปิดการใช้งาน`"
247_on: "`🌕` | *โหมด 24/7 ได้ถูก:* `เปิดการใช้งาน`"
-
### Autoplay command!
autoplay_loading: "กำลังโหลด โปรดรอสักครู่..."
autoplay_off: "`📻` | *เล่นอัตโนมัติ ได้ถูก:* `ปิดการใช้งาน`"
autoplay_on: "`📻` | *เล่นอัตโนมัติ ได้ถูก:* `เปิดการใช้งาน`"
-
### Clearqueue command!
clearqueue_loading: "กำลังโหลด โปรดรอสักครู่..."
clearqueue_msg: "`📛` | *คิวได้ถูก:* `เคลียร์`"
-
### Forward command!
forward_loading: "กำลังโหลด โปรดรอสักครู่..."
-forward_msg: "`⏭` | *ข้ามไปยัง:* `%{duration}`"
+forward_msg: "`⏭` | *ข้ามเวลาไปยัง:* `%{duration}`"
forward_beyond: "ไม่สามารถ ข้าม เกินระยะเวลาของเพลง"
forward_invalid: "โปรดใช้ตัวเลข\nการใช้งานที่ถูกต้อง: `%{prefix}forward <วินาที>`"
-
### Join command!
join_loading: "กำลังโหลด โปรดรอสักครู่..."
-join_voice: "คุณต้องอยู่ในห้องเสียงเพื่อใช้คำสั่ง"
+join_voice: "คุณต้องเข้าห้องพูดคุยเพื่อใช้คำสังนี้"
join_msg: "`🔊` | *เข้าห้อง:* `%{channel}`"
-
### Leave command!
leave_loading: "กำลังโหลด โปรดรอสักครู่..."
leave_msg: "`🚫` | *ออกห้อง:* | `%{channel}`"
-
### Loop command!
loop_loading: "กำลังโหลด โปรดรอสักครู่..."
loop_current: "`🔁` | *ลูปเพลง:* `ปัจจุบัน`"
unloop_current: "`🔁` | *ยกเลิก ลูปเพลง:* `ปัจจุบัน`"
loop_all: "`🔁` | *ลูปเพลง:* `ทั้งหมด`"
unloop_all: "`🔁` | *ยกเลิก ลูปเพลง:* `ทั้งหมด`"
-
### Loopall command!
loopall_loading: "กำลังโหลด โปรดรอสักครู่..."
loopall: "`🔁` | *ลูปเพลง:* `ทั้งหมด`"
unloopall: "`🔁` | *ยกเลิก ลูปเพลง:* `ทั้งหมด`"
-
### Lyrics command!
lyrics_loading: "กำลังค้นหาเนื้อเพลง..."
lyrics_notfound: "ไม่พบเนื้อเพลงสำหรับเพลงนี้!"
lyrics_title: "เนื้อเพลง %{song}"
lyrics_toolong: "เนื้อเพลงยาวเกินไปที่จะแสดง!"
-
### Nowplaying command!
np_loading: "กำลังโหลด โปรดรอสักครู่..."
-
np_title: "กำลังเล่น เพลง..."
np_title_pause: "เพลงถูกหยุด..."
np_icon: "https://cdn.discordapp.com/emojis/741605543046807626.gif"
-
-# Embed Field
+#Embed Field
np_author: "ช่อง:"
np_request: "ผู้ร้องขอ:"
np_volume: "ระดับเสียง:"
@@ -60,31 +49,23 @@ np_view: "ยอดวิว:"
np_upload: "อัปโหลด:"
np_download: "ดาวน์โหลด:"
np_current_duration: "ระยะเวลาปัจจุบัน: `[%{current_duration} / %{total_duration}]`"
-
-# Need in voice to use button
+#Need in voice to use button
np_invoice: "คุณต้องอยู่ใน ห้องเสียง/เดียวกัน เพื่อจะใช้ปุ่มนี้"
-
-# Message Button
+#Message Button
np_switch_pause: "หยุดชั่วคราว"
np_switch_resume: "ดำเนินการต่อ"
np_pause_msg: "`⏯` | *เพลงได้ถูก:* `%{pause}`"
-
np_replay_msg: "`⏮` | *เพลงได้ถูก:* `เล่นซ้ำ`"
-
np_stop_msg: "`🚫` | *เพลงได้ถูก:* `ปิด`"
-
np_skip_msg: "`⏭` | *เพลงได้ถูก:* `ข้าม`"
-
np_switch_enable: "เปิดการใช้งาน"
np_switch_disable: "ปิดการใช้งาน"
np_repeat_msg: "`🔁` | *ลูปได้ถูก:* `%{loop}`"
-
### Pause command!
pause_loading: "กำลังโหลด โปรดรอสักครู่..."
pause_switch_pause: "หยุดชั่วคราว"
pause_switch_resume: "ดำเนินการต่อ"
pause_msg: "`⏯` | *เพลงได้ถูก:* `%{pause}`"
-
### Play command!
play_loading: "กำลังโหลด โปรดรอสักครู่..."
play_invoice: "คุณต้องอยู่ใน ห้องเสียง เพื่อใช้คำสั่ง"
@@ -92,147 +73,111 @@ play_join: "ฉันไม่ได้รับอนุญาตให้เ
play_speak: "ฉันไม่ได้รับอนุญาตให้พูดใน ห้องเสียง ของคุณ"
play_arg: "กรุณาระบุชื่อเพลงหรือลิงค์เพื่อค้นหา"
play_startwith: "จำเป็นต้องเป็นลิ้งเพลงเท่านั้น"
-
play_track: "**เพิ่มเพลง • [%{title}](%{url})** `%{duration}` • %{request}"
play_playlist: "**เพิ่มเพลง • [%{title}](%{url})** `%{duration}` (%{songs} เพลง) • %{request}"
play_result: "**เพิ่มเพลง • [%{title}](%{url})** `%{duration}` • %{request}"
-
play_fail: "เกิดข้อผิดพลาดในการค้นหาเพลง"
play_match: "เพลงผิดพลาดไม่ตรงกัน"
-
### Previous command!
previous_loading: "กำลังโหลด โปรดรอสักครู่..."
previous_notfound: "ไม่พบเพลง/เพลงก่อนหน้า"
previous_msg: "`⏮` | *เพลงได้ถูก:* `ย้อนกลับ`"
-
### Queue command!
queue_author: "คิว - %{guild}"
queue_description: "**เพลงที่กำลังเล่น**\n**[%{title}](%{url})** `[%{duration}]` • %{request}\n\n**คิวที่เหลือ**:%{rest}"
queue_footer: "หน้าที่ • %{page}/%{pages} | %{queue_lang} • เพลง | ระยะเวลาทั้งหมด • %{duration}"
queue_notnumber: "หน้า ต้องเป็นตัวเลข"
queue_page_notfound: "มีเพียง %{page} หน้าใช้ได้"
-
### Replay command!
replay_loading: "กำลังโหลด โปรดรอสักครู่..."
replay_msg: "`⏮` | *เพลงได้ถูก:* `เล่นซ้ำ`"
-
### Resume command!
resume_loading: "กำลังโหลด โปรดรอสักครู่..."
resume_switch_pause: "หยุดชั่วคราว"
resume_switch_resume: "ดำเนินการต่อ"
resume_msg: "`⏯` | *เพลงได้ถูก:* `%{resume}`"
-
### Rewind command!
rewind_loading: "กำลังโหลด โปรดรอสักครู่..."
rewind_msg: "`⏮` | *ย้อนไปยัง:* `%{duration}`"
rewind_beyond: "ไม่สามารถ ย้อน เกินระยะเวลาของเพลง"
rewind_invalid: "โปรดใช้ตัวเลข\nการใช้งานที่ถูกต้อง: `%{prefix}rewind <วินาที>`"
-
### Search command!
search_loading: "กำลังโหลด โปรดรอสักครู่..."
search_invoice: "คุณต้องอยู่ในห้องเสียงเพื่อใช้คำสั่"
search_join: "ฉันไม่ได้รับอนุญาตให้เข้าร่วม ห้องเสียง ของคุณ"
search_speak: "ฉันไม่ได้รับอนุญาตให้พูดใน ห้องเสียง ของคุณ"
search_arg: "กรุณาระบุชื่อเพลงเพื่อค้นหา"
-
search_title: "เลือกเพลง..."
search_select: "**(%{num}.) [%{title}](%{url})** `%{duration}` ช่อง: `%{author}`"
search_footer: "กรุณาเลือกเพลงใน 30 วินาที"
search_no_response: "ไม่มีการตอบสนอง"
-
search_result: "**เพิ่มเพลง • [%{title}](%{url})** `%{duration}` • %{request}"
search_playlist: "**เพิ่มเพลง • [%{title}](%{url})** `%{duration}` (%{songs} เพลง) • %{request}"
-
search_fail: "เกิดข้อผิดพลาดในการค้นหาเพลง"
search_match: "เพลงผิดพลาดไม่ตรงกัน"
-
### Seek command!
seek_loading: "กำลังโหลด โปรดรอสักครู่..."
seek_invalid: "โปรดใช้ตัวเลข\nการใช้งานที่ถูกต้อง: `%{prefix}seek <วินาที>`"
seek_beyond: "ไม่สามารถ ข้าม/ย้อน เกินความยาวของเพลง"
seek_msg: "`⏭` | *ข้ามไปที่:* `%{duration}`"
-
### Shuffle command!
shuffle_loading: "กำลังโหลด โปรดรอสักครู่..."
shuffle_msg: "`🔀` | *คิวได้ถูก:* `สุ่ม`"
-
### Skip command!
skip_loading: "กำลังโหลด โปรดรอสักครู่..."
skip_msg: "`⏭` | *เพลงได้ถูก:* `ข้าม`"
-
### Skipto command!
skipto_loading: "กำลังโหลด โปรดรอสักครู่..."
skipto_invalid_position: "หมายเลขไม่ถูกต้อง"
skipto_arg: "ไม่สามารถข้ามไปยังเพลงที่เล่นอยู่ ถ้าจะข้ามเพลงที่กำลังเล่นอยู่ พิมพ์: `%{prefix}skip`"
skipto_invalid: "หมายเลขเพลงไม่ถูกต้อง"
skipto_msg: "`⏭` | *เพลงได้ถูก:* `ข้ามไปคิวที่ %{position}`"
-
### Volume command!
volume_loading: "กำลังโหลด โปรดรอสักครู่..."
volume_usage: "*ระดับเสียงปัจจุบัน:* `%{volume}%`"
volume_invalid: "คุณสามารถตั้งค่าระดับเสียง 1% ถึง 100% เท่านั้น"
volume_msg: "`🔊` | *เปลี่ยนระดับเสียงเป็น:* `%{volume}%`"
-
### PlaySkip command!
-playskip_loading: "Loading please wait..."
-
-playskip_track: "**Skipped • [%{title}](%{url})** `%{duration}` • %{request}"
-playskip_playlist: "**Skipped • [%{title}](%{url})** `%{duration}` (%{songs} tracks) • %{request}"
-playskip_result: "**Skipped • [%{title}](%{url})** `%{duration}` • %{request}"
-
-playskip_fail: "Error loading track failed"
-playskip_match: "Error song not matches"
-
+playskip_loading: "กำลังโหลด โปรดรอสักครู่..."
+playskip_track: "**ข้ามไปเพลง • [%{title}](%{url})** `%{duration}` • %{request}"
+playskip_playlist: "**ข้ามไปเพลง • [%{title}](%{url})** `%{duration}` (%{songs} tracks) • %{request}"
+playskip_result: "**ข้ามไปเพลง • [%{title}](%{url})** `%{duration}` • %{request}"
+playskip_fail: "เกิดข้อผิดพลาดในการค้นหาเพลง"
+playskip_match: "เพลงผิดพลาดไม่ตรงกัน"
### PlayTop command!
-playtop_loading: "Loading please wait..."
-
-playtop_track: "**Shifted • [%{title}](%{url})** `%{duration}` • %{request}"
-playtop_playlist: "**Shifted • [%{title}](%{url})** `%{duration}` (%{songs} tracks) • %{request}"
-playtop_result: "**Shifted • [%{title}](%{url})** `%{duration}` • %{request}"
-
-playtop_fail: "Error loading track failed"
-playtop_match: "Error song not matches"
-
+playtop_loading: "กำลังโหลด โปรดรอสักครู่..."
+playtop_track: "**ลัดคิวเพลง • [%{title}](%{url})** `%{duration}` • %{request}"
+playtop_playlist: "**ลัดคิวเพลง • [%{title}](%{url})** `%{duration}` (%{songs} tracks) • %{request}"
+playtop_result: "**ลัดคิวเพลง • [%{title}](%{url})** `%{duration}` • %{request}"
+playtop_fail: "เกิดข้อผิดพลาดในการค้นหาเพลง"
+playtop_match: "เพลงผิดพลาดไม่ตรงกัน"
### RemoveTrack command!
-removetrack_loading: "Loading please wait..."
-
-removetrack_already: "Cannot remove a song that is already playing."
+removetrack_loading: "กำลังโหลด โปรดรอสักครู่..."
+removetrack_already: "ไม่สามารถลบเพลงที่กำลังเล่นอยู่ได้."
removetrack_notfound: "Song not found."
-
removetrack_desc: "**Removed • [%{name}](%{url})** `%{duration}` • %{request}"
-
### Move command!
-move_loading: "Loading please wait..."
-
-move_already: "Cannot remove a song that is already playing."
+move_loading: "กำลังโหลด โปรดรอสักครู่..."
+move_already: "ไม่สามารถขยับเพลงที่กำลังเล่นอยู่ได้."
move_notfound: "Song not found."
-
-move_desc: "**Moved • [%{name}](%{url})** to %{pos}"
-
+move_desc: "**ขยับเพลง • [%{name}](%{url})** ไปคิวที่ %{pos}"
### SearchSkip command!
-searchskip_loading: "Loading please wait..."
-
-searchskip_title: "Song Selection..."
-searchskip_select: "**(%{num}.) [%{title}](%{url})** `%{duration}` Author: `%{author}`"
-searchskip_footer: "Please select a song in 30 seconds."
-searchskip_no_response: "No response."
-
-searchskip_result: "**Skipped • [%{title}](%{url})** `%{duration}` • %{request}"
-searchskip_playlist: "**Skipped • [%{title}](%{url})** `%{duration}` (%{songs} tracks) • %{request}"
-
-searchskip_fail: "Error loading track failed"
-searchskip_match: "Error song not matches"
-
+searchskip_loading: "กำลังโหลด โปรดรอสักครู่..."
+searchskip_title: "เลือกเพลง..."
+searchskip_select: "**(%{num}.) [%{title}](%{url})** `%{duration}` ช่อง: `%{author}`"
+searchskip_footer: "กรุณาเลือกเพลงใน 30 วินาที"
+searchskip_no_response: "ไม่มีการตอบสนอง"
+searchskip_result: "**ข้ามไปเพลง • [%{title}](%{url})** `%{duration}` • %{request}"
+searchskip_playlist: "**ข้ามไปเพลง • [%{title}](%{url})** `%{duration}` (%{songs} tracks) • %{request}"
+searchskip_fail: "เกิดข้อผิดพลาดในการค้นหาเพลง"
+searchskip_match: "เพลงผิดพลาดไม่ตรงกัน"
### SearchTop command!
-searchtop_loading: "Loading please wait..."
-
-searchtop_title: "Song Selection..."
-searchtop_select: "**(%{num}.) [%{title}](%{url})** `%{duration}` Author: `%{author}`"
-searchtop_footer: "Please select a song in 30 seconds."
-searchtop_no_response: "No response."
-
-searchtop_result: "**Shifted • [%{title}](%{url})** `%{duration}` • %{request}"
-searchtop_playlist: "**Shifted • [%{title}](%{url})** `%{duration}` (%{songs} tracks) • %{request}"
-
-searchtop_fail: "Error loading track failed"
-searchtop_match: "Error song not matches"
\ No newline at end of file
+searchtop_loading: "กำลังโหลด โปรดรอสักครู่..."
+searchtop_title: "เลือกเพลง..."
+searchtop_select: "**(%{num}.) [%{title}](%{url})** `%{duration}` ช่อง: `%{author}`"
+searchtop_footer: "กรุณาเลือกเพลงใน 30 วินาที"
+searchtop_no_response: "ไม่มีการตอบสนอง"
+searchtop_result: "**ลัดคิวเพลง • [%{title}](%{url})** `%{duration}` • %{request}"
+searchtop_playlist: "**ลัดคิวเพลง • [%{title}](%{url})** `%{duration}` (%{songs} tracks) • %{request}"
+searchtop_fail: "เกิดข้อผิดพลาดในการค้นหาเพลง"
+searchtop_match: "เพลงผิดพลาดไม่ตรงกัน"
diff --git a/languages/th/noplayer.yaml b/languages/th/noplayer.yaml
index 7b981e4..ed91e02 100644
--- a/languages/th/noplayer.yaml
+++ b/languages/th/noplayer.yaml
@@ -1,7 +1,5 @@
##### Need to join voice channel to use command! #####
-
-# No song playing in guild!
+#No song playing in guild!
no_player: "ไม่มีเพลงที่กำลังเล่นอยู่ในกิลด์นี้"
-
-# Need to join voice & same voice to use command!
-no_voice: "คุณต้องอยู่ใน ห้องเสียง/เดียวกัน"
\ No newline at end of file
+#Need to join voice & same voice to use command!
+no_voice: "คุณต้องอยู่ใน ห้องเสียง/เดียวกัน"
diff --git a/languages/th/nopremium.yaml b/languages/th/nopremium.yaml
index 7f6770e..c7121c8 100644
--- a/languages/th/nopremium.yaml
+++ b/languages/th/nopremium.yaml
@@ -1,6 +1,5 @@
##### No premium Event #####
-
-# No premium sending msg!
-premium_author: "พรีเมี่ยมเท่านั้น!"
+#No premium sending msg!
+premium_author: "พรีเมี่ยม!"
premium_desc: "*คุณต้องเป็นพรีเมี่ยมเพื่อใช้คำสั่งนี้*"
-premium_error: "เกิดข้อผิดพลาด โปรดลองอีกครั้งในภายหลัง"
\ No newline at end of file
+premium_error: "เกิดข้อผิดพลาด โปรดลองอีกครั้งในภายหลัง"
diff --git a/languages/th/player.yaml b/languages/th/player.yaml
index 9435498..f556331 100644
--- a/languages/th/player.yaml
+++ b/languages/th/player.yaml
@@ -1,8 +1,7 @@
##### On track start playing! Event #####
track_title: "กำลังเล่น เพลง..."
track_icon: "https://cdn.discordapp.com/emojis/741605543046807626.gif"
-
-# Embed Field
+#Embed Field
author_title: "ช่อง:"
request_title: "ผู้ร้องขอ:"
volume_title: "เสียงปัจจุบัน:"
@@ -10,55 +9,35 @@ queue_title: "ความยาวคิว:"
duration_title: "ระยะเวลา:"
total_duration_title: "ระยะเวลาทั้งหมด:"
current_duration_title: "ระยะเวลาปัจจุบัน: `[0:00 / %{current_duration}]`"
-
-# Need in voice to use button!
+#Need in voice to use button!
join_voice: "คุณต้องอยู่ใน ห้องเสียง/เดียวกัน เพื่อจะใช้ปุ่มนี้"
-
-# Message Button
-switch_pause: "หยุดชั่วคราว"
-switch_resume: "ดำเนินการต่อ"
+#Message Button
+switch_pause: หยุดชั่วคราว
+switch_resume: ดำเนินการต่อ
pause_msg: "`⏯` | *เพลงได้ถูก:* `%{pause}`"
-
skip_msg: "`⏭` | *เพลงได้ถูก:* `ข้าม`"
-
stop_msg: "`🚫` | *เพลงได้ถูก:* `ปิด`"
-
shuffle_msg: "`🔀` | *คิวได้ถูก:* `สุ่ม`"
-
-switch_enable: "เปิดใช้งาน"
-switch_disable: "ปิดใช้งาน"
+switch_enable: เปิดใช้งาน
+switch_disable: ปิดใช้งาน
repeat_msg: "`🔁` | *ลูปได้ถูก:* `%{loop}`"
-
volup_msg: "`🔊` | *เปลี่ยนระดับเสียงเป็น:* `%{volume}%`"
voldown_msg: "`🔈` | *เปลี่ยนระดับเสียงเป็น:* `%{volume}%`"
-
replay_msg: "`⏮` | *เพลงได้ถูก:* `เล่นซ้ำ`"
-
queue_author: "คิว - %{guild}"
queue_description: "**เพลงที่กำลังเล่น**\n**[%{track}](%{track_url})** `[%{duration}]` • %{requester}\n\n**คิวที่เหลือ**:%{list_song}"
queue_footer: "หน้า • %{page}/%{pages} | %{queue_lang} • เพลง | ระยะเวลาทั้งหมด • %{total_duration}"
-
clear_msg: "`📛` | *คิวได้ถูก:* `เคลียร์`"
-
-
##### On QueueEnd Event #####
queue_end_desc: "`📛` | *เพลงได้:* `จบลงแล้ว`"
-
-
##### On Track get error!! Event #####
error_desc: "`❌` | *เพลงมีข้อผิดพลาด:* `ข้ามอัตโนมัติ`"
-
-
##### On Track get stuck!! Event #####
stuck_desc: "`❌` | *เพลงติด:* `ข้ามอัตโนมัติ`"
-
-
##### On Bot get move Event #####
-
-# On player get discoconnect
+#On player get discoconnect
dis_title: "ตัดการเชื่อมต่อ"
dis_desc: "*ฉันถูกตัดการเชื่อมต่อจาก <#%{voice}>*"
-
-# On player get move! = (detroy player)
+#On player get move! = (detroy player)
leave_title: "ย้าย"
leave_desc: "*ฉันถูกย้าย ตัดการเชื่อมต่ออัตโนมัติ*"
diff --git a/languages/th/playlist.yaml b/languages/th/playlist.yaml
index 4dee800..451573e 100644
--- a/languages/th/playlist.yaml
+++ b/languages/th/playlist.yaml
@@ -5,7 +5,6 @@ create_toolong: "ชื่อเพลย์ลิสต์ต้องมีค
create_limit_playlist: "คุณมีเพลย์ลิสต์ได้ไม่เกิน %{limit} เพลย์ลิสต์"
create_name_exist: "ชื่อเพลย์ลิสต์นี้มีอยู่แล้วในฐานข้อมูล"
create_created: "`📦` | *สร้างเพลย์ลิสต์* • `%{playlist}`"
-
##### Add command #####
add_loading: "**กำลังเพิ่มเข้าเพลย์ลิสต์...**"
add_arg: "โปรดระบุ ตัวอย่าง: %{prefix}add <ชื่อเพลย์ลิสต์> <ลิ้ง หรือ ชื่อเพลง>"
@@ -17,13 +16,11 @@ add_search: "**ค้นหา • [%{title}](%{url})** `%{duration}` • %{user
add_owner: "คุณไม่สามารถเพิ่มลงในเพลย์ลิสต์นี้ได้"
add_limit_track: "คุณไม่สามารถเพิ่มมากกว่า %{limit} เพลง ในเพลย์ลิสต์นี้"
add_added: "`📦` | *เพิ่ม* • [`%{count} เพลง`] เข้า *เพลย์ลิสต์* • `%{playlist}`"
-
##### Delete command #####
delete_arg: "โปรดระบุ ตัวอย่าง: %{prefix}delete <ชื่อเพลย์ลิสต์>"
delete_notfound: "ชื่อเพลย์ลิสต์ไม่ถูกต้อง"
delete_owner: "คุณไม่สามารถลบเพลย์ลิสต์นี้ได้"
delete_deleted: "`📦` | *ลบเพลย์ลิสต์* • %{name}"
-
##### Detail command #####
detail_arg: "โปรดระบุ ตัวอย่าง: %{prefix}detail <ชื่อเพลย์ลิสต์>"
detail_notfound: "ชื่อเพลย์ลิสต์ไม่ถูกต้อง."
@@ -33,7 +30,6 @@ detail_embed_footer: "หน้าที่ • %{page}/%{pages} | %{songs} •
detail_notnumber: "หน้าต้องเป็นตัวเลข"
detail_page_notfound: "มีเพียง %{page} หน้าที่ใช้ได้"
detail_track: "%{num}. **[%{title}](%{url})** | *ช่อง*: %{author} • `[%{duration}]`"
-
##### Import command #####
import_loading: "กำลังนำเพิ่ม เพลย์ลิสต์ไปยังคิว..."
import_voice: "คุณต้องอยู่ใน ห้องเสียง เพื่อใช้คำสั่ง"
@@ -45,27 +41,23 @@ import_private: "เพลย์ลิสต์นี้เป็นแบบส
import_imported: "**เพิ่มเพลย์ลิสต์ • %{name}** `[%{duration}]` (%{tracks} เพลง) • %{user}"
import_match: "เกิดข้อผิดพลาดเพลย์ลิสต์ไม่ถูกต้อง"
import_fail: "เกิดข้อผิดพลาดในการโหลดเพลย์ลิสต์"
-
##### View command #####
view_embed_title: "%{user}'s • เพลย์ลิสต์"
view_embed_footer: "หน้าที่ • %{page}/%{pages} | %{songs} • เพลย์ลิสต์"
view_notnumber: "หน้าต้องเป็นตัวเลข"
view_page_notfound: "มีเพียง %{page} หน้าที่ใช้ได้"
view_embed_playlist: "%{num}. **`%{name}`** • (%{tracks} เพลง) • *สร้างตั้งแต่*: `[%{create} ที่แล้ว]`"
-
##### Remove command #####
remove_arg: "โปรดระบุ ตัวอย่าง: %{prefix}remove <ชื่อเพลย์ลิสต์> <ตำแหน่ง>"
remove_notfound: "ชื่อเพลย์ลิสต์ไม่ถูกต้อง"
remove_song_notfound: "ไม่พบเพลงที่จะลบ"
remove_owner: "คุณไม่สามารถลบเพลงออกจากเพลย์ลิสต์นี้ได้"
remove_removed: "`📦` | *ลบเพลง* • ตำแหน่งที่ `%{position}` ในเพลย์ลิสต์ `%{name}`"
-
##### Savequeue command #####
savequeue_arg: "โปรดระบุ ตัวอย่าง: %{prefix}savequeue <ชื่อเพลย์ลิสต์>"
savequeue_notfound: "ชื่อเพลย์ลิสต์ไม่ถูกต้อง"
savequeue_owner: "คุณไม่สามารถบันทึกเพลงลงในเพลย์ลิสต์นี้ได้"
savequeue_saved: "`📦` | *บันทึก* • (%{tracks} เพลง) ลงในเพลย์ลิสต์ `%{name}`"
-
##### Private command #####
private_arg: "โปรดระบุ ตัวอย่าง: %{prefix}private <ชื่อเพลย์ลิสต์>"
private_notfound: "ชื่อเพลย์ลิสต์ไม่ถูกต้อง"
@@ -73,7 +65,6 @@ private_owner: "คุณไม่สามารถปรับ เพลย์
private_already: "เพลย์ลิสต์นี้ ได้เป็นแบบส่วนตัวอยู่แล้ว"
private_loading: "กำลังโหลด โปรดรอสักครู่..."
private_success: "`📦` | *เพลย์ลิสต์ ถูกปรับเป็น:* `ส่วนตัว`"
-
##### Public command #####
public_arg: "โปรดระบุ ตัวอย่าง: %{prefix}public <ชื่อเพลย์ลิสต์>"
public_notfound: "ชื่อเพลย์ลิสต์ไม่ถูกต้อง"
@@ -81,4 +72,3 @@ public_owner: "คุณไม่สามารถปรับ เพลย์
public_already: "เพลย์ลิสต์นี้ ได้เป็นแบบสาธารณะอยู่แล้ว"
public_loading: "กำลังโหลด โปรดรอสักครู่..."
public_success: "`📦` | *เพลย์ลิสต์ ถูกปรับเป็น:* `สาธารณะ`"
-
diff --git a/languages/th/premium.yaml b/languages/th/premium.yaml
index 8cb19e6..da87267 100644
--- a/languages/th/premium.yaml
+++ b/languages/th/premium.yaml
@@ -4,19 +4,16 @@ plan_invalid: "แผนไม่ถูกต้อง แผนที่มี
gen_author: "Generate Code"
gen_desc: "• *Generated* [`+%{codes_length}`]\n```%{codes}```\n • *แผน*: `%{plan}`\n • *วันหมดอายุ*: `%{expires}`"
gen_footer: "ใช้: %{prefix}redeem เพื่อรับโค้ด!"
-
##### Profile command #####
profile_author: "โปรไฟล์พรีเมี่ยม"
profile_desc: "*ผู้ใช้*: `%{user}`\n*แผน*: `%{plan}`\n*วันหมดอายุ*: `%{expires}`"
-
##### Redeem command #####
redeem_arg: "โปรดระบุโค้ดที่คุณต้องการแลก!"
redeem_already: "คุณเป็นผู้ใช้ระดับพรีเมียมแล้ว"
redeem_title: "แลกพรีเมี่ยม"
redeem_desc: "**คุณได้แลกรับ พรีเมียมเรียบร้อยแล้ว!**\n\n*วันหมดอายุ*: [`%{expires}`]"
redeem_invalid: "**โค้ดไม่ถูกต้อง โปรดลองอีกครั้งโดยใช้อันที่ถูกต้อง!**"
-
##### Remove command #####
-remove_mention: "Please mention member!"
-remove_already: "**Already are remove! %{user}**"
-remove_desc: "**You have successfully remove! %{user}**"
\ No newline at end of file
+remove_mention: "โปรดแท็กสมาชิก!"
+remove_already: "**สมาชิก %{user} ได้ทุกลบไปแล้ว**"
+remove_desc: "**ตุณได้ลบสมาชิกสำเร็จ %{user}**"
diff --git a/languages/th/setup.yaml b/languages/th/setup.yaml
index f4a0288..863435b 100644
--- a/languages/th/setup.yaml
+++ b/languages/th/setup.yaml
@@ -2,24 +2,19 @@
setup_topic: "⏯ *หยุดชั่วคราว/ดำเนินการต่อ ของเพลง*\n⬅ *กลับไปเพลงก่อนหน้า*\n⏹ *ปิดเพลง/เอาบอทออกจากห้อง*\n➡ *ข้ามไปเพลงต่อไป*\n🔁 *เล่นเพลงซ้ำ/ยกเลิกเล่นเพลงซ้ำ*"
setup_msg: "*`สร้างระบบ แชทเพลง สำเร็จ`* %{channel}"
setup_enable: "มีระบบ แชทเพลง อยู่ไม่สามารถใช้งาน คำสั่งนี้ได้"
-
##### Setup Handler #####
setup_queuemsg: "**__คิวทั้งหมด:__**\nเข้าห้องพูดคุยแล้วเพิ่มเพลงโดย ใช้ชื่อหรือลิ้งเพลง ในห้องนี้"
-
setup_playembed_author: "ไม่มีเพลง เล่นอยู่ ในปัจจุบัน"
setup_nowplay: "กำลังเล่นเพลง..."
setup_songpause: "หยุดชั่วคราว..."
setup_playembed_image: "https://images2.alphacoders.com/110/thumb-1920-1109233.jpg"
setup_playembed_desc: ">>> [Invite](https://discord.com/api/oauth2/authorize?client_id=%{clientId}&permissions=2184310032&scope=bot%20applications.commands) | [Support](https://discord.gg/SNG3dh3MbR) | [Website](https://adivise.github.io/Stylish/)"
-setup_playembed_footer: "Prefix is: / (SlashCommand)"
-
+setup_playembed_footer: "คำนำหน้าคือ: %{prefix}"
##### Setup Update Handler #####
-
setup_author: "กำลังเล่น เพลง..."
setup_author_icon: "https://cdn.discordapp.com/emojis/741605543046807626.gif"
setup_desc: "[%{title}](%{url}) `[%{duration}]` • %{request}"
setup_footer: "%{songs} • เพลงในคิว | ระดับเสียง • %{volume}% | ระยะเวลาทั้งหมด • %{duration}"
-
setup_content: "**__คิวทั้งหมด:__**"
setup_content_queue: "*`%{index} • %{title} • [%{duration}]`* • %{request}"
-setup_content_empty: "เข้าห้องพูดคุยแล้วเพิ่มเพลงโดย ใช้ชื่อหรือลิ้งเพลง ในห้องนี้"
\ No newline at end of file
+setup_content_empty: "เข้าห้องพูดคุยแล้วเพิ่มเพลงโดย ใช้ชื่อหรือลิ้งเพลง ในห้องนี้"
diff --git a/languages/th/utilities.yaml b/languages/th/utilities.yaml
index 7a18587..9f4b6ef 100644
--- a/languages/th/utilities.yaml
+++ b/languages/th/utilities.yaml
@@ -1,17 +1,14 @@
##### Language command #####
-lang_perm: "คุณต้องมีความสามารถ `MANAGE_GUILD` เพื่อใช้คำสั่ง"
-lang_arg: "กรุณาระบุภาษา!"
-provide_lang: "โปรดระบุภาษา: `%{languages}`"
-lang_set: "`🔧` | *ภาษาถูกตั้งค่าเป็น:* `%{language}`"
-lang_change: "`🔧` | *ภาษาถูกเปลี่ยนเป็น:* `%{language}`"
-lang_error: "เกิดข้อผิดพลาด โปรดลองอีกครั้งในภายหลัง"
-
+lang_perm: "คุณต้องมีความสามารถ Manage Guild เพื่อใช้คำสั่งนี้"
+lang_arg: "โปรดระบุภาษาให้ถูกต้อง"
+provide_lang: "ภาษาทั้งหมด: %{languages}"
+lang_set: "` 🔧` | *ตั้งค่าภาษาเป็น:* %{language}"
+lang_change: "` 🔧` | *เปลี่ยนภาษาเป็น:* %{language}"
+lang_error: "มีบ้างผิดปกติ โปรดรองใหม่ในภายหลัง"
##### Restart command #####
-restart_msg: "`🤖` | *บอทได้ถูก:* `ปิดตัวลงแล้ว`"
-
-
+restart_msg: "`🤖` | *บอทโดน:* `ปิดเรียบร้อยแล้ว`"
##### Help command #####
-help_desc: "โปรดเลือกเมนูหมวดหมู่!"
+help_desc: "โปรดเลือกหัวข้อ"
help_category_desc: "เลือก %{category} เพื่อดูคำสั่งทั้งหมด"
help_category: "%{category}"
-help_timeout: "```เมนูช่วย เหลือหมดเวลาแล้ว พิมพ์ %{prefix}help เพื่อดูอีกครั้ง```"
\ No newline at end of file
+help_timeout: "```การดูคำสั่งบอทหมดเวลาแล้ว พิมพ์ %{prefix}help เพื่อดูอีกครั้ง```"
diff --git a/languages/vi/filters.yaml b/languages/vi/filters.yaml
new file mode 100644
index 0000000..ddb104d
--- /dev/null
+++ b/languages/vi/filters.yaml
@@ -0,0 +1,33 @@
+##### All Filter command!
+filter_loading: "Đang bật **%{name}**. Điều này có thể mất vài giây..."
+filter_on: "`🔩` | *Đã bật:* `%{name}`"
+filter_number: "Hãy nhập một số bất kỳ."
+filter_greater: "Số bạn nhập cần phải lớn hơn 0."
+filter_less: "Số bạn nhập cần phải bé hơn 10."
+#Bassboost commaand!
+bassboost_loading: "Cài đặt **Bassboost** thành **%{amount}dB**. Điều này có thể mất vài giây..."
+bassboost_set: "`🔩` | *Bassboost đã được cài đặt thành* `%{amount}`"
+bassboost_limit: "Vui lòng nhập một số tử -10 đến 10."
+#Equalizer command!
+eq_author: "Tùy chỉnh hệ thống cân bằng âm thanh"
+eq_icon: "https://cdn.discordapp.com/emojis/758423098885275748.gif"
+eq_desc: "Có 14 dải âm có thể được đặt từ -10 đến 10. Không phải tất cả các dải đều phải được thực hiện."
+eq_field_title: "Ví dụ:"
+eq_field_value: "%{prefix}eq 2 3 0 8 0 5 0 -5 0 0"
+eq_number: "Dải âm #%{num} không phải là một số hợp lệ."
+eq_than: "Dải âm #%{num} cần phải bé hơn 10."
+eq_footer: "Cài đặt lại hệ thống cân bằng âm thanh: %{prefix}eq reset"
+eq_loading: "Cài đặt **Equalizer** thành **`%{bands}`**. Điều này có thể mất vài giây..."
+eq_on: "`🔩` | *Cân bằng âm thanh đã được thay đổi thành:* `%{bands}`"
+#Pitch command!
+pitch_loading: "Cài đặt **Pitch** thành **%{amount}**. Điều này có thể mất vài giây..."
+pitch_on: "`🔩` | *Pitch đã được đặt thành:* `%{amount}`"
+#Rate command!
+rate_loading: "Cài đặt **Rate** thành **%{amount}x**. Điều này có thể mất vài giây..."
+rate_on: "`🔩` | *Rate đã được đặt thành:* `%{amount}x`"
+#Reset command!
+reset_loading: "Đang tắt **%{name}**. Điều này có thể mất vài giây..."
+reset_on: "`🔩` | *Đã tắt:* `%{name}`"
+#Speed command!
+speed_loading: "Cài đặt **Tốc độ* thành **%{amount}x**. Điều này có thể mất vài giây..."
+speed_on: "`🔩` | *Tốc độ đã được đặt thành:* `%{amount}x`"
diff --git a/languages/vi/interaction.yaml b/languages/vi/interaction.yaml
new file mode 100644
index 0000000..7366e70
--- /dev/null
+++ b/languages/vi/interaction.yaml
@@ -0,0 +1,9 @@
+##### InteractionCreate Event #####
+#On settings/config.js in DEV_ID
+dev_only: Bot đang bảo trì. (Vui lòng quay lại sau)
+#No permission to use command (this for bot!)
+no_perms: Tôi không có quyền để thực hiện lệnh này!
+#Bot getting error something!
+error: Có gì đó không đúng.
+#You are not the client owner of this bot!
+owner_only: Bạn không phải chủ nhân của bot!
diff --git a/languages/vi/music.yaml b/languages/vi/music.yaml
new file mode 100644
index 0000000..67644ee
--- /dev/null
+++ b/languages/vi/music.yaml
@@ -0,0 +1,183 @@
+### 247 command
+247_loading: "Đang tải, vui lòng chờ..."
+247_off: "`🌙` | *Chế độ 24/7 đã bị:* `Ngừng kích hoạt`"
+247_on: "`🌕` | *Chế độ 24/7 đã được `Kích hoạt`"
+### Autoplay command!
+autoplay_loading: "Đang tải, vui lòng chờ..."
+autoplay_off: "`📻` | *Chế độ tự động phát đã bị:* `Ngừng kích hoạt`"
+autoplay_on: "`📻` | *Chế độ tự động phát đã được:* `Kích hoạt`"
+### Clearqueue command!
+clearqueue_loading: "Đang tải, vui lòng chờ..."
+clearqueue_msg: "`📛` | *Hàng đợi đã bị:* `Xoá hoàn toàn`"
+### Forward command!
+forward_loading: "Đang tải, vui lòng chờ..."
+forward_msg: "`⏭` | *Chuyển tiếp lúc:* `%{duration}`"
+forward_beyond: "Không thể chuyển tiếp quá thời lượng của bài hát."
+forward_invalid: "Đối số không hợp lệ, phải là một số.\nCách sử dụng đúng: `%{prefix}forward `"
+### Join command!
+join_loading: "Đang tải, vui lòng chờ..."
+join_voice: "Bạn phải cần ở trong kênh đàm thoại để sử dụng lệnh này."
+join_msg: "`🔊` | *Đã tham gia:* `%{channel}`"
+### Leave command!
+leave_loading: "Đang tải, vui lòng chờ..."
+leave_msg: "`🚫` | *Đã rời:* | `%{channel}`"
+### Loop command!
+loop_loading: "Đang tải, vui lòng chờ..."
+loop_current: "`🔁` | *Nhạc được lặp lại ở chế độ:* `Bài hát hiện tại`"
+unloop_current: "`🔁` | *Nhạc được ngừng lặp lại ở chế độ:* `Bài hát hiện tại`"
+loop_all: "`🔁` | *Nhạc được lặp lại ở chế độ:* `Toàn bộ hàng đợi`"
+unloop_all: "`🔁` | *Nhạc được dừng lặp lại ở chế độ:* `Toàn bộ hàng đợi`"
+### Loopall command!
+loopall_loading: "Đang tải, vui lòng chờ..."
+loopall: "`🔁` | *Nhạc được lặp lại ở chế độ:* `Toàn bộ hàng đợi`"
+unloopall: "`🔁` | *Nhạc được dừng lặp lại ở chế độ:* `Toàn bộ hàng đợi`"
+### Lyrics command!
+lyrics_loading: "Đang tìm kiếm lời hát..."
+lyrics_notfound: "Không tìm thấy lời hát nào của bài này!"
+lyrics_title: "Lời hát bài %{song}"
+lyrics_toolong: "Lời hát quá dài để hiển thị!"
+### Nowplaying command!
+np_loading: "Đang tải, vui lòng chờ..."
+np_title: "Đang chơi..."
+np_title_pause: "Dừng nhạc..."
+np_icon: "https://cdn.discordapp.com/emojis/741605543046807626.gif"
+#Embed Field
+np_author: "Tác giả:"
+np_request: "Người yêu cầu:"
+np_volume: "Âm lượng:"
+np_view: "Lượt xem:"
+np_upload: "Đăng tải lúc:"
+np_download: "Tải xuống:"
+np_current_duration: "Thời lượng hiện tại: `[%{current_duration} / %{total_duration}]`"
+#Need in voice to use button
+np_invoice: "Bạn cần phải tham gia cùng 1 kênh đàm thoại."
+#Message Button
+np_switch_pause: "Đã dừng"
+np_switch_resume: "Tiếp tục"
+np_pause_msg: "`⏯` | *Nhạc đã:* `%{pause}`"
+np_replay_msg: "`⏮` | *Nhạc đã:* `Phát lại`"
+np_stop_msg: "`🚫` | *Nhạc đã:* `Dừng`"
+np_skip_msg: "`⏭` | *Nhạc đã được:* `Bỏ qua`"
+np_switch_enable: "Đã kích hoạt"
+np_switch_disable: "Đã ngừng kích hoạt"
+np_repeat_msg: "`🔁` | *Vòng lặp đã:* `%{loop}`"
+### Pause command!
+pause_loading: "Đang tải, vui lòng chờ..."
+pause_switch_pause: "Đã dừng"
+pause_switch_resume: "Tiếp tục"
+pause_msg: "`⏯` | *Nhạc đã:* `%{pause}`"
+### Play command!
+play_loading: "Đang tải, vui lòng chờ..."
+play_invoice: "Bạn phải cần ở trong kênh đàm thoại để sử dụng lệnh này."
+play_join: "Tôi không có quyền để tham gia kênh đàm thoại."
+play_speak: "Tôi không có quyền để nói trong kênh đàm thoại."
+play_arg: "Vui lòng cung cấp tên nhạc hoặc liên kết để tìm kiếm."
+play_startwith: "Vui lòng dùng liên kết để chơi nhạc."
+play_track: "**Đã thêm vào hàng đợi • [%{title}](%{url})** `%{duration}` • %{request}"
+play_playlist: "**Đã thêm vào hàng đợi • [%{title}](%{url})** `%{duration}` (%{songs} tracks) • %{request}"
+play_result: "**Đã thêm vào hàng đợi • [%{title}](%{url})** `%{duration}` • %{request}"
+play_fail: "Lỗi không tải được nhạc"
+play_match: "Lỗi không tìm được bài hát"
+### Previous command!
+previous_loading: "Đang tải, vui lòng chờ..."
+previous_notfound: "Không tìm được bàt hát trước kia."
+previous_msg: "`⏮` | *Nhạc đã được:* `Quay lại`"
+### Queue command!
+queue_author: "Hàng đợi - %{guild}"
+queue_description: "*Đang chơi*\n*[%{title}](%{url})* `[%{duration}]` • %{request}\n\n*Phần còn lại của hàng đợi*:%{rest}"
+queue_footer: "Trang • %{page}/%{pages} | %{queue_lang} • Nhạc | %{duration} • Tổng độ dài"
+queue_notnumber: "Số trang cần phải là một số."
+queue_page_notfound: "Hiện chỉ có %{page} có sẵn."
+### Replay command!
+replay_loading: "Đang tải, vui lòng chờ..."
+replay_msg: "`⏮` | *Nhạc đã:* `Phát lại`"
+### Resume command!
+resume_loading: "Đang tải, vui lòng chờ..."
+resume_switch_pause: "Đã dừng"
+resume_switch_resume: "Tiếp tục"
+resume_msg: "`⏯` | *Nhạc đã:* `%{resume}`"
+### Rewind command!
+rewind_loading: "Đang tải, vui lòng chờ..."
+rewind_msg: "`⏮` | *Quay lại lúc:* `%{duration}`"
+rewind_beyond: "Không thể quay lại quá thời lượng của bài hát."
+rewind_invalid: "Đối số không hợp lệ, phải là một số.\nCách sử dụng đúng: `%{prefix}rewind `"
+### Search command!
+search_loading: "Đang tải, vui lòng chờ..."
+search_invoice: "Bạn phải cần ở trong kênh đàm thoại để sử dụng lệnh này."
+search_join: "Tôi không có quyền để tham gia kênh đàm thoại."
+search_speak: "Tôi không có quyền để nói trong kênh đàm thoại."
+search_arg: "Vui lòng cung cấp tên nhạc hoặc liên kết để tìm kiếm."
+search_title: "Chọn nhạc..."
+search_select: "**(%{num}.) [%{title}](%{url})** `%{duration}` Tác giả: `%{author}`"
+search_footer: "Vui lòng chọn nhạc trong 30 giây."
+search_no_response: "Không phản hồi."
+search_result: "**Đã thêm vào hàng đợi • [%{title}](%{url})** `%{duration}` • %{request}"
+search_playlist: "**Đã thêm vào hàng đợi • [%{title}](%{url})** `%{duration}` (%{songs} tracks) • %{request}"
+search_fail: "Lỗi không tải được nhạc"
+search_match: "Lỗi không tìm được bài hát"
+### Seek command!
+seek_loading: "Đang tải, vui lòng chờ..."
+seek_invalid: "Số không hợp lệ. Vui lòng cung cấp một số theo đơn vị giây.\nCách sử dụng đúng: `%{prefix}seek `"
+seek_beyond: "Không thể quay lại quá thời lương của nhạc."
+seek_msg: "`⏭` | *Quay lại lúc:* `%{duration}`"
+### Shuffle command!
+shuffle_loading: "Đang tải, vui lòng chờ..."
+shuffle_msg: "`🔀` | *Hàng đợi đã đươc:* `Xáo trộn`"
+### Skip command!
+skip_loading: "Đang tải, vui lòng chờ..."
+skip_msg: "`⏭` | *Nhạc đã được:* `Bỏ qua`"
+### Skipto command!
+skipto_loading: "Đang tải, vui lòng chờ..."
+skipto_invalid_position: "Số không hợp lệ"
+skipto_arg: "Không thể chuyển sang bài hát đang phát. Để bỏ qua loại bài hát đang phát hiện tại: `%{prefix}skip`"
+skipto_invalid: "Số thứ tự của nhạc không hợp lệ."
+skipto_msg: "`⏭` | *Nhạc đã được:* `Bỏ qua đến %{position}`"
+### Volume command!
+volume_loading: "Đang tải, vui lòng chờ..."
+volume_usage: "*Âm lượng hiện tại:* `%{volume}%`"
+volume_invalid: "Bạn chỉ có thể chôn âm lượng từ 1% đến 100%"
+volume_msg: "`🔊` | *Đã thay đổi âm lượng sang:* `%{volume}%`"
+### PlaySkip command!
+playskip_loading: "Đang tải, vui lòng chờ..."
+playskip_track: "**Đã bỏ qua • [%{title}](%{url})** `%{duration}` • %{request}"
+playskip_playlist: "**Đã bỏ qua • [%{title}](%{url})** `%{duration}` (%{songs} tracks) • %{request}"
+playskip_result: "**Đã bỏ qua • [%{title}](%{url})** `%{duration}` • %{request}"
+playskip_fail: "Lỗi không tải được nhạc"
+playskip_match: "Lỗi không tìm được bài hát"
+### PlayTop command!
+playtop_loading: "Đang tải, vui lòng chờ..."
+playtop_track: "**Đã thay đổi • [%{title}](%{url})** `%{duration}` • %{request}"
+playtop_playlist: "**Đã thay đổi • [%{title}](%{url})** `%{duration}` (%{songs} tracks) • %{request}"
+playtop_result: "**Đã thay đổi • [%{title}](%{url})** `%{duration}` • %{request}"
+playtop_fail: "Lỗi không tải được nhạc"
+playtop_match: "Lỗi không tìm được bài hát"
+### RemoveTrack command!
+removetrack_loading: "Đang tải, vui lòng chờ..."
+removetrack_already: "Không thể loại bỏ bài nhạc hiện đang chơi."
+removetrack_notfound: "Nhạc không tìm thấy."
+removetrack_desc: "**Đã loại bỏ • [%{name}](%{url})** `%{duration}` • %{request}"
+### Move command!
+move_loading: "Đang tải, vui lòng chờ..."
+move_already: "Không thể loại bỏ bài nhạc hiện đang chơi."
+move_notfound: "Nhạc không tìm thấy."
+move_desc: "**Đã chuyển • [%{name}](%{url})** sang %{pos}"
+### SearchSkip command!
+searchskip_loading: "Đang tải, vui lòng chờ..."
+searchskip_title: "Chọn nhạc..."
+searchskip_select: "**(%{num}.) [%{title}](%{url})** `%{duration}` Tác giả: `%{author}`"
+searchskip_footer: "Vui lòng chọn nhạc trong 30 giây."
+searchskip_no_response: "Không phản hồi."
+searchskip_result: "**Đã bỏ qua • [%{title}](%{url})** `%{duration}` • %{request}"
+searchskip_playlist: "**Đã bỏ qua • [%{title}](%{url})** `%{duration}` (%{songs} nhạc) • %{request}"
+searchskip_fail: "Lỗi không tải được nhạc"
+searchskip_match: "Lỗi không tìm được bài hát"
+### SearchTop command!
+searchtop_loading: "Đang tải, vui lòng chờ..."
+searchtop_title: "Chọn nhạc..."
+searchtop_select: "**(%{num}.) [%{title}](%{url})** `%{duration}` Tác giả: `%{author}`"
+searchtop_footer: "Vui lòng chọn nhạc trong 30 giây."
+searchtop_no_response: "Không phản hồi."
+searchtop_result: "**Đã thay đổi • [%{title}](%{url})** `%{duration}` • %{request}"
+searchtop_playlist: "**Đã thay đổi • [%{title}](%{url})** `%{duration}` (%{songs} tracks) • %{request}"
+searchtop_fail: "Lỗi không tải được nhạc"
+searchtop_match: "Lỗi không tìm được bài hát"
diff --git a/languages/vi/noplayer.yaml b/languages/vi/noplayer.yaml
new file mode 100644
index 0000000..c4a062a
--- /dev/null
+++ b/languages/vi/noplayer.yaml
@@ -0,0 +1,5 @@
+##### Need to join voice channel to use command! #####
+#No song playing in guild!
+no_player: "Không có nhạc đang chơi ở trong server này."
+#Need to join voice & same voice to use command!
+no_voice: "Bạn cần phải tham gia cùng 1 kênh đàm thoại."
diff --git a/languages/vi/nopremium.yaml b/languages/vi/nopremium.yaml
new file mode 100644
index 0000000..cd78137
--- /dev/null
+++ b/languages/vi/nopremium.yaml
@@ -0,0 +1,5 @@
+##### No premium Event #####
+#No premium sending msg!
+premium_author: "Chỉ được sử dụng khi có gói premium!"
+premium_desc: "*Bạn cần đăng kí gói premium để sử dụng lệnh này.*"
+premium_error: "Có gì đó không ổn, vui lòng thử lại."
diff --git a/languages/vi/player.yaml b/languages/vi/player.yaml
new file mode 100644
index 0000000..5ef4777
--- /dev/null
+++ b/languages/vi/player.yaml
@@ -0,0 +1,43 @@
+##### On track start playing! Event #####
+track_title: "Bắt đầu chơi..."
+track_icon: "https://cdn.discordapp.com/emojis/741605543046807626.gif"
+#Embed Field
+author_title: "Tác giả:"
+request_title: "Người yêu cầu:"
+volume_title: "Âm lượng hiện tại:"
+queue_title: "Độ dài hàng đợi:"
+duration_title: "Thời lượng:"
+total_duration_title: "Tổng thời lượng:"
+current_duration_title: "Thời lượng hiện tại: `[0:00 / %{current_duration}]`"
+#Need in voice to use button!
+join_voice: "Bạn phải cần ở trong kênh đàm thoại để sử dụng nút bật này."
+#Message Button
+switch_pause: Đã dừng
+switch_resume: Tiếp tục
+pause_msg: "`⏯` | *Nhạc đã:* `%{pause}`"
+skip_msg: "`⏭` | *Nhạc đã được:* `Bỏ qua`"
+stop_msg: "`🚫` | *Nhạc đã:* `Dừng`"
+shuffle_msg: "`🔀` | *Hàng đợi đã đươc:* `Xáo trộn`"
+switch_enable: Đã kích hoạt
+switch_disable: Đã ngừng kích hoạt
+repeat_msg: "`🔁` | *Vòng lặp đã:* `%{loop}`"
+volup_msg: "`🔊` | *Đã thay đổi âm lượng sang:* `%{volume}%`"
+voldown_msg: "`🔈` | *Đã thay đổi âm lượng sang:* `%{volume}%`"
+replay_msg: "`⏮` | *Nhạc đã:* `Phát lại`"
+queue_author: "Hàng đợi - %{guild}"
+queue_description: "*Đang chơi*\n*[%{track}](%{track_url})* `[%{duration}]` • %{requester}\n\n*Phần còn lại của hàng đợi*:%{list_song}"
+queue_footer: "Trang • %{page}/%{pages} | %{queue_lang} • Nhạc | %{total_duration} • Tổng độ dài"
+clear_msg: "`📛` | *Hàng đợi đã bị:* `Xoá hoàn toàn`"
+##### On QueueEnd Event #####
+queue_end_desc: "`📛` | *Nhạc đã:* `Kết thúc`"
+##### On Track get error!! Event #####
+error_desc: "`❌` | *Nhạc đã được:* `Tự động bỏ qua`"
+##### On Track get stuck!! Event #####
+stuck_desc: "`❌` | *Nhạc đã bị kẹt:* `Tự động bỏ qua`"
+##### On Bot get move Event #####
+#On player get discoconnect
+dis_title: "Đã ngắt kết nối"
+dis_desc: "*Tôi đã bị mất kết nối ở kênh <#%{voice}>*"
+#On player get move! = (detroy player)
+leave_title: "Đã di chuyển"
+leave_desc: "*Tôi đã bị di chuyển nên đã tự động ngắt kết nối*"
diff --git a/languages/vi/playlist.yaml b/languages/vi/playlist.yaml
new file mode 100644
index 0000000..a28ba2e
--- /dev/null
+++ b/languages/vi/playlist.yaml
@@ -0,0 +1,74 @@
+##### Create command #####
+create_loading: "**Đang tạo danh sách phát...**"
+create_arg: "Vui lòng cung cấp tên danh sách phát. Ví dụ:%{prefix}create "
+create_toolong: "Tên danh sách phát không được quá 16 chữ cái."
+create_limit_playlist: "Bạn không thể có hơn %{limit} danh sách phát."
+create_name_exist: "Tên đã có trong cơ sở dữ liệu."
+create_created: "`📦` | *Đã tạo* • `%{playlist}`"
+##### Add command #####
+add_loading: "**Đang thêm vào danh sách phát...**"
+add_arg: "Vui lòng cung cấp tên danh sách phát. Ví dụ:%{prefix}add "
+add_match: "Liên kết danh sách phát không hợp lệ."
+add_fail: "Lỗi không tải được danh sách phát."
+add_track: "**Đã tìm • [%{title}](%{url})** `%{duration}` • %{user}"
+add_playlist: "**Đã tìm • [%{title}](%{url})** `%{duration}` (%{track} nhạc) • %{user}"
+add_search: "**Đã tìm • [%{title}](%{url})** `%{duration}` • %{user}"
+add_owner: "Bạn không thể thêm vào danh sách phát này."
+add_limit_track: "Bạn không thể thêm quá %{limit} bài hát vào danh sách phát này."
+add_added: "`📦` | *Đã thêm* • [`%{count} bài hát`] vào *Danh sách phát* • `%{playlist}`"
+##### Delete command #####
+delete_arg: "Vui lòng cung cấp tên danh sách phát. Ví dụ:%{prefix}delete "
+delete_notfound: "Tên danh sách phát không hợp lệ."
+delete_owner: "Bạn không thể xóa danh sách phát này."
+delete_deleted: "`📦` | *Đã xóa* • `%{name}`"
+##### Detail command #####
+detail_arg: "Vui lòng cung cấp tên danh sách phát. Ví dụ:%{prefix}detail "
+detail_notfound: "Tên danh sách phát không hợp lệ."
+detail_private: "Danh sách phát này là riêng tư."
+detail_embed_title: "Danh sách phát • %{name}"
+detail_embed_footer: "Trang • %{page}/%{pages} | %{songs} • Nhạc | %{duration} • Tổng độ dài"
+detail_notnumber: "Số trang cần phải là một số."
+detail_page_notfound: "Hiện chỉ có %{page} có sẵn."
+detail_track: "%{num}. **[%{title}](%{url})** | *Tác giả*: %{author} • `[%{duration}]`"
+##### Import command #####
+import_loading: "Đang nhập danh sách phát vào hàng đợi..."
+import_voice: "Bạn phải cần ở trong kênh đàm thoại để sử dụng lệnh này."
+import_join: "Tôi không có quyền để tham gia kênh đàm thoại."
+import_speak: "Tôi không có quyền để nói trong kênh đàm thoại."
+import_arg: "Vui lòng cung cấp tên danh sách phát. Ví dụ:%{prefix}import **"
+import_notfound: "Tên danh sách phát không hợp lệ."
+import_private: "Danh sách phát này là riêng tư."
+import_imported: "**Đã thêm • %{name}** `[%{duration}]` (%{tracks} bài hát) • %{user}"
+import_match: "Liên kết danh sách phát không hợp lệ."
+import_fail: "Lỗi không tải được danh sách phát."
+##### View command #####
+view_embed_title: "Playlist của %{user}'s"
+view_embed_footer: "Trang • %{page}/%{pages} | %{songs} • Danh sách phát"
+view_notnumber: "Số trang cần phải là một số."
+view_page_notfound: "Hiện chỉ có %{page} có sẵn."
+view_embed_playlist: "%{num}. **`%{name}`** • (%{tracks} bài hát) • *Tạo lúc*: `[%{create}]`"
+##### Remove command #####
+remove_arg: "Vui lòng cung cấp tên danh sách phát. Ví dụ:%{prefix}remove "
+remove_notfound: "Tên danh sách phát không hợp lệ."
+remove_song_notfound: "Không thể tìm thấy nhạc để loại bỏ"
+remove_owner: "Bạn không thể loại bot bài hát này ra khỏi danh sách phát."
+remove_removed: "`📦` | *Đã loại bỏ* • vị trí `%{position}` trong `%{name}`"
+##### Savequeue command #####
+savequeue_arg: "Vui lòng cung cấp tên danh sách phát. Ví dụ:%{prefix}savequeue "
+savequeue_notfound: "Tên danh sách phát không hợp lệ."
+savequeue_owner: "Bạn không lưu bài hát này vào danh sách phát này."
+savequeue_saved: "`📦` | *Đã lưu* • (Bài %{tracks}) vào `%{name}`"
+##### Private command #####
+private_arg: "Vui lòng cung cấp tên danh sách phát. Ví dụ:%{prefix}private "
+private_notfound: "Tên danh sách phát không hợp lệ."
+private_owner: "Bạn không thể ẩn danh sách phát này."
+private_already: "Danh sách phát đã được riêng tư."
+private_loading: "Đang tải, vui lòng chờ..."
+private_success: "`📦` | *Danh sách phát này hiện được:* `Riêng tư`"
+##### Public command #####
+public_arg: "Vui lòng cung cấp tên danh sách phát. Ví dụ:%{prefix}public "
+public_notfound: "Tên danh sách phát không hợp lệ."
+public_owner: "Bạn không thể bỏ riêng tư danh sách phát này."
+public_already: "Danh sách phát đã được bỏ riêng tư."
+public_loading: "Đang tải, vui lòng chờ..."
+public_success: "`📦` | *Danh sách phát này hiện được:* `Bỏ riêng tư`"
diff --git a/languages/vi/premium.yaml b/languages/vi/premium.yaml
new file mode 100644
index 0000000..d7535de
--- /dev/null
+++ b/languages/vi/premium.yaml
@@ -0,0 +1,19 @@
+##### Generate command #####
+provide_plan: "Vui lòng chọn gói: %{plans}"
+plan_invalid: "Gói không hợp lệ, các loại gói cao cấp có sẵn: %{plans}"
+gen_author: "Tạo mã sản phẩm"
+gen_desc: "• *Đã tạo mã sản phẩm* [`+%{codes_length}`]\n```%{codes}```\n • *Gói*: `%{plan}`\n • *Hết hạn lúc*: `%{expires}`"
+gen_footer: "Gõ: %{prefix}redeem để kích hoạt!"
+##### Profile command #####
+profile_author: "Hồ sơ gói cao cấp"
+profile_desc: "*Người dùng*: `%{user}`\n*Gói*: `%{plan}`\n*Hết hạn lúc*: `%{expires}`"
+##### Redeem command #####
+redeem_arg: "Vui lòng nhập mã bạn muốn đăng ký gói cao cấp!"
+redeem_already: "Bạn đã là người dùng có đăng ký gói cao cấp"
+redeem_title: "Gói cao cấp đã được kích hoạt"
+redeem_desc: "**Bạn đã đăng ký thành công gói cao cấp!**\n\n*Hết hạn lúc*: [`%{expires}`]"
+redeem_invalid: "**Mã sẩn phẩm không hợp lệ. Vui lòng thử lại mã khác!**"
+##### Remove command #####
+remove_mention: "Vui lòng đề cập (mention) đến thành viên!"
+remove_already: "**Đã loại bỏ! %{user}**"
+remove_desc: "**Bạn đã loại bỏ thành công! %{user}**"
diff --git a/languages/vi/setup.yaml b/languages/vi/setup.yaml
new file mode 100644
index 0000000..ca4a5e3
--- /dev/null
+++ b/languages/vi/setup.yaml
@@ -0,0 +1,20 @@
+##### Setup command #####
+setup_topic: "⏯ *Tạm dừng/Tiếp tục bài hát.*\n⬅ *Quay lại bài hát trước.*\n⏹ *Dừng bài hát.*\n➡ *Bỏ qua bài hát.*\n🔁 *Lặp/Dừng lặp bài hát.*"
+setup_msg: "*`Thiết lập thành công Hệ thống âm nhạc trong`* %{channel}"
+setup_enable: "*`Đã thiết lập hệ thống yêu cầu bài hát kênh không thể sử dụng lệnh này.`*"
+##### Setup Handler #####
+setup_queuemsg: "**__ Danh sách hàng đợi: __**\nTham gia kênh thoại và xếp hàng các bài hát theo tên hoặc liên kết tại đây."
+setup_playembed_author: "Hiện đang không có nhạc."
+setup_nowplay: "Đang chơi..."
+setup_songpause: "Dừng nhạc..."
+setup_playembed_image: "https://images2.alphacoders.com/110/thumb-1920-1109233.jpg"
+setup_playembed_desc: ">>> [Invite](https://discord.com/api/oauth2/authorize?client_id=%{clientId}&permissions=2184310032&scope=bot%20applications.commands) | [Support](https://discord.gg/SNG3dh3MbR) | [Website](https://adivise.github.io/Stylish/)"
+setup_playembed_footer: "Tiền tố lệnh là: %{prefix}"
+##### Setup Update Handler #####
+setup_author: "Bắt đầu chơi..."
+setup_author_icon: "https://cdn.discordapp.com/emojis/741605543046807626.gif"
+setup_desc: "[%{title}](%{url}) `[%{duration}]` • %{request}"
+setup_footer: "%{songs} • Bài hát trong hàng đợi | Âm lượng • %{volume}% | %{duration} • Tổng thời lượng"
+setup_content: "**__Danh sách hàng đợi:__**"
+setup_content_queue: "*`%{index} • %{title} • [%{duration}]`* • %{request}"
+setup_content_empty: "Tham gia kênh thoại và xếp hàng các bài hát theo tên hoặc liên kết tại đây."
diff --git a/languages/vi/utilities.yaml b/languages/vi/utilities.yaml
new file mode 100644
index 0000000..6ea2c80
--- /dev/null
+++ b/languages/vi/utilities.yaml
@@ -0,0 +1,14 @@
+##### Language command #####
+lang_perm: "Bạn cần có quyền `MANAGE_GUILD` để sử dụng lệnh này."
+lang_arg: "Vui lòng chọn một ngôn ngữ!"
+provide_lang: "Vui lòng chọn ngôn ngữ: `%{languages}`"
+lang_set: "`🔧` | *Ngôn ngữ đã được đổi thành:* `%{language}`"
+lang_change: "`🔧` | *Ngôn ngữ đã được đổi thành:* `%{language}`"
+lang_error: "Có gì đó không ổn, vui lòng thử lại."
+##### Restart command #####
+restart_msg: "`🤖` | *Bot đã bị:* `Tắt nguồn`"
+##### Help command #####
+help_desc: "Vui lòng chọn một danh mục!"
+help_category_desc: "Vui lòng chon danh mục %{category} để thấy tất cả các lệnh."
+help_category: "%{category}"
+help_timeout: "```Menu trợ giúp đã hết hiệu lực, vui lòng dùng lệnh %{prefix}help để xem lại lần nữa.```"