diff --git a/locales/es_419/LC_MESSAGES/Pomodoro.po b/locales/es_419/LC_MESSAGES/Pomodoro.po new file mode 100644 index 000000000000..2ec645d99cab --- /dev/null +++ b/locales/es_419/LC_MESSAGES/Pomodoro.po @@ -0,0 +1,991 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2023 +# Ronin DeMentira, 2023 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Ronin DeMentira, 2023\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/modules/pomodoro/timer.py:52 +msgctxt "timer|stage:break|name" +msgid "BREAK" +msgstr "DESCANSO" + +#: src/modules/pomodoro/timer.py:53 +msgctxt "timer|stage:focus|name" +msgid "FOCUS" +msgstr "ENFOQUE" + +#: src/modules/pomodoro/timer.py:164 +#, possible-python-brace-format +msgctxt "timer|webhook|name" +msgid "{bot_name} Pomodoro" +msgstr "{bot_name} Pomodoro" + +#: src/modules/pomodoro/timer.py:168 +msgctxt "timer|webhook|audit_reason" +msgid "Pomodoro Notifications" +msgstr "Notificaciones Pomodoro" + +#: src/modules/pomodoro/timer.py:179 +msgctxt "timer|webhook|error:insufficient_permissions" +msgid "" +"I require the `MANAGE_WEBHOOKS` permission to send pomodoro notifications " +"here!" +msgstr "" +"¡Necesito el permiso `MANAGE_WEBHOOKS` para enviar notificaciones pomodoro " +"aquí!" + +#: src/modules/pomodoro/timer.py:238 +#, possible-python-brace-format +msgctxt "timer|default_base_name" +msgid "Timer {pattern}" +msgstr "Temporizador {pattern}" + +#: src/modules/pomodoro/timer.py:413 +msgctxt "timer|disconnect|audit_reason" +msgid "Disconnecting inactive member from timer." +msgstr "Desconexión del miembro inactivo por temporizador." + +#: src/modules/pomodoro/timer.py:425 +#, possible-python-brace-format +msgctxt "timer|kicked_message" +msgid "" +"{mentions} was removed from {channel} because they were inactive! Remember " +"to press {tick} to register your presence every stage." +msgid_plural "" +"{mentions} were removed from {channel} because they were inactive! Remember " +"to press {tick} to register your presence every stage." +msgstr[0] "" +"¡{mentions} fue eliminado de {channel} por estar inactivo! Recuerde pulsar " +"{tick} para registrar su presencia en cada etapa." +msgstr[1] "" +"¡{mentions} fueron eliminadas del {channel} por estar inactivas! Recuerda " +"pulsar {tick} para registrar tu presencia en cada etapa." +msgstr[2] "" +"¡{mentions} fueron eliminadas del {channel} por estar inactivas! Recuerda " +"pulsar {tick} para registrar tu presencia en cada etapa." + +#: src/modules/pomodoro/timer.py:438 +#, possible-python-brace-format +msgctxt "timer|kick_failed" +msgid "" +"**Warning!** Timer {channel} is configured to disconnect on inactivity, but " +"I lack the 'Move Members' permission to do this!" +msgstr "" +"**Advertencia:** El temporizador {channel} está configurado para " +"desconectarse en caso de inactividad, pero no dispongo del permiso \"Mover " +"miembros\" para hacerlo." + +#: src/modules/pomodoro/timer.py:537 +#, possible-python-brace-format +msgctxt "timer|status|stage:focus|statusline" +msgid "{channel} is now in **FOCUS**! Good luck, **BREAK** starts {timestamp}" +msgstr "" +"¡{channel} está ahora en **FOCUS**! Buena suerte, **BREAK** comienza " +"{timestamp}" + +#: src/modules/pomodoro/timer.py:542 +#, possible-python-brace-format +msgctxt "timer|status|stage:break|statusline" +msgid "" +"{channel} is now on **BREAK**! Take a rest, **FOCUS** starts {timestamp}" +msgstr "" +"¡{channel} está ahora en **BREAK**! Tómese un descanso, **FOCUS** comienza " +"{timestamp}" + +#: src/modules/pomodoro/timer.py:574 +#, possible-python-brace-format +msgctxt "timer|status|warningline" +msgid "" +"**Warning:** {mentions}, please press {tick} to avoid being removed on the " +"next stage." +msgstr "" +"**Advertencia:** {mentions}, por favor pulse {tick} para evitar ser " +"eliminado en la siguiente etapa." + +#: src/modules/pomodoro/timer.py:593 +#, possible-python-brace-format +msgctxt "timer|status|stopped:auto" +msgid "Timer stopped! Join {channel} to start the timer." +msgstr "¡Temporizador parado! Únete a {channel} para iniciar el temporizador." + +#: src/modules/pomodoro/timer.py:598 +msgctxt "timer|status|stopped:manual" +msgid "Timer stopped! Press `Start` to restart the timer." +msgstr "¡Temporizador parado! Pulse `Start` para reiniciar el temporizador." + +#: src/modules/pomodoro/settingui.py:40 +msgctxt "ui:timer_config|menu:channels|placeholder" +msgid "Select Pomodoro Notification Channel" +msgstr "Seleccione el canal de notificación Pomodoro" + +#: src/modules/pomodoro/settingui.py:48 +msgctxt "ui:timer_config|embed|title" +msgid "Timer Configuration Panel" +msgstr "Panel de configuración del temporizador" + +#: src/modules/pomodoro/settingui.py:82 +msgctxt "dash:pomodoro|title" +msgid "Pomodoro Configuration ({commands[config pomodoro]})" +msgstr "Configuración de Pomodoro ({commands[config pomodoro]})" + +#: src/modules/pomodoro/settingui.py:86 +msgctxt "dash:stats|dropdown|placeholder" +msgid "Pomodoro Timer Panel" +msgstr "Panel Temporizador Pomodoro" + +#: src/modules/pomodoro/cog.py:116 +msgctxt "cmd_check:ready|failed" +msgid "" +"I am currently restarting! The Pomodoro timers will be unavailable until I " +"have restarted. Thank you for your patience!" +msgstr "" +"Estoy reiniciando. Los temporizadores Pomodoro no estarán disponibles hasta " +"que haya reiniciado. Gracias por su paciencia." + +#: src/modules/pomodoro/cog.py:401 +msgctxt "cmd:timer" +msgid "timer" +msgstr "temporizador" + +#: src/modules/pomodoro/cog.py:402 +msgctxt "cmd:timer|desc" +msgid "Show your current (or selected) pomodoro timer." +msgstr "Muestra tu temporizador pomodoro actual (o seleccionado)." + +#: src/modules/pomodoro/cog.py:405 +msgctxt "cmd:timer|param:channel" +msgid "timer_channel" +msgstr "canal_temporizador" + +#: src/modules/pomodoro/cog.py:410 +msgctxt "cmd:timer|param:channel|desc" +msgid "Select a timer to display (by selecting the timer voice channel)" +msgstr "" +"Seleccione un temporizador para visualizar (seleccionando el canal de voz " +"del temporizador)" + +#: src/modules/pomodoro/cog.py:432 src/modules/pomodoro/cog.py:503 +#, possible-python-brace-format +msgctxt "cmd:timer|error:no_timers|desc" +msgid "" +"**This server has no timers set up!**\n" +"Ask an admin to set up and configure a timer with {create_cmd} first, or rent a private room with {room_cmd} and create one yourself!" +msgstr "" +"**¡Este servidor no tiene temporizadores configurados!**\n" +"Pide primero a un administrador que instale y configure un temporizador con {create_cmd}, ¡o alquila una sala privada con {room_cmd} y crea uno tú mismo!" + +#: src/modules/pomodoro/cog.py:446 +#, possible-python-brace-format +msgctxt "cmd:timer|error:no_channel|desc" +msgid "" +"**I don't know what timer to show you.**\n" +"No channel selected and you are not in a voice channel! Use {timers_cmd} to list the available timers in this server." +msgstr "" +"**No sé qué temporizador mostrarte.**\n" +"No hay ningún canal seleccionado y no estás en un canal de voz. Usa {timers_cmd} para listar los temporizadores disponibles en este servidor." + +#: src/modules/pomodoro/cog.py:459 +#, possible-python-brace-format +msgctxt "cmd:timer|error:no_timer_in_channel" +msgid "" +"The channel {channel} is not a pomodoro timer room!\n" +"Use {timers_cmd} to list the available timers in this server." +msgstr "" +"¡El canal {channel} no es una sala de temporizadores pomodoro!\n" +"Utilice {timers_cmd} para listar los temporizadores disponibles en este servidor." + +#: src/modules/pomodoro/cog.py:476 +msgctxt "cmd:timers" +msgid "timers" +msgstr "temporizadores" + +#: src/modules/pomodoro/cog.py:477 +msgctxt "cmd:timers|desc" +msgid "List the available pomodoro timer rooms." +msgstr "Enumera las salas con temporizador pomodoro disponibles." + +#: src/modules/pomodoro/cog.py:516 +#, possible-python-brace-format +msgctxt "cmd:timer|error:no_visible_timers|desc" +msgid "" +"**There are no available pomodoro timers!**\n" +"Ask an admin to set up a new timer with {create_cmd}, or rent a private room with {room_cmd} and create one yourself!" +msgstr "" +"**¡No hay temporizadores pomodoro disponibles!**\n" +"Pide a un administrador que cree un nuevo temporizador con {create_cmd}, ¡o alquila una sala privada con {room_cmd} y crea uno tú mismo!" + +#: src/modules/pomodoro/cog.py:529 +#, possible-python-brace-format +msgctxt "cmd:timers|embed:timer_list|title" +msgid "Pomodoro Timer Rooms in **{guild}**" +msgstr "Pomodoro Timer Habitaciones en **{guild}**" + +#: src/modules/pomodoro/cog.py:538 +#, possible-python-brace-format +msgctxt "cmd:timers|status:stopped_auto" +msgid "" +"`{pattern}` timer is stopped with no members!\n" +"Join {channel} to restart it." +msgstr "" +"El temporizador `{pattern}` se ha detenido sin miembros.\n" +"Únete a {channel} para reiniciarlo." + +#: src/modules/pomodoro/cog.py:544 +#, possible-python-brace-format +msgctxt "cmd:timers|status:stopped_manual" +msgid "" +"`{pattern}` timer is stopped with `{members}` members!\n" +"Join {channel} and press `Start` to start it!" +msgstr "" +"¡El temporizador de `{pattern}` se ha detenido con los miembros de `{members}`!\n" +"Únete a {channel} y pulsa `Start` para iniciarlo." + +#: src/modules/pomodoro/cog.py:551 +#, possible-python-brace-format +msgctxt "cmd:timers|status:running_focus" +msgid "" +"`{pattern}` timer is running with `{members}` members!\n" +"Currently **focusing**, with break starting {timestamp}" +msgstr "" +"¡El temporizador `{pattern}` se está ejecutando con los miembros `{members}`!\n" +"Actualmente **enfocando**, con pausa a partir de {timestamp}" + +#: src/modules/pomodoro/cog.py:557 +#, possible-python-brace-format +msgctxt "cmd:timers|status:running_break" +msgid "" +"`{pattern}` timer is running with `{members}` members!\n" +"Currently **resting**, with focus starting {timestamp}" +msgstr "" +"¡El temporizador `{pattern}` se está ejecutando con los miembros `{members}`!\n" +"Actualmente **en reposo**, con foco a partir de {timestamp}" + +#: src/modules/pomodoro/cog.py:571 +msgctxt "cmd:pomodoro" +msgid "pomodoro" +msgstr "pomodoro" + +#: src/modules/pomodoro/cog.py:572 +msgctxt "cmd:pomodoro|desc" +msgid "Create and configure pomodoro timer rooms." +msgstr "Crear y configurar salas con temporizador pomodoro." + +#: src/modules/pomodoro/cog.py:579 +msgctxt "cmd:pomodoro_create" +msgid "create" +msgstr "crear" + +#: src/modules/pomodoro/cog.py:582 +msgctxt "cmd:pomodoro_create|desc" +msgid "Create a new Pomodoro timer. Requires manage channel permissions." +msgstr "" +"Crea un nuevo temporizador Pomodoro. Requiere permisos de gestión de " +"canales." + +#: src/modules/pomodoro/cog.py:586 +msgctxt "cmd:pomodoro_create|param:channel" +msgid "timer_channel" +msgstr "canal_temporizador" + +#: src/modules/pomodoro/cog.py:592 +msgctxt "cmd:pomodoro_create|param:channel|desc" +msgid "" +"Voice channel to create the timer in. (Defaults to your current channel, or " +"makes a new one.)" +msgstr "" +"Canal de voz en el que crear el temporizador. (Por defecto es el canal " +"actual, o crea uno nuevo)." + +#: src/modules/pomodoro/cog.py:637 +msgctxt "cmd:pomodoro_create|new_channel|error:your_insufficient_perms|title" +msgid "Could not create pomodoro voice channel!" +msgstr "No se ha podido crear el canal de voz pomodoro." + +#: src/modules/pomodoro/cog.py:641 +msgctxt "cmd:pomodoro_create|new_channel|error:your_insufficient_perms" +msgid "" +"No `timer_channel` was provided, and you lack the 'Manage Channels` " +"permission required to create a new timer room!" +msgstr "" +"No se ha proporcionado ningún `timer_channel` y carece del permiso `Manage " +"Channels` necesario para crear una nueva sala de temporizadores." + +#: src/modules/pomodoro/cog.py:652 +msgctxt "cmd:pomodoro_create|new_channel|error:my_insufficient_perms|title" +msgid "Could not create pomodoro voice channel!" +msgstr "No se ha podido crear el canal de voz pomodoro." + +#: src/modules/pomodoro/cog.py:656 +msgctxt "cmd:pomodoro_create|new_channel|error:my_insufficient_perms|desc" +msgid "" +"No `timer_channel` was provided, and I lack the 'Manage Channels' permission" +" required to create a new voice channel." +msgstr "" +"No se proporcionó ningún `timer_channel`, y carezco del permiso `Manage " +"Channels` necesario para crear un nuevo canal de voz." + +#: src/modules/pomodoro/cog.py:667 +msgctxt "cmd:pomodoro_create|new_channel|default_name" +msgid "Timer" +msgstr "Temporizador" + +#: src/modules/pomodoro/cog.py:671 +msgctxt "cmd:pomodoro_create|new_channel|audit_reason" +msgid "Creating Pomodoro Voice Channel" +msgstr "Creación del canal de voz Pomodoro" + +#: src/modules/pomodoro/cog.py:680 +msgctxt "cmd:pomodoro_create|new_channel|error:channel_create_failed|title" +msgid "Could not create pomodoro voice channel!" +msgstr "No se ha podido crear el canal de voz pomodoro." + +#: src/modules/pomodoro/cog.py:684 +msgctxt "cmd:pomodoro_create|new_channel|error:channel_create_failed|desc" +msgid "" +"Failed to create a new pomodoro voice channel due to an unknown Discord " +"communication error. Please try creating the channel manually and pass it to" +" the `timer_channel` argument of this command." +msgstr "" +"No se ha podido crear un nuevo canal de voz de pomodoro debido a un error de" +" comunicación de Discord desconocido. Intente crear el canal manualmente y " +"páselo al argumento `timer_channel` de este comando." + +#: src/modules/pomodoro/cog.py:701 +#, possible-python-brace-format +msgctxt "cmd:pomodoro_create|add_timer|error:timer_exists" +msgid "A timer already exists in {channel}! Reconfigure it with {edit_cmd}." +msgstr "" +"¡Ya existe un temporizador en {channel}! Reconfigúrelo con {edit_cmd}." + +#: src/modules/pomodoro/cog.py:715 +#, possible-python-brace-format +msgctxt "cmd:pomodoro_create|add_timer|error:your_insufficient_perms" +msgid "" +"You must have the 'Manage Channel' permission in {channel} in order to add a" +" timer there!" +msgstr "" +"Para poder añadir un temporizador en {channel}, debe disponer del permiso " +"'Manage Channel'." + +#: src/modules/pomodoro/cog.py:764 +msgctxt "cmd:pomodoro_create|response:success|content" +msgid "Timer created successfully! Use the panel below to reconfigure." +msgstr "" +"¡Temporizador creado con éxito! Utilice el panel de abajo para volver a " +"configurar." + +#: src/modules/pomodoro/cog.py:770 +msgctxt "cmd:pomodoro_destroy" +msgid "destroy" +msgstr "destruir" + +#: src/modules/pomodoro/cog.py:773 +msgctxt "cmd:pomodoro_destroy|desc" +msgid "Remove a pomodoro timer from a voice channel." +msgstr "Eliminar un temporizador pomodoro de un canal de voz." + +#: src/modules/pomodoro/cog.py:777 +msgctxt "cmd:pomodoro_destroy|param:channel" +msgid "timer_channel" +msgstr "canal_temporizador" + +#: src/modules/pomodoro/cog.py:780 +msgctxt "cmd:pomodoro_destroy|param:channel" +msgid "Select a timer voice channel to remove the timer from." +msgstr "" +"Seleccione un canal de voz de temporizador para eliminar el temporizador." + +#: src/modules/pomodoro/cog.py:798 +msgctxt "cmd:pomodoro_destroy|error:no_timer" +msgid "This channel doesn't have an attached pomodoro timer!" +msgstr "¡Este canal no tiene un temporizador pomodoro adjunto!" + +#: src/modules/pomodoro/cog.py:811 +msgctxt "cmd:pomodoro_destroy|error:insufficient_perms|owned" +msgid "" +"You need to be an administrator or own this channel to remove this timer!" +msgstr "" +"Debes ser administrador o propietario de este canal para eliminar este " +"temporizador." + +#: src/modules/pomodoro/cog.py:820 +#, possible-python-brace-format +msgctxt "cmd:pomodoro_destroy|error:insufficient_perms|notowned" +msgid "" +"You need to have the `Manage Channels` permission in {channel} to remove " +"this timer!" +msgstr "" +"Para eliminar este temporizador, debe tener el permiso `Manage Channels` en " +"{channel}." + +#: src/modules/pomodoro/cog.py:831 +#, possible-python-brace-format +msgctxt "cmd:pomdoro_destroy|response:success|description" +msgid "Timer successfully removed from {channel}." +msgstr "Temporizador eliminado con éxito de {channel}." + +#: src/modules/pomodoro/cog.py:837 +msgctxt "cmd:pomodoro_edit" +msgid "edit" +msgstr "editar" + +#: src/modules/pomodoro/cog.py:840 +msgctxt "cmd:pomodoro_edit|desc" +msgid "Reconfigure a pomodoro timer." +msgstr "Reconfigurar un temporizador pomodoro." + +#: src/modules/pomodoro/cog.py:844 +msgctxt "cmd:pomodoro_edit|param:channel" +msgid "timer_channel" +msgstr "canal_temporizador" + +#: src/modules/pomodoro/cog.py:850 +msgctxt "cmd:pomodoro_edit|param:channel|desc" +msgid "Select a timer voice channel to reconfigure." +msgstr "Seleccione un canal de voz con temporizador para reconfigurar." + +#: src/modules/pomodoro/cog.py:891 +msgctxt "cmd:pomodoro_edit|error:no_timer" +msgid "This channel doesn't have an attached pomodoro timer to edit!" +msgstr "¡Este canal no tiene un temporizador pomodoro adjunto para editar!" + +#: src/modules/pomodoro/cog.py:904 +msgctxt "cmd:pomodoro_edit|error:insufficient_perms|role:other" +msgid "" +"Insufficient permissions to modifiy this timer!\n" +"You need to be a server administrator, own this channel, or have the timer manager role." +msgstr "" +"Permisos insuficientes para modificar este temporizador.\n" +"Necesitas ser administrador del servidor, poseer este canal o tener el rol de administrador del temporizador." + +#: src/modules/pomodoro/cog.py:925 +msgctxt "cmd:pomodoro_edit|error:insufficient_permissions|role_needed:admin" +msgid "You need to be a guild admin to modify this option!" +msgstr "Necesitas ser administrador del gremio para modificar esta opción." + +#: src/modules/pomodoro/cog.py:930 +msgctxt "cmd:pomodoro_edit|error:insufficient_permissions|role_needed:owner" +msgid "You need to be a channel owner or guild admin to modify this option!" +msgstr "" +"Debes ser propietario de un canal o administrador de clan para modificar " +"esta opción." + +#: src/modules/pomodoro/cog.py:935 +msgctxt "cmd:pomodoro_edit|error:insufficient_permissions|role_needed:manager" +msgid "" +"You need to be a guild admin or have the manager role to modify this option!" +msgstr "" +"Debes ser administrador del clan o tener el rol de gestor para modificar " +"esta opción." + +#: src/modules/pomodoro/cog.py:971 +msgctxt "cmd:configure_pomodoro" +msgid "pomodoro" +msgstr "pomodoro" + +#: src/modules/pomodoro/cog.py:972 +msgctxt "cmd:configure_pomodoro|desc" +msgid "Configure Pomodoro Timer System" +msgstr "Configurar el sistema de temporizador de Pomodoro" + +#: src/modules/pomodoro/lib.py:19 +#, possible-python-brace-format +msgctxt "formatstring:channel_name|key:remaining" +msgid "{remaining}" +msgstr "{remaining}" + +#: src/modules/pomodoro/lib.py:20 +#, possible-python-brace-format +msgctxt "formatstring:channel_name|key:stage" +msgid "{stage}" +msgstr "{stage}" + +#: src/modules/pomodoro/lib.py:21 +#, possible-python-brace-format +msgctxt "formatstring:channel_name|key:members" +msgid "{members}" +msgstr "{members}" + +#: src/modules/pomodoro/lib.py:22 +#, possible-python-brace-format +msgctxt "formatstring:channel_name|key:name" +msgid "{name}" +msgstr "{name}" + +#: src/modules/pomodoro/lib.py:23 +#, possible-python-brace-format +msgctxt "formatstring:channel_name|key:pattern" +msgid "{pattern}" +msgstr "{pattern}" + +#: src/modules/pomodoro/options.py:33 +msgctxt "timerset:voice_channel" +msgid "channel" +msgstr "canal" + +#: src/modules/pomodoro/options.py:36 +msgctxt "timerset:voice_channel|desc" +msgid "Channel in which to track timer members and send alerts." +msgstr "" +"Canal en el que realizar el seguimiento de los miembros del temporizador y " +"enviar alertas." + +#: src/modules/pomodoro/options.py:48 +msgctxt "timerset:notification_channel" +msgid "notification_channel" +msgstr "canal_notificación" + +#: src/modules/pomodoro/options.py:51 +msgctxt "timerset:notification_channel|desc" +msgid "Channel to which to send timer status cards and notifications." +msgstr "" +"Canal al que se enviarán las tarjetas de estado del temporizador y las " +"notificaciones." + +#: src/modules/pomodoro/options.py:73 +#, possible-python-brace-format +msgctxt "timerset:notification_channel|format:notset" +msgid "Not Set (Using {channel})" +msgstr "No configurado (Using {channel})" + +#: src/modules/pomodoro/options.py:83 +msgctxt "timerset:inactivity_threshold|inactivity_threshold" +msgid "inactivity_threshold" +msgstr "umbral_inactividad" + +#: src/modules/pomodoro/options.py:86 +msgctxt "timerset:inactivity_threshold|desc" +msgid "" +"Number of inactive focus+break stages before a member is removed from the " +"timer." +msgstr "" +"Número de etapas inactivas de focus+break antes de que un miembro se elimine" +" del temporizador." + +#: src/modules/pomodoro/options.py:90 +msgctxt "timerset:inactivity_threshold|desc" +msgid "How many timer cycles before kicking inactive members." +msgstr "" +"Cuántos ciclos de temporizador antes de expulsar a los miembros inactivos." + +#: src/modules/pomodoro/options.py:112 +msgctxt "timerset:inactivity_length|desc" +msgid "The inactivity threshold must be a positive whole number!" +msgstr "El umbral de inactividad debe ser un número entero positivo." + +#: src/modules/pomodoro/options.py:120 +msgctxt "timerset:manager_role" +msgid "manager_role" +msgstr "rol_directivo" + +#: src/modules/pomodoro/options.py:123 +msgctxt "timerset:manager_role|desc" +msgid "Role allowed to start, stop, and edit the focus/break lengths." +msgstr "" +"Función que permite iniciar, detener y editar las longitudes de " +"enfoque/interrupción." + +#: src/modules/pomodoro/options.py:137 +msgctxt "timerset:manager_role|format:notset" +msgid "Not Set (Only Admins may start/stop or edit pattern)" +msgstr "" +"No configurado (sólo los administradores pueden iniciar/parar o editar el " +"patrón)" + +#: src/modules/pomodoro/options.py:147 +msgctxt "timerset:voice_alerts" +msgid "voice_alerts" +msgstr "alertas_voz" + +#: src/modules/pomodoro/options.py:150 +msgctxt "timerset:voice_alerts|desc" +msgid "Whether to join the voice channel and announce focus and break stages." +msgstr "" +"Si se une al canal de voz y anuncia las etapas de concentración y pausa." + +#: src/modules/pomodoro/options.py:162 +msgctxt "timerset:base_name" +msgid "name" +msgstr "nombre" + +#: src/modules/pomodoro/options.py:165 +msgctxt "timerset:base_name|desc" +msgid "Timer name, as shown on the timer card." +msgstr "Nombre del temporizador, como aparece en la tarjeta del temporizador." + +#: src/modules/pomodoro/options.py:169 +msgctxt "timerset:base_name|accepts" +msgid "Any short name, shown on the timer card." +msgstr "Cualquier nombre corto, que aparece en la tarjeta del temporizador." + +#: src/modules/pomodoro/options.py:184 +msgctxt "timerset:channel_name_format" +msgid "channel_name" +msgstr "nombre_canal" + +#: src/modules/pomodoro/options.py:187 +#, possible-python-brace-format +msgctxt "timerset:channel_name_format|desc" +msgid "" +"Auto-updating voice channel name, accepting {remaining}, {name}, {pattern}, " +"and {stage} keys." +msgstr "" +"Auto-actualización del nombre del canal de voz, aceptando las claves " +"{remaining}, {name}, {pattern}, y {stage}." + +#: src/modules/pomodoro/options.py:191 +#, possible-python-brace-format +msgctxt "timerset:channel_name|accepts" +msgid "" +"Timer channel name, with keys {remaining}, {name}, {pattern}, and {stage}." +msgstr "" +"Nombre del canal del temporizador, con las claves {remaining}, {name}, " +"{pattern} y {stage}." + +#: src/modules/pomodoro/options.py:221 +msgctxt "timerset:channel_name_format|error:too_long" +msgid "" +"The provided name is too long! Channel names can be at most `100` " +"characters." +msgstr "" +"El nombre proporcionado es demasiado largo. Los nombres de los canales no " +"pueden tener más de 100 caracteres." + +#: src/modules/pomodoro/options.py:240 +msgctxt "timerset:focus_length" +msgid "focus_length" +msgstr "longitud_enfoque" + +#: src/modules/pomodoro/options.py:243 +msgctxt "timerset:focus_length|desc" +msgid "Length of the focus stage of the timer in minutes." +msgstr "Duración de la etapa de enfoque del temporizador en minutos." + +#: src/modules/pomodoro/options.py:248 +msgctxt "timerset:focus_length|accepts" +msgid "A positive integer number of minutes." +msgstr "Un número entero positivo de minutos." + +#: src/modules/pomodoro/options.py:273 +msgctxt "timerset:focus_length|desc" +msgid "Please enter a positive number of minutes." +msgstr "Introduzca un número positivo de minutos." + +#: src/modules/pomodoro/options.py:281 +msgctxt "timerset:break_length" +msgid "break_length" +msgstr "longitud_break" + +#: src/modules/pomodoro/options.py:284 +msgctxt "timerset:break_length|desc" +msgid "Length of the break stage of the timer in minutes." +msgstr "Duración de la etapa de pausa del temporizador en minutos." + +#: src/modules/pomodoro/options.py:289 +msgctxt "timerset:break_length|accepts" +msgid "A positive integer number of minutes." +msgstr "Un número entero positivo de minutos." + +#: src/modules/pomodoro/options.py:314 +msgctxt "timerset:break_length|desc" +msgid "Please enter a positive number of minutes." +msgstr "Introduzca un número positivo de minutos." + +#: src/modules/pomodoro/settings.py:21 +msgctxt "guildset:pomodoro_channel" +msgid "pomodoro_channel" +msgstr "canal_pomodoro" + +#: src/modules/pomodoro/settings.py:24 +msgctxt "guildset:pomodoro_channel|desc" +msgid "Default central notification channel for pomodoro timers." +msgstr "" +"Canal de notificación central por defecto para los temporizadores pomodoro." + +#: src/modules/pomodoro/settings.py:28 +msgctxt "guildset:pomodoro_channel|long_desc" +msgid "" +"Pomodoro timers which do not have a custom notification channel set will " +"send timer notifications in this channel. If this setting is not set, " +"pomodoro notifications will default to the timer voice channel itself." +msgstr "" +"Los temporizadores pomodoro que no tengan configurado un canal de " +"notificación personalizado enviarán las notificaciones del temporizador en " +"este canal. Si no se establece este ajuste, las notificaciones de pomodoro " +"se enviarán por defecto al propio canal de voz del temporizador." + +#: src/modules/pomodoro/settings.py:35 +msgctxt "guildset:pomodoro_channel|formatted|notset" +msgid "Not Set (Will use timer voice channel.)" +msgstr "No configurado (Utilizará el canal de voz del temporizador.)" + +#: src/modules/pomodoro/settings.py:39 +msgctxt "guildset:pomodoro_channel|accepts" +msgid "Timer notification channel name or id." +msgstr "Nombre o id del canal de notificación del temporizador." + +#: src/modules/pomodoro/settings.py:53 +#, possible-python-brace-format +msgctxt "guildset:pomodoro_channel|set_response|set" +msgid "Pomodoro timer notifications will now default to {channel}" +msgstr "" +"Las notificaciones del temporizador Pomodoro ahora se enviarán por defecto a" +" {channel}." + +#: src/modules/pomodoro/settings.py:58 +msgctxt "guildset:pomodoro_channel|set_response|unset" +msgid "Pomodoro timer notifications will now default to their voice channel." +msgstr "" +"Las notificaciones del temporizador Pomodoro ahora se mostrarán por defecto " +"en su canal de voz." + +#: src/modules/pomodoro/settings.py:68 +#, possible-python-brace-format +msgctxt "guildset:pomdoro_channel|set_using" +msgid "{cmd} or channel selector below." +msgstr "{cmd} o selector de canal abajo." + +#: src/modules/pomodoro/ui/edit.py:63 +msgctxt "modal:timer_editor|title" +msgid "Timer Option Editor" +msgstr "Editor de opciones de temporizador" + +#: src/modules/pomodoro/ui/status.py:61 +msgctxt "ui:timer_status|button:present|ack" +msgid "" +"Thank you for marking your presence.\n" +"Good luck and stay productive!" +msgstr "" +"Gracias por marcar su presencia.\n" +"Buena suerte y siga siendo productivo." + +#: src/modules/pomodoro/ui/status.py:72 +#, possible-python-brace-format +msgctxt "ui:timer_status|button:present|error:not_in_timer" +msgid "" +"You are not in this timer! Join the timer channel by pressing {channel}." +msgstr "" +"¡No estás en este temporizador! Únete al canal del temporizador pulsando " +"{channel}." + +#: src/modules/pomodoro/ui/status.py:82 +msgctxt "ui:timer_status|button:present|label" +msgid "Present" +msgstr "Presente" + +#: src/modules/pomodoro/ui/status.py:106 +msgctxt "ui:timer_status|button:edit|error:no_permissions" +msgid "" +"Configuring this timer requires `MANAGE_CHANNEL` permissions on the timer " +"channel, or the configured manager role!" +msgstr "" +"La configuración de este temporizador requiere permisos `MANAGE_CHANNEL` en " +"el canal del temporizador, o el rol de administrador configurado." + +#: src/modules/pomodoro/ui/status.py:119 +msgctxt "ui:timer_status|button:edit|label" +msgid "Options" +msgstr "Opciones" + +#: src/modules/pomodoro/ui/status.py:138 +msgctxt "ui:timer_status|button:start|error:already_running" +msgid "Cannot start a timer that is already running!" +msgstr "No se puede iniciar un temporizador que ya está en marcha." + +#: src/modules/pomodoro/ui/status.py:154 +msgctxt "ui:timer_status|button:start|error:not_manager|title" +msgid "Insufficient permissions!" +msgstr "Permisos insuficientes" + +#: src/modules/pomodoro/ui/status.py:158 +msgctxt "ui:timer_status|button:start|error:not_manager|desc" +msgid "" +"Starting this timer requires `MANAGE_CHANNEL` permissions on the timer " +"channel, or the configured `manager_role`!" +msgstr "" +"El inicio de este temporizador requiere permisos `MANAGE_CHANNEL` en el " +"canal del temporizador, o el `manager_role` configurado." + +#: src/modules/pomodoro/ui/status.py:168 +msgctxt "ui:timer_status|button:start|label" +msgid "Start" +msgstr "Iniciar" + +#: src/modules/pomodoro/ui/status.py:190 +msgctxt "ui:timer_status|button:stop|error:not_manager|title" +msgid "Insufficient permissions!" +msgstr "Permisos insuficientes" + +#: src/modules/pomodoro/ui/status.py:194 +msgctxt "ui:timer_status|button:stop|error:not_manager|desc" +msgid "" +"Stopping this timer requires `MANAGE_CHANNEL` permissions on the timer " +"channel, or the configured `manager_role`!" +msgstr "" +"Detener este temporizador requiere permisos `MANAGE_CHANNEL` en el canal del" +" temporizador, o el `manager_role` configurado." + +#: src/modules/pomodoro/ui/status.py:204 +msgctxt "ui:timer_status|button:stop|label" +msgid "Stop" +msgstr "Detener" + +#: src/modules/pomodoro/ui/config.py:45 +msgctxt "ui:timer_options|error:timer_destroyed" +msgid "This timer no longer exists! Closing option menu." +msgstr "Este temporizador ya no existe. Menú de opciones de cierre." + +#: src/modules/pomodoro/ui/config.py:68 +msgctxt "ui:timer_options|button:edit|label" +msgid "Edit" +msgstr "Editar" + +#: src/modules/pomodoro/ui/config.py:84 +msgctxt "ui:timer_options|button:voice_alerts|label" +msgid "Voice Alerts" +msgstr "Alertas de voz" + +#: src/modules/pomodoro/ui/config.py:105 +msgctxt "ui:timer_options|button:delete|success|title" +msgid "Timer Deleted" +msgstr "Temporizador borrado" + +#: src/modules/pomodoro/ui/config.py:109 +#, possible-python-brace-format +msgctxt "ui:timer_options|button:delete|success|description" +msgid "The timer in {channel} has been removed." +msgstr "El temporizador en {channel} ha sido eliminado." + +#: src/modules/pomodoro/ui/config.py:117 +msgctxt "ui:timer_options|button:delete|label" +msgid "Delete" +msgstr "Borrar" + +#: src/modules/pomodoro/ui/config.py:136 +msgctxt "ui:timer_options|menu:voice_channel|placeholder" +msgid "Set Voice Channel" +msgstr "Ajustar canal de voz" + +#: src/modules/pomodoro/ui/config.py:157 +msgctxt "ui:timer_options|menu:notification_channel|placeholder" +msgid "Set Notification Channel" +msgstr "Establecer canal de notificación" + +#: src/modules/pomodoro/ui/config.py:172 +msgctxt "ui:timer_options|menu:manager_role|placeholder" +msgid "Set Manager Role" +msgstr "Seleccionar rol del directivo" + +#: src/modules/pomodoro/ui/config.py:181 +#, possible-python-brace-format +msgctxt "ui:timer_options|embed|title" +msgid "Timer Control Panel for {channel}" +msgstr "Panel de control del temporizador para {channel}" + +#: src/modules/pomodoro/ui/config.py:188 +msgctxt "ui:timer_options|embed|footer" +msgid "Hover over the option names to view descriptions." +msgstr "" +"Pase el ratón por encima de los nombres de las opciones para ver las " +"descripciones." + +#: src/modules/pomodoro/ui/config.py:200 +msgctxt "ui:timer_options|embed|field:pattern|name" +msgid "Pattern" +msgstr "Diseño" + +#: src/modules/pomodoro/ui/config.py:203 +#, possible-python-brace-format +msgctxt "ui:timer_options|embed|field:pattern|value" +msgid "" +"**`{focus_len} minutes`** focus\n" +"**`{break_len} minutes`** break" +msgstr "" +"**`{focus_len} minutos`** focus\n" +"**`{break_len} minutos`** break" + +#: src/modules/pomodoro/ui/config.py:214 +msgctxt "ui:timer_options|embed|field:channel_name|name" +msgid "Channel Name Preview" +msgstr "Vista previa del nombre del canal" + +#: src/modules/pomodoro/ui/config.py:218 +#, possible-python-brace-format +msgctxt "ui:timer_options|embed|field:channel_name|value" +msgid "" +"**`{name}`**\n" +"(The actual channel name may not match due to ratelimits.)" +msgstr "" +"**`{name}`**\n" +"(El nombre real del canal puede no coincidir debido a los límites de velocidad)." + +#: src/modules/pomodoro/ui/config.py:228 +msgctxt "ui:timer_options|embed|field:issues|name" +msgid "Issues" +msgstr "Cuestiones" + +#: src/modules/pomodoro/ui/config.py:246 +msgctxt "ui:timer_options|issue:no_voice_channel" +msgid "The configured voice channel does not exist! Please update it below." +msgstr "" +"El canal de voz configurado no existe. Por favor, actualícelo a " +"continuación." + +#: src/modules/pomodoro/ui/config.py:257 +#, possible-python-brace-format +msgctxt "ui:timer_options|issue:cannot_speak" +msgid "" +"Voice alerts are on, but I don't have speaking permissions in {channel}" +msgstr "" +"Las alertas de voz están activadas, pero no tengo permisos para hablar en " +"{channel}." + +#: src/modules/pomodoro/ui/config.py:264 +#, possible-python-brace-format +msgctxt "ui:timer_options|issue:cannot_change_name" +msgid "" +"I cannot update the name of {channel}! (Needs `MANAGE_CHANNELS` permission)" +msgstr "" +"¡No puedo actualizar el nombre de {channel}! (Necesita permiso " +"`MANAGE_CHANNELS`)" + +#: src/modules/pomodoro/ui/config.py:275 +msgctxt "ui:timer_options|issue:notif_channel_dne" +msgid "Configured notification channel does not exist!" +msgstr "El canal de notificación configurado no existe." + +#: src/modules/pomodoro/ui/config.py:284 +#, possible-python-brace-format +msgctxt "ui:timer_options|issue:notif_channel_write" +msgid "" +"I cannot attach files (`ATTACH_FILES`) or send embeds (`EMBED_LINKS`) in " +"{channel}" +msgstr "" +"No puedo adjuntar archivos (`ATTACH_FILES`) ni enviar incrustaciones " +"(`EMBED_LINKS`) en {channel}" + +#: src/modules/pomodoro/ui/config.py:292 +#, possible-python-brace-format +msgctxt "ui:timer_options|issues:cannot_make_webhooks" +msgid "" +"I cannot create the notification webhook (`MANAGE_WEBHOOKS`) in {channel}" +msgstr "" +"No puedo crear el webhook de notificación (`MANAGE_WEBHOOKS`) en {channel}" diff --git a/locales/es_419/LC_MESSAGES/babel.po b/locales/es_419/LC_MESSAGES/babel.po new file mode 100644 index 000000000000..55e1fc9a8e3f --- /dev/null +++ b/locales/es_419/LC_MESSAGES/babel.po @@ -0,0 +1,406 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Ronin DeMentira, 2023 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Ronin DeMentira, 2023\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/babel/settingui.py:41 +msgctxt "ui:locale_config|button:force|label" +msgid "Toggle Force" +msgstr "Alternar fuerza" + +#: src/babel/settingui.py:50 +msgctxt "ui:locale_config|embed|title" +msgid "Language Configuration Panel" +msgstr "Panel de configuración del idioma" + +#: src/babel/settingui.py:84 +msgctxt "dash:locale|title" +msgid "Server Language Configuration ({commands[config language]})" +msgstr "Configuración del idioma del servidor ({commands[config language]})" + +#: src/babel/settingui.py:88 +msgctxt "dash:locale|dropdown|placeholder" +msgid "Server Language Panel" +msgstr "Panel del Idioma del Servidor" + +#: src/babel/cog.py:99 +msgctxt "cmd:configure_language" +msgid "language" +msgstr "idioma" + +#: src/babel/cog.py:101 +msgctxt "cmd:configure_language|desc" +msgid "Configure the default language I will use in this server." +msgstr "Configurar el idioma que utilizaré en este servidor." + +#: src/babel/cog.py:145 +#, possible-python-brace-format +msgctxt "cmd:configure_language|error" +msgid "" +"You cannot enable `{force_setting}` without having a configured language!" +msgstr "" +"¡No se puede activar `{force_setting}` sin tener un idioma configurado!" + +#: src/babel/cog.py:165 +msgctxt "cmd:configure_language|success" +msgid "Language settings updated!" +msgstr "¡Se ha actualizado la configuración de idiomas!" + +#: src/babel/cog.py:181 +msgctxt "cmd:userconfig_language" +msgid "language" +msgstr "idioma" + +#: src/babel/cog.py:184 +msgctxt "cmd:userconfig_language|desc" +msgid "Set your preferred interaction language." +msgstr "Establece el idioma que prefieras para interactuar con el bot." + +#: src/babel/cog.py:188 +msgctxt "cmd:userconfig_language|param:language" +msgid "language" +msgstr "idioma" + +#: src/babel/cog.py:193 +msgctxt "cmd:userconfig_language|param:language|desc" +msgid "Which language do you want me to respond in?" +msgstr "¿En qué idioma quieres que te responda?" + +#: src/babel/cog.py:209 +msgctxt "cmd:userconfig_language|button:reset|label" +msgid "Reset" +msgstr "Restablecer" + +#: src/babel/cog.py:250 +#, possible-python-brace-format +msgctxt "acmpl:language|no_match" +msgid "No supported languages matching {partial}" +msgstr "No hay idiomas compatibles que coincidan {partial}" + +#: src/babel/utils.py:9 +msgctxt "utils|months" +msgid "" +"January,February,March,April,May,June,July,August,September,October,November,December" +msgstr "" +"Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre" + +#: src/babel/utils.py:14 +msgctxt "utils|short_months" +msgid "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec" +msgstr "Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic" + +#: src/babel/settings.py:25 +msgctxt "settype:locale|accepts" +msgid "Enter a supported language (e.g. 'en-GB')." +msgstr "Introduzca un idioma compatible (por ejemplo, \"en-GB\")." + +#: src/babel/settings.py:36 +msgctxt "settype:locale|summary_table|field:supported|key" +msgid "Supported" +msgstr "Soporte" + +#: src/babel/settings.py:46 +msgctxt "settype:locale|formatted:unset" +msgid "Unset" +msgstr "Sin configurar" + +#: src/babel/settings.py:62 +#, possible-python-brace-format +msgctxt "settype:locale|error" +msgid "Sorry, we do not support the language `{lang}` at this time!" +msgstr "Lo sentimos, en este momento no admitimos el idioma `{lang}`." + +#: src/babel/settings.py:77 +msgctxt "userset:locale" +msgid "language" +msgstr "idioma" + +#: src/babel/settings.py:78 +msgctxt "userset:locale|desc" +msgid "Your preferred language for interacting with me." +msgstr "Su idioma preferido para interactuar conmigo." + +#: src/babel/settings.py:81 +msgctxt "userset:locale|long_desc" +msgid "" +"The language you would prefer me to respond to commands and interactions in." +" Servers may be configured to override this with their own language." +msgstr "" +"El idioma en el que prefieres que responda a los comandos e interacciones. " +"Los servidores pueden configurarse para anular esto con su propio idioma." + +#: src/babel/settings.py:92 +msgctxt "userset:locale|response" +msgid "You have unset your language." +msgstr "Has desajustado tu idioma." + +#: src/babel/settings.py:94 +#, possible-python-brace-format +msgctxt "userset:locale|response" +msgid "You have set your language to {lang}." +msgstr "Has configurado tu idioma a {lang}." + +#: src/babel/settings.py:113 +msgctxt "guildset:force_locale" +msgid "force_language" +msgstr "forzar_idioma" + +#: src/babel/settings.py:115 +msgctxt "guildset:force_locale|desc" +msgid "" +"Whether to force all members to use the configured guild language when " +"interacting with me." +msgstr "" +"Obligar a todos los miembros a utilizar el lenguaje configurado del servidor" +" cuando interactúen conmigo." + +#: src/babel/settings.py:118 +msgctxt "guildset:force_locale|long_desc" +msgid "" +"When enabled, commands in this guild will always use the configured guild " +"language, regardless of the member's personally configured language." +msgstr "" +"Cuando se activa, los comandos en este servidor siempre utilizarán el idioma" +" del servidor configurado, independientemente del idioma configurado " +"personalmente por el miembro." + +#: src/babel/settings.py:122 +msgctxt "guildset:force_locale|output" +msgid "Enabled (members will be forced to use the server language)" +msgstr "" +"Activado (los miembros se verán obligados a utilizar el idioma del servidor)" + +#: src/babel/settings.py:123 +msgctxt "guildset:force_locale|output" +msgid "Disabled (members may set their own language)" +msgstr "Desactivado (los miembros pueden establecer su propio idioma)" + +#: src/babel/settings.py:137 +msgctxt "guildset:force_locale|response" +msgid "I will always use the set language in this server." +msgstr "En este servidor utilizaré siempre el idioma establecido." + +#: src/babel/settings.py:142 +msgctxt "guildset:force_locale|response" +msgid "I will now allow the members to set their own language here." +msgstr "Ahora permitiré a los miembros que establezcan aquí su propio idioma." + +#: src/babel/settings.py:160 +msgctxt "guildset:locale" +msgid "language" +msgstr "idioma" + +#: src/babel/settings.py:161 +msgctxt "guildset:locale|desc" +msgid "Your preferred language for interacting with me." +msgstr "Su idioma preferido para interactuar conmigo." + +#: src/babel/settings.py:164 +msgctxt "guildset:locale|long_desc" +msgid "" +"The default language to use for responses and interactions in this server. " +"Member's own configured language will override this for their commands " +"unless `force_language` is enabled." +msgstr "" +"El idioma por defecto a utilizar para las respuestas e interacciones en este" +" servidor. El idioma configurado por el miembro anulará este para sus " +"comandos a menos que `force_language` esté habilitado." + +#: src/babel/settings.py:176 +msgctxt "guildset:locale|response" +msgid "You have unset the guild language." +msgstr "Has desconfigurado el idioma del servidor." + +#: src/babel/settings.py:178 +#, possible-python-brace-format +msgctxt "guildset:locale|response" +msgid "You have set the guild language to {lang}." +msgstr "Has establecido el idioma del servidor en {lang}." + +#: src/babel/enums.py:43 +msgctxt "localenames|locale:id" +msgid "Indonesian" +msgstr "Indonesia" + +#: src/babel/enums.py:44 +msgctxt "localenames|locale:da" +msgid "Danish" +msgstr "Danés" + +#: src/babel/enums.py:45 +msgctxt "localenames|locale:de" +msgid "German" +msgstr "Alemán" + +#: src/babel/enums.py:46 +msgctxt "localenames|locale:en-GB" +msgid "English, UK" +msgstr "Inglés, Reino Unido" + +#: src/babel/enums.py:47 +msgctxt "localenames|locale:en-US" +msgid "English, US" +msgstr "Inglés, US" + +#: src/babel/enums.py:48 +msgctxt "localenames|locale:es-ES" +msgid "Spanish" +msgstr "Español" + +#: src/babel/enums.py:49 +msgctxt "localenames|locale:fr" +msgid "French" +msgstr "Francés" + +#: src/babel/enums.py:50 +msgctxt "localenames|locale:hr" +msgid "Croatian" +msgstr "Croata" + +#: src/babel/enums.py:51 +msgctxt "localenames|locale:it" +msgid "Italian" +msgstr "Italiano" + +#: src/babel/enums.py:52 +msgctxt "localenames|locale:lt" +msgid "Lithuanian" +msgstr "Lituano" + +#: src/babel/enums.py:53 +msgctxt "localenames|locale:hu" +msgid "Hungarian" +msgstr "Húngaro" + +#: src/babel/enums.py:54 +msgctxt "localenames|locale:nl" +msgid "Dutch" +msgstr "Neerlandés" + +#: src/babel/enums.py:55 +msgctxt "localenames|locale:no" +msgid "Norwegian" +msgstr "Noruego" + +#: src/babel/enums.py:56 +msgctxt "localenames|locale:pl" +msgid "Polish" +msgstr "Polaco" + +#: src/babel/enums.py:57 +msgctxt "localenames|locale:pt-BR" +msgid "Portuguese, Brazilian" +msgstr "Portugués, brasileño" + +#: src/babel/enums.py:58 +msgctxt "localenames|locale:ro" +msgid "Romanian, Romania" +msgstr "Rumano, Rumanía" + +#: src/babel/enums.py:59 +msgctxt "localenames|locale:fi" +msgid "Finnish" +msgstr "Finlandés" + +#: src/babel/enums.py:60 +msgctxt "localenames|locale:sv-SE" +msgid "Swedish" +msgstr "Sueco" + +#: src/babel/enums.py:61 +msgctxt "localenames|locale:vi" +msgid "Vietnamese" +msgstr "Vietnamita" + +#: src/babel/enums.py:62 +msgctxt "localenames|locale:tr" +msgid "Turkish" +msgstr "Turco" + +#: src/babel/enums.py:63 +msgctxt "localenames|locale:cs" +msgid "Czech" +msgstr "Checo" + +#: src/babel/enums.py:64 +msgctxt "localenames|locale:el" +msgid "Greek" +msgstr "Griego" + +#: src/babel/enums.py:65 +msgctxt "localenames|locale:bg" +msgid "Bulgarian" +msgstr "Búlgaro" + +#: src/babel/enums.py:66 +msgctxt "localenames|locale:ru" +msgid "Russian" +msgstr "Ruso" + +#: src/babel/enums.py:67 +msgctxt "localenames|locale:uk" +msgid "Ukrainian" +msgstr "Ucraniano" + +#: src/babel/enums.py:68 +msgctxt "localenames|locale:hi" +msgid "Hindi" +msgstr "Hindi" + +#: src/babel/enums.py:69 +msgctxt "localenames|locale:th" +msgid "Thai" +msgstr "Tailandés" + +#: src/babel/enums.py:70 +msgctxt "localenames|locale:zh-CN" +msgid "Chinese, China" +msgstr "Chino, China" + +#: src/babel/enums.py:71 +msgctxt "localenames|locale:ja" +msgid "Japanese" +msgstr "Japonés" + +#: src/babel/enums.py:72 +msgctxt "localenames|locale:zh-TW" +msgid "Chinese, Taiwan" +msgstr "Chino, Taiwán" + +#: src/babel/enums.py:73 +msgctxt "localenames|locale:ko" +msgid "Korean" +msgstr "Coreanos" + +#: src/babel/enums.py:78 +msgctxt "localenames|locale:he" +msgid "Hebrew" +msgstr "Hebreo" + +#: src/babel/enums.py:79 +msgctxt "localenames|locale:he-IL" +msgid "Hebrew" +msgstr "Hebreo" + +#: src/babel/enums.py:80 +msgctxt "localenames|locale:test" +msgid "Test Language" +msgstr "Lenguaje de prueba" diff --git a/locales/es_419/LC_MESSAGES/base.po b/locales/es_419/LC_MESSAGES/base.po new file mode 100644 index 000000000000..d6a9e6e2e324 --- /dev/null +++ b/locales/es_419/LC_MESSAGES/base.po @@ -0,0 +1,38 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-11-22 13:17+0200\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: bot/modules/sysadmin/exec_cog.py:70 +msgid "You cannot use this interface!" +msgstr "No puedes utilizar esta interfaz." + +#: bot/modules/sysadmin/exec_cog.py:252 bot/modules/sysadmin/exec_cog.py:254 +msgid "async" +msgstr "" + +#: bot/modules/sysadmin/exec_cog.py:253 bot/modules/sysadmin/exec_cog.py:255 +msgid "Execute arbitrary code with Exec" +msgstr "" + +#: bot/modules/sysadmin/exec_cog.py:265 +msgid "eval" +msgstr "" diff --git a/locales/es_419/LC_MESSAGES/config.po b/locales/es_419/LC_MESSAGES/config.po new file mode 100644 index 000000000000..93d0711a4e49 --- /dev/null +++ b/locales/es_419/LC_MESSAGES/config.po @@ -0,0 +1,158 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/modules/config/settingui.py:56 +msgctxt "ui:general_config|menu:event_log|placeholder" +msgid "Select Event Log" +msgstr "Seleccione Registro de Eventos" + +#: src/modules/config/settingui.py:64 +msgctxt "ui:general_config|embed:title" +msgid "General Configuration" +msgstr "Configuración general" + +#: src/modules/config/settingui.py:99 +msgctxt "dash:general|title" +msgid "General Configuration ({commands[config general]})" +msgstr "Configuración general ({commands[config general]})" + +#: src/modules/config/settingui.py:103 +msgctxt "dash:general|option|name" +msgid "General Configuration Panel" +msgstr "Panel de configuración general" + +#: src/modules/config/cog.py:56 src/modules/config/general.py:52 +msgctxt "cmd:configure_general" +msgid "general" +msgstr "general" + +#: src/modules/config/cog.py:57 src/modules/config/general.py:53 +msgctxt "cmd:configure_general|desc" +msgid "General configuration panel" +msgstr "Panel de configuración general" + +#: src/modules/config/general.py:91 +msgctxt "cmd:configure_general|parse_failure:timezone" +msgid "Could not set the timezone!" +msgstr "No se ha podido configurar la zona horaria." + +#: src/modules/config/general.py:112 +msgctxt "cmd:configure_general|success" +msgid "Settings Updated!" +msgstr "Configuración actualizada." + +#: src/modules/config/general.py:127 +msgctxt "cmd:configure_general|panel|title" +msgid "General Configuration Panel" +msgstr "Panel de configuración general" + +#: src/modules/config/dashboard.py:99 +#, possible-python-brace-format +msgctxt "ui:dashboard|title" +msgid "Guild Dashboard (Page {page}/{total})" +msgstr "Tablero del Gremio (Page {page}/{total})" + +#: src/modules/config/dashboard.py:110 +msgctxt "ui:dashboard|footer" +msgid "Hover over setting names for a brief description" +msgstr "" +"Pase el ratón por encima de los nombres de los ajustes para ver una breve " +"descripción" + +#: src/modules/config/dashboard.py:173 +msgctxt "ui:dashboard|menu:config|placeholder" +msgid "Open Configuration Panel" +msgstr "Abrir el panel de configuración" + +#: src/modules/config/settings.py:33 +msgctxt "guildset:timezone" +msgid "timezone" +msgstr "zona horaria" + +#: src/modules/config/settings.py:36 +msgctxt "guildset:timezone|desc" +msgid "Guild timezone for statistics display." +msgstr "Zona horaria del gremio para la visualización de estadísticas." + +#: src/modules/config/settings.py:40 +msgctxt "guildset:timezone|long_desc" +msgid "" +"Guild-wide timezone. Used to determine start of the day for the " +"leaderboards, and as the default statistics timezone for members who have " +"not set one." +msgstr "" +"Zona horaria de todo el gremio. Se utiliza para determinar el inicio del día" +" en las tablas de clasificación y como zona horaria predeterminada para las " +"estadísticas de los miembros que no han establecido una." + +#: src/modules/config/settings.py:54 +#, possible-python-brace-format +msgctxt "guildset:timezone|response" +msgid "The guild timezone has been set to `{timezone}`." +msgstr "La zona horaria del gremio se ha establecido a `{timezone}`." + +#: src/modules/config/settings.py:66 +msgctxt "guildset:eventlog" +msgid "event_log" +msgstr "event_log" + +#: src/modules/config/settings.py:69 +msgctxt "guildset:eventlog|desc" +msgid "" +"My audit log channel where I send server actions and events (e.g. rankgs and" +" expiring roles)." +msgstr "" +"Mi canal de registro de auditoría donde envío acciones y eventos del " +"servidor (por ejemplo, rangos y roles que expiran)." + +#: src/modules/config/settings.py:73 +msgctxt "guildset:eventlog|long_desc" +msgid "" +"If configured, I will log most significant actions taken or events which occur through my interface, into this channel. Logged events include, for example:\n" +"- Member voice activity\n" +"- Roles equipped and expiring from rolemenus\n" +"- Privated rooms rented and expiring\n" +"- Activity ranks earned\n" +"I must have the 'Manage Webhooks' permission in this channel." +msgstr "" + +#: src/modules/config/settings.py:95 +#, possible-python-brace-format +msgctxt "guildset:eventlog|check_value|error:perms|perm:manage_webhooks" +msgid "" +"Cannot set {channel} as an event log! I lack the 'Manage Webhooks' " +"permission there." +msgstr "" +"¡No puedo establecer {channel} como registro de eventos! Me falta el permiso" +" 'Manage Webhooks'." + +#: src/modules/config/settings.py:106 +#, possible-python-brace-format +msgctxt "guildset:eventlog|response|set" +msgid "Events will now be logged to {channel}" +msgstr "Los eventos se registrarán ahora en {channel}." + +#: src/modules/config/settings.py:111 +msgctxt "guildset:eventlog|response|unset" +msgid "Guild events will no longer be logged." +msgstr "Los eventos de gremio ya no se registrarán." diff --git a/locales/es_419/LC_MESSAGES/core_config.po b/locales/es_419/LC_MESSAGES/core_config.po new file mode 100644 index 000000000000..fb7d12a4a1ab --- /dev/null +++ b/locales/es_419/LC_MESSAGES/core_config.po @@ -0,0 +1,52 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/core/config.py:28 +msgctxt "group:config" +msgid "config" +msgstr "config" + +#: src/core/config.py:29 +msgctxt "group:config|desc" +msgid "View and adjust moderation-level configuration." +msgstr "Ver y ajustar la configuración del nivel de moderación." + +#: src/core/config.py:40 +msgctxt "group:admin" +msgid "admin" +msgstr "admin" + +#: src/core/config.py:41 +msgctxt "group:admin|desc" +msgid "Administrative commands." +msgstr "Comandos administrativos." + +#: src/core/config.py:52 +msgctxt "group:admin_config" +msgid "config" +msgstr "config" + +#: src/core/config.py:53 +msgctxt "group:admin_config|desc" +msgid "View and adjust admin-level configuration." +msgstr "Ver y ajustar la configuración del nivel de administración." diff --git a/locales/es_419/LC_MESSAGES/economy.po b/locales/es_419/LC_MESSAGES/economy.po new file mode 100644 index 000000000000..38704f66d73b --- /dev/null +++ b/locales/es_419/LC_MESSAGES/economy.po @@ -0,0 +1,601 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/modules/economy/settingui.py:34 +msgctxt "ui:economy_config|embed|title" +msgid "Economy Configuration Panel" +msgstr "Panel de configuración de Economía" + +#: src/modules/economy/settingui.py:67 +msgctxt "dash:economy|title" +msgid "Economy Configuration ({commands[config economy]})" +msgstr "Configuración de Economía ({commands[config economy]})" + +#: src/modules/economy/settingui.py:71 +msgctxt "dash:economy|dropdown|placeholder" +msgid "Economy Panel" +msgstr "Panel de Economía" + +#. ----- Economy group commands ----- +#: src/modules/economy/cog.py:87 +msgctxt "cmd:economy" +msgid "economy" +msgstr "economía" + +#: src/modules/economy/cog.py:93 +msgctxt "cmd:economy_balance" +msgid "balance" +msgstr "saldo" + +#: src/modules/economy/cog.py:96 +msgctxt "cmd:economy_balance|desc" +msgid "Display or modify LionCoin balance for members and roles." +msgstr "Mostrar o modificar el saldo de LionCoin de los miembros y roles." + +#: src/modules/economy/cog.py:100 +msgctxt "cmd:economy_balance|param:target" +msgid "target" +msgstr "objetivo" + +#: src/modules/economy/cog.py:101 +msgctxt "cmd:economy_balance|param:add" +msgid "add" +msgstr "añadir" + +#: src/modules/economy/cog.py:102 +msgctxt "cmd:economy_balance|param:set" +msgid "set" +msgstr "configurar" + +#: src/modules/economy/cog.py:107 +msgctxt "cmd:economy_balance|param:target|desc" +msgid "" +"Target user or role to view or update. Use @everyone to update the entire " +"guild." +msgstr "" +"Usuario o rol objetivo para ver o actualizar. Utilice @everyone para " +"actualizar todo el gremio." + +#: src/modules/economy/cog.py:111 +msgctxt "cmd:economy_balance|param:add|desc" +msgid "" +"Number of LionCoins to add to the target member's balance. May be negative " +"to remove." +msgstr "" +"Número de LionCoins a añadir al saldo del miembro objetivo. Puede ser " +"negativo para eliminar." + +#: src/modules/economy/cog.py:115 +msgctxt "cmd:economy_balance|param:set|set" +msgid "New balance to set the target's balance to." +msgstr "" + +#: src/modules/economy/cog.py:153 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|error:no_target" +msgid "" +"There are no valid members in {role.mention}! It has a total of `0` LC." +msgstr "¡No hay miembros válidos en {role.mention}! Tiene un total de `0` LC." + +#: src/modules/economy/cog.py:164 +msgctxt "cmd:economy_balance|error:target_is_bot" +msgid "Bots cannot have coin balances!" +msgstr "Los bots no pueden tener saldo de monedas." + +#: src/modules/economy/cog.py:175 +msgctxt "cmd:economy_balance|error:args" +msgid "You cannot simultaneously `set` and `add` member balances!" +msgstr "" + +#: src/modules/economy/cog.py:224 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|embed:success|affected" +msgid "One user was affected." +msgid_plural "**{count}** users were affected." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: src/modules/economy/cog.py:230 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|confirm|affected" +msgid "One user will be affected." +msgid_plural "**{count}** users will be affected." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: src/modules/economy/cog.py:237 +msgctxt "cmd:economy_balance|confirm|button:confirm" +msgid "Yes, adjust balances" +msgstr "" + +#: src/modules/economy/cog.py:241 +msgctxt "cmd:economy_balance|confirm|button:cancel" +msgid "No, cancel" +msgstr "" + +#: src/modules/economy/cog.py:248 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|embed:success_set|desc" +msgid "" +"All members of **{guild_name}** have had their balance set to " +"{coin_emoji}**{amount}**." +msgstr "" + +#: src/modules/economy/cog.py:257 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|confirm_set|desc" +msgid "" +"Are you sure you want to set everyone's balance to {coin_emoji}**{amount}**?" +msgstr "" + +#: src/modules/economy/cog.py:265 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|embed:success_set|desc" +msgid "" +"All members of {role_mention} have had their balance set to " +"{coin_emoji}**{amount}**." +msgstr "" + +#: src/modules/economy/cog.py:274 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|confirm_set|desc" +msgid "" +"Are you sure you want to set the balance of everyone with {role_mention} to " +"{coin_emoji}**{amount}**?" +msgstr "" + +#: src/modules/economy/cog.py:291 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|embed:success_set|desc" +msgid "{user_mention} now has a balance of {coin_emoji}**{amount}**." +msgstr "" + +#: src/modules/economy/cog.py:305 +msgctxt "eventlog|event:economy_set|title" +msgid "Moderator Set Economy Balance" +msgstr "" + +#: src/modules/economy/cog.py:309 +#, possible-python-brace-format +msgctxt "eventlog|event:economy_set|desc" +msgid "{moderator} set {target}'s balance to {amount}." +msgstr "" + +#: src/modules/economy/cog.py:321 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|embed:success_add|desc" +msgid "" +"All members of **{guild_name}** have been given {coin_emoji}**{amount}**." +msgstr "" + +#: src/modules/economy/cog.py:330 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|confirm_add|desc" +msgid "Are you sure you want to add **{amount}** to everyone's balance?" +msgstr "" + +#: src/modules/economy/cog.py:338 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|embed:success_add|desc" +msgid "" +"All members of {role_mention} have been given {coin_emoji}**{amount}**." +msgstr "" + +#: src/modules/economy/cog.py:347 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|confirm_add|desc" +msgid "" +"Are you sure you want to add {coin_emoji}**{amount}** to everyone in " +"{role_mention}?" +msgstr "" + +#: src/modules/economy/cog.py:369 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|embed:success_add|desc" +msgid "" +"{user_mention} was given {coin_emoji}**{amount}**, and now has a balance of " +"{coin_emoji}**{new_amount}**." +msgstr "" + +#: src/modules/economy/cog.py:380 +msgctxt "eventlog|event:economy_add|title" +msgid "Moderator Modified Economy Balance" +msgstr "" + +#: src/modules/economy/cog.py:384 +#, possible-python-brace-format +msgctxt "eventlog|event:economy_set|desc" +msgid "{moderator} added {amount} to {target}'s balance." +msgstr "" + +#: src/modules/economy/cog.py:394 +msgctxt "cmd:economy_balance|embed:success|title" +msgid "Account successfully updated." +msgid_plural "Accounts successfully updated." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: src/modules/economy/cog.py:438 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|embed:role_lb|author" +msgid "Balance sheet for {name}" +msgstr "" + +#: src/modules/economy/cog.py:444 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|embed:role_lb|header" +msgid "This server has a total balance of {coin_emoji}**{total}**." +msgstr "" + +#: src/modules/economy/cog.py:452 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|embed:role_lb|header" +msgid "" +"{role_mention} has `{count}` members with non-zero balance, with a total " +"balance of {coin_emoji}**{total}**." +msgstr "" + +#: src/modules/economy/cog.py:464 +msgctxt "cmd:economy_balance|embed:role_lb|row_format" +msgid "`[{pos:>{numwidth}}]` | `{coins:>{coinwidth}} LC` | {mention}" +msgstr "" + +#: src/modules/economy/cog.py:492 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|embed:role_lb|footer" +msgid "Page {page}/{total}" +msgstr "" + +#: src/modules/economy/cog.py:502 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|embed:role_lb|header" +msgid "This server has a total balance of {coin_emoji}**0**." +msgstr "" + +#: src/modules/economy/cog.py:509 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|embed:role_lb|header" +msgid "The role {role_mention} has a total balance of {coin_emoji}**0**." +msgstr "" + +#: src/modules/economy/cog.py:529 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|embed:single|desc" +msgid "{mention} currently owns {coin_emoji} {coins}." +msgstr "" + +#: src/modules/economy/cog.py:539 +#, possible-python-brace-format +msgctxt "cmd:economy_balance|embed:single|author" +msgid "Balance statement for {user}" +msgstr "" + +#: src/modules/economy/cog.py:548 +msgctxt "cmd:economy_reset" +msgid "reset" +msgstr "" + +#: src/modules/economy/cog.py:551 +msgctxt "cmd:economy_reset|desc" +msgid "" +"Reset the coin balance for a target user or role. (See also \"economy " +"balance\".)" +msgstr "" + +#: src/modules/economy/cog.py:555 +msgctxt "cmd:economy_reset|param:target" +msgid "target" +msgstr "" + +#: src/modules/economy/cog.py:560 +msgctxt "cmd:economy_reset|param:target|desc" +msgid "" +"Target user or role to view or update. Use @everyone to reset the entire " +"guild." +msgstr "" + +#: src/modules/economy/cog.py:587 +#, possible-python-brace-format +msgctxt "cmd:economy_reset|confirm:reset_guild|desc" +msgid "" +"Are you sure you want to reset the coin balance for everyone in **{guild_name}**?\n" +"*This is not reversible!*" +msgstr "" + +#: src/modules/economy/cog.py:595 +msgctxt "cmd:economy_reset|confirm:reset_guild|button:confirm" +msgid "Yes, reset the economy" +msgstr "" + +#: src/modules/economy/cog.py:599 +msgctxt "cmd:economy_reset|confirm:reset_guild|button:cancel" +msgid "Cancel reset" +msgstr "" + +#: src/modules/economy/cog.py:615 +#, possible-python-brace-format +msgctxt "cmd:economy_reset|embed:success_guild|desc" +msgid "" +"Everyone in **{guild_name}** has had their balance reset to " +"{coin_emoji}**{amount}**." +msgstr "" + +#: src/modules/economy/cog.py:632 +#, possible-python-brace-format +msgctxt "cmd:economy_reset|error:no_target|desc" +msgid "The role {mention} has no members to reset!" +msgstr "" + +#: src/modules/economy/cog.py:642 +#, possible-python-brace-format +msgctxt "cmd:economy_reset|confirm:reset_role|desc" +msgid "" +"Are you sure you want to reset the balance for everyone in {mention}?\n" +"**{count}** members will be affected." +msgstr "" + +#: src/modules/economy/cog.py:651 +msgctxt "cmd:economy_reset|confirm:reset_role|button:confirm" +msgid "Yes, complete economy reset" +msgstr "" + +#: src/modules/economy/cog.py:655 +msgctxt "cmd:economy_reset|confirm:reset_role|button:cancel" +msgid "Cancel" +msgstr "" + +#: src/modules/economy/cog.py:672 +#, possible-python-brace-format +msgctxt "cmd:economy_reset|embed:success_role|desc" +msgid "" +"Everyone in {role_mention} has had their coin balance reset to " +"{coin_emoji}**{amount}**." +msgstr "" + +#: src/modules/economy/cog.py:694 +#, possible-python-brace-format +msgctxt "cmd:economy_reset|embed:success_user|desc" +msgid "{mention}'s balance has been reset to {coin_emoji}**{amount}**." +msgstr "" + +#: src/modules/economy/cog.py:704 +msgctxt "cmd:send" +msgid "send" +msgstr "" + +#: src/modules/economy/cog.py:707 +msgctxt "cmd:send|desc" +msgid "Gift the target user a certain number of LionCoins." +msgstr "" + +#: src/modules/economy/cog.py:711 +msgctxt "cmd:send|param:target" +msgid "target" +msgstr "" + +#: src/modules/economy/cog.py:712 +msgctxt "cmd:send|param:amount" +msgid "amount" +msgstr "" + +#: src/modules/economy/cog.py:713 +msgctxt "cmd:send|param:note" +msgid "note" +msgstr "" + +#: src/modules/economy/cog.py:716 +msgctxt "cmd:send|param:target|desc" +msgid "User to send the gift to" +msgstr "" + +#: src/modules/economy/cog.py:717 +msgctxt "cmd:send|param:amount|desc" +msgid "Number of coins to send" +msgstr "" + +#: src/modules/economy/cog.py:718 +msgctxt "cmd:send|param:note|desc" +msgid "Optional note to add to the gift." +msgstr "" + +#: src/modules/economy/cog.py:742 +msgctxt "cmd:send|error:not_allowed" +msgid "Sorry, this server has disabled LionCoin transfers!" +msgstr "" + +#: src/modules/economy/cog.py:751 +msgctxt "cmd:send|error:sending-to-self" +msgid "" +"What is this, tax evasion?\n" +"(You can not send coins to yourself.)" +msgstr "" + +#: src/modules/economy/cog.py:761 +msgctxt "cmd:send|error:sending-to-leo" +msgid "" +"I appreciate it, but you need it more than I do!\n" +"(You cannot send coins to bots.)" +msgstr "" + +#: src/modules/economy/cog.py:771 +#, possible-python-brace-format +msgctxt "cmd:send|error:sending-to-bot" +msgid "" +"{target} appreciates the gesture, but said they don't have any use for {coin}.\n" +"(You cannot send coins to bots.)" +msgstr "" + +#: src/modules/economy/cog.py:799 +#, possible-python-brace-format +msgctxt "cmd:send|error:insufficient" +msgid "" +"You do not have enough lioncoins to do this!\n" +"`Current Balance:` {coin_emoji}{balance}" +msgstr "" + +#: src/modules/economy/cog.py:816 +msgctxt "eventlog|event:send|title" +msgid "Coins Transferred" +msgstr "" + +#: src/modules/economy/cog.py:820 +#, possible-python-brace-format +msgctxt "eventlog|event:send|desc" +msgid "{source} gifted {amount} to {target}" +msgstr "" + +#: src/modules/economy/cog.py:833 +#, possible-python-brace-format +msgctxt "cmd:send|embed:gift|title" +msgid "{user} sent you a gift!" +msgstr "" + +#: src/modules/economy/cog.py:837 +#, possible-python-brace-format +msgctxt "cmd:send|embed:gift|desc" +msgid "{mention} sent you {coin_emoji}**{amount}**." +msgstr "" + +#: src/modules/economy/cog.py:862 +#, possible-python-brace-format +msgctxt "cmd:send|embed:ack|desc" +msgid "" +"**{coin_emoji}{amount}** has been deducted from your balance and sent to " +"{mention}!" +msgstr "" + +#: src/modules/economy/cog.py:872 +msgctxt "cmd:send|embed:ack|desc|error:unreachable" +msgid "" +"Unfortunately, I was not able to message the recipient. Perhaps they have me" +" blocked?" +msgstr "" + +#: src/modules/economy/cog.py:884 +msgctxt "cmd:configure_economy" +msgid "economy" +msgstr "" + +#: src/modules/economy/cog.py:887 +msgctxt "cmd:configure_economy|desc" +msgid "Configure LionCoin Economy" +msgstr "" + +#: src/modules/economy/settings.py:38 +msgctxt "guildset:coins_per_xp" +msgid "coins_per_100xp" +msgstr "" + +#: src/modules/economy/settings.py:41 +msgctxt "guildset:coins_per_xp|desc" +msgid "How many LionCoins to reward members per 100 XP they earn." +msgstr "" + +#: src/modules/economy/settings.py:45 +msgctxt "guildset:coins_per_xp|long_desc" +msgid "" +"Members will be rewarded with this many LionCoins for every 100 XP they " +"earn." +msgstr "" + +#: src/modules/economy/settings.py:49 +msgctxt "guildset:coins_per_xp|long_desc" +msgid "The number of coins to reward per 100 XP." +msgstr "" + +#: src/modules/economy/settings.py:62 +#, possible-python-brace-format +msgctxt "guildset:coins_per_xp|set_response" +msgid "" +"For every **100** XP they earn, members will now be given " +"{coin}**{amount}**." +msgstr "" + +#: src/modules/economy/settings.py:74 +msgctxt "guildset:allow_transfers" +msgid "allow_transfers" +msgstr "" + +#: src/modules/economy/settings.py:77 +msgctxt "guildset:allow_transfers|desc" +msgid "Whether to allow members to transfer LionCoins to each other." +msgstr "" + +#: src/modules/economy/settings.py:81 +msgctxt "guildset:allow_transfers|long_desc" +msgid "" +"If disabled, members will not be able to transfer LionCoins to each other." +msgstr "" + +#: src/modules/economy/settings.py:89 +msgctxt "guildset:allow_transfers|outputs:true" +msgid "Enabled (Coin transfers allowed.)" +msgstr "" + +#: src/modules/economy/settings.py:90 +msgctxt "guildset:allow_transfers|outputs:false" +msgid "Disabled (Coin transfers not allowed.)" +msgstr "" + +#: src/modules/economy/settings.py:106 +#, possible-python-brace-format +msgctxt "guildset:allow_transfers|set_response|set:true" +msgid "Members will now be able to use {send_cmd} to transfer {coin}" +msgstr "" + +#: src/modules/economy/settings.py:111 +#, possible-python-brace-format +msgctxt "guildset:allow_transfers|set_response|set:false" +msgid "Members will not be able to use {send_cmd} to transfer {coin}" +msgstr "" + +#: src/modules/economy/settings.py:123 +msgctxt "guildset:starting_funds" +msgid "starting_funds" +msgstr "" + +#: src/modules/economy/settings.py:126 +msgctxt "guildset:starting_funds|desc" +msgid "How many LionCoins should a member start with." +msgstr "" + +#: src/modules/economy/settings.py:130 +msgctxt "guildset:starting_funds|long_desc" +msgid "" +"Members will be given this number of coins when they first interact with me," +" or first join the server." +msgstr "" + +#: src/modules/economy/settings.py:134 +msgctxt "guildset:starting_funds|accepts" +msgid "Number of coins to give to new members." +msgstr "" + +#: src/modules/economy/settings.py:146 +#, possible-python-brace-format +msgctxt "guildset:starting_funds|set_response" +msgid "New members will now start with {amount}" +msgstr "" diff --git a/locales/es_419/LC_MESSAGES/exec.po b/locales/es_419/LC_MESSAGES/exec.po new file mode 100644 index 000000000000..4042e5a384e3 --- /dev/null +++ b/locales/es_419/LC_MESSAGES/exec.po @@ -0,0 +1,94 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/modules/sysadmin/exec_cog.py:269 +msgctxt "ward:sys_admin|failed" +msgid "You must be a bot owner to do this!" +msgstr "¡Debes ser propietario de un bot para hacer esto!" + +#: src/modules/sysadmin/exec_cog.py:274 +msgid "async" +msgstr "" + +#: src/modules/sysadmin/exec_cog.py:275 +msgid "Execute arbitrary code with Exec" +msgstr "" + +#: src/modules/sysadmin/exec_cog.py:337 +msgctxt "command" +msgid "eval" +msgstr "" + +#: src/modules/sysadmin/exec_cog.py:338 +msgctxt "command:eval" +msgid "Execute arbitrary code with Eval" +msgstr "" + +#: src/modules/sysadmin/exec_cog.py:341 +msgctxt "command:eval|param:string" +msgid "Code to evaluate." +msgstr "" + +#: src/modules/sysadmin/exec_cog.py:348 +msgctxt "command" +msgid "asyncall" +msgstr "" + +#: src/modules/sysadmin/exec_cog.py:349 +msgctxt "command:asyncall|desc" +msgid "Execute arbitrary code on all shards." +msgstr "" + +#: src/modules/sysadmin/exec_cog.py:352 +msgctxt "command:asyncall|param:string" +msgid "Cross-shard code to execute. Cannot reference ctx!" +msgstr "" + +#: src/modules/sysadmin/exec_cog.py:353 +msgctxt "command:asyncall|param:target" +msgid "Target shard app name, see autocomplete for options." +msgstr "" + +#: src/modules/sysadmin/exec_cog.py:396 +msgid "reload" +msgstr "" + +#: src/modules/sysadmin/exec_cog.py:397 +msgid "Reload a given LionBot extension. Launches an ExecUI." +msgstr "" + +#: src/modules/sysadmin/exec_cog.py:400 +msgid "Name of the extension to reload. See autocomplete for options." +msgstr "" + +#: src/modules/sysadmin/exec_cog.py:401 +msgid "Whether to force an extension reload even if it doesn't exist." +msgstr "" + +#: src/modules/sysadmin/exec_cog.py:437 +msgid "shutdown" +msgstr "" + +#: src/modules/sysadmin/exec_cog.py:438 +msgid "Shutdown (or restart) the client." +msgstr "" diff --git a/locales/es_419/LC_MESSAGES/goals-gui.po b/locales/es_419/LC_MESSAGES/goals-gui.po new file mode 100644 index 000000000000..9c5a87931738 --- /dev/null +++ b/locales/es_419/LC_MESSAGES/goals-gui.po @@ -0,0 +1,107 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/gui/cards/goals.py:97 +msgctxt "skin:goals|goal:tasks|name" +msgid "TASKS DONE" +msgstr "TAREAS REALIZADAS" + +#: src/gui/cards/goals.py:101 +msgctxt "skin:goals|goal:tasks|goal" +msgid "GOAL: " +msgstr "META:" + +#: src/gui/cards/goals.py:127 +msgctxt "skin:goals|goal:attendance|name" +msgid "" +"ATTENDANCE\n" +"RATE" +msgstr "" +"ASISTENCIA\n" +"TARIFA" + +#: src/gui/cards/goals.py:141 +msgctxt "skin:goals|mode:study|goal:middle|above" +msgid "STUDIED" +msgstr "ESTUDIADO" + +#: src/gui/cards/goals.py:145 +msgctxt "skin:goals|mode:study|goal:middle|below" +msgid "HOURS" +msgstr "HORAS" + +#: src/gui/cards/goals.py:149 +msgctxt "skin:goals|mode:voice|goal:middle|above" +msgid "CHATTED" +msgstr "CHATEADO" + +#: src/gui/cards/goals.py:153 +msgctxt "skin:goals|mode:voice|goal:middle|below" +msgid "HOURS" +msgstr "HORAS" + +#: src/gui/cards/goals.py:157 +msgctxt "skin:goals|mode:text|goal:middle|above" +msgid "SENT" +msgstr "ENVIADO" + +#: src/gui/cards/goals.py:161 +msgctxt "skin:goals|mode:text|goal:middle|below" +msgid "MESSAGES" +msgstr "MENSAJES" + +#: src/gui/cards/goals.py:165 +msgctxt "skin:goals|mode:anki|goal:middle|above" +msgid "REVIEWED" +msgstr "REVISADO" + +#: src/gui/cards/goals.py:169 +msgctxt "skin:goals|mode:anki|goal:middle|below" +msgid "CARDS" +msgstr "TARJETAS" + +#: src/gui/cards/goals.py:230 +#, possible-python-brace-format +msgctxt "skin:goals|footer" +msgid "As of {day} {month} • {name}" +msgstr "A partir de {day} {month} • {name}" + +#: src/gui/cards/goals.py:242 +msgctxt "ui:goals|weekly|title" +msgid "WEEKLY STATISTICS" +msgstr "ESTADÍSTICAS SEMANALES" + +#: src/gui/cards/goals.py:246 +msgctxt "ui:goals|weekly|task_header" +msgid "GOALS OF THE WEEK" +msgstr "METAS DE LA SEMANA" + +#: src/gui/cards/goals.py:256 +msgctxt "ui:goals|monthly|title" +msgid "MONTHLY STATISTICS" +msgstr "ESTADÍSTICAS MENSUALES" + +#: src/gui/cards/goals.py:260 +msgctxt "ui:goals|monthly|task_header" +msgid "GOALS OF THE MONTH" +msgstr "METAS DEL MES" diff --git a/locales/es_419/LC_MESSAGES/leaderboard-gui.po b/locales/es_419/LC_MESSAGES/leaderboard-gui.po new file mode 100644 index 000000000000..ea8faa3c798a --- /dev/null +++ b/locales/es_419/LC_MESSAGES/leaderboard-gui.po @@ -0,0 +1,95 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/gui/cards/leaderboard.py:68 +msgctxt "skin:leaderboard|mode:study|header_text" +msgid "STUDY TIME LEADERBOARD" +msgstr "TABLA DE CLASIFICACIÓN DEL TIEMPO DE ESTUDIO" + +#: src/gui/cards/leaderboard.py:72 +msgctxt "skin:leaderboard|mode:text|header_text" +msgid "MESSAGE LEADERBOARD" +msgstr "TABLA DE CLASIFICACIÓN DE MENSAJES" + +#: src/gui/cards/leaderboard.py:76 +msgctxt "skin:leaderboard|mode:voice|header_text" +msgid "VOICE LEADERBOARD" +msgstr "TABLA DE CLASIFICACIÓN DE VOZ" + +#: src/gui/cards/leaderboard.py:80 +msgctxt "skin:leaderboard|mode:anki|header_text" +msgid "ANKI REVIEW LEADERBOARD" +msgstr "TABLA DE CLASIFICACIÓN DE ANKI" + +#: src/gui/cards/leaderboard.py:98 +msgctxt "skin:leaderboard|field:subheader_text" +msgid "SERVER: " +msgstr "SERVIDOR:" + +#: src/gui/cards/leaderboard.py:128 +#, possible-python-brace-format +msgctxt "skin:leaderboard|mode:study|top_hours_text" +msgid "{amount} hours" +msgstr "{amount} horas" + +#: src/gui/cards/leaderboard.py:132 +#, possible-python-brace-format +msgctxt "skin:leaderboard|mode:text|top_hours_text" +msgid "{amount} XP" +msgstr "{amount} XP" + +#: src/gui/cards/leaderboard.py:136 +#, possible-python-brace-format +msgctxt "skin:leaderboard|mode:voice|top_hours_text" +msgid "{amount} hours" +msgstr "{amount} horas" + +#: src/gui/cards/leaderboard.py:140 +#, possible-python-brace-format +msgctxt "skin:leaderboard|mode:anki|top_hours_text" +msgid "{amount} cards" +msgstr "{amount} tarjetas" + +#: src/gui/cards/leaderboard.py:167 +#, possible-python-brace-format +msgctxt "skin:leaderboard|mode:study|entry_hours_text" +msgid "{HH:02d}:{MM:02d}" +msgstr "{HH:02d}:{MM:02d}" + +#: src/gui/cards/leaderboard.py:171 +#, possible-python-brace-format +msgctxt "skin:leaderboard|mode:text|entry_hours_text" +msgid "{amount} XP" +msgstr "{amount} XP" + +#: src/gui/cards/leaderboard.py:175 +#, possible-python-brace-format +msgctxt "skin:leaderboard|mode:voice|entry_hours_text" +msgid "{HH:02d}:{MM:02d}" +msgstr "{HH:02d}:{MM:02d}" + +#: src/gui/cards/leaderboard.py:179 +#, possible-python-brace-format +msgctxt "skin:leaderboard|mode:anki|entry_hours_text" +msgid "{amount} cards" +msgstr "{amount} tarjetas" diff --git a/locales/es_419/LC_MESSAGES/lion-core.po b/locales/es_419/LC_MESSAGES/lion-core.po new file mode 100644 index 000000000000..fd0dd172a194 --- /dev/null +++ b/locales/es_419/LC_MESSAGES/lion-core.po @@ -0,0 +1,203 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/core/lion_guild.py:31 +msgctxt "eventlog|field:start|name" +msgid "Start" +msgstr "Iniciar" + +#: src/core/lion_guild.py:36 +msgctxt "eventlog|field:expiry|name" +msgid "Expires" +msgstr "Expira en" + +#: src/core/lion_guild.py:41 +msgctxt "eventlog|field:roles_given|name" +msgid "Roles Given" +msgstr "Roles asignados" + +#: src/core/lion_guild.py:46 +msgctxt "eventlog|field:roles_given|name" +msgid "Roles Taken" +msgstr "Roles adquiridos" + +#: src/core/lion_guild.py:51 +msgctxt "eventlog|field:coins_earned|name" +msgid "Coins Earned" +msgstr "Monedas ganadas" + +#: src/core/lion_guild.py:56 +msgctxt "eventlog|field:price|name" +msgid "Price" +msgstr "Precio" + +#: src/core/lion_guild.py:61 +msgctxt "eventlog|field:balance|name" +msgid "Balance" +msgstr "Saldo" + +#: src/core/lion_guild.py:66 +msgctxt "eventlog|field:refund|name" +msgid "Coins Refunded" +msgstr "Monedas reembolsadas" + +#: src/core/lion_guild.py:71 +msgctxt "eventlog|field:memberid|name" +msgid "Member" +msgstr "Miembro" + +#: src/core/lion_guild.py:76 +msgctxt "eventlog|field:channelid|name" +msgid "Channel" +msgstr "Canal" + +#: src/core/lion_guild.py:208 +msgctxt "eventlog|error:manage_webhooks" +msgid "" +"This channel is configured as an event log, but I am missing the 'Manage " +"Webhooks' permission here." +msgstr "" +"Este canal está configurado como un registro de eventos, pero me falta el " +"permiso 'Manage Webhooks' aquí." + +#: src/core/lion_guild.py:220 +#, possible-python-brace-format +msgctxt "eventlog|create|name" +msgid "{bot_name} Event Log" +msgstr "{bot_name} Registro de Eventos" + +#: src/core/lion_guild.py:224 +msgctxt "eventlog|create|audit_reason" +msgid "Creating event log webhook" +msgstr "" + +#: src/core/lion_guild.py:342 +msgctxt "eventlog|field:errors|name" +msgid "Errors" +msgstr "Errores" + +#: src/core/setting_types.py:31 +msgctxt "settype:coin|accepts" +msgid "A positive integral number of coins." +msgstr "Un número entero positivo de monedas." + +#: src/core/setting_types.py:47 +msgctxt "settype:coin|parse|error:notinteger" +msgid "The coin quantity must be a positive integer!" +msgstr "¡La cantidad de monedas debe ser un número entero positivo!" + +#: src/core/setting_types.py:55 +#, possible-python-brace-format +msgctxt "settype:coin|parse|error:too_large" +msgid "You cannot set this to more than {coin}**{max}**!" +msgstr "¡No puede establecer un valor superior a {coin}**{max}**!" + +#: src/core/setting_types.py:63 +#, possible-python-brace-format +msgctxt "settype:coin|parse|error:too_small" +msgid "You cannot set this to less than {coin}**{min}**!" +msgstr "No puede establecer un valor menor a {coin}**{min}**." + +#: src/core/setting_types.py:75 +#, possible-python-brace-format +msgctxt "settype:coin|formatted" +msgid "{coin}**{amount}**" +msgstr "" + +#: src/core/setting_types.py:91 +msgctxt "settype:message|accepts" +msgid "JSON formatted raw message data" +msgstr "" + +#: src/core/setting_types.py:106 +msgctxt "settype:message|download|error:not_json" +msgid "The attached message data is not a JSON file!" +msgstr "" + +#: src/core/setting_types.py:111 +msgctxt "settype:message|download|error:size" +msgid "The attached message data is too large!" +msgstr "" + +#: src/core/setting_types.py:120 +msgctxt "settype:message|download|error:decoding" +msgid "" +"Could not decode the message data. Please ensure it is saved with the " +"`UTF-8` encoding." +msgstr "" + +#: src/core/setting_types.py:177 +#, possible-python-brace-format +msgctxt "settype:message|error_suffix" +msgid "" +"You can view, test, and fix your embed using the online [embed " +"builder]({link})." +msgstr "" + +#: src/core/setting_types.py:189 +#, possible-python-brace-format +msgctxt "settype:message|error:invalid_json" +msgid "" +"The provided message data was not a valid JSON document!\n" +"`{error}`" +msgstr "" + +#: src/core/setting_types.py:197 +msgctxt "settype:message|error:json_missing_keys" +msgid "" +"Message data must be a JSON object with at least one of the following " +"fields: `content`, `embed`, `embeds`" +msgstr "" + +#: src/core/setting_types.py:206 +msgctxt "settype:message|error:json_embed_type" +msgid "`embed` field must be a valid JSON object." +msgstr "" + +#: src/core/setting_types.py:214 +msgctxt "settype:message|error:json_embeds_type" +msgid "`embeds` field must be a list." +msgstr "" + +#: src/core/setting_types.py:221 +msgctxt "settype:message|error:json_embed_embeds" +msgid "Message data cannot include both `embed` and `embeds`." +msgstr "" + +#: src/core/setting_types.py:229 +msgctxt "settype:message|error:json_content_type" +msgid "`content` field must be a string." +msgstr "" + +#: src/core/setting_types.py:245 +#, possible-python-brace-format +msgctxt "ui:settype:message|error:embed_conversion" +msgid "" +"Could not parse the message embed data.\n" +"**Error:** `{exception}`" +msgstr "" + +#: src/core/setting_types.py:273 +msgctxt "settype:message|format:too_long" +msgid "Too long to display! See Preview." +msgstr "" diff --git a/locales/es_419/LC_MESSAGES/moderation.po b/locales/es_419/LC_MESSAGES/moderation.po new file mode 100644 index 000000000000..7f27e7b46881 --- /dev/null +++ b/locales/es_419/LC_MESSAGES/moderation.po @@ -0,0 +1,762 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Ronin DeMentira, 2023 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Ronin DeMentira, 2023\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/modules/moderation/settingui.py:55 +msgctxt "ui:moderation_config|menu:ticket_log|placeholder" +msgid "Select Ticket Log" +msgstr "Seleccione Ticket Log" + +#: src/modules/moderation/settingui.py:81 +msgctxt "ui:moderation_config|menu:alert_channel|placeholder" +msgid "Select Alert Channel" +msgstr "Seleccionar canal de alerta" + +#: src/modules/moderation/settingui.py:107 +msgctxt "ui:moderation_config|menu:modrole|placeholder" +msgid "Select Moderator Role" +msgstr "Seleccione la función de moderador" + +#: src/modules/moderation/settingui.py:133 +msgctxt "ui:moderation_config|menu:adminrole|placeholder" +msgid "Select Admin Role" +msgstr "Seleccione el rol de administrador" + +#: src/modules/moderation/settingui.py:141 +msgctxt "ui:moderation_config|embed|title" +msgid "Moderation Configuration Panel" +msgstr "Panel de configuración de la moderación" + +#: src/modules/moderation/settingui.py:182 +msgctxt "dash:moderation|title" +msgid "Moderation Settings ({commands[admin config moderation]})" +msgstr "Configuración de la moderación ({commands[admin config moderation]})" + +#: src/modules/moderation/settingui.py:186 +msgctxt "dash:moderation|dropdown|placeholder" +msgid "Moderation Panel" +msgstr "Grupo de moderación" + +#: src/modules/moderation/cog.py:135 +msgctxt "cmd:modnote" +msgid "modnote" +msgstr "modnote" + +#: src/modules/moderation/cog.py:138 +msgctxt "cmd:modnote|desc" +msgid "Add a note to the target member's moderation record." +msgstr "Añade una nota al registro de moderación del miembro en cuestión." + +#: src/modules/moderation/cog.py:142 +msgctxt "cmd:modnote|param:target" +msgid "target" +msgstr "objetivo" + +#: src/modules/moderation/cog.py:143 +msgctxt "cmd:modnote|param:note" +msgid "note" +msgstr "nota" + +#: src/modules/moderation/cog.py:148 +msgctxt "cmd:modnote|param:target|desc" +msgid "Target member or user to add a note to." +msgstr "Miembro o usuario de destino al que añadir una nota." + +#: src/modules/moderation/cog.py:152 +msgctxt "cmd:modnote|param:note|desc" +msgid "Contents of the note." +msgstr "Contenido de la nota." + +#: src/modules/moderation/cog.py:177 +msgctxt "cmd:modnote|modal:enter_note|title" +msgid "Moderation Note" +msgstr "Nota de moderación" + +#: src/modules/moderation/cog.py:182 +msgctxt "cmd:modnote|modal:enter_note|field|label" +msgid "Note Content" +msgstr "Nota Contenido" + +#: src/modules/moderation/cog.py:215 +#, possible-python-brace-format +msgctxt "cmd:modnote|embed:success|desc" +msgid "Moderation note created as [Ticket #{ticket}]({jump_link})" +msgstr "Nota de moderación creada como [Ticket #{ticket}]({jump_link})" + +#: src/modules/moderation/cog.py:225 +msgctxt "cmd:warning" +msgid "warning" +msgstr "advertencia" + +#: src/modules/moderation/cog.py:228 +msgctxt "cmd:warning|desc" +msgid "" +"Warn a member for a misdemeanour, and add it to their moderation record." +msgstr "" +"Advertir a un miembro por una falta y añadirla a su historial de moderación." + +#: src/modules/moderation/cog.py:232 +msgctxt "cmd:warning|param:target" +msgid "target" +msgstr "objetivo" + +#: src/modules/moderation/cog.py:233 +msgctxt "cmd:warning|param:reason" +msgid "reason" +msgstr "motivo" + +#: src/modules/moderation/cog.py:238 +msgctxt "cmd:warning|param:target|desc" +msgid "Target member to warn." +msgstr "Miembro objetivo a avisar." + +#: src/modules/moderation/cog.py:242 +msgctxt "cmd:warning|param:reason|desc" +msgid "The reason why you are warning this member." +msgstr "La razón por la que advierte a este miembro." + +#: src/modules/moderation/cog.py:262 +msgctxt "cmd:warning|modal:reason|title" +msgid "Moderation Warning" +msgstr "Aviso de moderación" + +#: src/modules/moderation/cog.py:267 +msgctxt "cmd:warning|modal:reason|field|label" +msgid "Reason for the warning (visible to user)." +msgstr "Motivo de la advertencia (visible para el usuario)." + +#: src/modules/moderation/cog.py:298 +msgctxt "cmd:warning|embed:user_alert|title" +msgid "You have received a warning!" +msgstr "Ha recibido una advertencia." + +#: src/modules/moderation/cog.py:305 +msgctxt "cmd:warning|embed:user_alert|field:note|name" +msgid "Note" +msgstr "Nota" + +#: src/modules/moderation/cog.py:309 +msgctxt "cmd:warning|embed:user_alert|field:note|value" +msgid "" +"*Warnings appear in your moderation history. Continuing failure to comply " +"with server rules and moderator directions may result in more severe action." +msgstr "" +"*Las advertencias aparecen en tu historial de moderación. El incumplimiento " +"continuado de las normas del servidor y de las indicaciones de los " +"moderadores puede dar lugar a acciones más severas." + +#: src/modules/moderation/cog.py:327 +#, possible-python-brace-format +msgctxt "cmd:warning|embed:success|line:count" +msgid "This their first warning." +msgid_plural "They have recieved **`{count}`** warnings." +msgstr[0] "Esta es su primera advertencia." +msgstr[1] "Han recibido **`{count}`** avisos." +msgstr[2] "Han recibido **`{count}`** avisos." + +#: src/modules/moderation/cog.py:336 +#, possible-python-brace-format +msgctxt "cmd:warning|embed:success|desc" +msgid "[Ticket #{ticket}]({jump_link}) {user} has been warned." +msgstr "[Ticket #{ticket}]({jump_link}) {user} ha sido avisado." + +#: src/modules/moderation/cog.py:347 +msgctxt "cmd:warning|embed:success|field:no_alert|name" +msgid "Note" +msgstr "Nota" + +#: src/modules/moderation/cog.py:351 +msgctxt "cmd:warning|embed:success|field:no_alert|value" +msgid "*Could not deliver warning to the target.*" +msgstr "*No se pudo entregar la advertencia al objetivo.*" + +#: src/modules/moderation/cog.py:358 +msgctxt "cmd:pardon" +msgid "pardon" +msgstr "Perdonar" + +#: src/modules/moderation/cog.py:361 +msgctxt "cmd:pardon|desc" +msgid "Pardon moderation tickets to mark them as no longer in effect." +msgstr "Perdone las entradas de moderación para marcarlas como no vigentes." + +#: src/modules/moderation/cog.py:367 +msgctxt "cmd:pardon|param:ticketids" +msgid "tickets" +msgstr "entradas" + +#: src/modules/moderation/cog.py:371 +msgctxt "cmd:pardon|param:reason" +msgid "reason" +msgstr "motivo" + +#: src/modules/moderation/cog.py:377 +msgctxt "cmd:pardon|param:ticketids|desc" +msgid "Comma separated list of ticket numbers to pardon." +msgstr "Lista separada por comas de los números de ticket a perdonar." + +#: src/modules/moderation/cog.py:381 +msgctxt "cmd:pardon|param:reason" +msgid "Why these tickets are being pardoned." +msgstr "Por qué se perdonan estos tickets." + +#: src/modules/moderation/cog.py:402 +msgctxt "cmd:pardon|modal:reason|title" +msgid "Pardon Tickets" +msgstr "Perdonar Tickets" + +#: src/modules/moderation/cog.py:407 +msgctxt "cmd:pardon|modal:reason|field|label" +msgid "Why are you pardoning these tickets?" +msgstr "¿Por qué perdonas estoas tickets?" + +#: src/modules/moderation/cog.py:435 +msgctxt "cmd:pardon|error:parse_ticketids" +msgid "" +"Could not parse provided tickets as a list of ticket ids! Please enter " +"tickets as a comma separated list of ticket numbers, for example `1, 2, 3`." +msgstr "" +"No se han podido analizar las entradas proporcionadas como una lista de ID " +"de entradas. Por favor, introduzca los tickets como una lista de números de " +"tickets separados por comas, por ejemplo `1, 2, 3`." + +#: src/modules/moderation/cog.py:449 +msgctxt "cmd:pardon|error:no_matching" +msgid "No matching moderation tickets found to pardon!" +msgstr "" +"¡No se han encontrado entradas de moderación que coincidan con perdonar!" + +#: src/modules/moderation/cog.py:469 +#, possible-python-brace-format +msgctxt "cmd:pardon|embed:success|title" +msgid "Ticket {ticketstr} has been pardoned." +msgid_plural "" +"The following tickets have been pardoned:\n" +"{ticketstr}" +msgstr[0] "El ticket {ticketstr} ha sido perdonado." +msgstr[1] "" +"Los siguientes tickets han sido perdonados:\n" +"{ticketstr}" +msgstr[2] "" +"Los siguientes tickets han sido perdonados:\n" +"{ticketstr}" + +#: src/modules/moderation/cog.py:478 +msgctxt "cmd:tickets" +msgid "tickets" +msgstr "tickets" + +#: src/modules/moderation/cog.py:481 +msgctxt "cmd:tickets|desc" +msgid "View moderation tickets in this server." +msgstr "Ver los tickets de moderación en este servidor." + +#: src/modules/moderation/cog.py:485 +msgctxt "cmd:tickets|param:target" +msgid "target" +msgstr "objetivo" + +#: src/modules/moderation/cog.py:486 +msgctxt "cmd:tickets|param:type" +msgid "type" +msgstr "tipo" + +#: src/modules/moderation/cog.py:487 +msgctxt "cmd:tickets|param:state" +msgid "ticket_state" +msgstr "estado_ticket" + +#: src/modules/moderation/cog.py:488 +msgctxt "cmd:tickets|param:pardoned" +msgid "include_pardoned" +msgstr "incluir_perdonados" + +#: src/modules/moderation/cog.py:489 +msgctxt "cmd:tickets|param:moderator" +msgid "acting_moderator" +msgstr "moderador_actuante" + +#: src/modules/moderation/cog.py:490 +msgctxt "cmd:tickets|param:after" +msgid "after" +msgstr "después de" + +#: src/modules/moderation/cog.py:491 +msgctxt "cmd:tickets|param:before" +msgid "before" +msgstr "antes de" + +#: src/modules/moderation/cog.py:496 +msgctxt "cmd:tickets|param:target|desc" +msgid "Filter by tickets acting on a given user." +msgstr "Filtrar por tickets que actúan sobre un usuario determinado." + +#: src/modules/moderation/cog.py:500 +msgctxt "cmd:tickets|param:type|desc" +msgid "Filter by ticket type." +msgstr "Filtrar por tipo de ticket." + +#: src/modules/moderation/cog.py:504 +msgctxt "cmd:tickets|param:state|desc" +msgid "Filter by ticket state." +msgstr "Filtrar por estado del ticket." + +#: src/modules/moderation/cog.py:508 +msgctxt "cmd:tickets|param:pardoned|desc" +msgid "Whether to only show active tickets, or also include pardoned." +msgstr "" +"Si desea mostrar sólo los tickets activos, o incluir también los indultados." + +#: src/modules/moderation/cog.py:512 +msgctxt "cmd:tickets|param:moderator|desc" +msgid "Filter by moderator responsible for the ticket." +msgstr "Filtrar por moderador responsable del ticket." + +#: src/modules/moderation/cog.py:516 +msgctxt "cmd:tickets|param:after|desc" +msgid "Only show tickets after this date (YYY-MM-DD HH:MM)" +msgstr "Mostrar sólo tickets después de esta fecha (AAAA-MM-DD HH:MM)" + +#: src/modules/moderation/cog.py:520 +msgctxt "cmd:tickets|param:before|desc" +msgid "Only show tickets before this date (YYY-MM-DD HH:MM)" +msgstr "Mostrar sólo tickets antes de esta fecha (AAAA-MM-DD HH:MM)" + +#: src/modules/moderation/cog.py:582 +msgctxt "cmd:configure_moderation" +msgid "moderation" +msgstr "moderación" + +#: src/modules/moderation/cog.py:585 +msgctxt "cmd:configure_moderation|desc" +msgid "Configure general moderation settings." +msgstr "Configure las opciones generales de moderación." + +#: src/modules/moderation/ticketui.py:62 +msgctxt "ticketfilter|field:after|name" +msgid "Created After" +msgstr "Creado después de" + +#: src/modules/moderation/ticketui.py:70 +msgctxt "ticketfilter|field:before|name" +msgid "Created Before" +msgstr "Creado antes de" + +#: src/modules/moderation/ticketui.py:78 +msgctxt "ticketfilter|field:targetids|name" +msgid "Targets" +msgstr "Objetivos" + +#: src/modules/moderation/ticketui.py:86 +msgctxt "ticketfilter|field:moderatorids|name" +msgid "Moderators" +msgstr "Moderadores" + +#: src/modules/moderation/ticketui.py:94 +msgctxt "ticketfilter|field:types|name" +msgid "Ticket Types" +msgstr "Tipos de tickets" + +#: src/modules/moderation/ticketui.py:102 +msgctxt "ticketfilter|field:states|name" +msgid "Ticket States" +msgstr "Estados del ticket" + +#: src/modules/moderation/ticketui.py:179 +msgctxt "ui:tickets|button:edit_filter|label" +msgid "Edit Filters" +msgstr "Editar filtros" + +#: src/modules/moderation/ticketui.py:199 +msgctxt "ui:tickets|button:select_ticket|label" +msgid "Select Ticket" +msgstr "Seleccionar ticket" + +#: src/modules/moderation/ticketui.py:215 +msgctxt "ui:tickets|button:pardon|error:no_tickets" +msgid "Not tickets matching the given criterial! Nothing to pardon." +msgstr "" +"No hay tickets que coincidan con el criterio dado. No hay nada que perdonar." + +#: src/modules/moderation/ticketui.py:221 +msgctxt "ui:tickets|button:pardon|modal:reason|title" +msgid "Pardon Tickets" +msgstr "Perdonar Tickets" + +#: src/modules/moderation/ticketui.py:226 +msgctxt "ui:tickets|button:pardon|modal:reason|field|label" +msgid "Why are you pardoning these tickets?" +msgstr "¿Por qué perdonas estos tickets?" + +#: src/modules/moderation/ticketui.py:252 +msgctxt "ui:tickets|button:pardon|label" +msgid "Pardon All" +msgstr "Perdonar a todos" + +#: src/modules/moderation/ticketui.py:273 +msgctxt "ui:tickets|menu:filter_type|placeholder" +msgid "Select Ticket Types" +msgstr "Seleccione el tipo de ticket" + +#: src/modules/moderation/ticketui.py:309 +msgctxt "ui:tickets|menu:filter_state|placeholder" +msgid "Select Ticket States" +msgstr "Seleccione el estado del ticket" + +#: src/modules/moderation/ticketui.py:346 +msgctxt "ui:tickets|menu:filter_target|placeholder" +msgid "Select Ticket Targets" +msgstr "Seleccionar Tickets objetivos" + +#: src/modules/moderation/ticketui.py:371 +msgctxt "ui:tickets|menu:tickets|placeholder" +msgid "Select Ticket" +msgstr "Seleccionar Ticket" + +#: src/modules/moderation/ticketui.py:402 +msgctxt "ui:tickets|button:jump|input:title" +msgid "Jump to page" +msgstr "Ir a la página" + +#: src/modules/moderation/ticketui.py:406 +msgctxt "ui:tickets|button:jump|input:question" +msgid "Page number to jump to" +msgstr "Número de página al que saltar" + +#: src/modules/moderation/ticketui.py:417 +msgctxt "ui:tickets|button:jump|error:invalid_page" +msgid "Invalid page number, please try again!" +msgstr "Número de página no válido, inténtelo de nuevo." + +#: src/modules/moderation/ticketui.py:496 +#, possible-python-brace-format +msgctxt "ui:tickets|embed|title" +msgid "Moderation Tickets in {guild}" +msgstr "Entradas de moderación en {guild}" + +#: src/modules/moderation/ticketui.py:506 +msgctxt "ui:tickets|embed|desc:no_tickets" +msgid "No tickets matching the given criteria!" +msgstr "No hay entradas que coincidan con los criterios indicados." + +#: src/modules/moderation/ticketui.py:515 +msgctxt "ui:tickets|embed|field:filters|name" +msgid "Filters" +msgstr "Filtros" + +#: src/modules/moderation/ticketui.py:603 +msgctxt "ui:ticket|button:pardon|modal:reason|title" +msgid "Pardon Moderation Ticket" +msgstr "Perdonar Ticket de Moderación" + +#: src/modules/moderation/ticketui.py:608 +msgctxt "ui:ticket|button:pardon|modal:reason|field|label" +msgid "Why are you pardoning this ticket?" +msgstr "¿Por qué perdonas este ticket?" + +#: src/modules/moderation/ticketui.py:632 +msgctxt "ui:ticket|button:pardon|label" +msgid "Pardon" +msgstr "Perdonar" + +#: src/modules/moderation/ticket.py:148 +#, possible-python-brace-format +msgctxt "ticket|title:auto" +msgid "Ticket #{ticketid} | {state} | {type}[Auto] | {name}" +msgstr "Ticket #{ticketid} | {state} | {type}[Auto] | {name}" + +#: src/modules/moderation/ticket.py:153 +#, possible-python-brace-format +msgctxt "ticket|title:manual" +msgid "Ticket #{ticketid} | {state} | {type} | {name}" +msgstr "Ticket #{ticketid} | {state} | {type} | {name}" + +#: src/modules/moderation/ticket.py:169 +msgctxt "ticket|field:target|name" +msgid "Target" +msgstr "Objetivo" + +#: src/modules/moderation/ticket.py:174 +msgctxt "ticket|field:moderator|name" +msgid "Moderator" +msgstr "Moderador" + +#: src/modules/moderation/ticket.py:181 +msgctxt "ticket|field:expiry|mode:expiring|name" +msgid "Expires At" +msgstr "Caduca en" + +#: src/modules/moderation/ticket.py:184 +#, possible-python-brace-format +msgctxt "ticket|field:expiry|mode:expiring|value" +msgid "" +"{timestamp}\n" +"Duration: `{duration}`" +msgstr "" +"{timestamp}\n" +"Duración: `{duration}`" + +#: src/modules/moderation/ticket.py:192 +msgctxt "ticket|field:expiry|mode:expired|name" +msgid "Expired" +msgstr "Caducado" + +#: src/modules/moderation/ticket.py:195 +#, possible-python-brace-format +msgctxt "ticket|field:expiry|mode:expired|value" +msgid "{timestamp}" +msgstr "{timestamp}" + +#: src/modules/moderation/ticket.py:202 +msgctxt "ticket|field:expiry|mode:open|name" +msgid "Expiry" +msgstr "Caducidad" + +#: src/modules/moderation/ticket.py:205 +#, possible-python-brace-format +msgctxt "ticket|field:expiry|mode:open|value" +msgid "{timestamp}" +msgstr "{timestamp}" + +#: src/modules/moderation/ticket.py:213 +msgctxt "ticket|field:context|name" +msgid "Context" +msgstr "Contexto" + +#: src/modules/moderation/ticket.py:220 +msgctxt "ticket|field:notes|name" +msgid "Notes" +msgstr "Notas" + +#: src/modules/moderation/ticket.py:227 +msgctxt "ticket|field:pardoned|name" +msgid "Pardoned" +msgstr "Perdonado" + +#: src/modules/moderation/ticket.py:230 +#, possible-python-brace-format +msgctxt "ticket|field:pardoned|value" +msgid "" +"Pardoned by <@{moderator}> at {timestamp}.\n" +"{reason}" +msgstr "" +"Perdonado por <@{moderator}> en {timestamp}.\n" +"{reason}" + +#: src/modules/moderation/settings.py:22 +msgctxt "guildset:ticket_log" +msgid "ticket_log" +msgstr "ticket_log" + +#: src/modules/moderation/settings.py:25 +msgctxt "guildset:ticket_log|desc" +msgid "Private moderation log to send tickets and moderation events." +msgstr "" +"Registro privado de moderación para enviar tickets y eventos de moderación." + +#: src/modules/moderation/settings.py:29 +msgctxt "guildset:ticket_log|long_desc" +msgid "" +"Warnings, notes, video blacklists, and other moderation events will be " +"posted as numbered tickets with context to this log." +msgstr "" +"Las advertencias, notas, listas negras de vídeos y otros eventos de " +"moderación se publicarán como entradas numeradas con contexto en este " +"registro." + +#: src/modules/moderation/settings.py:34 +msgctxt "guildset:ticket_log|accepts" +msgid "Ticket channel name or id." +msgstr "Nombre o identificador del canal de tickets." + +#: src/modules/moderation/settings.py:48 +#, possible-python-brace-format +msgctxt "guildset:ticket_log|set_response:set" +msgid "Moderation tickets will be sent to {channel}" +msgstr "Los tickets de moderación se enviarán a {channel}" + +#: src/modules/moderation/settings.py:53 +msgctxt "guildset:ticket_log|set_response:unset" +msgid "Moderation tickets will not be logged to a channel." +msgstr "Los tickets de moderación no se registrarán en un canal." + +#: src/modules/moderation/settings.py:65 +msgctxt "guildset:ticket_log|formatted:unset" +msgid "Not Set." +msgstr "No está configurado." + +#: src/modules/moderation/settings.py:73 +msgctxt "guildset:alert_channel" +msgid "alert_channel" +msgstr "canal_alerta" + +#: src/modules/moderation/settings.py:76 +msgctxt "guildset:alert_channel|desc" +msgid "Moderation notification channel for members with DMs disabled." +msgstr "" +"Canal de notificación de moderación para miembros con DMs desactivados." + +#: src/modules/moderation/settings.py:80 +msgctxt "guildset:alert_channel|long_desc" +msgid "" +"When I need to send a member a moderation-related notification (e.g. asking " +"them to enable their video in a video channel) from this server, I will try " +"to send it via direct messages. If this fails, I will instead mention the " +"user in this channel." +msgstr "" +"Cuando tenga que enviar a un miembro una notificación relacionada con la " +"moderación (por ejemplo, pedirle que habilite su vídeo en un canal de vídeo)" +" desde este servidor, intentaré enviársela a través de mensajes directos. Si" +" esto falla, en su lugar mencionaré al usuario en este canal." + +#: src/modules/moderation/settings.py:87 +msgctxt "guildset:alert_channel|accepts" +msgid "Alert channel name or id." +msgstr "Nombre o id del canal de alerta." + +#: src/modules/moderation/settings.py:102 +#, possible-python-brace-format +msgctxt "guildset:alert_channel|set_response:set" +msgid "Moderation alerts will be sent to {channel}" +msgstr "Las alertas de moderación se enviarán a {channel}." + +#: src/modules/moderation/settings.py:107 +msgctxt "guildset:alert_channel|set_response:unset" +msgid "Moderation alerts will be ignored if the member cannot be reached." +msgstr "" +"Las alertas de moderación se ignorarán si no se puede contactar con el " +"miembro." + +#: src/modules/moderation/settings.py:119 +msgctxt "guildset:alert_channel|formatted:unset" +msgid "Not Set (Only alert via direct message.)" +msgstr "No configurado (Sólo alerta por mensaje directo.)" + +#: src/modules/moderation/settings.py:127 +msgctxt "guildset:mod_role" +msgid "mod_role" +msgstr "mod_role" + +#: src/modules/moderation/settings.py:130 +msgctxt "guildset:mod_role|desc" +msgid "" +"Server role permitted to perform moderation and minor bot configuration." +msgstr "" +"Rol de servidor autorizado para realizar tareas de moderación y " +"configuración menor de bots." + +#: src/modules/moderation/settings.py:134 +msgctxt "guildset:mod_role|long_desc" +msgid "" +"Members with the moderator role are considered moderators, and are permitted to use moderator commands, such as viewing and pardoning moderation tickets, creating moderation notes, and performing minor reconfiguration through the `/config` command.\n" +"Moderators are never permitted to perform actions (such as giving roles) that they do not already have the Discord permissions for.\n" +"Members with the 'Manage Guild' permission are always considered moderators." +msgstr "" +"Los miembros con el rol de moderador son considerados moderadores, y se les permite usar comandos de moderador, como ver y perdonar tickets de moderación, crear notas de moderación, y realizar reconfiguraciones menores a través del comando `/config`.\n" +"A los moderadores nunca se les permite realizar acciones (como dar roles) para las que no tengan ya los permisos de Discord.\n" +"Los miembros con el permiso `Administrar Gremio` siempre son considerados moderadores." + +#: src/modules/moderation/settings.py:145 +msgctxt "guildset:mod_role|accepts" +msgid "Moderation role name or id." +msgstr "Nombre o id del rol de moderación." + +#: src/modules/moderation/settings.py:159 +#, possible-python-brace-format +msgctxt "guildset:mod_role|set_response:set" +msgid "" +"Members with {role} will be considered moderators. You may need to grant " +"them access to view moderation commands via the server integration settings." +msgstr "" +"Los miembros con {role} serán considerados moderadores. Es posible que " +"tengas que concederles acceso para ver los comandos de moderación a través " +"de la configuración de integración del servidor." + +#: src/modules/moderation/settings.py:166 +msgctxt "guildset:mod_role|set_response:unset" +msgid "" +"Only members with the 'Manage Guild' permission will be considered " +"moderators." +msgstr "" +"Sólo los miembros con el permiso 'Manage Guild' serán considerados " +"moderadores." + +#: src/modules/moderation/settings.py:178 +msgctxt "guildset:mod_role|formatted:unset" +msgid "Not Set." +msgstr "No está configurado." + +#: src/modules/moderation/settings.py:186 +msgctxt "guildset:admin_role" +msgid "admin_role" +msgstr "rol_admin" + +#: src/modules/moderation/settings.py:189 +msgctxt "guildset:admin_role|desc" +msgid "" +"Server role allowing access to all administrator level functionality in Leo." +msgstr "" +"Función de servidor que permite acceder a todas las funciones de nivel de " +"administrador en Leo." + +#: src/modules/moderation/settings.py:193 +msgctxt "guildset:admin_role|long_desc" +msgid "" +"Members with this role are considered to be server administrators, allowing " +"them to use all of my interfaces and commands, except for managing roles " +"that are above them in the role hierachy. This setting allows giving members" +" administrator-level permissions over my systems, without actually giving " +"the members admin server permissions. Note that the role will also need to " +"be given permission to see the commands through the Discord server " +"integrations interface." +msgstr "" +"Los miembros con este rol son considerados administradores del servidor, " +"permitiéndoles usar todas mis interfaces y comandos, excepto para " +"administrar roles que están por encima de ellos en la jerarquía de roles. " +"Esta configuración permite dar a los miembros permisos de administrador " +"sobre mis sistemas, sin darles permisos de administrador del servidor. Ten " +"en cuenta que el rol también necesitará permiso para ver los comandos a " +"través de la interfaz de integración del servidor Discord." + +#: src/modules/moderation/settings.py:203 +msgctxt "guildset:admin_role|accepts" +msgid "Admin role name or id." +msgstr "Nombre o id del rol de administrador." + +#: src/modules/moderation/settings.py:216 +#, possible-python-brace-format +msgctxt "guildset:admin_role|set_response:set" +msgid "" +"Members with {role} will now be considered admins, and have access to my " +"full interface." +msgstr "" +"Los miembros con {role} serán ahora considerados admins, y tendrán acceso a " +"mi interfaz completa." + +#: src/modules/moderation/settings.py:221 +msgctxt "guildset:admin_role|set_response:unset" +msgid "" +"The admin role has been unset. Only members with administrator permissions " +"will be considered admins." +msgstr "" +"El rol de administrador ha sido desactivado. Sólo los miembros con permisos " +"de administrador serán considerados administradores." diff --git a/locales/es_419/LC_MESSAGES/monthly-gui.po b/locales/es_419/LC_MESSAGES/monthly-gui.po new file mode 100644 index 000000000000..f5223000bda4 --- /dev/null +++ b/locales/es_419/LC_MESSAGES/monthly-gui.po @@ -0,0 +1,187 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/gui/cards/monthly.py:40 +msgctxt "skin:monthlystats|mode:study|title" +msgid "STUDY HOURS" +msgstr "HORAS DE ESTUDIO" + +#: src/gui/cards/monthly.py:44 +msgctxt "skin:monthlystats|mode:voice|title" +msgid "VOICE CHANNEL ACTIVITY" +msgstr "ACTIVIDAD DE CANAL DE VOZ" + +#: src/gui/cards/monthly.py:48 +msgctxt "skin:monthlystats|mode:text|title" +msgid "MESSAGE ACTIVITY" +msgstr "ACTIVIDAD DE MENSAJES" + +#: src/gui/cards/monthly.py:52 +msgctxt "skin::monthlystats|mode:anki|title" +msgid "CARDS REVIEWED" +msgstr "TARJETAS REVISADAS" + +#: src/gui/cards/monthly.py:119 +#, possible-python-brace-format +msgctxt "ui:monthlystats|mode:study|bar_value" +msgid "{value} H" +msgstr "" + +#: src/gui/cards/monthly.py:123 +#, possible-python-brace-format +msgctxt "ui:monthlystats|mode:voice|bar_value" +msgid "{value} H" +msgstr "" + +#: src/gui/cards/monthly.py:127 +#, possible-python-brace-format +msgctxt "ui:monthlystats|mode:text|bar_value" +msgid "{value} M" +msgstr "" + +#: src/gui/cards/monthly.py:131 +#, possible-python-brace-format +msgctxt "ui:monthlystats|mode:anki|bar_value" +msgid "{value} C" +msgstr "" + +#: src/gui/cards/monthly.py:153 +msgctxt "skin:monthlystats|weekdays" +msgid "M,T,W,T,F,S,S" +msgstr "L,M,X,J,V,S,D" + +#: src/gui/cards/monthly.py:163 +#, possible-python-brace-format +msgctxt "skin:monthlystats|mode:study|summary:this_month" +msgid "THIS MONTH: {amount} HOURS" +msgstr "ESTE MES: {amount} HORAS" + +#: src/gui/cards/monthly.py:167 +#, possible-python-brace-format +msgctxt "skin:monthlystats|mode:voice|summary:this_month" +msgid "THIS MONTH: {amount} HOURS" +msgstr "ESTE MES: {amount} HORAS" + +#: src/gui/cards/monthly.py:171 +#, possible-python-brace-format +msgctxt "skin:monthlystats|mode:text|summary:this_month" +msgid "THIS MONTH: {amount} MESSAGES" +msgstr "ESTE MES: {amount} MENSAJES" + +#: src/gui/cards/monthly.py:175 +#, possible-python-brace-format +msgctxt "skin:monthlystats|mode:text|summary:this_month" +msgid "THIS MONTH: {amount} CARDS" +msgstr "ESTE MES: {amount} TARJETAS" + +#: src/gui/cards/monthly.py:197 +#, possible-python-brace-format +msgctxt "skin:monthlystats|mode:study|summary:last_month" +msgid "LAST MONTH: {amount} HOURS" +msgstr "MES PASADO: {amount} HORAS" + +#: src/gui/cards/monthly.py:201 +#, possible-python-brace-format +msgctxt "skin:monthlystats|mode:voice|summary:last_month" +msgid "LAST MONTH: {amount} HOURS" +msgstr "MES PASADO: {amount} HORAS" + +#: src/gui/cards/monthly.py:205 +#, possible-python-brace-format +msgctxt "skin:monthlystats|mode:text|summary:last_month" +msgid "LAST MONTH: {amount} MESSAGES" +msgstr "MES PASADO: {amount} MENSAJES" + +#: src/gui/cards/monthly.py:209 +#, possible-python-brace-format +msgctxt "skin:monthlystats|mode:text|summary:last_month" +msgid "LAST MONTH: {amount} CARDS" +msgstr "MES PASADO: {amount} TARJETAS" + +#: src/gui/cards/monthly.py:300 +msgctxt "ui:monthlystats|stats:current_streak|key" +msgid "Current Streak:" +msgstr "Racha actual:" + +#: src/gui/cards/monthly.py:304 +#, possible-python-brace-format +msgctxt "ui:monthlystats|stats:current_streak|value" +msgid "{count} days" +msgstr "{count} días" + +#: src/gui/cards/monthly.py:308 +msgctxt "ui:monthlystats|stats:longest_streak|key" +msgid "Longest Streak:" +msgstr "Racha más larga:" + +#: src/gui/cards/monthly.py:312 +#, possible-python-brace-format +msgctxt "ui:monthlystats|stats:longest_streak|value" +msgid "{count} days" +msgstr "{count} días" + +#: src/gui/cards/monthly.py:316 +msgctxt "ui:monthlystats|stats:daily_average|key" +msgid "Daily Average:" +msgstr "Media diaria:" + +#: src/gui/cards/monthly.py:320 +#, possible-python-brace-format +msgctxt "skin:monthlystats|mode:study|stats:daily_average|value" +msgid "{count} hours" +msgstr "{count} horas" + +#: src/gui/cards/monthly.py:324 +#, possible-python-brace-format +msgctxt "skin:monthlystats|mode:voice|stats:daily_average|value" +msgid "{count} hours" +msgstr "{count} horas" + +#: src/gui/cards/monthly.py:328 +#, possible-python-brace-format +msgctxt "skin:monthlystats|mode:text|stats:daily_average|value" +msgid "{count} msgs" +msgstr "{count} mensajes" + +#: src/gui/cards/monthly.py:332 +#, possible-python-brace-format +msgctxt "skin:monthlystats|mode:anki|stats:daily_average|value" +msgid "{count} cards" +msgstr "{count} tarjetas" + +#: src/gui/cards/monthly.py:342 +msgctxt "ui:monthlystats|stats:days_active|key" +msgid "Days Active:" +msgstr "Días de actividad:" + +#: src/gui/cards/monthly.py:346 +#, possible-python-brace-format +msgctxt "ui:monthlystats|stats:days_active|value" +msgid "{count} days" +msgstr "{count} días" + +#: src/gui/cards/monthly.py:359 +#, possible-python-brace-format +msgctxt "skin:monthlystats|footer" +msgid "Monthly Statistics • As of {day} {month} • {name} {discrim}" +msgstr "Estadísticas Mensuales • A partir de {day} {month} • {name} {discrim}" diff --git a/locales/es_419/LC_MESSAGES/profile-gui.po b/locales/es_419/LC_MESSAGES/profile-gui.po new file mode 100644 index 000000000000..9b3f5f6687a5 --- /dev/null +++ b/locales/es_419/LC_MESSAGES/profile-gui.po @@ -0,0 +1,53 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/gui/cards/profile.py:79 +msgctxt "skin:profile|header:profile" +msgid "PROFILE" +msgstr "PERFIL" + +#: src/gui/cards/profile.py:83 +msgctxt "skin:profile|header:achievements" +msgid "ACHIEVEMENTS" +msgstr "LOGROS" + +#: src/gui/cards/profile.py:134 +msgctxt "skin:profile|field:rank_unranked_text" +msgid "UNRANKED" +msgstr "SIN RANGO" + +#: src/gui/cards/profile.py:138 +#, possible-python-brace-format +msgctxt "skin:profile|field:rank_nextrank_text" +msgid "NEXT RANK: {name} {rangestr}" +msgstr "SIGUIENTE RANGO: {name} {rangestr}" + +#: src/gui/cards/profile.py:142 +msgctxt "skin:profile|field:rank_noranks_text" +msgid "NO RANKS AVAILABLE" +msgstr "NO HAY RANGOS DISPONIBLES" + +#: src/gui/cards/profile.py:146 +msgctxt "skin:profile|field:rank_maxrank_text" +msgid "YOU HAVE REACHED THE MAXIMUM RANK" +msgstr "HAS ALCANZADO EL RANGO MÁXIMO" diff --git a/locales/es_419/LC_MESSAGES/ranks.po b/locales/es_419/LC_MESSAGES/ranks.po new file mode 100644 index 000000000000..92b76b5dc98c --- /dev/null +++ b/locales/es_419/LC_MESSAGES/ranks.po @@ -0,0 +1,1267 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Ronin DeMentira, 2023 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Ronin DeMentira, 2023\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/modules/ranks/cog.py:76 +msgctxt "cmd:configure_ranks|param:rank_type|choice:voice" +msgid "Voice" +msgstr "Voz" + +#: src/modules/ranks/cog.py:77 +msgctxt "cmd:configure_ranks|param:rank_type|choice:xp" +msgid "XP" +msgstr "XP" + +#: src/modules/ranks/cog.py:78 +msgctxt "cmd:configure_ranks|param:rank_type|choice:message" +msgid "Message" +msgstr "Mensaje" + +#: src/modules/ranks/cog.py:351 +#, possible-python-brace-format +msgctxt "eventlog|event:rank_check|error:remove_failed" +msgid "Failed to remove old rank roles: `{error}`" +msgstr "Error al eliminar roles de rango antiguos: `{error}`." + +#: src/modules/ranks/cog.py:375 +#, possible-python-brace-format +msgctxt "eventlog|event:rank_check|error:add_failed" +msgid "Failed to add new rank role: `{error}`" +msgstr "Error al añadir un nuevo rol de rango: `{error}`." + +#: src/modules/ranks/cog.py:380 +msgctxt "eventlog|event:rank_check|error:add_impossible" +msgid "" +"Could not assign new activity rank role. Lacking permissions or invalid " +"role." +msgstr "" +"No se ha podido asignar un nuevo rol de rango de actividad. Faltan permisos " +"o el rol no es válido." + +#: src/modules/ranks/cog.py:386 +msgctxt "eventlog|event:rank_check|error:permissions" +msgid "" +"Could not update activity rank roles, I lack the 'Manage Roles' permission." +msgstr "" +"No se han podido actualizar los roles de rango de actividad, me falta el " +"permiso de 'Gestionar Roles'." + +#: src/modules/ranks/cog.py:398 +msgctxt "eventlog|event:rank_check|name" +msgid "Member Activity Rank Roles Updated" +msgstr "Miembro Actividad Rango Roles Actualizado" + +#: src/modules/ranks/cog.py:478 +#, possible-python-brace-format +msgctxt "eventlog|event:new_rank|error:remove_failed" +msgid "Failed to remove old rank roles: `{error}`" +msgstr "Error al eliminar roles de rango antiguos: `{error}`." + +#: src/modules/ranks/cog.py:502 +#, possible-python-brace-format +msgctxt "eventlog|event:new_rank|error:add_failed" +msgid "Failed to add new rank role: `{error}`" +msgstr "Error al añadir un nuevo rol de rango: `{error}`." + +#: src/modules/ranks/cog.py:507 +msgctxt "eventlog|event:new_rank|error:add_impossible" +msgid "" +"Could not assign new activity rank role. Lacking permissions or invalid " +"role." +msgstr "" +"No se ha podido asignar un nuevo rol de rango de actividad. Faltan permisos " +"o el rol no es válido." + +#: src/modules/ranks/cog.py:513 +msgctxt "eventlog|event:new_rank|error:permissions" +msgid "" +"Could not update activity rank roles, I lack the 'Manage Roles' permission." +msgstr "" +"No se han podido actualizar los roles de rango de actividad, me falta el " +"permiso de 'Gestionar Roles'." + +#: src/modules/ranks/cog.py:548 +msgctxt "eventlog|event:new_rank|error:notify_failed" +msgid "Could not notify member." +msgstr "No se ha podido notificar al miembro." + +#: src/modules/ranks/cog.py:555 +msgctxt "eventlog|event:new_rank|name" +msgid "Member Achieved Activity rank" +msgstr "Miembro Rango de actividad alcanzado" + +#: src/modules/ranks/cog.py:559 +#, possible-python-brace-format +msgctxt "eventlog|event:new_rank|desc" +msgid "{member} earned the new activity rank {rank}" +msgstr "{member} obtuvo el nuevo rango de actividad {rank}" + +#: src/modules/ranks/cog.py:587 +msgctxt "event:rank_update|embed:notify" +msgid "New Activity Rank Attained!" +msgstr "¡Nuevo rango de actividad alcanzado!" + +#: src/modules/ranks/cog.py:692 +msgctxt "rank_refresh|error:cannot_chunk|desc" +msgid "Could not retrieve member list from Discord. Please try again later." +msgstr "" +"No se ha podido recuperar la lista de miembros de Discord. Vuelve a " +"intentarlo más tarde." + +#: src/modules/ranks/cog.py:705 +msgctxt "rank_refresh|error:roles_dne|desc" +msgid "Some ranks have invalid or deleted roles! Please remove them first." +msgstr "" +"¡Algunos rangos tienen roles inválidos o borrados! Por favor, elimínelos " +"primero." + +#: src/modules/ranks/cog.py:715 +#, possible-python-brace-format +msgctxt "rank_refresh|error:unassignable_roles|desc" +msgid "" +"I have insufficient permissions to assign the following role(s):\n" +"{roles}" +msgstr "" +"No tengo permisos suficientes para asignar el/los siguiente/s rol(es):\n" +"{roles}" + +#: src/modules/ranks/cog.py:785 +msgctxt "rank_refresh|remove_roles|audit" +msgid "Removing invalid rank role." +msgstr "Eliminación del rol de rango no válido." + +#: src/modules/ranks/cog.py:799 +#, possible-python-brace-format +msgctxt "rank_refresh|remove_roles|small_error" +msgid "*Could not remove ranks from {member}*" +msgstr "*No se han podido eliminar rangos de {member}*" + +#: src/modules/ranks/cog.py:806 +msgctxt "rank_refresh|remove_roles|error:too_many_issues" +msgid "" +"Too many issues occurred while removing ranks! Please check my permissions " +"and try again in a few minutes." +msgstr "" +"Se han producido demasiados problemas al eliminar rangos. Por favor, " +"comprueba mis permisos e inténtalo de nuevo en unos minutos." + +#: src/modules/ranks/cog.py:820 +msgctxt "rank_refresh|add_roles|audit" +msgid "Adding rank role from refresh" +msgstr "Añadir rol de rango desde actualización" + +#: src/modules/ranks/cog.py:834 +#, possible-python-brace-format +msgctxt "rank_refresh|add_roles|small_error" +msgid "*Could not add {role} to {member}*" +msgstr "*No se ha podido añadir {role} a {member}*." + +#: src/modules/ranks/cog.py:841 +msgctxt "rank_refresh|add_roles|error:too_many_issues" +msgid "" +"Too many issues occurred while adding ranks! Please check my permissions and" +" try again in a few minutes." +msgstr "" +"Se han producido demasiados problemas al añadir rangos. Por favor, comprueba" +" mis permisos e inténtalo de nuevo en unos minutos." + +#: src/modules/ranks/cog.py:869 +msgctxt "eventlog|event:rank_refresh|name" +msgid "Activity Ranks Refreshed" +msgstr "Rangos de actividad renovados" + +#: src/modules/ranks/cog.py:873 +#, possible-python-brace-format +msgctxt "eventlog|event:rank_refresh|desc" +msgid "" +"{actor} refresh member activity ranks.\n" +"**`{removed}`** invalid rank roles removed.\n" +"**`{added}`** new rank roles added." +msgstr "" +"{actor} actualizar rangos de actividad de los miembros.\n" +"**`{removed}`** funciones de rango no válidas eliminadas.\n" +"**`{added}`** nuevos rangos añadidos." + +#. ---------- Commands ---------- +#: src/modules/ranks/cog.py:884 +msgctxt "cmd:ranks" +msgid "ranks" +msgstr "rangos" + +#: src/modules/ranks/cog.py:916 +msgctxt "cmd:configure_ranks" +msgid "ranks" +msgstr "rangos" + +#: src/modules/ranks/cog.py:917 +msgctxt "cmd:configure_ranks|desc" +msgid "Configure Activity Ranks" +msgstr "Configurar los rangos de actividad" + +#: src/modules/ranks/cog.py:976 +#, possible-python-brace-format +msgctxt "" +"cmd:configure_ranks|response:updated|setting:notification|withdm_withchannel" +msgid "" +"Rank update notifications will be sent via **direct message** when possible," +" otherwise to {channel}" +msgstr "" +"Las notificaciones de actualización de rango se enviarán a través de " +"**mensaje directo** cuando sea posible, de lo contrario a {channel}." + +#: src/modules/ranks/cog.py:982 +msgctxt "" +"cmd:configure_ranks|response:updated|setting:notification|withdm_nochannel" +msgid "Rank update notifications will be sent via **direct message**." +msgstr "" +"Las notificaciones de actualización de rango se enviarán a través de " +"**mensaje directo**." + +#: src/modules/ranks/cog.py:988 +#, possible-python-brace-format +msgctxt "" +"cmd:configure_ranks|response:updated|setting:notification|nodm_withchannel" +msgid "Rank update notifications will be sent to {channel}." +msgstr "Las notificaciones de actualización de rango se enviarán a {channel}." + +#: src/modules/ranks/cog.py:993 +msgctxt "" +"cmd:configure_ranks|response:updated|setting:notification|nodm_nochannel" +msgid "Members will not be notified when their activity rank updates." +msgstr "" +"Los miembros no recibirán ninguna notificación cuando se actualice su rango " +"de actividad." + +#: src/modules/ranks/utils.py:13 +#, possible-python-brace-format +msgctxt "formatstring:rank_message|key:role_name" +msgid "{role_name}" +msgstr "{role_name}" + +#: src/modules/ranks/utils.py:14 +#, possible-python-brace-format +msgctxt "formatstring:rank_message|key:guild_name" +msgid "{guild_name}" +msgstr "{guild_name}" + +#: src/modules/ranks/utils.py:15 +#, possible-python-brace-format +msgctxt "formatstring:rank_message|key:user_name" +msgid "{user_name}" +msgstr "{user_name}" + +#: src/modules/ranks/utils.py:16 +#, possible-python-brace-format +msgctxt "formatstring:rank_message|key:role_id" +msgid "{role_id}" +msgstr "{role_id}" + +#: src/modules/ranks/utils.py:17 +#, possible-python-brace-format +msgctxt "formatstring:rank_message|key:guild_id" +msgid "{guild_id}" +msgstr "{guild_id}" + +#: src/modules/ranks/utils.py:18 +#, possible-python-brace-format +msgctxt "formatstring:rank_message|key:user_id" +msgid "{user_id}" +msgstr "{user_id}" + +#: src/modules/ranks/utils.py:19 +#, possible-python-brace-format +msgctxt "formatstring:rank_message|key:role_mention" +msgid "{role_mention}" +msgstr "{role_mention}" + +#: src/modules/ranks/utils.py:20 +#, possible-python-brace-format +msgctxt "formatstring:rank_message|key:user_mention" +msgid "{user_mention}" +msgstr "{user_mention}" + +#: src/modules/ranks/utils.py:21 +#, possible-python-brace-format +msgctxt "formatstring:rank_message|key:requires" +msgid "{rank_requires}" +msgstr "{rank_requires}" + +#: src/modules/ranks/settings.py:27 +msgctxt "guildset:rank_type|output:voice" +msgid "`Voice`" +msgstr "`Voice`" + +#: src/modules/ranks/settings.py:28 +msgctxt "guildset:rank_type|output:xp" +msgid "`Exp`" +msgstr "`Exp`" + +#: src/modules/ranks/settings.py:29 +msgctxt "guildset:rank_type|output:message" +msgid "`Messages`" +msgstr "`Messages`" + +#: src/modules/ranks/settings.py:32 +msgctxt "guildset:rank_type|input_format:voice" +msgid "Voice" +msgstr "Voz" + +#: src/modules/ranks/settings.py:33 +msgctxt "guildset:rank_type|input_format:xp" +msgid "Exp" +msgstr "Exp" + +#: src/modules/ranks/settings.py:34 +msgctxt "guildset:rank_type|input_format:message" +msgid "Messages" +msgstr "Mensajes" + +#: src/modules/ranks/settings.py:37 +msgctxt "guildset:rank_type|input_pattern:voice" +msgid "voice|study" +msgstr "voz|estudio" + +#: src/modules/ranks/settings.py:38 +msgctxt "guildset:rank_type|input_pattern:voice" +msgid "text|message|messages" +msgstr "texto|mensaje|mensajes" + +#: src/modules/ranks/settings.py:39 +msgctxt "guildset:rank_type|input_pattern:xp" +msgid "xp|exp|experience" +msgstr "xp|exp|experiencia" + +#: src/modules/ranks/settings.py:47 +msgctxt "guildset:rank_type" +msgid "rank_type" +msgstr "tipo_rango" + +#: src/modules/ranks/settings.py:50 +msgctxt "guildset:rank_type|desc" +msgid "" +"The type of statistic (messages | xp | voice hours) used to determine " +"activity ranks." +msgstr "" +"Tipo de estadística (mensajes | xp | horas de voz) utilizada para determinar" +" los rangos de actividad." + +#: src/modules/ranks/settings.py:54 +msgctxt "guildset:rank_type|long_desc" +msgid "" +"Which statistic is used to reward activity ranks.\n" +"`Voice` is the number of hours active in tracked voice channels, `Exp` is a measure of message activity, and `Message` is a simple count of messages sent." +msgstr "" +"¿Qué estadística se utiliza para recompensar los rangos de actividad?\n" +"`Voice` es el número de horas activas en los canales de voz rastreados, `Exp` es una medida de la actividad de mensajes y `Message` es un simple recuento de los mensajes enviados." + +#: src/modules/ranks/settings.py:61 +msgctxt "guildset:rank_type|accepts" +msgid "Voice/Exp/Messages" +msgstr "Voz/Exp/Mensajes" + +#: src/modules/ranks/settings.py:73 +msgctxt "guildset:rank_type|set_response|type:voice" +msgid "Members will be awarded activity ranks based on `Voice Activity`." +msgstr "" +"Los miembros recibirán rangos de actividad basados en la `Voice Activity`." + +#: src/modules/ranks/settings.py:78 +msgctxt "guildset:rank_type|set_response|type:messages" +msgid "Members will be awarded activity ranks based on `Messages Sent`." +msgstr "" +"Los miembros recibirán rangos de actividad en función de los `Messages " +"Sent`." + +#: src/modules/ranks/settings.py:83 +msgctxt "guildset:rank_type|set_response|type:xp" +msgid "Members will be awarded activity ranks based on `Message XP Earned`." +msgstr "" +"A los miembros se les otorgarán rangos de actividad basados en `Message XP " +"Earned`" + +#: src/modules/ranks/settings.py:93 +#, possible-python-brace-format +msgctxt "guildset:rank_channel|set_using" +msgid "{cmd} or option menu below." +msgstr "{cmd} o menú de opciones de abajo." + +#: src/modules/ranks/settings.py:106 +msgctxt "guildset:rank_channel" +msgid "rank_channel" +msgstr "rango_canal" + +#: src/modules/ranks/settings.py:109 +msgctxt "guildset:rank_channel|desc" +msgid "The channel in which to send rank update notifications." +msgstr "" +"El canal en el que se enviarán las notificaciones de actualización de rango." + +#: src/modules/ranks/settings.py:113 +msgctxt "guildset:rank_channel|long_desc" +msgid "" +"Whenever a user advances a rank, a congratulatory message will be sent in " +"this channel, if set. If `dm_ranks` is enabled, this channel will only be " +"used when the user has opted not to receive DM notifications, or is " +"otherwise unreachable." +msgstr "" +"Siempre que un usuario suba de rango, se enviará un mensaje de felicitación " +"en este canal, si está configurado. Si `dm_ranks` está activado, este canal " +"sólo se utilizará cuando el usuario haya optado por no recibir " +"notificaciones de DM, o esté ilocalizable." + +#: src/modules/ranks/settings.py:119 +msgctxt "guildset:rank_channel|accepts" +msgid "Rank notification channel name or id." +msgstr "Nombre o id del canal de notificación de rango." + +#: src/modules/ranks/settings.py:131 +#, possible-python-brace-format +msgctxt "guildset:rank_channel|set_response|set" +msgid "Rank update messages will be sent to {channel}." +msgstr "Los mensajes de actualización de rango se enviarán a {channel}." + +#: src/modules/ranks/settings.py:136 +msgctxt "guildset:rank_channel|set_response|unset" +msgid "" +"Rank update messages will be ignored or sent via DM (if `dm_ranks` is " +"enabled)." +msgstr "" +"Los mensajes de actualización de rangos serán ignorados o enviados vía DM " +"(si `dm_ranks` está habilitado)." + +#: src/modules/ranks/settings.py:146 +#, possible-python-brace-format +msgctxt "guildset:rank_channel|set_using" +msgid "{cmd} or channel selector below." +msgstr "{cmd} o selector de canal abajo." + +#: src/modules/ranks/settings.py:157 +msgctxt "guildset:dm_ranks" +msgid "dm_ranks" +msgstr "dm_rangos" + +#: src/modules/ranks/settings.py:160 +msgctxt "guildset:dm_ranks|desc" +msgid "" +"Whether to send rank advancement notifications through direct messages." +msgstr "" +"Si desea enviar notificaciones de ascenso de rango a través de mensajes " +"directos." + +#: src/modules/ranks/settings.py:164 +msgctxt "guildset:dm_ranks|long_desc" +msgid "" +"If enabled, congratulatory messages for rank advancement will be direct " +"messaged to the user, instead of being sent to the configured " +"`rank_channel`." +msgstr "" +"Si se activa, los mensajes de felicitación por ascenso de rango se enviarán " +"directamente al usuario, en lugar de enviarse al `rank_channel` configurado." + +#: src/modules/ranks/settings.py:178 +msgctxt "guildset:dm_ranks|response:true" +msgid "I will direct message members upon rank advancement." +msgstr "Enviaré mensajes directos a los miembros al subir de rango." + +#: src/modules/ranks/settings.py:183 +msgctxt "guildset:dm_ranks|response:false" +msgid "I will never direct message members upon rank advancement." +msgstr "Nunca enviaré mensajes directos a los miembros que suban de rango." + +#: src/modules/ranks/ui/preview.py:75 +msgctxt "ui:rank_preview|button:edit|error:role_deleted" +msgid "" +"The role underlying this rank no longer exists! Please select a new role " +"from the role menu." +msgstr "" +"El rol subyacente a este rango ya no existe. Seleccione un nuevo rol en el " +"menú de funciones." + +#: src/modules/ranks/ui/preview.py:82 +msgctxt "ui:rank_preview|button:edit|error:role_not_assignable" +msgid "" +"I do not have permission to edit the underlying role! Please select a new " +"role from the role menu, or ensure my top role is above the selected role." +msgstr "" +"¡No tengo permiso para editar el rol subyacente! Por favor, seleccione un " +"nuevo rol en el menú de roles, o asegúrese de que mi rol principal está por " +"encima del rol seleccionado." + +#: src/modules/ranks/ui/preview.py:91 +msgctxt "ui:rank_preview|button:edit|error|title" +msgid "Failed to edit rank!" +msgstr "¡Error al editar el rango!" + +#: src/modules/ranks/ui/preview.py:109 +msgctxt "ui:rank_preview|button:edit|label" +msgid "Edit" +msgstr "Editar" + +#: src/modules/ranks/ui/preview.py:142 +#, possible-python-brace-format +msgctxt "ui:rank_preview|button:delete|response:success|description|with_role" +msgid "" +"You have deleted the rank {mention}. Press the button below to also delete " +"the role." +msgstr "" +"Has eliminado el rango {mention}. Pulsa el botón de abajo para eliminar " +"también el rol." + +#: src/modules/ranks/ui/preview.py:147 +#, possible-python-brace-format +msgctxt "ui:rank_preview|button:delete|response:success|description|no_role" +msgid "You have deleted the rank {mention}." +msgstr "Has eliminado el rango {mention}." + +#: src/modules/ranks/ui/preview.py:153 +msgctxt "ui:rank_preview|button:delete|response:success|title" +msgid "Rank Deleted" +msgstr "Rango Eliminado" + +#: src/modules/ranks/ui/preview.py:163 +msgctxt "" +"ui:rank_preview|button:delete|response:success|button:delete_role|label" +msgid "Delete Role" +msgstr "Eliminar rol" + +#: src/modules/ranks/ui/preview.py:179 +#, possible-python-brace-format +msgctxt "" +"ui:rank_preview|button:delete|response:success|button:delete_role|response:errored|desc" +msgid "" +"You have deleted the rank **{name}**! Could not delete the role due to an " +"unknown error." +msgstr "" +"¡Has eliminado el rango **{name}**! No se ha podido eliminar el rol debido a" +" un error desconocido." + +#: src/modules/ranks/ui/preview.py:185 +#, possible-python-brace-format +msgctxt "" +"ui:rank_preview|button:delete|response:success|button:delete_role|response:success|desc" +msgid "You have deleted the rank **{name}** along with the underlying role." +msgstr "Has eliminado el rango **{name}** junto con el rol subyacente." + +#: src/modules/ranks/ui/preview.py:202 +msgctxt "ui:rank_preview|button:delete|label" +msgid "Delete Rank" +msgstr "Borrar rango" + +#: src/modules/ranks/ui/preview.py:232 +msgctxt "ui:rank_preview|menu:roles|error:not_assignable|suberror:is_default" +msgid "The @everyone role cannot be removed, and cannot be a rank!" +msgstr "El rol @everyone no puede ser eliminado, ¡y no puede ser un rango!" + +#: src/modules/ranks/ui/preview.py:237 +msgctxt "ui:rank_preview|menu:roles|error:not_assignable|suberror:is_managed" +msgid "" +"The role is managed by another application or integration, and cannot be a " +"rank!" +msgstr "" +"El rol es gestionado por otra aplicación o integración, ¡y no puede ser un " +"rango!" + +#: src/modules/ranks/ui/preview.py:242 +msgctxt "" +"ui:rank_preview|menu:roles|error:not_assignable|suberror:no_permissions" +msgid "" +"I do not have the `MANAGE_ROLES` permission in this server, so I cannot " +"manage ranks!" +msgstr "" +"No tengo el permiso `MANAGE_ROLES` en este servidor, ¡así que no puedo " +"gestionar rangos!" + +#: src/modules/ranks/ui/preview.py:247 +msgctxt "ui:rank_preview|menu:roles|error:not_assignable|suberror:above_me" +msgid "" +"This role is above my top role in the role hierarchy, so I cannot add or " +"remove it!" +msgstr "" +"Este rol está por encima de mi rol superior en la jerarquía de roles, por lo" +" que no puedo añadirlo ni eliminarlo." + +#: src/modules/ranks/ui/preview.py:253 +msgctxt "ui:rank_preview|menu:roles|error:not_assignable|suberror:other" +msgid "I am not able to manage the selected role, so it cannot be a rank!" +msgstr "" +"No puedo gestionar el rol seleccionado, por lo que no puede ser un rango." + +#: src/modules/ranks/ui/preview.py:259 +msgctxt "ui:rank_preview|menu:roles|error:not_assignable|title" +msgid "Could not update rank!" +msgstr "¡No se puede actualizar el rango!" + +#: src/modules/ranks/ui/preview.py:269 +msgctxt "ui:rank_preview|menu:roles|placeholder" +msgid "Update Rank Role" +msgstr "Actualizar el rol de rango" + +#: src/modules/ranks/ui/preview.py:281 +msgctxt "ui:rank_preview|embed|title" +msgid "Rank Information" +msgstr "Información de rango" + +#: src/modules/ranks/ui/preview.py:288 +msgctxt "ui:rank_preview|embed|field:role|name" +msgid "Role" +msgstr "Rol" + +#: src/modules/ranks/ui/preview.py:295 +msgctxt "ui:rank_preview|embed|field:required|name" +msgid "Required" +msgstr "Requerido" + +#: src/modules/ranks/ui/preview.py:302 +msgctxt "ui:rank_preview|embed|field:reward|name" +msgid "Reward" +msgstr "Recompensa" + +#: src/modules/ranks/ui/preview.py:311 +msgctxt "ui:rank_preview|embed|field:message" +msgid "Congratulatory Message" +msgstr "Mensaje de felicitación" + +#: src/modules/ranks/ui/refresh.py:134 +msgctxt "ui:refresh_ranks|embed|title:errored" +msgid "Could not refresh the server ranks!" +msgstr "No se han podido actualizar los rangos del servidor." + +#: src/modules/ranks/ui/refresh.py:142 +msgctxt "ui:refresh_ranks|embed|title:done" +msgid "Rank refresh complete!" +msgstr "¡Actualización de rangos completada!" + +#: src/modules/ranks/ui/refresh.py:148 +msgctxt "ui:refresh_ranks|embed|title:working" +msgid "Refreshing your server ranks, please wait." +msgstr "Actualizando los rangos de su servidor, por favor espere." + +#: src/modules/ranks/ui/refresh.py:166 +#, possible-python-brace-format +msgctxt "ui:refresh_ranks|embed|line:ranks" +msgid "**Loading server ranks:** {emoji}" +msgstr "**Cargando rangos del servidor:** {emoji}" + +#: src/modules/ranks/ui/refresh.py:176 +#, possible-python-brace-format +msgctxt "ui:refresh_ranks|embed|line:members" +msgid "**Loading server members:** {emoji}" +msgstr "**Cargando miembros del servidor:** {emoji}" + +#: src/modules/ranks/ui/refresh.py:186 +#, possible-python-brace-format +msgctxt "ui:refresh_ranks|embed|line:roles" +msgid "**Loading rank roles:** {emoji}" +msgstr "**Cargando roles de rango:** {emoji}" + +#: src/modules/ranks/ui/refresh.py:196 +#, possible-python-brace-format +msgctxt "ui:refresh_ranks|embed|line:compute" +msgid "**Computing correct ranks:** {emoji}" +msgstr "**Calculando rangos correctos:** {emoji}" + +#: src/modules/ranks/ui/refresh.py:207 +msgctxt "ui:refresh_ranks|embed|field:remove|name" +msgid "Removing invalid rank roles from members" +msgstr "Eliminar roles de rango inválidos de los miembros" + +#: src/modules/ranks/ui/refresh.py:211 +#, possible-python-brace-format +msgctxt "ui:refresh_ranks|embed|field:remove|value" +msgid "{progress} {done}/{total} removed" +msgstr "{progress} {done}/{total} eliminado" + +#: src/modules/ranks/ui/refresh.py:222 +#, possible-python-brace-format +msgctxt "ui:refresh_ranks|embed|line:remove" +msgid "**Removed invalid ranks:** {done}/{target}" +msgstr "**Remover rangos inválidos:** {done}/{target}" + +#: src/modules/ranks/ui/refresh.py:230 +msgctxt "ui:refresh_ranks|embed|field:add|name" +msgid "Giving members their rank roles" +msgstr "Dar a los miembros sus roles de rango" + +#: src/modules/ranks/ui/refresh.py:234 +#, possible-python-brace-format +msgctxt "ui:refresh_ranks|embed|field:add|value" +msgid "{progress} {done}/{total} given" +msgstr "{progress} {done}/{total} dado" + +#: src/modules/ranks/ui/refresh.py:245 +#, possible-python-brace-format +msgctxt "ui:refresh_ranks|embed|line:add" +msgid "**Updated member ranks:** {done}/{target}" +msgstr "**Rangos de miembros actualizados:** {done}/{target}" + +#: src/modules/ranks/ui/config.py:42 +msgctxt "ui:rankconfigui|check|not_permitted" +msgid "You have insufficient server permissions to use this UI!" +msgstr "No tiene permisos suficientes para utilizar esta interfaz." + +#: src/modules/ranks/ui/config.py:64 +msgctxt "ui:rank_config|button:overview|label" +msgid "Edit Ranks" +msgstr "Editar rangos" + +#: src/modules/ranks/ui/config.py:83 +msgctxt "ui:rank_config|menu:types|placeholder" +msgid "Select Statistic Type" +msgstr "Seleccione el tipo de estadística" + +#: src/modules/ranks/ui/config.py:91 +msgctxt "ui:rank_config|menu:types|option:voice" +msgid "Voice Activity" +msgstr "Actividad de voz" + +#: src/modules/ranks/ui/config.py:99 +msgctxt "ui:rank_config|menu:types|option:xp" +msgid "XP Earned" +msgstr "XP ganada" + +#: src/modules/ranks/ui/config.py:107 +msgctxt "ui:rank_config|menu:types|option:messages" +msgid "Messages Sent" +msgstr "Mensajes enviados" + +#: src/modules/ranks/ui/config.py:128 +msgctxt "ui:rank_config|menu:channels|placeholder" +msgid "Select Rank Notification Channel" +msgstr "Seleccionar canal de notificación de rango" + +#: src/modules/ranks/ui/config.py:136 +msgctxt "ui:rank_config|embed|title" +msgid "Ranks Configuration Panel" +msgstr "Panel de configuración de rangos" + +#: src/modules/ranks/ui/config.py:173 +msgctxt "dash:rank|title" +msgid "Rank Configuration ({commands[admin config ranks]})" +msgstr "Configuración de rangos ({commands[admin config ranks]})" + +#: src/modules/ranks/ui/config.py:177 +msgctxt "dash:rank|dropdown|placeholder" +msgid "Activity Rank Panel" +msgstr "Panel de clasificación de la actividad" + +#: src/modules/ranks/ui/templates.py:20 src/modules/ranks/ui/editor.py:207 +#, possible-python-brace-format +msgctxt "ui:rank_editor|input:message|default|type:voice" +msgid "" +"Congratulations {user_mention}!\n" +"For working hard for **{requires}**, you have achieved the rank of **{role_name}** in **{guild_name}**! Keep up the good work." +msgstr "" +"¡Enhorabuena {user_mention}!\n" +"Por trabajar duro para **{requires}**, ¡has alcanzado el rango de **{role_name}** en **{guild_name}**. Sigue trabajando así de bien. " + +#: src/modules/ranks/ui/templates.py:27 +#, possible-python-brace-format +msgctxt "ui:rank_editor|input:message|default|type:xp" +msgid "" +"Congratulations {user_mention}!\n" +"For earning **{requires}**, you have achieved the guild rank of **{role_name}** in **{guild_name}**!" +msgstr "" +"¡Enhorabuena {user_mention}!\n" +"Por haber conseguido **{requires}**, ¡has alcanzado el rango de gremio de **{role_name}** en **{guild_name}**!" + +#: src/modules/ranks/ui/templates.py:34 +#, possible-python-brace-format +msgctxt "ui:rank_editor|input:message|default|type:msg" +msgid "" +"Congratulations {user_mention}!\n" +"For sending **{requires}**, you have achieved the guild rank of **{role_name}** in **{guild_name}**!" +msgstr "" +"¡Enhorabuena {user_mention}!\n" +"Por enviar **{requires}**, ¡has alcanzado el rango de gremio de **{role_name}** en **{guild_name}**!" + +#: src/modules/ranks/ui/templates.py:47 +msgctxt "rank_autocreate|template|type:study_voice|level:1" +msgid "Voice Level 1 (1h)" +msgstr "Nivel de Voz 1 (1h)" + +#: src/modules/ranks/ui/templates.py:55 +msgctxt "rank_autocreate|template|type:study_voice|level:2" +msgid "Voice Level 2 (3h)" +msgstr "Nivel de Voz 2 (3h)" + +#: src/modules/ranks/ui/templates.py:63 +msgctxt "rank_autocreate|template|type:study_voice|level:3" +msgid "Voice Level 3 (6h)" +msgstr "Nivel de Voz 3 (6h)" + +#: src/modules/ranks/ui/templates.py:71 +msgctxt "rank_autocreate|template|type:study_voice|level:4" +msgid "Voice Level 4 (10h)" +msgstr "Nivel de Voz 4 (10h)" + +#: src/modules/ranks/ui/templates.py:79 +msgctxt "rank_autocreate|template|type:study_voice|level:5" +msgid "Voice Level 5 (20h)" +msgstr "Nivel de Voz 5 (20h)" + +#: src/modules/ranks/ui/templates.py:87 +msgctxt "rank_autocreate|template|type:study_voice|level:6" +msgid "Voice Level 6 (40h)" +msgstr "Nivel de Voz 6 (40h)" + +#: src/modules/ranks/ui/templates.py:95 +msgctxt "rank_autocreate|template|type:study_voice|level:7" +msgid "Voice Level 7 (80h)" +msgstr "Nivel de Voz 7 (80h)" + +#: src/modules/ranks/ui/templates.py:106 +msgctxt "rank_autocreate|template|type:general_voice|level:1" +msgid "Voice Level 1 (1h)" +msgstr "Nivel de Voz 1 (1h)" + +#: src/modules/ranks/ui/templates.py:114 +msgctxt "rank_autocreate|template|type:general_voice|level:2" +msgid "Voice Level 2 (2h)" +msgstr "Nivel de Voz 2 (2h)" + +#: src/modules/ranks/ui/templates.py:122 +msgctxt "rank_autocreate|template|type:general_voice|level:3" +msgid "Voice Level 3 (4h)" +msgstr "Nivel de Voz 3 (4h)" + +#: src/modules/ranks/ui/templates.py:130 +msgctxt "rank_autocreate|template|type:general_voice|level:4" +msgid "Voice Level 4 (8h)" +msgstr "Nivel de Voz 4 (8h)" + +#: src/modules/ranks/ui/templates.py:138 +msgctxt "rank_autocreate|template|type:general_voice|level:5" +msgid "Voice Level 5 (16h)" +msgstr "Nivel de Voz 5 (16h)" + +#: src/modules/ranks/ui/templates.py:146 +msgctxt "rank_autocreate|template|type:general_voice|level:6" +msgid "Voice Level 6 (32h)" +msgstr "Nivel de Voz 6 (32h)" + +#: src/modules/ranks/ui/templates.py:154 +msgctxt "rank_autocreate|template|type:general_voice|level:7" +msgid "Voice Level 7 (64h)" +msgstr "Nivel de Voz 7 (64h)" + +#: src/modules/ranks/ui/templates.py:169 +msgctxt "rank_autocreate|template|type:xp|level:1" +msgid "XP Level 1 (2000)" +msgstr "XP Nivel 1 (2000)" + +#: src/modules/ranks/ui/templates.py:177 +msgctxt "rank_autocreate|template|type:xp|level:2" +msgid "XP Level 2 (4000)" +msgstr "XP Nivel 2 (4000)" + +#: src/modules/ranks/ui/templates.py:185 +msgctxt "rank_autocreate|template|type:xp|level:3" +msgid "XP Level 3 (8000)" +msgstr "XP Nivel 3 (8000)" + +#: src/modules/ranks/ui/templates.py:193 +msgctxt "rank_autocreate|template|type:xp|level:4" +msgid "XP Level 4 (16000)" +msgstr "XP Nivel 4 (16000)" + +#: src/modules/ranks/ui/templates.py:201 +msgctxt "rank_autocreate|template|type:xp|level:5" +msgid "XP Level 5 (32000)" +msgstr "XP Nivel 5 (32000)" + +#: src/modules/ranks/ui/templates.py:209 +msgctxt "rank_autocreate|template|type:xp|level:6" +msgid "XP Level 6 (64000)" +msgstr "XP Nivel 6 (64000)" + +#: src/modules/ranks/ui/templates.py:217 +msgctxt "rank_autocreate|template|type:xp|level:7" +msgid "XP Level 7 (128000)" +msgstr "XP Nivel 7 (128000)" + +#: src/modules/ranks/ui/templates.py:232 +msgctxt "rank_autocreate|template|type:msg|level:1" +msgid "Message Level 1 (200)" +msgstr "Mensaje Nivel 1 (200)" + +#: src/modules/ranks/ui/templates.py:240 +msgctxt "rank_autocreate|template|type:msg|level:2" +msgid "Message Level 2 (400)" +msgstr "Mensaje Nivel 2 (400)" + +#: src/modules/ranks/ui/templates.py:248 +msgctxt "rank_autocreate|template|type:msg|level:3" +msgid "Message Level 3 (800)" +msgstr "Mensaje Nivel 3 (800)" + +#: src/modules/ranks/ui/templates.py:256 +msgctxt "rank_autocreate|template|type:msg|level:4" +msgid "Message Level 4 (1600)" +msgstr "Mensaje Nivel 4 (1600)" + +#: src/modules/ranks/ui/templates.py:264 +msgctxt "rank_autocreate|template|type:msg|level:5" +msgid "Message Level 5 (3200)" +msgstr "Mensaje Nivel 5 (3200)" + +#: src/modules/ranks/ui/templates.py:272 +msgctxt "rank_autocreate|template|type:msg|level:6" +msgid "Message Level 6 (6400)" +msgstr "Mensaje Nivel 6 (6400)" + +#: src/modules/ranks/ui/templates.py:280 +msgctxt "rank_autocreate|template|type:msg|level:7" +msgid "Message Level 7 (12800)" +msgstr "Mensaje Nivel 7 (12800)" + +#: src/modules/ranks/ui/overview.py:97 +msgctxt "ui:rank_overview|button:auto|error:already_created" +msgid "The rank roles have already been created!" +msgstr "¡Los roles de rango ya han sido creados!" + +#: src/modules/ranks/ui/overview.py:105 +msgctxt "ui:rank_overview|button:auto|error:my_permissions" +msgid "I lack the 'Manage Roles' permission required to create rank roles!" +msgstr "" +"No dispongo del permiso \"Gestionar funciones\" necesario para crear " +"funciones de rango." + +#: src/modules/ranks/ui/overview.py:114 +msgctxt "ui:rank_overview|button:auto|error:invalid_template" +msgid "Unable to determine rank role template!" +msgstr "No se ha podido determinar la plantilla del rol de rango." + +#: src/modules/ranks/ui/overview.py:137 +msgctxt "ui:rank_overview|button|auto|role_creation|error:forbidden" +msgid "" +"An error occurred while autocreating rank roles!\n" +"I lack the 'Manage Roles' permission required to create rank roles!" +msgstr "" +"Se ha producido un error al autocrear los roles de rango.\n" +"No dispongo del permiso \"Gestionar funciones\" necesario para crear funciones de rango." + +#: src/modules/ranks/ui/overview.py:145 +msgctxt "ui:rank_overview|button:auto|role_creation|error:unknown" +msgid "" +"An error occurred while autocreating rank roles!\n" +"Please check the server has enough space for new roles and try again." +msgstr "" +"Se ha producido un error al autocrear los roles de rango.\n" +"Por favor, comprueba que el servidor tiene espacio suficiente para nuevos roles e inténtalo de nuevo." + +#: src/modules/ranks/ui/overview.py:152 +#, possible-python-brace-format +msgctxt "ui:rank_overview|button:auto|role_creation|success" +msgid "" +"Successfully created the following rank roles:\n" +"{roles}" +msgstr "" +"Se han creado con éxito los siguientes roles de rango:\n" +"{roles}" + +#: src/modules/ranks/ui/overview.py:162 +msgctxt "ui:rank_overview|button:auto|label" +msgid "Auto Create" +msgstr "Creación automática" + +#: src/modules/ranks/ui/overview.py:178 +msgctxt "ui:rank_overview|button:refresh|label" +msgid "Refresh Member Ranks" +msgstr "Actualizar los rangos de los miembros" + +#: src/modules/ranks/ui/overview.py:190 +msgctxt "ui:rank_overview|button:clear|confirm" +msgid "Are you sure you want to **delete all activity ranks** in this server?" +msgstr "" +"¿Estás seguro de que quieres **borrar todos los rangos de actividad** en " +"este servidor?" + +#: src/modules/ranks/ui/overview.py:195 +msgctxt "ui:rank_overview|button:clear|confirm|button:yes" +msgid "Yes, clear ranks" +msgstr "Sí, resetea los rangos" + +#: src/modules/ranks/ui/overview.py:201 +msgctxt "ui:rank_overview|button:clear|confirm|button:no" +msgid "Cancel" +msgstr "Cancelar" + +#: src/modules/ranks/ui/overview.py:217 +msgctxt "ui:rank_overview|button:clear|label" +msgid "Clear Ranks" +msgstr "Borrar rangos" + +#: src/modules/ranks/ui/overview.py:231 +msgctxt "ui:rank_overview|button:create|error:my_permissions" +msgid "I lack the 'Manage Roles' permission required to create rank roles!" +msgstr "" +"No dispongo del permiso \"Gestionar funciones\" necesario para crear " +"funciones de rango." + +#: src/modules/ranks/ui/overview.py:240 +#, possible-python-brace-format +msgctxt "ui:rank_overview|button:create|success" +msgid "Created a new rank {role}" +msgstr "Creado un nuevo rango {role}" + +#: src/modules/ranks/ui/overview.py:257 +msgctxt "ui:rank_overview|button:create|label" +msgid "Create Rank" +msgstr "Crear rango" + +#: src/modules/ranks/ui/overview.py:300 +msgctxt "ui:rank_overview|menu:roles|error:not_assignable|suberror:is_default" +msgid "The @everyone role cannot be removed, and cannot be a rank!" +msgstr "El rol @everyone no puede ser eliminado, ¡y no puede ser un rango!" + +#: src/modules/ranks/ui/overview.py:305 +msgctxt "ui:rank_overview|menu:roles|error:not_assignable|suberror:is_managed" +msgid "" +"The role is managed by another application or integration, and cannot be a " +"rank!" +msgstr "" +"El rol es gestionado por otra aplicación o integración, ¡y no puede ser un " +"rango!" + +#: src/modules/ranks/ui/overview.py:310 +msgctxt "" +"ui:rank_overview|menu:roles|error:not_assignable|suberror:no_permissions" +msgid "" +"I do not have the `MANAGE_ROLES` permission in this server, so I cannot " +"manage ranks!" +msgstr "" +"No tengo el permiso `MANAGE_ROLES` en este servidor, ¡así que no puedo " +"gestionar rangos!" + +#: src/modules/ranks/ui/overview.py:315 +msgctxt "ui:rank_overview|menu:roles|error:not_assignable|suberror:above_me" +msgid "" +"This role is above my top role in the role hierarchy, so I cannot add or " +"remove it!" +msgstr "" +"Este rol está por encima de mi rol superior en la jerarquía de roles, por lo" +" que no puedo añadirlo ni eliminarlo." + +#: src/modules/ranks/ui/overview.py:321 +msgctxt "ui:rank_overview|menu:roles|error:not_assignable|suberror:other" +msgid "I am not able to manage the selected role, so it cannot be a rank!" +msgstr "" +"No puedo gestionar el rol seleccionado, por lo que no puede ser un rango." + +#: src/modules/ranks/ui/overview.py:327 +msgctxt "ui:rank_overview|menu:roles|error:not_assignable|title" +msgid "Could not create rank!" +msgstr "No se ha podido crear el rango." + +#: src/modules/ranks/ui/overview.py:351 +msgctxt "ui:rank_overview|menu:roles|placeholder" +msgid "Create from role" +msgstr "Crear a partir del rol" + +#: src/modules/ranks/ui/overview.py:368 +msgctxt "ui:rank_overview|menu:ranks|placeholder" +msgid "View or edit rank" +msgstr "Ver o editar el rango" + +#: src/modules/ranks/ui/overview.py:454 +msgctxt "ui:rank_overview|embed:noranks|desc" +msgid "No activity ranks have been set up!" +msgstr "No se ha establecido ningún rango de actividad." + +#: src/modules/ranks/ui/overview.py:459 +msgctxt "ui:rank_overview|embed:noranks|desc|admin_addendum" +msgid "" +"Press 'Auto Create' to automatically create a standard heirachy of ranks.\n" +"To manually create ranks, press 'Create Rank' below, or select a role!" +msgstr "" +"Pulsa \"Crear automáticamente\" para crear automáticamente una serie estándar de rangos.\n" +"Para crear rangos manualmente, pulsa \"Crear rango\" o selecciona un rol." + +#: src/modules/ranks/ui/overview.py:468 +#, possible-python-brace-format +msgctxt "ui:rank_overview|embed|title|type:voice" +msgid "Voice Ranks in {guild_name}" +msgstr "Rangos de voz en {guild_name}" + +#: src/modules/ranks/ui/overview.py:473 +#, possible-python-brace-format +msgctxt "ui:rank_overview|embed|title|type:xp" +msgid "XP ranks in {guild_name}" +msgstr "Rangos XP en {guild_name}" + +#: src/modules/ranks/ui/overview.py:478 +#, possible-python-brace-format +msgctxt "ui:rank_overview|embed|title|type:message" +msgid "Message ranks in {guild_name}" +msgstr "Rangos de mensajes en {guild_name}" + +#: src/modules/ranks/ui/overview.py:490 +msgctxt "ui:rank_overview|embed|field:note|name" +msgid "Note" +msgstr "Nota" + +#: src/modules/ranks/ui/overview.py:496 +#, possible-python-brace-format +msgctxt "ui:rank_overview|embed|field:note|value:with_season" +msgid "Ranks are determined by activity since {timestamp}." +msgstr "Los rangos se determinan por la actividad desde {timestamp}." + +#: src/modules/ranks/ui/overview.py:503 +#, possible-python-brace-format +msgctxt "ui:rank_overview|embed|field:note|value:without_season" +msgid "" +"Ranks are determined by *all-time* statistics.\n" +"To reward ranks from a later time (e.g. to have monthly/quarterly/yearly ranks) set the `season_start` with {stats_cmd}" +msgstr "" +"Los rangos se determinan por estadísticas *de todos los tiempos*.\n" +"Para recompensar a los rangos de un momento posterior (por ejemplo, para tener rangos mensuales / trimestrales / anuales) establecer el `season_start` con {stats_cmd}" + +#: src/modules/ranks/ui/overview.py:510 +msgctxt "ui:rank_overview|embed|field:note|value|voice_addendum" +msgid "" +"Also note that ranks will only be updated when a member leaves a tracked " +"voice channel! Use the **Refresh Member Ranks** button below to update all " +"members manually." +msgstr "" +"Ten en cuenta que los rangos sólo se actualizarán cuando un miembro abandone" +" un canal de voz rastreado. Utiliza el botón **Refrescar rangos de " +"miembros** para actualizar todos los miembros manualmente." + +#: src/modules/ranks/ui/editor.py:33 +msgctxt "ui:rank_editor|input:role_name|label" +msgid "Role Name" +msgstr "Nombre del rol" + +#: src/modules/ranks/ui/editor.py:37 +msgctxt "ui:rank_editor|input:role_name|placeholder" +msgid "Name of the awarded guild role" +msgstr "Nombre del rol del servidor otorgado" + +#: src/modules/ranks/ui/editor.py:53 +msgctxt "ui:rank_editor|input:role_colour|label" +msgid "Role Colour" +msgstr "Color del Rol" + +#: src/modules/ranks/ui/editor.py:57 +msgctxt "ui:rank_editor|input:role_colour|placeholder" +msgid "Colour of the awarded guild role, e.g. #AB1321" +msgstr "Color del rol del servidor otorgado, por ejemplo #AB1321" + +#: src/modules/ranks/ui/editor.py:69 +msgctxt "ui:rank_editor|input:role_colour|error:parse" +msgid "" +"`role_colour`: Could not parse colour! Please use `#` format e.g. " +"`#AB1325`." +msgstr "" +"`role_colour`: No se ha podido entender el color. Por favor, utilice " +"`#` formato ejemplo, `#AB1325`." + +#: src/modules/ranks/ui/editor.py:88 +msgctxt "ui:rank_editor|type:voice|input:requires|label" +msgid "Required Voice Hours" +msgstr "Horas de voz requeridas" + +#: src/modules/ranks/ui/editor.py:92 +msgctxt "ui:rank_editor|type:voice|input:requires|placeholder" +msgid "Number of voice hours before awarding this rank" +msgstr "Número de horas de voz antes de conceder este rango" + +#: src/modules/ranks/ui/editor.py:97 +msgctxt "ui:rank_editor|type:xp|input:requires|label" +msgid "Required XP" +msgstr "XP requerida" + +#: src/modules/ranks/ui/editor.py:101 +msgctxt "ui:rank_editor|type:xp|input:requires|placeholder" +msgid "Amount of XP needed before obtaining this rank" +msgstr "Cantidad de XP necesaria para obtener este rango" + +#: src/modules/ranks/ui/editor.py:106 +msgctxt "ui:rank_editor|type:message|input:requires|label" +msgid "Required Message Count" +msgstr "Recuento de mensajes requeridos" + +#: src/modules/ranks/ui/editor.py:110 +msgctxt "ui:rank_editor|type:message|input:requires|placeholder" +msgid "Number of messages needed before awarding rank" +msgstr "Número de mensajes necesarios antes de conceder el rango" + +#: src/modules/ranks/ui/editor.py:126 +msgctxt "ui:rank_editor|type:voice|input:requires|error:parse" +msgid "" +"`requires`: Could not parse provided minimum time! Please write a number of " +"hours." +msgstr "" +"`requires`: No se ha podido analizar el tiempo mínimo proporcionado. Por " +"favor, escriba un número de horas." + +#: src/modules/ranks/ui/editor.py:137 +msgctxt "ui:rank_editor|type:message|input:requires|error:parse" +msgid "" +"`requires`: Could not parse provided minimum message count! Please enter an " +"integer." +msgstr "" +"`requires`: No se ha podido analizar el número mínimo de mensajes. Por " +"favor, introduzca un número entero." + +#: src/modules/ranks/ui/editor.py:148 +msgctxt "ui:rank_editor|type:xp|input:requires|error:parse" +msgid "" +"`requires`: Could not parse provided minimum XP! Please enter an integer." +msgstr "" +"`requires`: No se ha podido analizar la XP mínima proporcionada. Por favor, " +"introduzca un número entero." + +#: src/modules/ranks/ui/editor.py:162 +msgctxt "ui:rank_editor|input:reward|label" +msgid "LionCoins awarded upon achieving this rank" +msgstr "LionCoins concedidos al alcanzar este rango" + +#: src/modules/ranks/ui/editor.py:166 +msgctxt "ui:rank_editor|input:reward|placeholder" +msgid "LionCoins awarded upon achieving this rank" +msgstr "LionCoins concedidos al alcanzar este rango" + +#: src/modules/ranks/ui/editor.py:181 +msgctxt "ui:rank_editor|input:reward|error:parse" +msgid "`reward`: Please enter an integer number of LionCoins." +msgstr "`reward`: Introduce un número entero de LionCoins." + +#: src/modules/ranks/ui/editor.py:197 +msgctxt "ui:rank_editor|input:message|label" +msgid "Rank Message" +msgstr "Mensaje de rango" + +#: src/modules/ranks/ui/editor.py:201 +msgctxt "ui:rank_editor|input:message|placeholder" +msgid "Congratulatory message sent to the user upon achieving this rank." +msgstr "Mensaje de felicitación enviado al usuario al alcanzar este rango." + +#: src/modules/ranks/ui/editor.py:262 +msgctxt "ui:rank_editor|mode:edit|title" +msgid "Rank Editor" +msgstr "Editor de rango" + +#: src/modules/ranks/ui/editor.py:317 +msgctxt "ui:rank_editor|mode:create|title" +msgid "Rank Creator" +msgstr "Creador de Rangos" diff --git a/locales/es_419/LC_MESSAGES/rolemenus.po b/locales/es_419/LC_MESSAGES/rolemenus.po new file mode 100644 index 000000000000..d5ecee37186a --- /dev/null +++ b/locales/es_419/LC_MESSAGES/rolemenus.po @@ -0,0 +1,1731 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Ronin DeMentira, 2023 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Ronin DeMentira, 2023\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/modules/rolemenus/cog.py:43 +msgctxt "argtype:menu_style|opt:reaction" +msgid "Reaction Roles" +msgstr "Roles de Reacción" + +#: src/modules/rolemenus/cog.py:47 +msgctxt "argtype:menu_style|opt:button" +msgid "Button Menu" +msgstr "Botón del Menú" + +#: src/modules/rolemenus/cog.py:51 +msgctxt "argtype:menu_style|opt:dropdown" +msgid "Dropdown Menu" +msgstr "Menú Desplegable" + +#: src/modules/rolemenus/cog.py:70 +msgctxt "ctxcmd:rolemenu" +msgid "Role Menu Editor" +msgstr "Editor del Menú de Roles" + +#: src/modules/rolemenus/cog.py:83 +msgctxt "ctxcmd:rolemenu|error:author_perms" +msgid "" +"You need the `MANAGE_ROLES` permission in order to manage the server role " +"menus." +msgstr "" +"Necesita el permiso `MANAGE_ROLES` para gestionar los menús de roles del " +"servidor." + +#: src/modules/rolemenus/cog.py:90 +msgctxt "ctxcmd:rolemenus|error:my_perms" +msgid "" +"I lack the `MANAGE_ROLES` permission required to offer roles from role " +"menus." +msgstr "" +"Me falta el permiso `MANAGE_ROLES` necesario para ofrecer roles desde los " +"menús de roles." + +#: src/modules/rolemenus/cog.py:333 +msgctxt "eventlog|event:rolemenu_role_expire|error:remove_failed" +msgid "Removed the role, but the member still has the role!!" +msgstr "Eliminado el rol, ¡¡¡pero el miembro sigue teniendo el rol!!!" + +#: src/modules/rolemenus/cog.py:344 +msgctxt "eventlog|event:rolemenu_role_expire|error:member_gone" +msgid "Member could not be found.. role has been removed from saved roles." +msgstr "" +"No se ha podido encontrar al miembro.. el rol ha sido eliminado de los roles" +" guardados." + +#: src/modules/rolemenus/cog.py:350 +#, possible-python-brace-format +msgctxt "eventlog|event:rolemenu_role_expire|error:no_role" +msgid "Role {role} no longer exists." +msgstr "El rol {role} ya no existe." + +#: src/modules/rolemenus/cog.py:356 +msgctxt "eventlog|event:rolemenu_role_expire|title" +msgid "Equipped role has expired" +msgstr "El rol Equipado ha expirado" + +#: src/modules/rolemenus/cog.py:360 +#, possible-python-brace-format +msgctxt "eventlog|event:rolemenu_role_expire|desc" +msgid "{member}'s role {role} has now expired." +msgstr "El rol {role} de {member} ha expirado." + +#: src/modules/rolemenus/cog.py:368 +msgctxt "eventlog|event:rolemenu_role_expire|field:menu" +msgid "Obtained From" +msgstr "Obtenido de" + +#: src/modules/rolemenus/cog.py:377 +msgctxt "eventlog|event:rolemenu_role_expire|field:menu" +msgid "Obtained At" +msgstr "Obtenido en" + +#: src/modules/rolemenus/cog.py:384 +msgctxt "eventlog|event:rolemenu_role_expire|field:expiry" +msgid "Expiry" +msgstr "Caducidad" + +#: src/modules/rolemenus/cog.py:419 +msgctxt "parse:message_link|suberror:message_dne" +msgid "Could not find the linked message, has it been deleted?" +msgstr "No he podido encontrar el mensaje enlazado, ¿se ha borrado?" + +#: src/modules/rolemenus/cog.py:424 +#, possible-python-brace-format +msgctxt "parse:message_link|suberror:no_perms" +msgid "" +"Insufficient permissions! I need the `MESSAGE_HISTORY` permission in " +"{channel}." +msgstr "" +"¡Permisos insuficientes! Necesito el permiso `MESSAGE_HISTORY` en {channel}." + +#: src/modules/rolemenus/cog.py:429 +#, possible-python-brace-format +msgctxt "parse:message_link|suberror:channel_dne" +msgid "The channel `{channelid}` could not be found in this server." +msgstr "No se ha podido encontrar el canal `{channelid}` en este servidor." + +#: src/modules/rolemenus/cog.py:434 +msgctxt "parse:message_link|suberror:malformed_link" +msgid "" +"Malformed message link. Please copy the link by right clicking the target " +"message." +msgstr "" +"Enlace de mensaje malformado. Copie el enlace haciendo clic con el botón " +"derecho del ratón en el mensaje objetivo." + +#: src/modules/rolemenus/cog.py:441 +#, possible-python-brace-format +msgctxt "parse:message_link|error" +msgid "" +"Failed to resolve the provided message link.\n" +"**ERROR:** {error}" +msgstr "" +"No se ha podido resolver el enlace del mensaje proporcionado.\n" +"**ERROR:** {error}" + +#: src/modules/rolemenus/cog.py:553 +msgctxt "cmd:rolemenus" +msgid "rolemenus" +msgstr "menuderoles" + +#: src/modules/rolemenus/cog.py:556 +msgctxt "cmd:rolemenus|desc" +msgid "View and configure the role menus in this server." +msgstr "Ver y configurar los menús de roles en este servidor." + +#: src/modules/rolemenus/cog.py:573 +msgctxt "cmd:rolemenus|error:author_perms" +msgid "" +"You need the `MANAGE_ROLES` permission in order to manage the server role " +"menus." +msgstr "" +"Necesitas el permiso `MANAGE_ROLES` para gestionar los menús de roles del " +"servidor." + +#: src/modules/rolemenus/cog.py:580 +msgctxt "cmd:rolemenus|error:my_perms" +msgid "" +"I lack the `MANAGE_ROLES` permission required to offer roles from role " +"menus." +msgstr "" +"Me falta el permiso `MANAGE_ROLES` para otorgar roles desde los menús de " +"roles." + +#: src/modules/rolemenus/cog.py:615 +#, possible-python-brace-format +msgctxt "acmpl:menus|choice:no_choices|name" +msgid "No role menus matching '{partial}'" +msgstr "No hay menús de roles que coincidan '{partial}'" + +#: src/modules/rolemenus/cog.py:634 +msgctxt "acmpl:menuroles|param:menu|keyname" +msgid "menu" +msgstr "menú" + +#: src/modules/rolemenus/cog.py:640 +msgctxt "acmpl:menuroles|choice:no_menu|name" +msgid "Please select a menu first" +msgstr "Por favor selecciona un menú primero" + +#: src/modules/rolemenus/cog.py:664 +#, possible-python-brace-format +msgctxt "acmpl:menuroles|choice:invalid_menu|name" +msgid "Menu '{name}' does not exist!" +msgstr "¡El menú '{name}' no existe!" + +#: src/modules/rolemenus/cog.py:693 +#, possible-python-brace-format +msgctxt "acmpl:menuroles|choice:no_matching|name" +msgid "No roles in this menu matching '{partial}'" +msgstr "No hay roles en este menú que coincidan '{partial}'" + +#: src/modules/rolemenus/cog.py:700 +msgctxt "group:rolemenu" +msgid "rolemenu" +msgstr "menú de roles" + +#: src/modules/rolemenus/cog.py:703 +msgctxt "group:rolemenu|desc" +msgid "Base command group for role menu configuration." +msgstr "Grupo de comandos base para la configuración del menú de roles." + +#: src/modules/rolemenus/cog.py:712 +msgctxt "cmd:rolemenu_create" +msgid "newmenu" +msgstr "nuevo menú" + +#: src/modules/rolemenus/cog.py:715 +msgctxt "cmd:rolemenu_create|desc" +msgid "Create a new role menu (optionally using an existing message)" +msgstr "" +"Crear un nuevo menú de roles (opcionalmente utilizando un mensaje existente)" + +#: src/modules/rolemenus/cog.py:729 +msgctxt "cmd:rolemenu_create|param:message" +msgid "message_link" +msgstr "link_delmensaje" + +#: src/modules/rolemenus/cog.py:730 +msgctxt "cmd:rolemenu_create|param:menu_style" +msgid "menu_style" +msgstr "estilodel_menu" + +#: src/modules/rolemenus/cog.py:731 +msgctxt "cmd:rolemenu_create|param:remplate" +msgid "template" +msgstr "plantilla" + +#: src/modules/rolemenus/cog.py:732 +msgctxt "cmd:rolemenu_create|param:rawmessage" +msgid "custom_message" +msgstr "mensaje_personalizado" + +#: src/modules/rolemenus/cog.py:742 +msgctxt "cmd:rolemenu_create|param:message|desc" +msgid "Link to an existing message to turn it into a (reaction) role menu" +msgstr "" +"Enlaza a un mensaje existente para convertirlo en un menú de roles (de " +"reacción)" + +#: src/modules/rolemenus/cog.py:746 +msgctxt "cmd:rolemenu_create|param:menu_style" +msgid "Selection style for this menu (using buttons, dropdowns, or reactions)" +msgstr "" +"Selección de estilo para este menú (puedes usar botones, desplegables o " +"reacciones)" + +#: src/modules/rolemenus/cog.py:750 +msgctxt "cmd:rolemenu_create|param:template" +msgid "Template to use for the menu message body" +msgstr "Plantilla que se utilizará para el cuerpo del mensaje del menú" + +#: src/modules/rolemenus/cog.py:754 +msgctxt "cmd:rolemenu_create|param:rawmessage" +msgid "Attach a custom menu message to use" +msgstr "Adjunta un mensaje de menú personalizado para utilizarlo" + +#: src/modules/rolemenus/cog.py:783 +msgctxt "cmd:rolemenu_create|error:author_perms" +msgid "" +"You need the `MANAGE_ROLES` permission in order to create new role menus." +msgstr "Necesita el permiso `MANAGE_ROLES` para crear nuevos menús de roles." + +#: src/modules/rolemenus/cog.py:790 +msgctxt "cmd:rolemenu_create|error:my_perms" +msgid "" +"I lack the `MANAGE_ROLES` permission needed to offer roles from role menus." +msgstr "" +"Me falta el permiso `MANAGE_ROLES` necesario para ofrecer roles desde los " +"menús de roles." + +#: src/modules/rolemenus/cog.py:809 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_create|error:message_exists" +msgid "The message {link} already has a role menu! Use {edit_cmd} to edit it." +msgstr "" +"¡El mensaje {link} ya tiene un menú de roles! Utilice {edit_cmd} para " +"editarlo." + +#: src/modules/rolemenus/cog.py:830 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_create|error:style_notmine" +msgid "" +"I cannot create a `{style}` style menu on a message I didn't send! (Discord " +"restriction)." +msgstr "" +"¡No puedo crear un menú de estilo `{style}` en un mensaje que no he enviado!" +" (Restricción de Discord)." + +#: src/modules/rolemenus/cog.py:837 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_create|error:rawmessage_notmine" +msgid "" +"Cannot apply a custom menu message to {message} because I do not own this " +"message!" +msgstr "" +"No puedo aplicar un mensaje de menú personalizado a {message} porque no soy " +"el propietario de este mensaje." + +#: src/modules/rolemenus/cog.py:846 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_create|error:template_notmine" +msgid "" +"Cannot apply a menu message template to {message} because I do not own this " +"message!" +msgstr "" +"No puedo aplicar una plantilla de mensaje de menú a {message} porque no soy " +"el propietario de este mensaje." + +#: src/modules/rolemenus/cog.py:859 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_create|error:name_exists" +msgid "A rolemenu called `{name}` already exists! Use {edit_cmd} to edit it." +msgstr "" +"Ya existe un menú de roles llamado `{name}`. Utilice {edit_cmd} para " +"editarlo." + +#: src/modules/rolemenus/cog.py:907 +msgctxt "cmd:rolemenu_edit" +msgid "editmenu" +msgstr "menúdeedición" + +#: src/modules/rolemenus/cog.py:910 +msgctxt "cmd:rolemenu_edit|desc" +msgid "Edit an existing role menu." +msgstr "Editar un menú de roles existente." + +#: src/modules/rolemenus/cog.py:919 +msgctxt "cmd:rolemenu_edit|param:name" +msgid "name" +msgstr "nombre" + +#: src/modules/rolemenus/cog.py:920 +msgctxt "cmd:rolemenu_edit|param:new_name" +msgid "new_name" +msgstr "nuevo_nombre" + +#: src/modules/rolemenus/cog.py:921 +msgctxt "cmd:rolemenu_edit|param:channel" +msgid "new_channel" +msgstr "nuevo_canal" + +#: src/modules/rolemenus/cog.py:926 +msgctxt "cmd:rolemenu_edit|param:menu_style" +msgid "menu_style" +msgstr "estilode_menú" + +#: src/modules/rolemenus/cog.py:927 +msgctxt "cmd:rolemenu_edit|param:remplate" +msgid "template" +msgstr "plantilla" + +#: src/modules/rolemenus/cog.py:928 +msgctxt "cmd:rolemenu_edit|param:rawmessage" +msgid "custom_message" +msgstr "mensaje_personalizado" + +#: src/modules/rolemenus/cog.py:933 +msgctxt "cmd:rolemenu_edit|param:name|desc" +msgid "Name of the menu to edit" +msgstr "Nombre del menú a editar" + +#: src/modules/rolemenus/cog.py:937 +msgctxt "cmd:rolemenu_edit|param:channel|desc" +msgid "Server channel to move the menu to" +msgstr "Canal del servidor al que mover el menú" + +#: src/modules/rolemenus/cog.py:946 +msgctxt "cmd:rolemenu_edit|param:menu_style" +msgid "Selection style for this menu (using buttons, dropdowns, or reactions)" +msgstr "" +"Selecciona el estilo para este menú (mediante botones, desplegables o " +"reacciones)" + +#: src/modules/rolemenus/cog.py:950 +msgctxt "cmd:rolemenu_edit|param:template" +msgid "Template to use for the menu message body" +msgstr "Plantilla que se utilizará para el cuerpo del mensaje del menú" + +#: src/modules/rolemenus/cog.py:954 +msgctxt "cmd:rolemenu_edit|param:rawmessage" +msgid "Attach a custom menu message to use" +msgstr "Adjunta un mensaje personalizado para usarlo en el menú " + +#: src/modules/rolemenus/cog.py:983 +msgctxt "cmd:rolemenu_edit|error:author_perms" +msgid "You need the `MANAGE_ROLES` permission in order to edit role menus." +msgstr "Necesita el permiso `MANAGE_ROLES` para editar los menús de roles." + +#: src/modules/rolemenus/cog.py:990 +msgctxt "cmd:rolemenu_edit|error:my_perms" +msgid "" +"I lack the `MANAGE_ROLES` permission needed to offer roles from role menus." +msgstr "" +"Me falta el permiso `MANAGE_ROLES` para ofrecer roles desde los menús de " +"roles." + +#: src/modules/rolemenus/cog.py:1013 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_edit|error:menu_not_found" +msgid "This server does not have a role menu called `{name}`!" +msgstr "¡Este servidor no tiene un menú de roles llamado `{name}`!" + +#: src/modules/rolemenus/cog.py:1034 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_edit|parse:new_name|error:name_exists" +msgid "A role menu with the name **{new_name}** already exists!" +msgstr "Ya existe un menú de funciones con el nombre **{new_name}**." + +#: src/modules/rolemenus/cog.py:1071 +msgctxt "cmd:rolemenu_edit|parse:template|error:not_managed" +msgid "" +"Cannot set a template message for a role menu attached to a message I did " +"not send." +msgstr "" +"No se puede establecer un mensaje de plantilla para un menú de roles " +"asociado a un mensaje que no he enviado." + +#: src/modules/rolemenus/cog.py:1082 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_edit|parse:template|success:template" +msgid "Now using the `{name}` menu message template." +msgstr "Ahora se está utilizando la plantilla de mensajes del menú `{name}`." + +#: src/modules/rolemenus/cog.py:1089 +msgctxt "cmd:rolemenu_edit|parse:template|success:custom" +msgid "Now using a custom menu message." +msgstr "Ahora usando un mensaje de menú personalizado." + +#: src/modules/rolemenus/cog.py:1099 +msgctxt "cmd:rolemenu_edit|parse:style|error:not_managed" +msgid "" +"Cannot change the style of a role menu attached to a message I did not send." +msgstr "" +"No puedo cambiar el estilo de un menú de función adjunto a un mensaje que no" +" he enviado." + +#: src/modules/rolemenus/cog.py:1109 +msgctxt "cmd:rolemenu_edit|parse:style|error:too_many_reactions" +msgid "Too many roles! Reaction role menus can have at most `20` roles." +msgstr "" +"¡Demasiados roles! Los menús de roles de reacción pueden tener como máximo " +"`20` roles." + +#: src/modules/rolemenus/cog.py:1119 +msgctxt "cmd:rolemenu_edit|parse:style|error:incomplete_emojis" +msgid "" +"Cannot switch to the reaction role style! Every role needs a distinct emoji " +"first." +msgstr "" +"¡No se puede cambiar al estilo de rol de reacción! Cada rol necesita primero" +" un emoji distinto." + +#: src/modules/rolemenus/cog.py:1126 +msgctxt "cmd:rolemenu_edit|parse:style|success" +msgid "Updated role menu style." +msgstr "Se ha actualizado el estilo del menú de roles." + +#: src/modules/rolemenus/cog.py:1140 +msgctxt "cmd:rolemenu_edit|parse:custom_message|success" +msgid "Custom menu message updated." +msgstr "Mensaje de menú personalizado actualizado." + +#: src/modules/rolemenus/cog.py:1155 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_edit|repost|success" +msgid "The role menu is now available at {message}" +msgstr "El menú de funciones ya está disponible en {message}." + +#: src/modules/rolemenus/cog.py:1166 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_edit|repost|error:forbidden" +msgid "" +"Cannot update channel! I lack the `EMBED_LINKS` or `SEND_MESSAGES` " +"permission in {channel}." +msgstr "" +"No puedo actualizar el canal. Me falta el permiso `EMBED_LINKS` o " +"`SEND_MESSAGES` en {channel}." + +#: src/modules/rolemenus/cog.py:1171 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_edit|repost|error:unknown" +msgid "" +"An unknown error occurred trying to repost the menu to {channel}.\n" +"**Error:** `{exception}`" +msgstr "" +"Se ha producido un error desconocido al intentar reenviar el menú a {channel}.\n" +"**Error:** `{exception}`." + +#: src/modules/rolemenus/cog.py:1210 +msgctxt "cmd:rolemenu_delete" +msgid "delmenu" +msgstr "borrarmenú" + +#: src/modules/rolemenus/cog.py:1213 +msgctxt "cmd:rolemenu_delete|desc" +msgid "Delete a role menu." +msgstr "Borrar un menú de roles." + +#: src/modules/rolemenus/cog.py:1217 +msgctxt "cmd:rolemenu_delete|param:name" +msgid "menu" +msgstr "menú" + +#: src/modules/rolemenus/cog.py:1222 +msgctxt "cmd:rolemenu_delete|param:name|desc" +msgid "Name of the rolemenu to delete." +msgstr "Nombre del menú de roles a eliminar." + +#: src/modules/rolemenus/cog.py:1237 +msgctxt "cmd:rolemenu_delete|error:author_perms" +msgid "" +"You need the `MANAGE_ROLES` permission in order to manage the server role " +"menus." +msgstr "" +"Necesita el permiso `MANAGE_ROLES` para gestionar los menús de roles del " +"servidor." + +#: src/modules/rolemenus/cog.py:1260 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_delete|error:menu_not_found" +msgid "This server does not have a role menu called `{name}`!" +msgstr "¡Este servidor no tiene un menú de roles llamado `{name}`!" + +#: src/modules/rolemenus/cog.py:1268 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_delete|confirm|title" +msgid "" +"Are you sure you want to delete the role menu **{name}**? This is not " +"reversible!" +msgstr "" +"¿Está seguro de que desea eliminar el menú de roles **{name}**? Esto no es " +"reversible." + +#: src/modules/rolemenus/cog.py:1273 +msgctxt "cmd:rolemenu_delete|confirm|button:yes" +msgid "Yes, Delete Now" +msgstr "Sí, borrar ahora" + +#: src/modules/rolemenus/cog.py:1278 +msgctxt "cmd:rolemenu_delete|confirm|button:no" +msgid "No, Cancel" +msgstr "No, cancelar" + +#: src/modules/rolemenus/cog.py:1303 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_delete|success|desc" +msgid "Successfully deleted the menu **{name}**" +msgstr "Eliminado con éxito el menú **{name}**" + +#: src/modules/rolemenus/cog.py:1311 +msgctxt "cmd:rolemenu_addrole" +msgid "addrole" +msgstr "añadirrol" + +#: src/modules/rolemenus/cog.py:1314 +msgctxt "cmd:rolemenu_addrole|desc" +msgid "Add a new role to an existing role menu." +msgstr "Añadir un nuevo rol a un menú de roles existente." + +#: src/modules/rolemenus/cog.py:1319 +msgctxt "cmd:rolemenu_addrole|param:menu" +msgid "menu" +msgstr "menú" + +#: src/modules/rolemenus/cog.py:1322 +msgctxt "cmd:rolemenu_addrole|param:role" +msgid "role" +msgstr "rol" + +#: src/modules/rolemenus/cog.py:1333 +msgctxt "cmd:rolemenu_addrole|param:menu|desc" +msgid "Name of the menu to add a role to" +msgstr "Nombre del menú al que añadir un rol" + +#: src/modules/rolemenus/cog.py:1337 +msgctxt "cmd:rolemenu_addrole|param:role|desc" +msgid "Role to add to the menu" +msgstr "Rol a añadir al menú" + +#: src/modules/rolemenus/cog.py:1345 +msgctxt "cmd:rolemenu_addrole|param:duration|desc" +msgid "Lifetime of the role after selection in minutes." +msgstr "Tiempo de vida del rol en minutos tras su selección." + +#: src/modules/rolemenus/cog.py:1393 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_addrole|error:menu_not_found" +msgid "This server does not have a role menu called `{name}`!" +msgstr "¡Este servidor no tiene un menú de roles llamado `{name}`!" + +#: src/modules/rolemenus/cog.py:1478 +msgctxt "cmd:rolemenu_addrole|success:create|title" +msgid "Added Menu Role" +msgstr "Menú de roles añadido" + +#: src/modules/rolemenus/cog.py:1482 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_addrole|success:create|desc" +msgid "Add the role {role} to the menu **{menu}**." +msgstr "Añade el rol {role} al menú **{menu}**." + +#: src/modules/rolemenus/cog.py:1500 +msgctxt "cmd:rolemenu_addrole|success:edit|title" +msgid "Menu Role updated" +msgstr "Menú de roles actualizado" + +#: src/modules/rolemenus/cog.py:1512 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_addrole|error:role_exists" +msgid "The role {role} is already selectable from the menu **{menu}**" +msgstr "El rol {role} ya es seleccionable desde el menú **{menu}**" + +#: src/modules/rolemenus/cog.py:1530 +msgctxt "cmd:rolemenu_addrole|success|error:reaction|name" +msgid "Note" +msgstr "Nota" + +#: src/modules/rolemenus/cog.py:1542 +msgctxt "cmd:rolemenu_addrole|success|button:editor|label" +msgid "Edit Menu" +msgstr "Editar menú" + +#: src/modules/rolemenus/cog.py:1559 +msgctxt "cmd:rolemenu_editrole" +msgid "editrole" +msgstr "editarrol" + +#: src/modules/rolemenus/cog.py:1562 +msgctxt "cmd:rolemenu_editrole|desc" +msgid "Edit role options in an existing role menu." +msgstr "Editar opciones de rol en un menú de rol existente." + +#: src/modules/rolemenus/cog.py:1567 +msgctxt "cmd:rolemenu_editrole|param:menu" +msgid "menu" +msgstr "menú" + +#: src/modules/rolemenus/cog.py:1570 +msgctxt "cmd:rolemenu_editrole|param:menu_role" +msgid "menu_role" +msgstr "menúde_roles" + +#: src/modules/rolemenus/cog.py:1573 +msgctxt "cmd:rolemenu_editrole|param:role" +msgid "new_role" +msgstr "nuevo_rol" + +#: src/modules/rolemenus/cog.py:1584 +msgctxt "cmd:rolemenu_editrole|param:menu|desc" +msgid "Name of the menu to edit the role for" +msgstr "Nombre del menú para editar el rol" + +#: src/modules/rolemenus/cog.py:1588 +msgctxt "cmd:rolemenu_editrole|param:menu_role|desc" +msgid "Label, name, or mention of the menu role to edit." +msgstr "Etiqueta, nombra o menciona el menú de roles a editar." + +#: src/modules/rolemenus/cog.py:1592 +msgctxt "cmd:rolemenu_editrole|param:role|desc" +msgid "New server role this menu role should give." +msgstr "Nuevo rol de servidor que el menú de roles debería dar." + +#: src/modules/rolemenus/cog.py:1600 +msgctxt "cmd:rolemenu_editrole|param:duration|desc" +msgid "Lifetime of the role after selection in minutes." +msgstr "Tiempo de vida en minutos del rol tras la selección." + +#: src/modules/rolemenus/cog.py:1641 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_editrole|error:menu_not_found" +msgid "This server does not have a role menu called `{name}`!" +msgstr "¡Este servidor no tiene un menú de roles llamado `{name}`!" + +#: src/modules/rolemenus/cog.py:1669 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_editrole|error:role_not_found" +msgid "The menu **{menu}** does not have the role **{name}**" +msgstr "El menú **{menu}** no tiene el rol **{name}**" + +#: src/modules/rolemenus/cog.py:1735 +msgctxt "cmd:rolemenu_editrole|success|title" +msgid "Role menu role updated" +msgstr "Menú de roles rol actualizado" + +#: src/modules/rolemenus/cog.py:1750 +msgctxt "cmd:rolemenu_editrole|success|error:reaction|name" +msgid "Warning!" +msgstr "¡Advertencia!" + +#: src/modules/rolemenus/cog.py:1775 +msgctxt "cmd:rolemenu_delrole" +msgid "delrole" +msgstr "eliminarrol" + +#: src/modules/rolemenus/cog.py:1778 +msgctxt "cmd:rolemenu_delrole|desc" +msgid "Remove a role from a role menu." +msgstr "Eliminar un rol de un menú de roles." + +#: src/modules/rolemenus/cog.py:1782 +msgctxt "cmd:rolemenu_delrole|param:menu" +msgid "menu" +msgstr "menú" + +#: src/modules/rolemenus/cog.py:1783 +msgctxt "cmd:rolemenu_delrole|param:menu_role" +msgid "menu_role" +msgstr "menúde_roles" + +#: src/modules/rolemenus/cog.py:1788 +msgctxt "cmd:rolemenu_delrole|param:menu|desc" +msgid "Name of the menu to delete the role from." +msgstr "Nombre del menú del que se eliminará el rol." + +#: src/modules/rolemenus/cog.py:1792 +msgctxt "cmd:rolemenu_delrole|param:menu_role|desc" +msgid "Name, label, or mention of the role to delete." +msgstr "Nombra, etiqueta o menciona el rol a eliminar." + +#: src/modules/rolemenus/cog.py:1810 +msgctxt "cmd:rolemenu_delrole|error:author_perms" +msgid "" +"You need the `MANAGE_ROLES` permission in order to manage the server role " +"menus." +msgstr "" +"Necesita el permiso `MANAGE_ROLES` para gestionar los menús de roles del " +"servidor." + +#: src/modules/rolemenus/cog.py:1834 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_delrole|error:menu_not_found" +msgid "This server does not have a role menu called `{name}`!" +msgstr "¡Este servidor no tiene un menú de roles llamado `{name}`!" + +#: src/modules/rolemenus/cog.py:1862 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_delrole|error:role_not_found" +msgid "The menu **{menu}** does not have the role **{name}**" +msgstr "El menú **{menu}** no tiene el rol **{name}**" + +#: src/modules/rolemenus/cog.py:1879 +#, possible-python-brace-format +msgctxt "cmd:rolemenu_delrole|success" +msgid "The role **{name}** was successfully removed from the menu **{menu}**." +msgstr "El rol **{name}** se ha eliminado correctamente del menú **{menu}**." + +#: src/modules/rolemenus/roleoptions.py:57 +msgctxt "roleset:role" +msgid "role" +msgstr "rol" + +#: src/modules/rolemenus/roleoptions.py:60 +msgctxt "roleset:role|desc" +msgid "The role associated to this menu item." +msgstr "El rol asociado a este elemento de menú." + +#: src/modules/rolemenus/roleoptions.py:64 +msgctxt "roleset:role|long_desc" +msgid "The role given when this menu item is selected in the role menu." +msgstr "" +"El rol otorgado cuando se selecciona este elemento del menú en el menú de " +"roles." + +#: src/modules/rolemenus/roleoptions.py:77 +#, possible-python-brace-format +msgctxt "roleset:role|set_response:set" +msgid "This menu item will now give the role {role}." +msgstr "Este elemento de menú dará ahora el rol {role}." + +#: src/modules/rolemenus/roleoptions.py:88 +msgctxt "roleset:label" +msgid "label" +msgstr "etiqueta" + +#: src/modules/rolemenus/roleoptions.py:91 +msgctxt "roleset:label|desc" +msgid "A short button label for this role." +msgstr "Una breve etiqueta de botón para este rol." + +#: src/modules/rolemenus/roleoptions.py:96 +msgctxt "roleset:label|long_desc" +msgid "" +"A short name for this role, to be displayed in button labels, dropdown " +"titles, and some menu layouts. By default uses the Discord role name." +msgstr "" +"Un nombre corto para este rol, que se mostrará en etiquetas de botones, " +"títulos desplegables y algunos diseños de menú. Por defecto usará el nombre " +"del rol de Discord." + +#: src/modules/rolemenus/roleoptions.py:110 +#, possible-python-brace-format +msgctxt "roleset:role|set_response" +msgid "This menu role is now called `{value}`." +msgstr "Este rol de menú se llama ahora `{value}`." + +#: src/modules/rolemenus/roleoptions.py:118 +msgctxt "roleset:emoji" +msgid "emoji" +msgstr "emoji" + +#: src/modules/rolemenus/roleoptions.py:121 +msgctxt "roleset:emoji|desc" +msgid "The emoji associated with this role." +msgstr "El emoji asociado a este rol." + +#: src/modules/rolemenus/roleoptions.py:125 +msgctxt "roleset:emoji|long_desc" +msgid "" +"The role emoji is used for the reaction (in reaction role menus), and " +"otherwise appears next to the role label in the button and dropdown styles. " +"The emoji is also displayed next to the role in most menu templates." +msgstr "" +"El emoji del rol es usado para la reacción (en el menú de roles con " +"reacciones), y por lo demás aparece junto a la etiqueta en el botón y en el " +"desplegable. El emoji también se ve al lado del rol en la mayoría de " +"plantillas de menú. " + +#: src/modules/rolemenus/roleoptions.py:165 +#, possible-python-brace-format +msgctxt "roleset:emoji|error:test_emoji" +msgid "The selected emoji `{emoji}` is invalid or has been deleted." +msgstr "El emoji seleccionado `{emoji}` no es válido o ha sido eliminado." + +#: src/modules/rolemenus/roleoptions.py:176 +#, possible-python-brace-format +msgctxt "roleset:emoji|set_response:set" +msgid "The menu role emoji is now {emoji}." +msgstr "El emoji del rol del menú es ahora {emoji}." + +#: src/modules/rolemenus/roleoptions.py:181 +msgctxt "roleset:emoji|set_response:unset" +msgid "The menu role emoji has been removed." +msgstr "Se ha eliminado el emoji del rol del menú." + +#: src/modules/rolemenus/roleoptions.py:189 +msgctxt "roleset:description" +msgid "description" +msgstr "descripción" + +#: src/modules/rolemenus/roleoptions.py:192 +msgctxt "roleset:description|desc" +msgid "A longer description of this role." +msgstr "Una descripción mas larga de este rol." + +#: src/modules/rolemenus/roleoptions.py:197 +msgctxt "roleset:description|long_desc" +msgid "" +"The description is displayed under the role label in dropdown style menus. " +"It may also be used as a substitution key in custom role selection " +"responses." +msgstr "" +"La descripción se muestra bajo la etiqueta del rol en los menús " +"desplegables. También puede utilizarse como clave de sustitución en las " +"respuestas personalizadas de selección de roles." + +#: src/modules/rolemenus/roleoptions.py:213 +msgctxt "roleset:description|set_response:set" +msgid "The role description has been set." +msgstr "Se ha establecido la descripción del rol." + +#: src/modules/rolemenus/roleoptions.py:218 +msgctxt "roleset:description|set_response:unset" +msgid "The role description has been removed." +msgstr "Se ha eliminado la descripción del rol." + +#: src/modules/rolemenus/roleoptions.py:226 +msgctxt "roleset:price" +msgid "price" +msgstr "precio" + +#: src/modules/rolemenus/roleoptions.py:229 +msgctxt "roleset:price|desc" +msgid "Price of the role, in LionCoins. May be negative." +msgstr "Precio del papel, en LionCoins. Puede ser negativo." + +#: src/modules/rolemenus/roleoptions.py:233 +msgctxt "roleset:price|long_desc" +msgid "" +"How many LionCoins should be deducted from a member's account when they equip this role through this menu.\n" +"The price may be negative, in which case the member will instead be rewarded coins when they equip the role." +msgstr "" +"Cuántas LionCoins se deducirán de la cuenta de un miembro cuando equipe este rol a través de este menú.\n" +"El precio puede ser negativo, en cuyo caso el miembro será recompensado con monedas cuando equipe el rol." + +#: src/modules/rolemenus/roleoptions.py:240 +msgctxt "roleset:price|accepts" +msgid "Amount of coins that the role costs when equipped." +msgstr "Cantidad de monedas que cuesta el rol cuando está equipado." + +#: src/modules/rolemenus/roleoptions.py:254 +#, possible-python-brace-format +msgctxt "roleset:price|set_response:positive" +msgid "Equipping this role will now cost {coin}**{price}**." +msgstr "Equipar este rol ahora costará {coin}**{price}**." + +#: src/modules/rolemenus/roleoptions.py:259 +msgctxt "roleset:price|set_response:zero" +msgid "Equipping this role is now free." +msgstr "Equipar este papel es ahora gratis." + +#: src/modules/rolemenus/roleoptions.py:264 +#, possible-python-brace-format +msgctxt "roleset:price|set_response:negative" +msgid "Equipping this role will now reward {coin}**{price}**." +msgstr "Equipar este rol ahora recompensará con {coin}**{price}**." + +#: src/modules/rolemenus/roleoptions.py:272 +msgctxt "roleset:duration" +msgid "duration" +msgstr "duración" + +#: src/modules/rolemenus/roleoptions.py:275 +msgctxt "roleset:duration|desc" +msgid "Lifetime of the role after selection" +msgstr "Duración de la rol tras la selección" + +#: src/modules/rolemenus/roleoptions.py:279 +msgctxt "roleset:duration|long_desc" +msgid "" +"Allows creation of 'temporary roles' which expire a given time after being " +"equipped. Refunds will not be given upon expiry." +msgstr "" +"Permite la creación de \"roles temporales\" que expiran después de un tiempo" +" determinado luego de ser equipados. No se devolverá el dinero cuando " +"caduquen." + +#: src/modules/rolemenus/roleoptions.py:284 +msgctxt "roleset:duration|notset" +msgid "Forever." +msgstr "Para siempre." + +#: src/modules/rolemenus/roleoptions.py:297 +#, possible-python-brace-format +msgctxt "roleset:duration|set_response:set" +msgid "This role will now expire after {duration}." +msgstr "Este rol expirará después de {duration}." + +#: src/modules/rolemenus/roleoptions.py:302 +msgctxt "roleset:duration|set_response:unset" +msgid "This role will no longer expire after being selected." +msgstr "Este rol ya no caducará después de haber sido seleccionado." + +#: src/modules/rolemenus/templates.py:53 +msgctxt "template:simple|name" +msgid "Simple Menu" +msgstr "Menú Simple" + +#: src/modules/rolemenus/templates.py:57 +msgctxt "template:simple|desc" +msgid "A simple embedded list of roles in the menu" +msgstr "Una simple lista incrustada de roles en el menú" + +#: src/modules/rolemenus/templates.py:96 +msgctxt "template:two_column|name" +msgid "Two Column" +msgstr "Dos Columnas" + +#: src/modules/rolemenus/templates.py:100 +msgctxt "template:two_column|desc" +msgid "A compact two column role layout. Excludes prices and durations." +msgstr "" +"Un diseño compacto de dos columnas de roles. Excluye precios y duraciones." + +#: src/modules/rolemenus/templates.py:131 +msgctxt "template:three_column|name" +msgid "Three Column" +msgstr "Tres Columnas" + +#: src/modules/rolemenus/templates.py:135 +msgctxt "template:three_column|desc" +msgid "" +"A compact three column layout using emojis and labels, excluding prices and " +"durations." +msgstr "" +"Un diseño compacto de tres columnas que utiliza emojis y etiquetas, " +"excluyendo precios y duraciones." + +#: src/modules/rolemenus/templates.py:168 +msgctxt "template:shop|name" +msgid "Role Shop" +msgstr "Tienda de Roles" + +#: src/modules/rolemenus/templates.py:172 +msgctxt "template:shop|desc" +msgid "A single column display suitable for simple role shops" +msgstr "Un diseño de una columna adecuado para tiendas simples de roles." + +#: src/modules/rolemenus/rolemenu.py:294 +msgctxt "rolemenu|menu_message|error|title" +msgid "ROLE MENU DISPLAY ERROR" +msgstr "ERROR DE VISUALIZACIÓN DEL MENÚ DE ROLES" + +#: src/modules/rolemenus/rolemenu.py:298 +#, possible-python-brace-format +msgctxt "rolemenu|menu_message|error|desc" +msgid "" +"A critical error occurred trying to display this role menu.\n" +"Error: `{error}`." +msgstr "" +"Se ha producido un error crítico al intentar mostrar este menú de roles.\n" +"Error: `{error}`." + +#: src/modules/rolemenus/rolemenu.py:350 +#, possible-python-brace-format +msgctxt "rolemenu|update_reactions|error" +msgid "" +"Could not add the {emoji} reaction, perhaps I do not have access to this " +"emoji! Reactions will need to be added manually." +msgstr "" +"No se ha podido añadir la reacción {emoji}, ¡quizás no tengo acceso a este " +"emoji! Las reacciones deberán añadirse manualmente." + +#: src/modules/rolemenus/rolemenu.py:395 +msgctxt "ui:rolemenu_dropdown|placeholder" +msgid "Select Roles" +msgstr "Selecciona Roles" + +#: src/modules/rolemenus/rolemenu.py:506 +#, possible-python-brace-format +msgctxt "rolemenu|select|error:max_obtainable" +msgid "You can own at most one role from this menu! You currently own:" +msgid_plural "" +"You can own at most **{count}** roles from this menu! You currently own:" +msgstr[0] "Sólo puedes tener un papel de este menú. Actualmente posee:" +msgstr[1] "" +"¡Puedes poseer como máximo **{count}** roles de este menú! Actualmente " +"posee:" +msgstr[2] "" +"¡Puedes poseer como máximo **{count}** roles de este menú! Actualmente " +"posee:" + +#: src/modules/rolemenus/rolemenu.py:523 +#, possible-python-brace-format +msgctxt "rolemenu|select|error:insufficient_funds" +msgid "" +"The role **{role}** costs {coin}**{cost}**,but you only have " +"{coin}**{balance}**!" +msgstr "" +"El rol **{role}** cuesta {coin}**{cost}**, ¡y sólo tienes " +"{coin}**{balance}**!" + +#: src/modules/rolemenus/rolemenu.py:539 +msgctxt "rolemenu|select|error:perms" +msgid "I don't have enough permissions to give you this role!" +msgstr "¡No tengo suficientes permisos para darte este rol!" + +#: src/modules/rolemenus/rolemenu.py:546 +msgctxt "rolemenu|select|error:discord" +msgid "" +"An unknown error occurred while assigning your role! Please try again later." +msgstr "" +"Se ha producido un error desconocido al asignar su rol. Vuelva a intentarlo " +"más tarde." + +#: src/modules/rolemenus/rolemenu.py:588 +msgctxt "rolemenu|select|success|title" +msgid "Role equipped" +msgstr "Rol equipado" + +#: src/modules/rolemenus/rolemenu.py:594 +#, possible-python-brace-format +msgctxt "rolemenu|select|success:purchase|desc" +msgid "You have purchased the role **{role}** for {coin}**{amount}**" +msgstr "Ha adquirido el rol **{role}** por {coin}**{amount}**" + +#: src/modules/rolemenus/rolemenu.py:599 +#, possible-python-brace-format +msgctxt "rolemenu|select|success:nopurchase|desc" +msgid "You have equipped **{role}**" +msgstr "Has equipado **{role}**" + +#: src/modules/rolemenus/rolemenu.py:605 +#, possible-python-brace-format +msgctxt "rolemenu|select|expires_at" +msgid "The role will expire at {timestamp}." +msgstr "El rol expirará en {timestamp}." + +#: src/modules/rolemenus/rolemenu.py:616 +msgctxt "rolemenu|eventlog|event:role_equipped|title" +msgid "Member equipped role from role menu" +msgstr "Función equipada con miembros en el menú de funciones" + +#: src/modules/rolemenus/rolemenu.py:620 +#, possible-python-brace-format +msgctxt "rolemenu|eventlog|event:role_equipped|desc" +msgid "{member} equipped {role} from {menu}" +msgstr "{member} equipado {role} de {menu}" + +#: src/modules/rolemenus/rolemenu.py:644 +#, possible-python-brace-format +msgctxt "rolemenu|deselect|error:sticky" +msgid "**{role}** is a sticky role, you cannot remove it with this menu!" +msgstr "**{role}** es un rol fijo, ¡no puedes eliminarlo con este menú!" + +#: src/modules/rolemenus/rolemenu.py:655 +msgctxt "rolemenu|deselect|error:perms" +msgid "I don't have enough permissions to remove this role from you!" +msgstr "No tengo suficientes permisos para quitarte este rol." + +#: src/modules/rolemenus/rolemenu.py:662 +msgctxt "rolemenu|deselect|error:discord" +msgid "An unknown error occurred removing your role! Please try again later." +msgstr "" +"Se ha producido un error desconocido al eliminar su rol. Vuelve a intentarlo" +" más tarde." + +#: src/modules/rolemenus/rolemenu.py:691 +msgctxt "rolemenu|deslect|success|title" +msgid "Role removed" +msgstr "Rol retirado." + +#: src/modules/rolemenus/rolemenu.py:697 +#, possible-python-brace-format +msgctxt "rolemenu|deselect|success:refund|desc" +msgid "You have removed **{role}**, and been refunded {coin} **{amount}**." +msgstr "Has eliminado **{role}**, y se te ha reembolsado {coin} **{amount}**." + +#: src/modules/rolemenus/rolemenu.py:703 +#, possible-python-brace-format +msgctxt "rolemenu|deselect|success:negrefund|desc" +msgid "You have removed **{role}**, and have lost {coin} **{amount}**." +msgstr "Has eliminado **{role}**, y has perdido {coin} **{amount}**." + +#: src/modules/rolemenus/rolemenu.py:708 +#, possible-python-brace-format +msgctxt "rolemenu|deselect|success:norefund|desc" +msgid "You have unequipped **{role}**." +msgstr "Has desequipado **{role}**." + +#: src/modules/rolemenus/rolemenu.py:715 +msgctxt "rolemenu|eventlog|event:role_unequipped|title" +msgid "Member unequipped role from role menu" +msgstr "Miembro rol no equipado del menú de roles" + +#: src/modules/rolemenus/rolemenu.py:719 +#, possible-python-brace-format +msgctxt "rolemenu|eventlog|event:role_unequipped|desc" +msgid "{member} unequipped {role} from {menu}" +msgstr "{member} unequipped {role} from {menu}" + +#: src/modules/rolemenus/rolemenu.py:747 +#, possible-python-brace-format +msgctxt "rolemenu|error:role_gone" +msgid "The role **{name}** no longer exists!" +msgstr "¡El rol **{name}** ya no existe!" + +#: src/modules/rolemenus/rolemenu.py:760 +#, possible-python-brace-format +msgctxt "rolemenu|select|error:required_role" +msgid "You need to have the role **{role}** required to use this menu!" +msgstr "¡Necesitas tener el rol **{role}** requerido para usar este menú!" + +#: src/modules/rolemenus/rolemenu.py:818 +#, possible-python-brace-format +msgctxt "rolemenu|content:reactions" +msgid "[Click here]({jump_link}) to jump back." +msgstr "[Click here]({jump_link}) para volver atrás." + +#: src/modules/rolemenus/menuoptions.py:56 +msgctxt "menuset:name" +msgid "name" +msgstr "nombre" + +#: src/modules/rolemenus/menuoptions.py:59 +msgctxt "menuset:name|desc" +msgid "Brief name for this role menu." +msgstr "Nombre breve para este menú de roles." + +#: src/modules/rolemenus/menuoptions.py:64 +msgctxt "menuset:name|long_desc" +msgid "" +"The role menu name is displayed when selecting the menu in commands, and as " +"the title of most default menu layouts." +msgstr "" +"El nombre del menú de roles se muestra al seleccionar el menú en los " +"comandos y como título de la mayoría de los diseños de menú predeterminados." + +#: src/modules/rolemenus/menuoptions.py:78 +#, possible-python-brace-format +msgctxt "menuset:name|set_response" +msgid "This role menu will now be called **{new_name}**." +msgstr "Este menú de roles se llamará ahora **{new_name}**." + +#: src/modules/rolemenus/menuoptions.py:86 +msgctxt "menuset:sticky" +msgid "sticky_roles" +msgstr "roles_pegajosos" + +#: src/modules/rolemenus/menuoptions.py:89 +msgctxt "menuset:sticky|desc" +msgid "Whether the menu can be used to unequip roles." +msgstr "Si el menú se puede utilizar para desequipar roles." + +#: src/modules/rolemenus/menuoptions.py:94 +msgctxt "menuset:sticky|long_desc" +msgid "" +"When enabled, members will not be able to remove equipped roles by selecting" +" them in this menu. Note that when disabled, members will be able to unequip" +" the menu roles even if they were not obtained from the menu." +msgstr "" +"Cuando está activada, los miembros no podrán eliminar roles equipados " +"seleccionándolos en este menú. Ten en cuenta que cuando esté desactivado, " +"los miembros podrán desequipar los roles del menú aunque no los hayan " +"obtenido del menú." + +#: src/modules/rolemenus/menuoptions.py:110 +msgctxt "menuset:sticky|set_response:true" +msgid "Members will no longer be able to remove roles with this menu." +msgstr "Los miembros ya no podrán eliminar roles con este menú." + +#: src/modules/rolemenus/menuoptions.py:115 +msgctxt "menuset:sticky|set_response:false" +msgid "Members will now be able to remove roles with this menu." +msgstr "Ahora los miembros podrán quitarse roles con este menú." + +#: src/modules/rolemenus/menuoptions.py:123 +msgctxt "menuset:refunds" +msgid "refunds" +msgstr "devoluciones" + +#: src/modules/rolemenus/menuoptions.py:126 +msgctxt "menuset:refunds|desc" +msgid "Whether removing a role will refund the purchase price for that role." +msgstr "Si al eliminar un rol se reembolsa el precio de compra de ese rol." + +#: src/modules/rolemenus/menuoptions.py:131 +msgctxt "menuset:refunds|long_desc" +msgid "" +"When enabled, members who *purchased a role through this role menu* will obtain a full refund when they remove the role through the menu.\n" +"**Refunds will only be given for roles purchased through the same menu.**\n" +"**The `sticky` option must be disabled to allow members to remove roles.**" +msgstr "" +"Cuando se activa, los miembros que *compraron un rol a través de este menú de roles* obtendrán un reembolso completo cuando eliminen el rol a través del menú.\n" +"**Los reembolsos sólo se harán para los roles comprados a través del mismo menú.**\n" +"**La opción \"pegajosa\" debe estar desactivada para que los usuarios puedan eliminar roles.**" + +#: src/modules/rolemenus/menuoptions.py:148 +msgctxt "menuset:refunds|set_response:true" +msgid "Members will now be refunded when removing a role with this menu." +msgstr "" +"Ahora se reembolsará a los miembros cuando eliminen un rol con este menú." + +#: src/modules/rolemenus/menuoptions.py:153 +msgctxt "menuset:refunds|set_response:false" +msgid "" +"Members will no longer be refunded when removing a role with this menu." +msgstr "" +"Ya no se reembolsará a los miembros que se quiten un rol con este menú." + +#: src/modules/rolemenus/menuoptions.py:161 +msgctxt "menuset:obtainable" +msgid "obtainable" +msgstr "obtenible" + +#: src/modules/rolemenus/menuoptions.py:164 +msgctxt "menuset:obtainable|desc" +msgid "The maximum number of roles equippable from this menu." +msgstr "El número máximo de roles equipables desde este menú." + +#: src/modules/rolemenus/menuoptions.py:169 +msgctxt "menuset:obtainable|long_desc" +msgid "" +"Members will not be able to obtain more than this number of roles from this " +"menu. This counts roles that were not obtained through the rolemenu system." +msgstr "" +"Los miembros no podrán obtener más de este número de roles desde este menú. " +"Esto cuenta los roles que no se han obtenido a través del sistema " +"menuderoles." + +#: src/modules/rolemenus/menuoptions.py:174 +msgctxt "menuset:obtainable|notset" +msgid "Unlimited." +msgstr "Ilimitado." + +#: src/modules/rolemenus/menuoptions.py:188 +#, possible-python-brace-format +msgctxt "menuset:obtainable|set_response:set" +msgid "" +"Members will be able to select a maximum of **{value}** roles from this " +"menu." +msgstr "" +"Los miembros podrán seleccionar un máximo de **{value}** roles de este menú." + +#: src/modules/rolemenus/menuoptions.py:193 +msgctxt "menuset:obtainable|set_response:unset" +msgid "Members will be able to select any number of roles from this menu." +msgstr "" +"Los miembros podrán seleccionar cualquier número de roles de este menú." + +#: src/modules/rolemenus/menuoptions.py:201 +msgctxt "menuset:required_role" +msgid "required_role" +msgstr "rol_requerido" + +#: src/modules/rolemenus/menuoptions.py:204 +msgctxt "menuset:required_role|desc" +msgid "Initial role required to use this menu." +msgstr "Rol inicial requerido para utilizar este menú." + +#: src/modules/rolemenus/menuoptions.py:209 +msgctxt "menuset:required_role|long_desc" +msgid "" +"If set, only members who have the `required_role` will be able to obtain or " +"remove roles using this menu." +msgstr "" +"Si se establece, sólo los miembros que tengan el `required_role` podrán " +"obtener o eliminar roles utilizando este menú." + +#: src/modules/rolemenus/menuoptions.py:223 +#, possible-python-brace-format +msgctxt "menuset:required_role|set_response:set" +msgid "Members will need to have the {role} role to use this menu." +msgstr "Los miembros deberán tener el rol {role} para utilizar este menú." + +#: src/modules/rolemenus/menuoptions.py:228 +msgctxt "menuset:required_role|set_response:unset" +msgid "Any member who can see the menu may use it." +msgstr "Cualquier miembro que pueda ver el menú puede utilizarlo." + +#: src/modules/rolemenus/menuoptions.py:236 +msgctxt "menuset:message" +msgid "custom_message" +msgstr "mensaje_personalizado" + +#: src/modules/rolemenus/menuoptions.py:239 +msgctxt "menuset:message|desc" +msgid "Custom message data used to display the menu." +msgstr "Datos de mensaje personalizados utilizados para mostrar el menú." + +#: src/modules/rolemenus/menuoptions.py:243 +msgctxt "menuset:message|long_desc" +msgid "" +"This setting determines the body of the menu message, including the message " +"content and the message embed(s). While most easily modifiable through the " +"`Edit Message` button, raw JSON-formatted message data may also be uploaded " +"via command." +msgstr "" +"Este ajuste determina el cuerpo del mensaje del menú, incluyendo el " +"contenido del mensaje y el embed(s) del mensaje. Aunque se puede modificar " +"más fácilmente a través del botón `Edit Message`, también se pueden cargar " +"datos de mensaje sin formato JSON a través de un comando." + +#: src/modules/rolemenus/menuoptions.py:260 +msgctxt "menuset:message|set_response:set" +msgid "The role menu message has been set. Edit through the menu editor." +msgstr "" +"El mensaje del menú de roles ha sido configurado. Editar a través del editor" +" de menús." + +#: src/modules/rolemenus/menuoptions.py:265 +msgctxt "menuset:message|set_response:unset" +msgid "" +"The role menu message has been unset. Select a template through the menu " +"editor." +msgstr "" +"El mensaje del menú de roles ha sido desactivado. Seleccione una plantilla a" +" través del editor de menús." + +#: src/modules/rolemenus/ui/menus.py:105 +msgctxt "ui:menu_list|menu:editmenu|placeholder" +msgid "Select Menu to Edit" +msgstr "Seleccionar menú para editar" + +#: src/modules/rolemenus/ui/menus.py:129 +#, possible-python-brace-format +msgctxt "ui:menu_list|menu_line:attached" +msgid "[`{name}`]({jump_url}) with `{count}` roles." +msgstr "[`{name}`]({jump_url}) con `{count}` roles." + +#: src/modules/rolemenus/ui/menus.py:138 +#, possible-python-brace-format +msgctxt "ui:menu_list|menu_line:unattached" +msgid "`{name}` with `{count}` roles." +msgstr "`{name}` con `{count}` roles." + +#: src/modules/rolemenus/ui/menus.py:163 +#, possible-python-brace-format +msgctxt "ui:menu_list|embed|title" +msgid "Role Menus in {guild}" +msgstr "Menús de roles en {guild}" + +#: src/modules/rolemenus/ui/menus.py:172 +msgctxt "ui:menu_list|embed|field:tips|name" +msgid "Tips" +msgstr "Consejos" + +#: src/modules/rolemenus/ui/menus.py:176 +msgctxt "ui:menu_list|embed|field:tips|value" +msgid "" +"Right click an existing message or use the `newmenu` command to create a new" +" menu." +msgstr "" +"Haga clic derecho en un mensaje existente o utilice el comando `newmenu` " +"para crear un nuevo menú." + +#: src/modules/rolemenus/ui/menus.py:189 +msgctxt "ui:menu_list|embed|field:unattached|name" +msgid "Unattached Menus" +msgstr "Menús no adjuntos" + +#: src/modules/rolemenus/ui/menus.py:201 +msgctxt "ui:menu_list|embed|footer:text" +msgid "Click a menu name to jump to the message." +msgstr "Haz clic en el nombre de un menú para saltar al mensaje." + +#: src/modules/rolemenus/ui/menueditor.py:93 +msgctxt "ui:menu_editor|preview|error:title" +msgid "Display Error!" +msgstr "Error de visualización" + +#: src/modules/rolemenus/ui/menueditor.py:97 +#, possible-python-brace-format +msgctxt "ui:menu_editor|preview|error:desc" +msgid "" +"Failed to display preview!\n" +"**Error:** `{exception}`" +msgstr "" +"Error al mostrar la vista previa.\n" +"**Error:** `{exception}`" + +#: src/modules/rolemenus/ui/menueditor.py:151 +msgctxt "ui:menu_editor|button:options|label" +msgid "Menu Options" +msgstr "Opciones de menú" + +#: src/modules/rolemenus/ui/menueditor.py:179 +msgctxt "ui:menu_editor|button:bulk_edit|modal|title" +msgid "Menu Options" +msgstr "Opción de menú" + +#: src/modules/rolemenus/ui/menueditor.py:218 +msgctxt "ui:menu_editor|button:bulk_edit|label" +msgid "Bulk Edit" +msgstr "Edición masiva" + +#: src/modules/rolemenus/ui/menueditor.py:238 +msgctxt "ui:menu_editor|button:sticky|label" +msgid "Toggle Sticky" +msgstr "Alternar pegajosos" + +#: src/modules/rolemenus/ui/menueditor.py:262 +msgctxt "ui:menu_editor|button:refunds|label" +msgid "Toggle Refunds" +msgstr "Alternar devoluciones" + +#: src/modules/rolemenus/ui/menueditor.py:292 +msgctxt "ui:menu_editor|menu:reqroles|placeholder" +msgid "Select Required Role" +msgstr "Seleccione el rol requerido" + +#: src/modules/rolemenus/ui/menueditor.py:311 +msgctxt "ui:menu_editor|button:modify_roles|label" +msgid "Modify Roles" +msgstr "Modificar roles" + +#: src/modules/rolemenus/ui/menueditor.py:340 +msgctxt "ui:menu_editor|role_editor|modal|title" +msgid "Edit Menu Role" +msgstr "Editar rol del menú" + +#: src/modules/rolemenus/ui/menueditor.py:416 +msgctxt "ui:menu_editor|menu:add_roles|error:too_many_reactions" +msgid "Too many roles! Reaction role menus cannot exceed `20` roles." +msgstr "" +"¡Demasiados roles! Los menús de roles de reacción no pueden tener más de " +"`20` roles." + +#: src/modules/rolemenus/ui/menueditor.py:421 +msgctxt "ui:menu_editor|menu:add_roles|error:too_many_roles" +msgid "Too many roles! Role menus cannot have more than `25` roles." +msgstr "" +"¡Demasiados roles! Los menús de roles no pueden tener más de `25` roles." + +#: src/modules/rolemenus/ui/menueditor.py:460 +msgctxt "ui:menu_editor|menu:add_roles|placeholder" +msgid "Add Roles" +msgstr "Añadir roles" + +#: src/modules/rolemenus/ui/menueditor.py:486 +msgctxt "ui:menu_editor|menu:edit_roles|placeholder" +msgid "Edit Roles" +msgstr "Editar roles" + +#: src/modules/rolemenus/ui/menueditor.py:524 +msgctxt "ui:menu_editor|menu:del_role|placeholder" +msgid "Remove Roles" +msgstr "Eliminar roles" + +#: src/modules/rolemenus/ui/menueditor.py:548 +msgctxt "ui:menu_editor|button:style|error:non-managed" +msgid "" +"Cannot change the style of a menu attached to a message I did not send! " +"Please repost first." +msgstr "" +"No puedo cambiar el estilo de un menú adjunto a un mensaje que no he " +"enviado. Por favor, vuelva a enviarlo primero." + +#: src/modules/rolemenus/ui/menueditor.py:561 +msgctxt "ui:menu_editor|button:style|label" +msgid "Menu Style" +msgstr "Menú Estilo" + +#: src/modules/rolemenus/ui/menueditor.py:586 +msgctxt "ui:menu_editor|menu:style|error:too_many_reactions" +msgid "" +"Too many roles! The Reaction style is limited to `20` roles (Discord " +"limitation)." +msgstr "" +"¡Demasiados roles! El estilo Reacción está limitado a `20` roles (limitación" +" de Discord)." + +#: src/modules/rolemenus/ui/menueditor.py:596 +msgctxt "ui:menu_editor|menu:style|error:incomplete_emojis" +msgid "" +"Cannot switch to the Reaction Role Style! Every role needs to have a " +"distinct emoji first." +msgstr "" +"No se puede cambiar al estilo de rol de reacción. Cada rol necesita tener " +"primero un emoji distinto." + +#: src/modules/rolemenus/ui/menueditor.py:614 +msgctxt "ui:menu_editor|menu:style|placeholder" +msgid "Select Menu Style" +msgstr "Seleccionar estilo de menú" + +#: src/modules/rolemenus/ui/menueditor.py:618 +msgctxt "ui:menu_editor|menu:style|option:reaction|label" +msgid "Reaction Roles" +msgstr "Roles de reacción" + +#: src/modules/rolemenus/ui/menueditor.py:621 +msgctxt "ui:menu_editor|menu:style|option:reaction|desc" +msgid "Roles are represented compactly as clickable reactions on a message." +msgstr "" +"Los roles se representan de forma compacta como reacciones clicables en un " +"mensaje." + +#: src/modules/rolemenus/ui/menueditor.py:627 +msgctxt "ui:menu_editor|menu:style|option:button|label" +msgid "Button Menu" +msgstr "Botón Menú" + +#: src/modules/rolemenus/ui/menueditor.py:630 +msgctxt "ui:menu_editor|menu:style|option:button|desc" +msgid "" +"Roles are represented in 5 rows of 5 buttons, each with an emoji and label." +msgstr "" +"Las funciones se representan en 5 filas de 5 botones, cada uno con un emoji " +"y una etiqueta." + +#: src/modules/rolemenus/ui/menueditor.py:636 +msgctxt "ui:menu_editor|menu:style|option:dropdown|label" +msgid "Dropdown Menu" +msgstr "Menú desplegable" + +#: src/modules/rolemenus/ui/menueditor.py:639 +msgctxt "ui:menu_editor|menu:style|option:dropdown|desc" +msgid "Roles are selectable from a dropdown menu below the message." +msgstr "" +"Los roles se pueden seleccionar en un menú desplegable situado debajo del " +"mensaje." + +#: src/modules/rolemenus/ui/menueditor.py:709 +msgctxt "ui:menu_editor|menu:template|placeholder" +msgid "Select Message Template" +msgstr "Seleccionar plantilla de mensaje" + +#: src/modules/rolemenus/ui/menueditor.py:719 +msgctxt "ui:menu_editor|menu:template|option:custom|label" +msgid "Custom Message" +msgstr "Mensaje personalizado" + +#: src/modules/rolemenus/ui/menueditor.py:724 +msgctxt "ui:menu_editor|menu:template|option:custom|description" +msgid "Entirely custom menu message (opens an interactive editor)." +msgstr "" +"Mensaje de menú totalmente personalizado (abre un editor interactivo)." + +#: src/modules/rolemenus/ui/menueditor.py:741 +msgctxt "ui:menu_editor|button:delete|confirm|title" +msgid "Are you sure you want to delete this menu? This is not reversible!" +msgstr "¿Está seguro de que desea eliminar este menú? No es reversible." + +#: src/modules/rolemenus/ui/menueditor.py:746 +msgctxt "ui:menu_editor|button:delete|confirm|button:yes" +msgid "Yes, Delete Now" +msgstr "Sí, borrar ahora" + +#: src/modules/rolemenus/ui/menueditor.py:751 +msgctxt "ui:menu_editor|button:delete|confirm|button:no" +msgid "No, Go Back" +msgstr "No, volver" + +#: src/modules/rolemenus/ui/menueditor.py:768 +msgctxt "ui:menu_editor|button:delete|label" +msgid "Delete Menu" +msgstr "Eliminar menú" + +#: src/modules/rolemenus/ui/menueditor.py:825 +msgctxt "ui:menu_editor|button:edit_msg|label" +msgid "Edit Message" +msgstr "Editar mensaje" + +#: src/modules/rolemenus/ui/menueditor.py:851 +msgctxt "ui:menu_editor|button:preview|label" +msgid "Preview" +msgstr "Vista previa" + +#: src/modules/rolemenus/ui/menueditor.py:867 +msgctxt "ui:menu_editor|button:repost|widget:repost|menu:channel|placeholder" +msgid "Select New Channel" +msgstr "Seleccionar nuevo canal" + +#: src/modules/rolemenus/ui/menueditor.py:885 +msgctxt "ui:menu_editor|button:repost|widget:repost|error:perms|title" +msgid "Insufficient Permissions!" +msgstr "Permisos insuficientes" + +#: src/modules/rolemenus/ui/menueditor.py:889 +msgctxt "ui:menu_editor|button:repost|eidget:repost|error:perms|desc" +msgid "" +"I lack the `EMBED_LINKS` or `SEND_MESSAGES` permission in this channel." +msgstr "Me falta el permiso `EMBED_LINKS` o `SEND_MESSAGES` en este canal." + +#: src/modules/rolemenus/ui/menueditor.py:902 +#, possible-python-brace-format +msgctxt "ui:menu_editor|button:repost|widget:repost|error:post_failed" +msgid "" +"An unknown error ocurred while posting to {channel}!\n" +"**Error:** `{exception}`" +msgstr "" +"Se ha producido un error desconocido al publicar en {channel}.\n" +"**Error:** `{exception}`" + +#: src/modules/rolemenus/ui/menueditor.py:915 +msgctxt "ui:menu_editor|button:repost|widget:repost|success|title" +msgid "Role Menu Moved" +msgstr "Menú de roles movido" + +#: src/modules/rolemenus/ui/menueditor.py:921 +#, possible-python-brace-format +msgctxt "ui:menu_editor|button:repost|widget:repost|success|desc:general" +msgid "The role menu `{name}` is now available at {message_link}." +msgstr "El menú de roles `{name}` ya está disponible en {message_link}." + +#: src/modules/rolemenus/ui/menueditor.py:935 +msgctxt "ui:menu_editor|button:repost|widget:repost|success|desc:reactions" +msgid "Please check the message reactions are correct." +msgstr "Por favor, compruebe que las reacciones del mensaje son correctas." + +#: src/modules/rolemenus/ui/menueditor.py:948 +msgctxt "ui:menu_editor|button:repost|widget:repost|title" +msgid "Repost Role Menu" +msgstr "Volver a publicar el menú de roles" + +#: src/modules/rolemenus/ui/menueditor.py:952 +msgctxt "ui:menu_editor|button:repost|widget:repost|description" +msgid "Please select the channel to which you want to resend this menu." +msgstr "Seleccione el canal al que desea reenviar este menú." + +#: src/modules/rolemenus/ui/menueditor.py:967 +msgctxt "ui:menu_editor|button:repost|label:repost" +msgid "Repost" +msgstr "Volver a publicar" + +#: src/modules/rolemenus/ui/menueditor.py:972 +msgctxt "ui:menu_editor|button:repost|label:post" +msgid "Post" +msgstr "Publicar" + +#: src/modules/rolemenus/ui/menueditor.py:982 +msgctxt "ui:menu_editor|embed|title" +msgid "Role Menu Editor" +msgstr "Editor del menú de roles" + +#: src/modules/rolemenus/ui/menueditor.py:991 +#, possible-python-brace-format +msgctxt "ui:menu_editor|embed|description|jump_text:attached" +msgid "Members may use this menu from {jump_url}" +msgstr "Los miembros pueden utilizar este menú desde {jump_url}" + +#: src/modules/rolemenus/ui/menueditor.py:996 +msgctxt "ui:menu_editor|embed|description|jump_text:unattached" +msgid "" +"This menu is not currently active!\n" +"Make it available by clicking `Post` below." +msgstr "" +"Este menú no está activo.\n" +"Hágalo activo haciendo clic en el `Post` de abajo." + +#: src/modules/rolemenus/ui/menueditor.py:1010 +msgctxt "ui:menu_editor|embed|field:tips|name" +msgid "Command Tips" +msgstr "Consejos de comando" + +#: src/modules/rolemenus/ui/menueditor.py:1014 +#, possible-python-brace-format +msgctxt "ui:menu_editor|embed|field:tips|value" +msgid "" +"Use the following commands for faster menu setup.\n" +"{menuedit} to edit the above menu options.\n" +"{addrole} to add new roles (recommended for roles with emojis).\n" +"{editrole} to edit role options." +msgstr "" +"Utilice los siguientes comandos para una configuración más rápida del menú.\n" +"{menuedit} para editar las opciones de menú anteriores.\n" +"{addrole} para añadir nuevos roles (recomendado para roles con emojis).\n" +"{editrole} para editar las opciones de rol." + +#: src/modules/rolemenus/ui/menueditor.py:1054 +msgctxt "ui:menu_editor|error:invald_emoji|title" +msgid "Invalid emoji encountered." +msgstr "Se ha encontrado un emoji no válido." + +#: src/modules/rolemenus/ui/menueditor.py:1058 +#, possible-python-brace-format +msgctxt "ui:menu_editor|error:invalid_emoji|desc" +msgid "" +"The emoji `{emoji}` for menu role `{label}` no longer exists, unsetting." +msgstr "" +"El emoji `{emoji}` para el rol de menú `{label}` ya no existe, sin " +"configurar." diff --git a/locales/es_419/LC_MESSAGES/rooms.po b/locales/es_419/LC_MESSAGES/rooms.po new file mode 100644 index 000000000000..aeb957d6fec4 --- /dev/null +++ b/locales/es_419/LC_MESSAGES/rooms.po @@ -0,0 +1,916 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Ronin DeMentira, 2023 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Ronin DeMentira, 2023\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/modules/rooms/settingui.py:39 +msgctxt "ui:room_config|menu:category|placeholder" +msgid "Select Private Room Category" +msgstr "Seleccione la categoría de habitación privada" + +#: src/modules/rooms/settingui.py:54 +msgctxt "ui:room_config|button:visible|label" +msgid "Toggle Room Visibility" +msgstr "Alternar la visibilidad de la sala" + +#: src/modules/rooms/settingui.py:64 +msgctxt "ui:rooms_config|embed|title" +msgid "Private Room System Configuration Panel" +msgstr "Panel de configuración del sistema de salas privadas" + +#: src/modules/rooms/settingui.py:100 +msgctxt "dash:rooms|title" +msgid "Private Room Configuration ({commands[admin config rooms]})" +msgstr "Configuración de salas privadas ({commands[admin config rooms]})" + +#: src/modules/rooms/settingui.py:104 +msgctxt "dash:economy|dropdown|placeholder" +msgid "Private Room Panel" +msgstr "Panel de salas privadas" + +#: src/modules/rooms/roomui.py:56 +msgctxt "ui:room_status|error:owner_required" +msgid "You must be the private room owner to do this!" +msgstr "Para ello, debes ser el propietario de la sala privada." + +#: src/modules/rooms/roomui.py:72 +msgctxt "ui:room_status|error:member_required" +msgid "You need to be a member of the private room to do this!" +msgstr "Para ello, debes ser miembro de la sala privada." + +#: src/modules/rooms/roomui.py:90 +msgctxt "ui:room_status|button:deposit|modal:deposit|title" +msgid "Room Deposit" +msgstr "Depósito de habitaciones" + +#: src/modules/rooms/roomui.py:94 +msgctxt "ui:room_status|button:deposit|modal:deposit|field:question|label" +msgid "How many LionCoins do you want to deposit?" +msgstr "¿Cuántos LionCoins quieres depositar?" + +#: src/modules/rooms/roomui.py:112 +#, possible-python-brace-format +msgctxt "ui:room_status|button:deposit|error:invalid_number" +msgid "Cannot deposit `{inputted}` coins. Please enter a positive integer." +msgstr "" +"No se pueden depositar monedas `{inputted}`. Introduzca un número entero " +"positivo." + +#: src/modules/rooms/roomui.py:144 +#, possible-python-brace-format +msgctxt "ui:room_status|button:deposit|error:insufficient_funds" +msgid "" +"You cannot deposit {coin}**{amount}**! You only have {coin}**{balance}**." +msgstr "" +"No puede depositar {coin}**{amount}**. Sólo tiene {coin}**{balance}**." + +#: src/modules/rooms/roomui.py:160 +msgctxt "ui:room_status|button:deposit|label" +msgid "Deposit" +msgstr "Depositar" + +#: src/modules/rooms/roomui.py:171 +msgctxt "ui:room_status|button:edit|label" +msgid "Edit Room" +msgstr "Editar sala" + +#: src/modules/rooms/roomui.py:204 +msgctxt "ui:room_status|button:timer|modal:add_timer|title" +msgid "Create Room Timer" +msgstr "Crear temporizador de sala" + +#: src/modules/rooms/roomui.py:236 +#, possible-python-brace-format +msgctxt "ui:room_status|button:timer|timer_created" +msgid "Timer created successfully! Use {edit_cmd} to configure further." +msgstr "" +"¡Temporizador creado con éxito! Utilice {edit_cmd} para seguir configurando." + +#: src/modules/rooms/roomui.py:254 +msgctxt "ui:room_status|button:timer|label:edit_timer" +msgid "Edit Timer" +msgstr "Editar temporizador" + +#: src/modules/rooms/roomui.py:261 +msgctxt "ui:room_status|button:timer|label:add_timer" +msgid "Add Timer" +msgstr "Añadir temporizador" + +#: src/modules/rooms/roomui.py:304 +#, possible-python-brace-format +msgctxt "ui:room_status|menu:invite|error:too_many_members" +msgid "" +"Too many members! You are inviting `{count}` new members to your room, but " +"you already have `{current}` members! The member cap is `{cap}`." +msgstr "" +"¡Demasiados miembros! Estás invitando a `{count}` nuevos miembros a tu sala," +" ¡pero ya tienes `{current}` miembros! El límite de miembros es `{cap}`." + +#: src/modules/rooms/roomui.py:330 +msgctxt "ui:room_status|menu:invite_menu|placeholder:capped" +msgid "Room member cap reached!" +msgstr "Se ha alcanzado el límite de miembros de la sala" + +#: src/modules/rooms/roomui.py:336 +msgctxt "ui:room_status|menu:invite_menu|placeholder:notcapped" +msgid "Add Members" +msgstr "Añadir miembros" + +#: src/modules/rooms/roomui.py:359 +msgctxt "ui:room_status|menu:kick_menu|placeholder" +msgid "Remove Members" +msgstr "Eliminar miembros" + +#: src/modules/rooms/roomui.py:367 +msgctxt "ui:room_status|embed|title" +msgid "Room Control Panel" +msgstr "Panel de control de la sala" + +#: src/modules/rooms/roomui.py:375 +msgctxt "ui:room_status|embed|field:channel|name" +msgid "Channel" +msgstr "Canal" + +#: src/modules/rooms/roomui.py:380 +msgctxt "ui:room_status|embed|field:owner|name" +msgid "Owner" +msgstr "Propietario" + +#: src/modules/rooms/roomui.py:385 +msgctxt "ui:room_status|embed|field:created|name" +msgid "Created At" +msgstr "Creado en" + +#: src/modules/rooms/roomui.py:395 +#, possible-python-brace-format +msgctxt "ui:room_status|embed|field:bank|value:expiring" +msgid "" +"**Warning:** Insufficient room balance to pay next rent ({coin} **{rent}**).\n" +"The room will expire {expiry}.\n" +"Use {room_deposit_cmd} to increase balance." +msgstr "" +"**Aviso:** Saldo de habitación insuficiente para pagar el próximo alquiler ({coin} **{rent}**).\n" +"La habitación expirará {expiry}.\n" +"Utiliza {room_deposit_cmd} para aumentar el saldo." + +#: src/modules/rooms/roomui.py:407 +#, possible-python-brace-format +msgctxt "ui:room_status|embed|field:bank|value:notexpiring" +msgid "Next rent due {time} (- {coin}**{rent}**)" +msgstr "Próximo alquiler a pagar {time} (- {coin}**{rent}**)" + +#: src/modules/rooms/roomui.py:416 +#, possible-python-brace-format +msgctxt "ui:room_status|embed|field:bank|name" +msgid "Room Balance: {coin}**{amount}**" +msgstr "Saldo de la habitación: {coin}**{amount}**" + +#: src/modules/rooms/roomui.py:428 +#, possible-python-brace-format +msgctxt "ui:room_status|embed|field:members|name" +msgid "Members ({count}/{cap})" +msgstr "Miembros ({count}/{cap})" + +#: src/modules/rooms/cog.py:175 src/modules/rooms/room.py:364 +msgctxt "room|eventlog|event:room_deleted|title" +msgid "Private Room Deleted" +msgstr "Sala privada Suprimida" + +#: src/modules/rooms/cog.py:179 src/modules/rooms/room.py:368 +#, possible-python-brace-format +msgctxt "room|eventlog|event:room_deleted|desc" +msgid "{owner}'s private room was deleted." +msgstr "La habitación privada del {propietario} fue borrada." + +#: src/modules/rooms/cog.py:270 +#, possible-python-brace-format +msgctxt "create_room|create_channel|audit_reason" +msgid "Creating Private Room for {ownerid}" +msgstr "Crear sala privada para {ownerid}" + +#: src/modules/rooms/cog.py:279 +msgctxt "eventlog|event:private_room_create_error|name" +msgid "Private Room Creation Failed" +msgstr "Fallo en la creación de una sala privada" + +#: src/modules/rooms/cog.py:283 +#, possible-python-brace-format +msgctxt "eventlog|event:private_room_create_error|desc" +msgid "" +"{owner} attempted to rent a new private room, but I could not create it!\n" +"They were not charged." +msgstr "" +"{owner} intentó alquilar una nueva habitación privada, ¡pero no pude crearla!\n" +"No se les cobró." + +#: src/modules/rooms/cog.py:329 +msgctxt "eventlog|event:private_room_create|name" +msgid "Private Room Rented" +msgstr "Sala privada alquilada" + +#: src/modules/rooms/cog.py:333 +#, possible-python-brace-format +msgctxt "eventlog|event:private_room_create|desc" +msgid "{owner} has rented a new private room {channel}!" +msgstr "¡{owner} ha alquilado una nueva sala privada {channel}!" + +#: src/modules/rooms/cog.py:368 +msgctxt "cmd:room" +msgid "room" +msgstr "habitación" + +#: src/modules/rooms/cog.py:369 +msgctxt "cmd:room|desc" +msgid "Base command group for private room configuration." +msgstr "Grupo de comandos base para la configuración de salas privadas." + +#: src/modules/rooms/cog.py:376 +msgctxt "cmd:room_rent" +msgid "rent" +msgstr "alquilar" + +#: src/modules/rooms/cog.py:379 +msgctxt "cmd:room_rent|desc" +msgid "Rent a private voice channel with LionCoins." +msgstr "Alquila un canal de voz privado con LionCoins." + +#: src/modules/rooms/cog.py:383 +msgctxt "cmd:room_rent|param:days" +msgid "days" +msgstr "días" + +#: src/modules/rooms/cog.py:384 +msgctxt "cmd:room_rent|param:members" +msgid "members" +msgstr "miembros" + +#: src/modules/rooms/cog.py:385 +msgctxt "cmd:room_rent|param:name" +msgid "name" +msgstr "nombre" + +#: src/modules/rooms/cog.py:390 +msgctxt "cmd:room_rent|param:days|desc" +msgid "Number of days to pre-purchase. (Default: 1)" +msgstr "Número de días para la compra anticipada. (Por defecto: 1)" + +#: src/modules/rooms/cog.py:394 +msgctxt "cmd:room_rent|param:members|desc" +msgid "Mention the members you want to add to your private room." +msgstr "Menciona los miembros que quieres añadir a tu sala privada." + +#: src/modules/rooms/cog.py:398 +msgctxt "cmd:room_rent|param:name|desc" +msgid "Name of your private voice channel." +msgstr "Nombre de tu canal de voz privado." + +#: src/modules/rooms/cog.py:416 +msgctxt "cmd:room_rent|error:not_setup" +msgid "" +"The private room system has not been set up! A private room category needs " +"to be set first with `/admin config rooms`." +msgstr "" +"No se ha configurado el sistema de salas privadas. Una categoría de sala " +"privada necesita ser configurada primero con `/admin config rooms`." + +#: src/modules/rooms/cog.py:427 +msgctxt "cmd:room_rent|error:insufficient_perms" +msgid "" +"I do not have enough permissions to create a new channel under the " +"configured private room category!" +msgstr "" +"No tengo permisos suficientes para crear un nuevo canal en la categoría de " +"salas privadas configuradas." + +#: src/modules/rooms/cog.py:441 +#, possible-python-brace-format +msgctxt "cmd:room_rent|error:room_exists" +msgid "You already own a private room! Click to visit: {channel}" +msgstr "¡Ya tienes una habitación privada! Haga clic para visitar: {channel}" + +#: src/modules/rooms/cog.py:461 +#, possible-python-brace-format +msgctxt "cmd:room_rent|error:member_not_found" +msgid "Could not find the requested member {mention} in this server!" +msgstr "" +"No se ha podido encontrar el miembro {mention} solicitado en este servidor." + +#: src/modules/rooms/cog.py:475 +#, possible-python-brace-format +msgctxt "cmd:room_rent|error:too_many_members" +msgid "" +"Too many members! You have requested to add `{count}` members to your room, " +"but the maximum private room size is `{cap}`!" +msgstr "" +"¡Demasiados miembros! Has solicitado añadir `{count}` miembros a tu sala, " +"¡pero el tamaño máximo de sala privada es `{cap}`!" + +#: src/modules/rooms/cog.py:489 +#, possible-python-brace-format +msgctxt "cmd:room_rent|confirm:purchase" +msgid "" +"Are you sure you want to spend {coin}**{required}** to rent a private room " +"for `one` day?" +msgid_plural "" +"Are you sure you want to spend {coin}**{required}** to rent a private room " +"for `{days}` days?" +msgstr[0] "" +"¿Estás seguro de que quieres gastar {coin}**{required}** para alquilar una " +"sala privada por `un` día?" +msgstr[1] "" +"¿Estás seguro de que quieres gastar {coin}**{required}** para alquilar una " +"habitación privada durante `{days}` días?" +msgstr[2] "" +"¿Estás seguro de que quieres gastar {coin}**{required}** para alquilar una " +"habitación privada durante `{days}` días?" + +#: src/modules/rooms/cog.py:514 +#, possible-python-brace-format +msgctxt "cmd:room_rent|success" +msgid "Successfully created your private room {channel}!" +msgstr "Has creado con éxito tu {channel} privado." + +#: src/modules/rooms/cog.py:519 +msgctxt "cmd:room_rent|success|title" +msgid "Private Room Created!" +msgstr "¡Sala privada creada!" + +#: src/modules/rooms/cog.py:572 +#, possible-python-brace-format +msgctxt "cmd:room_rent|error:insufficient_funds" +msgid "" +"Renting a private room for `one` day costs {coin}**{required}**, but you " +"only have {coin}**{balance}**!" +msgid_plural "" +"Renting a private room for `{days}` days costs {coin}**{required}**, but you" +" only have {coin}**{balance}**!" +msgstr[0] "" +"Alquilar una sala privada por `un` día cuesta {coin}**{required}**, ¡pero " +"sólo tienes {coin}**{balance}**!" +msgstr[1] "" +"Alquilar una sala privada durante `{days}` días cuesta {coin}**{required}**," +" ¡pero sólo tienes {coin}**{balance}**!" +msgstr[2] "" +"Alquilar una sala privada durante `{days}` días cuesta {coin}**{required}**," +" ¡pero sólo tienes {coin}**{balance}**!" + +#: src/modules/rooms/cog.py:606 +msgctxt "cmd:room_rent|error:my_permissions" +msgid "" +"Could not create your private room! You were not charged.\n" +"I have insufficient permissions to create a private room channel." +msgstr "" +"No se pudo crear su sala privada. No se te ha cobrado.\n" +"No tengo permisos suficientes para crear un canal de sala privada." + +#: src/modules/rooms/cog.py:617 +#, possible-python-brace-format +msgctxt "cmd:room_rent|error:unknown" +msgid "" +"Could not create your private room! You were not charged.\n" +"An unknown error occurred while creating your private room.\n" +"`{error}`" +msgstr "" +"No se pudo crear su sala privada. No se te ha cobrado.\n" +"Se ha producido un error desconocido al crear su sala privada.\n" +"`{error}`" + +#: src/modules/rooms/cog.py:626 +msgctxt "cmd:room_status" +msgid "status" +msgstr "estado" + +#: src/modules/rooms/cog.py:629 +msgctxt "cmd:room_status|desc" +msgid "Display the status of your current room." +msgstr "Muestra el estado de la sala actual." + +#: src/modules/rooms/cog.py:646 +msgctxt "cmd:room_status|error:no_target" +msgid "" +"Could not identify target private room! Please re-run the command in the " +"private room you wish to view the status of." +msgstr "" +"No se ha podido identificar la sala privada de destino. Vuelva a ejecutar el" +" comando en la sala privada de la que desea ver el estado." + +#: src/modules/rooms/cog.py:661 +msgctxt "cmd:room_invite" +msgid "invite" +msgstr "invitar a" + +#: src/modules/rooms/cog.py:664 +msgctxt "cmd:room_invite|desc" +msgid "Add members to your private room." +msgstr "Añade miembros a tu sala privada." + +#: src/modules/rooms/cog.py:668 +msgctxt "cmd:room_invite|param:members" +msgid "members" +msgstr "miembros" + +#: src/modules/rooms/cog.py:673 +msgctxt "cmd:room_invite|param:members|desc" +msgid "Mention the members you want to add." +msgstr "Menciona los miembros que quieres añadir." + +#: src/modules/rooms/cog.py:687 +#, possible-python-brace-format +msgctxt "cmd:room_invite|error:no_room" +msgid "" +"You do not own a private room! Use `/room rent` to rent one with {coin}!" +msgstr "" +"¡Usted no es dueño de una habitación privada! ¡Usa `/room rent` para " +"alquilar una con {coin}!" + +#: src/modules/rooms/cog.py:708 +#, possible-python-brace-format +msgctxt "cmd:room_invite|error:member_not_found" +msgid "Could not find the invited member {mention} in this server!" +msgstr "" +"No se ha podido encontrar al miembro invitado {mention} en este servidor." + +#: src/modules/rooms/cog.py:719 +msgctxt "cmd:room_invite|error:no_new_members" +msgid "All members mentioned are already in the room!" +msgstr "Todos los miembros mencionados ya están en la sala." + +#: src/modules/rooms/cog.py:733 +#, possible-python-brace-format +msgctxt "cmd:room_invite|error:too_many_members" +msgid "" +"Too many members! You have invited `{count}` new members to your room, but " +"you already have `{current}`, and the member cap is `{cap}`!" +msgstr "" +"¡Demasiados miembros! Has invitado a `{count}` nuevos miembros a tu sala, " +"pero ya tienes `{current}`, ¡y el límite de miembros es `{cap}`!" + +#: src/modules/rooms/cog.py:757 +msgctxt "cmd:room_invite|success|ack" +msgid "Members Invited successfully." +msgstr "Miembros Invitados con éxito." + +#: src/modules/rooms/cog.py:765 +msgctxt "cmd:room_kick" +msgid "kick" +msgstr "kick" + +#: src/modules/rooms/cog.py:768 +msgctxt "cmd:room_kick|desc" +msgid "Remove a members from your private room." +msgstr "Retire a un miembro de su sala privada." + +#: src/modules/rooms/cog.py:772 +msgctxt "cmd:room_kick|param:members" +msgid "members" +msgstr "miembros" + +#: src/modules/rooms/cog.py:777 +msgctxt "cmd:room_kick|param:members|desc" +msgid "" +"Mention the members you want to remove. Also accepts space-separated user " +"ids." +msgstr "" +"Mencione los miembros que desea eliminar. También acepta identificadores de " +"usuario separados por espacios." + +#: src/modules/rooms/cog.py:791 +#, possible-python-brace-format +msgctxt "cmd:room_kick|error:no_room" +msgid "" +"You do not own a private room! Use `/room rent` to rent one with {coin}!" +msgstr "" +"¡Usted no es dueño de una habitación privada! ¡Usa `/room rent` para " +"alquilar una con {coin}!" + +#: src/modules/rooms/cog.py:808 +msgctxt "cmd:room_kick|error:no_matching_members" +msgid "None of the mentioned members are in this room!" +msgstr "¡Ninguno de los miembros mencionados está en esta sala!" + +#: src/modules/rooms/cog.py:825 +msgctxt "cmd:room_kick|success|ack" +msgid "Members removed." +msgstr "Miembros retirados." + +#: src/modules/rooms/cog.py:831 +msgctxt "cmd:room_transfer" +msgid "transfer" +msgstr "transferencia" + +#: src/modules/rooms/cog.py:834 +msgctxt "cmd:room_transfer|desc" +msgid "Transfer your private room to another room member. Not reversible!" +msgstr "" +"Transfiera su sala privada a otro miembro de la sala. No es reversible." + +#: src/modules/rooms/cog.py:838 +msgctxt "cmd:room_transfer|param:new_owner" +msgid "new_owner" +msgstr "nuevo_propietario" + +#: src/modules/rooms/cog.py:843 +msgctxt "cmd:room_transfer|param:new_owner" +msgid "The room member you would like to transfer your room to." +msgstr "El miembro de la habitación al que desea transferir su habitación." + +#: src/modules/rooms/cog.py:857 +msgctxt "cmd:room_transfer|error:no_room" +msgid "You do not own a private room to transfer!" +msgstr "¡Usted no es dueño de una habitación privada para transferir!" + +#: src/modules/rooms/cog.py:869 +#, possible-python-brace-format +msgctxt "cmd:room_transfer|error:target_not_member" +msgid "" +"{mention} is not a member of your private room! You must invite them first." +msgstr "{mention} no es miembro de tu sala privada. Debes invitarle primero." + +#: src/modules/rooms/cog.py:881 +#, possible-python-brace-format +msgctxt "cmd:room_transfer|error:target_has_room" +msgid "" +"{mention} already owns a room! Members can only own one room at a time." +msgstr "" +"{mention} ¡ya posee una sala! Los miembros solo pueden poseer una sala a la " +"vez." + +#: src/modules/rooms/cog.py:890 +#, possible-python-brace-format +msgctxt "cmd:room_transfer|confirm|question" +msgid "" +"Are you sure you wish to transfer your private room {channel} to " +"{new_owner}? This action is not reversible!" +msgstr "" +"¿Está seguro de que desea transferir su sala privada {channel} a " +"{new_owner}? ¡Esta acción no es reversible!" + +#: src/modules/rooms/cog.py:910 +#, possible-python-brace-format +msgctxt "cmd:room_transfer|success|description" +msgid "" +"You have successfully transferred ownership of {channel} to {new_owner}." +msgstr "Ha transferido con éxito la propiedad de {channel} a {new_owner}." + +#: src/modules/rooms/cog.py:916 +msgctxt "cmd:room_deposit" +msgid "deposit" +msgstr "depositar" + +#: src/modules/rooms/cog.py:919 +msgctxt "cmd:room_deposit|desc" +msgid "" +"Deposit LionCoins in your private room bank to add more days. (Members may " +"also deposit!)" +msgstr "" +"Deposita LionCoins en el banco de tu sala privada para añadir más días.(Los " +"miembros también pueden)" + +#: src/modules/rooms/cog.py:923 +msgctxt "cmd:room_deposit|param:coins" +msgid "coins" +msgstr "monedas" + +#: src/modules/rooms/cog.py:928 +msgctxt "cmd:room_deposit|param:coins|desc" +msgid "Number of coins to deposit." +msgstr "Número de monedas a depositar." + +#: src/modules/rooms/cog.py:948 +msgctxt "cmd:room_deposit|error:no_target" +msgid "" +"Could not identify target private room! Please re-run the command in the " +"private room you wish to contribute to." +msgstr "" +"No se ha podido identificar la sala privada de destino. Vuelva a ejecutar el" +" comando en la sala privada a la que desea contribuir." + +#: src/modules/rooms/cog.py:964 +#, possible-python-brace-format +msgctxt "cmd:room_deposit|error:insufficient_funds" +msgid "" +"You cannot deposit {coin}**{amount}**! You only have {coin}**{balance}**." +msgstr "" +"No puede depositar {coin}**{amount}**. Sólo tiene {coin}**{balance}**." + +#: src/modules/rooms/cog.py:985 +#, possible-python-brace-format +msgctxt "cmd:room_depost|success" +msgid "" +"Success! You have contributed {coin}**{amount}** to the private room bank." +msgstr "Éxito. Has aportado {coin}**{amount}** al banco de la sala privada." + +#: src/modules/rooms/cog.py:1000 +msgctxt "cmd:configure_rooms" +msgid "rooms" +msgstr "habitaciones" + +#: src/modules/rooms/cog.py:1001 +msgctxt "cmd:configure_rooms|desc" +msgid "Configure Rented Private Rooms" +msgstr "Configurar salas privadas alquiladas" + +#: src/modules/rooms/room.py:78 +msgctxt "room|eventlog|field:owner" +msgid "Owner" +msgstr "Propietario" + +#: src/modules/rooms/room.py:84 +msgctxt "room|eventlog|field:channel" +msgid "Channel" +msgstr "Canal" + +#: src/modules/rooms/room.py:90 +msgctxt "room|eventlog|field:balance" +msgid "Room Balance" +msgstr "Balance de habitaciones" + +#: src/modules/rooms/room.py:96 +msgctxt "room|eventlog|field:created" +msgid "Created At" +msgstr "Creado en" + +#: src/modules/rooms/room.py:102 +msgctxt "room|eventlog|field:tick" +msgid "Next Rent Due" +msgstr "Próximo vencimiento del alquiler" + +#: src/modules/rooms/room.py:108 +msgctxt "room|eventlog|field:members" +msgid "Private Room Members" +msgstr "Miembros de la sala privada" + +#: src/modules/rooms/room.py:123 +#, possible-python-brace-format +msgctxt "room|notify:deposit|description" +msgid "{member} has deposited {coin}**{amount}** into the room bank!" +msgstr "¡{member} ha depositado {coin}**{amount}** en el banco de la sala!" + +#: src/modules/rooms/room.py:146 +msgctxt "room|notify:new_members|title" +msgid "New Members!" +msgstr "Nuevos miembros" + +#: src/modules/rooms/room.py:150 +#, possible-python-brace-format +msgctxt "room|notify:new_members|desc" +msgid "Welcome {members}" +msgstr "Bienvenidos {members}" + +#: src/modules/rooms/room.py:156 +msgctxt "room|eventlog|event:new_members|title" +msgid "Members invited to private room" +msgstr "Miembros invitados a la sala privada" + +#: src/modules/rooms/room.py:160 +#, possible-python-brace-format +msgctxt "room|eventlog|event:new_members|desc" +msgid "{owner} added members to their private room: {members}" +msgstr "{owner} ha añadido miembros a su sala privada: {members}" + +#: src/modules/rooms/room.py:191 +msgctxt "room|eventlog|event:rm_members|title" +msgid "Members removed from private room" +msgstr "Miembros expulsados de una sala privada" + +#: src/modules/rooms/room.py:195 +#, possible-python-brace-format +msgctxt "room|eventlog|event:rm_members|desc" +msgid "{owner} removed members from their private room: {members}" +msgstr "{owner} eliminó miembros de su sala privada: {members}" + +#: src/modules/rooms/room.py:254 +#, possible-python-brace-format +msgctxt "room|notify:transfer|description" +msgid "{old_owner} has transferred private room ownership to {new_owner}" +msgstr "" +"{old_owner} ha transferido la propiedad de la sala privada a {new_owner}" + +#: src/modules/rooms/room.py:318 +msgctxt "room|embed:expiry|title" +msgid "Private Room Expired!" +msgstr "Salón Privado ¡Caducado!" + +#: src/modules/rooms/room.py:322 +#, possible-python-brace-format +msgctxt "room|embed:expiry|description" +msgid "Your private room in **{guild}** has expired!" +msgstr "¡Tu sala privada en **{guild}** ha caducado!" + +#: src/modules/rooms/room.py:332 +msgctxt "room|eventlog|event:expired|title" +msgid "Private Room Expired" +msgstr "Salón privado Caducado" + +#: src/modules/rooms/room.py:336 +#, possible-python-brace-format +msgctxt "room|eventlog|event:expired|desc" +msgid "{owner}'s private room has expired." +msgstr "La habitación privada del {owner} ha caducado." + +#: src/modules/rooms/room.py:349 +#, possible-python-brace-format +msgctxt "room|tick|rent_deducted" +msgid "Daily rent deducted from room balance. New balance: {coin}**{amount}**" +msgstr "" +"Alquiler diario deducido del saldo de la habitación. Nuevo saldo: " +"{coin}**{amount}**" + +#: src/modules/rooms/settings.py:23 +msgctxt "guildset:room_category" +msgid "rooms_category" +msgstr "categoria_habitaciones" + +#: src/modules/rooms/settings.py:27 +msgctxt "guildset:rooms_category|desc" +msgid "Category in which to create private voice channels." +msgstr "Categoría en la que crear canales de voz privados." + +#: src/modules/rooms/settings.py:31 +msgctxt "guildset:room_category|long_desc" +msgid "" +"When a member uses {cmds[room rent]} to rent a new private room, a private " +"voice channel will be created under this category, manageable by the member." +" I must have permission to create new channels in this category, as well as " +"to manage permissions." +msgstr "" +"Cuando un miembro utiliza {cmds[room rent]} para alquilar una nueva sala " +"privada, se creará un canal de voz privado bajo esta categoría, gestionable " +"por el miembro. Debo tener permiso para crear nuevos canales en esta " +"categoría, así como para gestionar los permisos." + +#: src/modules/rooms/settings.py:39 +msgctxt "guildset:room_category|accepts" +msgid "Private room category name or id." +msgstr "Nombre o identificador de la categoría de sala privada." + +#: src/modules/rooms/settings.py:53 +msgctxt "guildset:rooms_category|set_response:unset" +msgid "" +"The private room category has been unset. Existing private rooms will not be" +" affected. Delete the channels manually to remove the private rooms." +msgstr "" +"Se ha anulado la categoría de habitaciones privadas. Las salas privadas " +"existentes no se verán afectadas. Borre los canales manualmente para " +"eliminar las salas privadas." + +#: src/modules/rooms/settings.py:59 +#, possible-python-brace-format +msgctxt "guildset:rooms_category|set_response:set" +msgid "" +"Private room category has been set to {channel}. Existing private rooms will" +" be moved." +msgstr "" +"La categoría de sala privada se ha establecido en {channel}. Las salas " +"privadas existentes se moverán." + +#: src/modules/rooms/settings.py:69 +#, possible-python-brace-format +msgctxt "guildset:room_category|set_using" +msgid "{cmd} or category selector below." +msgstr "{cmd} o selector de categoría a continuación." + +#: src/modules/rooms/settings.py:79 +msgctxt "guildset:rooms_price" +msgid "room_rent" +msgstr "alquiler_habitacion" + +#: src/modules/rooms/settings.py:83 +msgctxt "guildset:rooms_rent|desc" +msgid "Daily rent price for a private room." +msgstr "Precio del alquiler diario de una habitación privada." + +#: src/modules/rooms/settings.py:87 +msgctxt "guildset:rooms_rent|long_desc" +msgid "" +"Members will be charged this many LionCoins for each day they rent a private" +" room." +msgstr "" +"A los socios se les cobrará esta cantidad de LionCoins por cada día que " +"alquilen una sala privada." + +#: src/modules/rooms/settings.py:91 +msgctxt "guildset:rooms_rent|accepts" +msgid "Number of LionCoins charged per day for a private room." +msgstr "Número de LionCoins cobrados al día por una habitación privada." + +#: src/modules/rooms/settings.py:103 +#, possible-python-brace-format +msgctxt "guildset:rooms_price|set_response" +msgid "Private rooms will now cost {coin}**{amount}** per 24 hours." +msgstr "" +"Las habitaciones privadas ahora costarán {coin}**{amount}** por 24 horas." + +#: src/modules/rooms/settings.py:116 +msgctxt "guildset:rooms_slots" +msgid "room_member_cap" +msgstr "room_member_cap" + +#: src/modules/rooms/settings.py:119 +msgctxt "guildset:rooms_slots|desc" +msgid "Maximum number of members in each private room." +msgstr "Número máximo de miembros en cada sala privada." + +#: src/modules/rooms/settings.py:123 +msgctxt "guildset:rooms_slots|long_desc" +msgid "" +"Private room owners may invite other members to their private room via the " +"UI, or through the {cmds[room invite]} command. This setting limits the " +"maximum number of members a private room may hold." +msgstr "" +"Los propietarios de salas privadas pueden invitar a otros miembros a su sala" +" privada a través de la interfaz de usuario o mediante el comando {cmds[room" +" invite]}. Este ajuste limita el número máximo de miembros que puede tener " +"una sala privada." + +#: src/modules/rooms/settings.py:129 +msgctxt "guildset:rooms_slots|accepts" +msgid "Maximum number of members allowed per private room." +msgstr "Número máximo de miembros permitido por sala privada." + +#: src/modules/rooms/settings.py:141 +#, possible-python-brace-format +msgctxt "guildset:rooms_slots|set_response" +msgid "Private rooms are now capped to **{amount}** members." +msgstr "Las salas privadas ahora tienen un límite de **{amount}** miembros." + +#: src/modules/rooms/settings.py:151 +msgctxt "guildset:rooms_visible" +msgid "room_visibility" +msgstr "visibilidad_habitación" + +#: src/modules/rooms/settings.py:154 +msgctxt "guildset:rooms_visible|desc" +msgid "Whether private rented rooms are visible to non-members." +msgstr "" +"Si las habitaciones privadas alquiladas son visibles para los no socios." + +#: src/modules/rooms/settings.py:158 +msgctxt "guildset:rooms_visible|long_desc" +msgid "" +"If enabled, new private rooms will be created with the `VIEW_CHANNEL` " +"permission enabled for the `@everyone` role." +msgstr "" +"Si se activa, se crearán nuevas salas privadas con el permiso `VIEW_CHANNEL`" +" activado para el rol `@everyone`." + +#: src/modules/rooms/settings.py:162 +msgctxt "guildset:rooms_visible|accepts" +msgid "Visible/Invisible" +msgstr "Visible/Invisible" + +#: src/modules/rooms/settings.py:164 +msgctxt "guildset:rooms_visible|output:true" +msgid "Visible" +msgstr "Visible" + +#: src/modules/rooms/settings.py:165 +msgctxt "guildset:rooms_visible|output:false" +msgid "Invisible" +msgstr "Invisible" + +#: src/modules/rooms/settings.py:171 +msgctxt "guildset:rooms_visible|parse:truthy_values" +msgid "visible|enabled|yes|true|on|enable|1" +msgstr "visible|habilitado|sí|verdadero|activado|habilitado|1" + +#: src/modules/rooms/settings.py:175 +msgctxt "guildset:rooms_visible|parse:falsey_values" +msgid "invisible|disabled|no|false|off|disable|0" +msgstr "invisible|desactivado|no|falso|off|desactivar|0" + +#: src/modules/rooms/settings.py:187 +msgctxt "guildset:rooms_visible|set_response:enabled" +msgid "Private rooms will now be visible to everyone." +msgstr "Las salas privadas ahora serán visibles para todos." + +#: src/modules/rooms/settings.py:192 +msgctxt "guildset:rooms_visible|set_response:disabled" +msgid "Private rooms will now only be visible to their members (and admins)." +msgstr "" +"Las salas privadas ahora sólo serán visibles para sus miembros (y " +"administradores)." + +#: src/modules/rooms/settings.py:202 +#, possible-python-brace-format +msgctxt "guildset:rooms_visible|set_using" +msgid "{cmd} or toggle below." +msgstr "{cmd} o alternar abajo." diff --git a/locales/es_419/LC_MESSAGES/schedule.po b/locales/es_419/LC_MESSAGES/schedule.po new file mode 100644 index 000000000000..7f5d24300f6e --- /dev/null +++ b/locales/es_419/LC_MESSAGES/schedule.po @@ -0,0 +1,1336 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Ronin DeMentira, 2023 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Ronin DeMentira, 2023\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/modules/schedule/cog.py:493 +msgctxt "create_booking|error:no_lobby" +msgid "" +"This server has not set a `session_lobby`, so the scheduled session system " +"is disabled!" +msgstr "" +"Este servidor no ha establecido un `session_lobby`, por lo que el sistema de" +" sesiones programadas está desactivado!" + +#: src/modules/schedule/cog.py:505 +msgctxt "create_booking|error:no_member" +msgid "An unknown Discord error occurred. Please try again in a few minutes." +msgstr "" +"Se ha producido un error desconocido en Discord. Por favor, inténtelo de " +"nuevo en unos minutos." + +#: src/modules/schedule/cog.py:513 +msgctxt "create_booking|error:blacklisted" +msgid "" +"You have been blacklisted from the scheduled session system in this server." +msgstr "" +"Ha sido incluido en la lista negra del sistema de sesiones programadas de " +"este servidor." + +#: src/modules/schedule/cog.py:524 +#, possible-python-brace-format +msgctxt "create_booking|error:insufficient_balance" +msgid "" +"Booking a session costs {coin}**{required}**, but you only have " +"{coin}**{balance}**." +msgid_plural "" +"Booking `{count}` sessions costs {coin}**{required}**, but you only have " +"{coin}**{balance}**." +msgstr[0] "" +"Reservar una sesión cuesta {coin}**{required}**, pero sólo tienes " +"{coin}**{balance}**." +msgstr[1] "" +"Reservar `{count}` sesiones cuesta {coin}**{required}**, pero sólo tienes " +"{coin}**{balance}**." +msgstr[2] "" +"Reservar `{count}` sesiones cuesta {coin}**{required}**, pero sólo tienes " +"{coin}**{balance}**." + +#: src/modules/schedule/cog.py:538 +msgctxt "create_booking|error:already_booked" +msgid "One or more requested timeslots are already booked!" +msgstr "Una o más franjas horarias solicitadas ya están reservadas." + +#: src/modules/schedule/cog.py:741 +msgctxt "cmd:schedule" +msgid "schedule" +msgstr "horario" + +#: src/modules/schedule/cog.py:744 +msgctxt "cmd:schedule|desc" +msgid "View and manage your scheduled session." +msgstr "Vea y gestione su sesión programada." + +#: src/modules/schedule/cog.py:749 +msgctxt "cmd:schedule|param:cancel" +msgid "cancel" +msgstr "cancelar" + +#: src/modules/schedule/cog.py:752 +msgctxt "cmd:schedule|param:book" +msgid "book" +msgstr "reservar" + +#: src/modules/schedule/cog.py:758 +msgctxt "cmd:schedule|param:cancel|desc" +msgid "Select a booked timeslot to cancel." +msgstr "Seleccione una franja horaria reservada para cancelarla." + +#: src/modules/schedule/cog.py:762 +msgctxt "cmd:schedule|param:book|desc" +msgid "Select a timeslot to schedule. (Times shown in your set timezone.)" +msgstr "" +"Seleccione una franja horaria para programar. (Las horas se muestran en la " +"zona horaria establecida)." + +#: src/modules/schedule/cog.py:792 +#, possible-python-brace-format +msgctxt "cmd:schedule|cancel_booking|error:parse_slot" +msgid "" +"Time slot `{provided}` not recognised. Please select a session to cancel " +"from the autocomplete options." +msgstr "" +"No se reconoce la franja horaria `{provided}`. Seleccione una sesión para " +"cancelar en las opciones de autocompletar." + +#: src/modules/schedule/cog.py:800 +#, possible-python-brace-format +msgctxt "cmd:schedule|cancel_booking|error:not_booked" +msgid "Could not cancel {time} booking because it is not booked!" +msgstr "No se ha podido anular la reserva de {time} porque no está reservada." + +#: src/modules/schedule/cog.py:809 +#, possible-python-brace-format +msgctxt "cmd:schedule|cancel_booking|error:too_soon" +msgid "Cannot cancel {time} booking because it is running or starting soon!" +msgstr "" +"No se puede cancelar la reserva de {time} porque está en marcha o empieza " +"pronto." + +#: src/modules/schedule/cog.py:822 +#, possible-python-brace-format +msgctxt "cmd:schedule|cancel_booking|success" +msgid "Successfully cancelled your booking at {time}." +msgstr "Cancelada con éxito su reserva en {time}." + +#: src/modules/schedule/cog.py:835 +#, possible-python-brace-format +msgctxt "cmd:schedule|create_booking|error:parse_slot" +msgid "" +"Time slot `{provided}` not recognised. Please select a session to cancel " +"from the autocomplete options." +msgstr "" +"No se reconoce la franja horaria `{provided}`. Seleccione una sesión para " +"cancelar en las opciones de autocompletar." + +#: src/modules/schedule/cog.py:843 +#, possible-python-brace-format +msgctxt "cmd:schedule|create_booking|error:already_booked" +msgid "You have already booked a scheduled session for {time}." +msgstr "Ya ha reservado una sesión programada para {time}." + +#: src/modules/schedule/cog.py:852 +#, possible-python-brace-format +msgctxt "cmd:schedule|create_booking|error:too_soon" +msgid "Cannot book session at {time} because it is running or starting soon!" +msgstr "" +"¡No se puede reservar sesión en {time} porque está en marcha o empieza " +"pronto!" + +#: src/modules/schedule/cog.py:864 +#, possible-python-brace-format +msgctxt "cmd:schedule|create_booking|success" +msgid "You have successfully scheduled a session at {time}." +msgstr "Ha programado correctamente una sesión a las {time}." + +#: src/modules/schedule/cog.py:909 +msgctxt "cmd:schedule|acmpl:book|error:not_in_guild" +msgid "You need to be in a server to book sessions!" +msgstr "Es necesario estar en un servidor para reservar sesiones." + +#: src/modules/schedule/cog.py:922 +msgctxt "cmd:schedule|acmpl:book|error:blacklisted" +msgid "Cannot Book -- Blacklisted" +msgstr "No se puede reservar -- Lista negra" + +#: src/modules/schedule/cog.py:943 +#, possible-python-brace-format +msgctxt "cmd:schedule|acmpl:book|timezone_info" +msgid "" +"Using timezone '{timezone}' where it is '{now}'. Change with '/my timezone'" +msgstr "" +"Usando zona horaria '{timezone}' donde es '{now}'. Cambiar con '/my " +"timezone'" + +#: src/modules/schedule/cog.py:956 src/modules/schedule/cog.py:1014 +#, possible-python-brace-format +msgctxt "cmd:schedule|acmpl:book|format" +msgid "{start} - {end} ({until})" +msgstr "{start} - {end} ({until})" + +#: src/modules/schedule/cog.py:980 +#, possible-python-brace-format +msgctxt "cmd:schedule|acmpl:book|no_matching" +msgid "No bookable sessions matching '{partial}'" +msgstr "No hay sesiones reservables que coincidan con '{partial}'" + +#: src/modules/schedule/cog.py:1003 +msgctxt "cmd:schedule|acmpl:cancel|error:empty_schedule" +msgid "You do not have any upcoming sessions to cancel!" +msgstr "No tiene ninguna próxima sesión que cancelar." + +#: src/modules/schedule/cog.py:1036 +#, possible-python-brace-format +msgctxt "cmd:schedule|acmpl:cancel|error:no_matching" +msgid "No cancellable sessions matching '{partial}'" +msgstr "No hay sesiones cancelables que coincidan con '{partial}'" + +#: src/modules/schedule/cog.py:1081 +msgctxt "cmd:configure_schedule" +msgid "schedule" +msgstr "horario" + +#: src/modules/schedule/cog.py:1084 +msgctxt "cmd:configure_schedule|desc" +msgid "Configure Scheduled Session system" +msgstr "Configurar el sistema de sesiones programadas" + +#: src/modules/schedule/lib.py:86 src/modules/schedule/ui/scheduleui.py:347 +#, possible-python-brace-format +msgctxt "ui:schedule|format_until|positive" +msgid "in <1 hour" +msgid_plural "in {number} hours" +msgstr[0] "en <1 hora" +msgstr[1] "en {number} horas" +msgstr[2] "en {number} horas" + +#: src/modules/schedule/lib.py:93 src/modules/schedule/ui/scheduleui.py:354 +msgctxt "ui:schedule|format_until|now" +msgid "right now!" +msgstr "¡ahora mismo!" + +#: src/modules/schedule/settings.py:70 +msgctxt "guildset:session_lobby" +msgid "session_lobby" +msgstr "lobbyde_sesión" + +#: src/modules/schedule/settings.py:73 +msgctxt "guildset:session_lobby|desc" +msgid "Channel to post scheduled session announcement and status to." +msgstr "" +"Canal en el que publicar el anuncio y el estado de la sesión programada." + +#: src/modules/schedule/settings.py:77 +msgctxt "guildset:session_lobby|long_desc" +msgid "" +"Channel in which to announce scheduled sessions and post their status. I must have the `MANAGE_WEBHOOKS` permission in this channel.\n" +"**This must be configured in order for the scheduled session system to function.**" +msgstr "" +"Canal en el que anunciar las sesiones programadas y publicar su estado. Debo tener el permiso `MANAGE_WEBHOOKS` en este canal.\n" +"**Esto debe estar configurado para que el sistema de sesiones programadas funcione.**" + +#: src/modules/schedule/settings.py:83 +msgctxt "guildset:session_lobby|accepts" +msgid "Name or id of the session lobby channel." +msgstr "Nombre o id del canal del lobby de la sesión." + +#: src/modules/schedule/settings.py:97 +#, possible-python-brace-format +msgctxt "guildset:session_lobby|set_response|set" +msgid "Scheduled sessions will now be announced in {channel}" +msgstr "" +"Las sesiones programadas se anunciarán a partir de ahora en {channel}." + +#: src/modules/schedule/settings.py:102 +msgctxt "guildset:session_lobby|set_response|unset" +msgid "" +"The schedule session lobby has been unset. Shutting down scheduled session " +"system." +msgstr "" +"Se ha desactivado el sistema de sesiones programadas. Cierre del sistema de " +"sesiones programadas." + +#: src/modules/schedule/settings.py:112 +msgctxt "guildset:session_lobby|formatted|unset" +msgid "`Not Set` (The scheduled session system is disabled.)" +msgstr "`Not Set` (El sistema de sesiones programadas está desactivado.)" + +#: src/modules/schedule/settings.py:117 +#, possible-python-brace-format +msgctxt "guildset:session_lobby|formatted|set" +msgid "<#{channelid}>" +msgstr "<#{channelid}>" + +#: src/modules/schedule/settings.py:127 +msgctxt "guildset:session_room" +msgid "session_room" +msgstr "sala_sesión" + +#: src/modules/schedule/settings.py:130 +msgctxt "guildset:session_room|desc" +msgid "Special voice channel open to scheduled session members." +msgstr "" +"Canal de voz especial abierto a los miembros de las sesiones programadas." + +#: src/modules/schedule/settings.py:134 +msgctxt "guildset:session_room|long_desc" +msgid "" +"If set, this voice channel serves as a dedicated room for scheduled session " +"members. During (and slightly before) each scheduled session, all members " +"who have booked the session will be given permission to join the voice " +"channel (via permission overwrites). I require the `MANAGE_CHANNEL`, " +"`MANAGE_PERMISSIONS`, `CONNECT`, and `VIEW_CHANNEL` permissions in this " +"channel, and my highest role must be higher than all permission overwrites " +"set in the channel. Furthermore, if this is set to a *category* channel, " +"then the permission overwrites will apply to all *synced* channels under the" +" category, as usual." +msgstr "" +"Si se establece, este canal de voz sirve como sala dedicada para los " +"miembros de la sesión programada. Durante (y un poco antes) de cada sesión " +"programada, todos los miembros que hayan reservado la sesión recibirán " +"permiso para unirse al canal de voz (a través de la sobreescritura de " +"permisos). Requiero los permisos `MANAGE_CHANNEL`, `MANAGE_PERMISSIONS`, " +"`CONNECT`, y `VIEW_CHANNEL` en este canal, y mi rol más alto debe ser mayor " +"que todos los permisos de sobreescritura establecidos en el canal. Además, " +"si esto se establece en un canal de *categoría*, entonces las " +"sobreescrituras de permisos se aplicarán a todos los canales *sincronizados*" +" bajo la categoría, como de costumbre." + +#: src/modules/schedule/settings.py:144 +msgctxt "guildset:session_room|accepts" +msgid "Name or id of the session room voice channel." +msgstr "Nombre o id del canal de voz de la sala de sesiones." + +#: src/modules/schedule/settings.py:158 +#, possible-python-brace-format +msgctxt "guildset:session_room|set_response|set" +msgid "Schedule session members will now be given access to {channel}" +msgstr "" +"Los miembros de la sesión de programación tendrán ahora acceso al {channel}." + +#: src/modules/schedule/settings.py:163 +msgctxt "guildset:session_room|set_response|unset" +msgid "The dedicated schedule session room has been removed." +msgstr "Se ha suprimido la sala dedicada a las sesiones programadas." + +#: src/modules/schedule/settings.py:171 +msgctxt "guildset:session_channels" +msgid "session_channels" +msgstr "canalesde_sesión" + +#: src/modules/schedule/settings.py:174 +msgctxt "guildset:session_channels|desc" +msgid "Voice channels in which to track activity for scheduled sessions." +msgstr "" +"Canales de voz en los que seguir la actividad de las sesiones programadas." + +#: src/modules/schedule/settings.py:178 +msgctxt "guildset:session_channels|long_desc" +msgid "" +"Only activity in these channels (and in `session_room` if set) will count " +"towards scheduled session attendance. If a category is selected, then all " +"channels under the category will also be included. Activity tracking also " +"respects the `untracked_voice_channels` setting." +msgstr "" +"Sólo la actividad en estos canales (y en `session_room` si está configurado)" +" contará para la asistencia a la sesión programada. Si se selecciona una " +"categoría, también se incluirán todos los canales de dicha categoría. El " +"seguimiento de la actividad también respeta el ajuste " +"`untracked_voice_channels`." + +#: src/modules/schedule/settings.py:185 +msgctxt "guildset:session_channels|accepts" +msgid "Comma separated list of session channel names or ids." +msgstr "Lista separada por comas de nombres o ids de canales de sesión." + +#: src/modules/schedule/settings.py:202 +#, possible-python-brace-format +msgctxt "guildset:session_channels|set_response|set" +msgid "" +"Activity in the following sessions will now count towards scheduled session " +"attendance: {channels}" +msgstr "" +"La actividad en las siguientes sesiones contará ahora para la asistencia a " +"las sesiones programadas: {channels}" + +#: src/modules/schedule/settings.py:207 +msgctxt "guildset:session_channels|set_response|unset" +msgid "" +"Activity in all (tracked) voice channels will now count towards session " +"attendance." +msgstr "" +"La actividad en todos los canales de voz (seguidos) contará ahora para la " +"asistencia a la sesión." + +#: src/modules/schedule/settings.py:217 +msgctxt "guildset:session_channels|formatted|unset" +msgid "All Channels (excluding `untracked_channels`)" +msgstr "Todos los canales (excepto `untracked_channels`)" + +#: src/modules/schedule/settings.py:248 +msgctxt "guildset:schedule_cost" +msgid "schedule_cost" +msgstr "horario_coste" + +#: src/modules/schedule/settings.py:251 +msgctxt "guildset:schedule_cost|desc" +msgid "Booking cost for each scheduled session." +msgstr "Coste de reserva para cada sesión programada." + +#: src/modules/schedule/settings.py:255 +msgctxt "guildset:schedule_cost|long_desc" +msgid "" +"Members will be charged this many LionCoins for each scheduled session they " +"book." +msgstr "" +"A los socios se les cobrará esta cantidad de LionCoins por cada sesión " +"programada que reserven." + +#: src/modules/schedule/settings.py:259 +msgctxt "guildset:schedule_cost|accepts" +msgid "Price of each session booking (non-negative integer)." +msgstr "Precio de la reserva de cada sesión (número entero no negativo)." + +#: src/modules/schedule/settings.py:271 +#, possible-python-brace-format +msgctxt "guildset:schedule_cost|set_response" +msgid "" +"Schedule session bookings will now cost {coin} **{amount}** per timeslot." +msgstr "" +"Las reservas de sesiones programadas ahora costarán {coin} **{amount}** por " +"franja horaria." + +#: src/modules/schedule/settings.py:284 +#, possible-python-brace-format +msgctxt "guildset:schedule_cost|formatted" +msgid "{coin}**{amount}** per booking." +msgstr "{coin}**{importe}** por reserva." + +#: src/modules/schedule/settings.py:294 +msgctxt "guildset:attendance_reward" +msgid "attendance_reward" +msgstr "premio_presencia" + +#: src/modules/schedule/settings.py:297 +msgctxt "guildset:attendance_reward|desc" +msgid "Reward for attending a booked scheduled session." +msgstr "Recompensa por asistir a una sesión programada reservada." + +#: src/modules/schedule/settings.py:301 +msgctxt "guildset:attendance_reward|long_desc" +msgid "" +"When a member successfully attends a scheduled session they booked, they " +"will be awarded this many LionCoins. Should generally be more than the " +"`schedule_cost` setting." +msgstr "" +"Cuando un miembro asiste con éxito a una sesión programada que ha reservado," +" recibirá esta cantidad de LionCoins. Por lo general, esta cantidad debe ser" +" superior a la del parámetro `schedule_cost`." + +#: src/modules/schedule/settings.py:307 +msgctxt "guildset:attendance_reward|accepts" +msgid "Number of coins to reward session attendance." +msgstr "Número de monedas para premiar la asistencia a la sesión." + +#: src/modules/schedule/settings.py:319 +#, possible-python-brace-format +msgctxt "guildset:attendance_reward|set_response" +msgid "" +"Members will be rewarded {coin}**{amount}** when they attend a scheduled " +"session." +msgstr "" +"Los miembros serán recompensados con {coin}**{amount}** cuando asistan a una" +" sesión programada." + +#: src/modules/schedule/settings.py:329 +#, possible-python-brace-format +msgctxt "guildset:attendance_reward|formatted" +msgid "{coin}**{amount}** upon attendance." +msgstr "{coin}**{amount}** al asistir." + +#: src/modules/schedule/settings.py:339 +msgctxt "guildset:attendance_bonus" +msgid "group_attendance_bonus" +msgstr "bonus_asistencia_grupo" + +#: src/modules/schedule/settings.py:342 +msgctxt "guildset:attendance_bonus|desc" +msgid "Bonus reward given when all members attend a scheduled session." +msgstr "" +"Recompensa de bonificación concedida cuando todos los miembros asisten a una" +" sesión programada." + +#: src/modules/schedule/settings.py:346 +msgctxt "guildset:attendance_bonus|long_desc" +msgid "" +"When all members who have booked a session successfully attend the session, " +"they will be given this bonus in *addition* to the `attendance_reward`." +msgstr "" +"Cuando todos los miembros que hayan reservado una sesión asistan a ella, " +"recibirán esta bonificación *además* de la `attendance_reward`." + +#: src/modules/schedule/settings.py:351 +msgctxt "guildset:attendance_bonus|accepts" +msgid "Bonus coins rewarded when everyone attends a session." +msgstr "" +"Monedas de bonificación recompensadas cuando todo el mundo asiste a una " +"sesión." + +#: src/modules/schedule/settings.py:363 +#, possible-python-brace-format +msgctxt "guildset:attendance_bonus|set_response" +msgid "" +"Session members will be rewarded an additional {coin}**{amount}** when " +"everyone attends." +msgstr "" +"Los miembros de la sesión recibirán una {coin}**{cantidad}** adicional " +"cuando asistan todos." + +#: src/modules/schedule/settings.py:373 +#, possible-python-brace-format +msgctxt "guildset:attendance_bonus|formatted" +msgid "{coin}**{amount}** bonus when all booked members attend." +msgstr "" +"{coin}**{amount}** de bonificación cuando asistan todos los miembros " +"inscritos." + +#: src/modules/schedule/settings.py:383 +msgctxt "guildset:min_attendance" +msgid "min_attendance" +msgstr "asistencia_mínima" + +#: src/modules/schedule/settings.py:386 +msgctxt "guildset:min_attendance|desc" +msgid "Minimum attendance before reward eligability." +msgstr "Asistencia mínima para tener derecho a recompensa." + +#: src/modules/schedule/settings.py:390 +msgctxt "guildset:min_attendance|long_desc" +msgid "" +"Scheduled session members will need to attend the session for at least this " +"number of minutes before they are marked as having attended (and hence are " +"rewarded)." +msgstr "" +"Los miembros de la sesión programada tendrán que asistir a la sesión durante" +" al menos este número de minutos antes de que se marque que han asistido (y," +" por tanto, se les recompense)." + +#: src/modules/schedule/settings.py:395 +msgctxt "guildset:min_attendance|accepts" +msgid "Number of minutes (1-60) before attendance is counted." +msgstr "Número de minutos (1-60) antes de que se cuente la asistencia." + +#: src/modules/schedule/settings.py:409 +#, possible-python-brace-format +msgctxt "guildset:min_attendance|set_response" +msgid "" +"Members will be rewarded after they have attended booked sessions for at " +"least **`{amount}`** minutes." +msgstr "" +"Los miembros serán recompensados después de haber asistido a las sesiones " +"reservadas durante al menos **`{amount}`** minutos." + +#: src/modules/schedule/settings.py:419 +#, possible-python-brace-format +msgctxt "guildset:min_attendance|formatted" +msgid "**`{amount}`** minutes" +msgstr "**`{amount}`** minutos" + +#: src/modules/schedule/settings.py:440 +msgctxt "guildset:min_attendance|parse|error" +msgid "" +"Minimum attendance must be an integer number of minutes between `1` and " +"`60`." +msgstr "" +"La asistencia mínima debe ser un número entero de minutos comprendido entre " +"`1` y `60`." + +#: src/modules/schedule/settings.py:452 +msgctxt "guildset:schedule_blacklist_role" +msgid "schedule_blacklist_role" +msgstr "horario_listanegra_rol" + +#: src/modules/schedule/settings.py:455 +msgctxt "guildset:schedule_blacklist_role|desc" +msgid "Role which disables scheduled session booking." +msgstr "Rol que desactiva la reserva de sesiones programadas." + +#: src/modules/schedule/settings.py:459 +msgctxt "guildset:schedule_blacklist_role|long_desc" +msgid "" +"Members with this role will not be allowed to book scheduled sessions in " +"this server. If the role is manually added, all future scheduled sessions " +"for the user are cancelled. This provides a way to stop repeatedly " +"unreliable members from blocking the group bonus for all members. " +"Alternatively, consider setting the booking cost (and reward) very high to " +"provide a strong disincentive for not attending a session." +msgstr "" +"Los miembros con este rol no podrán reservar sesiones programadas en este " +"servidor. Si el rol se añade manualmente, se cancelarán todas las sesiones " +"programadas futuras para el usuario. Esto proporciona una forma de evitar " +"que miembros poco fiables repetidamente bloqueen la bonificación de grupo " +"para todos los miembros. Alternativamente, considere establecer el coste de " +"reserva (y recompensa) muy alto para proporcionar un fuerte desincentivo " +"para no asistir a una sesión." + +#: src/modules/schedule/settings.py:467 +msgctxt "guildset:schedule_blacklist_role|accepts" +msgid "Blacklist role name or id." +msgstr "Nombre o id del rol de la lista negra." + +#: src/modules/schedule/settings.py:480 +#, possible-python-brace-format +msgctxt "guildset:schedule_blacklist_role|set_response|set" +msgid "Members with {role} will be unable to book scheduled sessions." +msgstr "Los miembros con {role} no podrán reservar sesiones programadas." + +#: src/modules/schedule/settings.py:485 +msgctxt "guildset:schedule_blacklist_role|set_response|unset" +msgid "The schedule blacklist role has been unset." +msgstr "El rol de lista negra de horarios ha sido desactivada." + +#: src/modules/schedule/settings.py:495 +#, possible-python-brace-format +msgctxt "guildset:schedule_blacklist_role|formatted|set" +msgid "{role} members will not be able to book scheduled sessions." +msgstr "Los miembros con el {role} no podrán reservar sesiones programadas." + +#: src/modules/schedule/settings.py:500 +msgctxt "guildset:schedule_blacklist_role|formatted|unset" +msgid "Not Set" +msgstr "No fijado" + +#: src/modules/schedule/settings.py:510 +msgctxt "guildset:schedule_blacklist_after" +msgid "schedule_blacklist_after" +msgstr "programar_listanegra_despuésde" + +#: src/modules/schedule/settings.py:513 +msgctxt "guildset:schedule_blacklist_after|desc" +msgid "Number of missed sessions within 24h before blacklisting." +msgstr "" +"Número de sesiones perdidas en las 24 horas anteriores a la inclusión en la " +"lista negra." + +#: src/modules/schedule/settings.py:517 +msgctxt "guildset:schedule_blacklist_after|long_desc" +msgid "" +"Members who miss more than this number of booked sessions in a single 24 " +"hour period will be automatically given the `blacklist_role`. Has no effect " +"if the `blacklist_role` is not set or if I do not have sufficient " +"permissions to assign the blacklist role." +msgstr "" +"Los miembros que falten a más de este número de sesiones reservadas en un " +"solo periodo de 24 horas recibirán automáticamente el rol `blacklist_role`. " +"No tiene efecto si el rol `blacklist_role` no está configurado o si no tengo" +" permisos suficientes para asignar el rol blacklist." + +#: src/modules/schedule/settings.py:524 +msgctxt "guildset:schedule_blacklist_after|accepts" +msgid "A number of missed sessions (1-24) before blacklisting." +msgstr "Número de sesiones perdidas (1-24) antes de entrar en la lista negra." + +#: src/modules/schedule/settings.py:539 +#, possible-python-brace-format +msgctxt "guildset:schedule_blacklist_after|set_response|set" +msgid "" +"Members will be blacklisted after **`{amount}`** missed sessions within " +"`24h`." +msgstr "" +"Los miembros serán incluidos en la lista negra después de **`{amount}`** " +"sesiones perdidas dentro de `24h`." + +#: src/modules/schedule/settings.py:544 +msgctxt "guildset:schedule_blacklist_after|set_response|unset" +msgid "" +"Members will not be automatically blacklisted from booking scheduled " +"sessions." +msgstr "" +"Los miembros no entrarán automáticamente en la lista negra de reserva de " +"sesiones programadas." + +#: src/modules/schedule/settings.py:554 +#, possible-python-brace-format +msgctxt "guildset:schedule_blacklist_after|formatted|set" +msgid "Blacklist after **`{amount}`** missed sessions within `24h`." +msgstr "Lista negra después de **`{amount}`** sesiones perdidas en `24h`." + +#: src/modules/schedule/settings.py:559 +msgctxt "guildset:schedule_blacklist_after|formatted|unset" +msgid "Do not automatically blacklist." +msgstr "No poner automáticamente en la lista negra." + +#: src/modules/schedule/settings.py:571 +msgctxt "guildset:schedule_blacklist_role|parse|error" +msgid "Blacklist threshold must be a number between `1` and `24`." +msgstr "El umbral de la lista negra debe ser un número entre `1` y `24`." + +#: src/modules/schedule/ui/settingui.py:69 +msgctxt "ui:schedule_config|button:page0|label" +msgid "Page 1" +msgstr "Página 1" + +#: src/modules/schedule/ui/settingui.py:89 +msgctxt "ui:schedule_config|menu:lobby|placeholder" +msgid "Select Lobby Channel" +msgstr "Seleccione el canal del lobby" + +#: src/modules/schedule/ui/settingui.py:107 +msgctxt "ui:schedule_config|menu:room|placeholder" +msgid "Select Session Room" +msgstr "Seleccione la sala de la sesión" + +#: src/modules/schedule/ui/settingui.py:126 +msgctxt "ui:schedule_config|menu:channels|placeholder" +msgid "Select Session Channels" +msgstr "Seleccionar canales de sesión" + +#: src/modules/schedule/ui/settingui.py:140 +msgctxt "ui:schedule_config|button:page1|label" +msgid "Page 2" +msgstr "Página 2" + +#: src/modules/schedule/ui/settingui.py:155 +msgctxt "ui:schedule_config|button:page2|label" +msgid "Page 3" +msgstr "Página 3" + +#: src/modules/schedule/ui/settingui.py:173 +msgctxt "ui:schedule_config|menu:blacklist_role|placeholder" +msgid "Select Blacklist Role" +msgstr "Seleccionar rol de lista negra" + +#: src/modules/schedule/ui/settingui.py:181 +msgctxt "ui:schedule_config|embed|title" +msgid "Scheduled Session Configuration Panel" +msgstr "Panel de configuración de sesiones programadas" + +#: src/modules/schedule/ui/settingui.py:234 +msgctxt "dash:schedule|title" +msgid "Scheduled Session Configuration ({commands[admin config schedule]})" +msgstr "" +"Configuración de sesiones programadas ({commands[admin config schedule]})" + +#: src/modules/schedule/ui/settingui.py:238 +msgctxt "dash:schedule|dropdown|placeholder" +msgid "Scheduled Sessions Panel" +msgstr "Sesiones programadas Panel" + +#: src/modules/schedule/ui/settingui.py:255 +msgctxt "dash:schedule|section:schedule_channels|name" +msgid "Scheduled Session Channels ({commands[admin config schedule]})" +msgstr "Canales de sesión programados ({commands[admin config schedule]})" + +#: src/modules/schedule/ui/settingui.py:265 +msgctxt "dash:schedule|section:schedule_rewards|name" +msgid "Scheduled Session Rewards ({commands[admin config schedule]})" +msgstr "" +"Recompensas de sesiones programadas ({commands[admin config schedule]})" + +#: src/modules/schedule/ui/settingui.py:275 +msgctxt "dash:schedule|section:schedule_blacklist|name" +msgid "Scheduled Session Blacklist ({commands[admin config schedule]})" +msgstr "" +"Lista negra de sesiones programadas ({commands[admin config schedule]})" + +#: src/modules/schedule/ui/scheduleui.py:31 +msgctxt "ui:schedule|about" +msgid "" +"**Do you think you can commit to a schedule and stick to it?**\n" +"**Schedule voice sessions here and get rewarded for keeping yourself accountable!**\n" +"\n" +"Use the menu below to book timeslots using LionCoins. If you are active (in the dedicated voice channels) during these times, you will be rewarded, along with a large bonus if everyone who scheduled that slot made it!\n" +"Beware though, if you fail to make it, all your booked sessions will be cancelled with no refund! And if you keep failing to attend your scheduled sessions, you may be forbidden from booking them in future.\n" +"\n" +"When your scheduled session starts, you will recieve a ping from the schedule channel, which will have more information about how to attend your session.\n" +"If you discover you can't make your scheduled session, please be responsible and use this command to cancel or clear your schedule!\n" +"\n" +"**Note:** *Make sure your timezone is set correctly (with `/my timezone`), or the times I tell might not make sense!*" +msgstr "" +"**¿Crees que puedes comprometerte con un horario y cumplirlo?**\n" +"**Programe sesiones de voz aquí y obtenga una recompensa por mantener su responsabilidad.\n" +"\n" +"Utilice el siguiente menú para reservar franjas horarias con LionCoins. Si estás activo (en los canales de voz dedicados) durante esas franjas horarias, recibirás una recompensa, además de una gran bonificación si todos los que programaron esa franja horaria lo consiguieron.\n" +"Pero ten cuidado: si no lo consigues, todas las sesiones que hayas reservado se cancelarán sin derecho a reembolso. Y si sigue sin asistir a las sesiones programadas, se le podrá prohibir que las reserve en el futuro.\n" +"\n" +"Cuando comience tu sesión programada, recibirás un ping del canal de programación, que contendrá más información sobre cómo asistir a tu sesión.\n" +"Si descubre que no puede asistir a la sesión programada, sea responsable y utilice este comando para cancelar o borrar su programación.\n" +"\n" +"**Nota:** *Asegúrate de que tu zona horaria está configurada correctamente (con `/my timezone`), o las horas que te diga podrían no tener sentido!*" + +#: src/modules/schedule/ui/scheduleui.py:130 +msgctxt "ui:schedule|button:clear|error:nothing" +msgid "No upcoming sessions to cancel! Your schedule is already clear." +msgstr "No tiene que cancelar ninguna sesión. Su agenda ya está despejada." + +#: src/modules/schedule/ui/scheduleui.py:143 +msgctxt "ui:schedule|button:clear|success" +msgid "Successfully cancelled and refunded your upcoming scheduled sessions." +msgstr "Cancelado con éxito y reembolsado sus próximas sesiones programadas." + +#: src/modules/schedule/ui/scheduleui.py:156 +msgctxt "ui:schedule|button:clear|label" +msgid "Clear Schedule" +msgstr "Despejar Calendario " + +#: src/modules/schedule/ui/scheduleui.py:172 +msgctxt "ui:schedule|button:about|label" +msgid "About Schedule" +msgstr "Sobre el horario" + +#: src/modules/schedule/ui/scheduleui.py:198 +msgctxt "ui:schedule|menu:booking|error:current_slot" +msgid "You cannot schedule a currently running session!" +msgstr "No se puede programar una sesión en curso." + +#: src/modules/schedule/ui/scheduleui.py:205 +msgctxt "ui:schedule|menu:booking|error:next_slot" +msgid "Too late! You cannot schedule a session starting in the next minute." +msgstr "" +"Demasiado tarde. No puede programar una sesión que comienza en el minuto " +"siguiente." + +#: src/modules/schedule/ui/scheduleui.py:212 +msgctxt "ui:schedule|menu:booking|error:already_booked" +msgid "You have already booked one or more of the requested sessions!" +msgstr "Ya ha reservado una o varias de las sesiones solicitadas." + +#: src/modules/schedule/ui/scheduleui.py:225 +#, possible-python-brace-format +msgctxt "ui:schedule|menu:booking|error:insufficient_balance" +msgid "" +"Booking `{count}` scheduled sessions requires {coin}**{required}**, but you " +"only have {coin}**{balance}**!" +msgstr "" +"Para reservar `{count}` sesiones programadas se necesitan " +"{coin}**{required}**, pero sólo tiene {coin}**{balance}**." + +#: src/modules/schedule/ui/scheduleui.py:241 +#, possible-python-brace-format +msgctxt "ui:schedule|menu:booking|success" +msgid "Successfully booked your scheduled session at {times}." +msgid_plural "" +"Successfully booked the following scheduled sessions.\n" +"{times}" +msgstr[0] "Ha reservado con éxito su sesión programada a las {times}." +msgstr[1] "" +"Se han reservado con éxito las siguientes sesiones programadas.\n" +"{times}" +msgstr[2] "" +"Se han reservado con éxito las siguientes sesiones programadas.\n" +"{times}" + +#: src/modules/schedule/ui/scheduleui.py:264 +msgctxt "ui:schedule|menu:booking|placeholder:blacklisted" +msgid "Book Sessions (Cannot book - Blacklisted)" +msgstr "Book Sessions (No se puede reservar - En la lista negra)" + +#: src/modules/schedule/ui/scheduleui.py:272 +#, possible-python-brace-format +msgctxt "ui:schedule|menu:booking|placeholder:regular" +msgid "Book Sessions ({amount} LC)" +msgstr "Reservar sesiones ({amount} LC)" + +#: src/modules/schedule/ui/scheduleui.py:317 +#, possible-python-brace-format +msgctxt "ui:schedule|menu:slots|option|format" +msgid "{day} {time} ({until})" +msgstr "{day} {time} ({until})" + +#: src/modules/schedule/ui/scheduleui.py:321 +msgctxt "ui:schedule|menu:slots|option|day:today" +msgid "Today" +msgstr "Hoy" + +#: src/modules/schedule/ui/scheduleui.py:325 +msgctxt "ui:schedule|menu:slots|option|day:tomorrow" +msgid "Tomorrow" +msgstr "Mañana" + +#: src/modules/schedule/ui/scheduleui.py:376 +msgctxt "ui:schedule|menu:cancel|error:current_slot" +msgid "" +"You cannot cancel a currently running *scheduled* session! Please attend it " +"if possible." +msgstr "" +"No puede cancelar una sesión *programada* en curso. Por favor, asista si es " +"posible." + +#: src/modules/schedule/ui/scheduleui.py:382 +msgctxt "ui:schedule|menu:cancel|error:too_late" +msgid "" +"Too late! You cannot cancel a scheduled session within a minute of it " +"starting. Please attend it if possible." +msgstr "" +"Demasiado tarde! No puede cancelar una sesión programada a menos de un " +"minuto de su inicio. Por favor, asista si es posible." + +#: src/modules/schedule/ui/scheduleui.py:399 +msgctxt "ui:schedule|menu:cancel|error:already_cancelled" +msgid "The selected bookings no longer exist! Nothing to cancel." +msgstr "Las reservas seleccionadas ya no existen. No hay nada que cancelar." + +#: src/modules/schedule/ui/scheduleui.py:409 +#, possible-python-brace-format +msgctxt "ui:schedule|menu:cancel|success" +msgid "" +"Successfully cancelled and refunded your scheduled session booking for " +"{times}." +msgid_plural "" +"Successfully cancelled and refunded your scheduled session bookings:\n" +"{times}." +msgstr[0] "" +"Cancelada con éxito y reembolsada la reserva de la sesión programada para " +"{times}." +msgstr[1] "" +"Canceladas y reembolsadas con éxito sus reservas de sesiones programadas:\n" +"{times}." +msgstr[2] "" +"Canceladas y reembolsadas con éxito sus reservas de sesiones programadas:\n" +"{times}." + +#: src/modules/schedule/ui/scheduleui.py:430 +msgctxt "ui:schedule|menu:cancel|placeholder" +msgid "Cancel booked sessions" +msgstr "Cancelar sesiones reservadas" + +#: src/modules/schedule/ui/scheduleui.py:452 +msgctxt "ui:schedule|embed|author" +msgid "Your Scheduled Sessions and Past Statistics" +msgstr "Sesiones programadas y estadísticas anteriores" + +#: src/modules/schedule/ui/scheduleui.py:464 +msgctxt "ui:schedule|embed|field:stats|field:recent" +msgid "Recent" +msgstr "Reciente" + +#: src/modules/schedule/ui/scheduleui.py:471 +msgctxt "ui:schedule|embed|field:stats|field:alltime" +msgid "All Time" +msgstr "De todos los tiempos" + +#: src/modules/schedule/ui/scheduleui.py:477 +msgctxt "ui:schedule|embed|field:stats|field:streak" +msgid "Streak" +msgstr "Racha" + +#: src/modules/schedule/ui/scheduleui.py:482 +#, possible-python-brace-format +msgctxt "ui:schedule|embed|field:stats|field:streak|value:zero" +msgid "One session attended! Keep it up!" +msgid_plural "**{streak}** sessions attended in a row! Good job!" +msgstr[0] "¡Una sesión atendida! ¡Sigue así!" +msgstr[1] "¡**{streak}** sesiones asistidas seguidas! ¡Buen trabajo!" +msgstr[2] "¡**{streak}** sesiones asistidas seguidas! ¡Buen trabajo!" + +#: src/modules/schedule/ui/scheduleui.py:489 +msgctxt "ui:schedule|embed|field:stats|field:streak|value:positive" +msgid "No streak yet!" +msgstr "¡Aún no hay racha!" + +#: src/modules/schedule/ui/scheduleui.py:497 +msgctxt "ui:schedule|embed|field:stats|name" +msgid "Session Statistics" +msgstr "Estadísticas de la sesión" + +#: src/modules/schedule/ui/scheduleui.py:516 +msgctxt "ui:schedule|embed|field:upcoming|name" +msgid "Upcoming Sessions" +msgstr "Próximas sesiones" + +#: src/modules/schedule/ui/scheduleui.py:520 +msgctxt "ui:schedule|embed|field:upcoming|value:empty" +msgid "No sessions scheduled yet!" +msgstr "Aún no hay sesiones programadas." + +#: src/modules/schedule/ui/scheduleui.py:534 +#, possible-python-brace-format +msgctxt "ui:schedule|embed|stats_format" +msgid "" +"**{attended}** attended out of **{total}** booked.\r\n" +"**{percent}%** attendance rate.\r\n" +"**{average}** average attendance time." +msgstr "" +"**{attended}** asistidos de **{total}** inscritos.\n" +"**{percent}%** índice de asistencia.\n" +"**{average}** tiempo medio de asistencia." + +#: src/modules/schedule/ui/scheduleui.py:548 +#, possible-python-brace-format +msgctxt "ui:schedule|booking_format:short" +msgid "`{until}` | {start} - {end}" +msgstr "`{until}` Yo {start} - {end}" + +#: src/modules/schedule/ui/scheduleui.py:552 +#, possible-python-brace-format +msgctxt "ui:schedule|booking_format:long" +msgid "> `{until}` | {start} - {end}" +msgstr "> `{until}` Yo {start} - {end}" + +#: src/modules/schedule/ui/sessionui.py:52 +msgctxt "ui:sessionui|button:book|label" +msgid "Book" +msgstr "Reservar" + +#: src/modules/schedule/ui/sessionui.py:56 +msgctxt "ui:sessionui|button:cancel|label" +msgid "Cancel" +msgstr "Cancelar" + +#: src/modules/schedule/ui/sessionui.py:60 +msgctxt "ui:sessionui|button:schedule|label" +msgid "Open Schedule" +msgstr "Horario abierto" + +#: src/modules/schedule/ui/sessionui.py:64 +msgctxt "ui:sessionui|button:help|label" +msgid "How to Attend" +msgstr "Cómo asistir" + +#: src/modules/schedule/ui/sessionui.py:92 +msgctxt "ui:session|button:book|error:starting_soon" +msgid "Too late! This session has started or is starting shortly." +msgstr "Demasiado tarde. Esta sesión ha comenzado o comenzará en breve." + +#: src/modules/schedule/ui/sessionui.py:99 +msgctxt "ui:session|button:book|error:already_booked" +msgid "You are already a member of this session!" +msgstr "¡Ya eres miembro de esta sesión!" + +#: src/modules/schedule/ui/sessionui.py:106 +msgctxt "ui:session|button:book|success" +msgid "Successfully booked this session." +msgstr "Esta sesión se ha reservado con éxito." + +#: src/modules/schedule/ui/sessionui.py:120 +msgctxt "ui:session|button:book|error|title" +msgid "Could not book session" +msgstr "No se ha podido reservar la sesión" + +#: src/modules/schedule/ui/sessionui.py:138 +msgctxt "ui:session|button:cancel|error:starting_soon" +msgid "Too late! This session has started or is starting shortly." +msgstr "Demasiado tarde. Esta sesión ha comenzado o comenzará en breve." + +#: src/modules/schedule/ui/sessionui.py:145 +msgctxt "ui:session|button:cancel|error:not_booked" +msgid "You are not a member of this session!" +msgstr "¡Usted no es miembro de esta sesión!" + +#: src/modules/schedule/ui/sessionui.py:155 +msgctxt "ui:session|button:cancel|success" +msgid "Successfully cancelled this session." +msgstr "Esta sesión se ha cancelado correctamente." + +#: src/modules/schedule/ui/sessionui.py:169 +msgctxt "ui:session|button:cancel|error|title" +msgid "Could not cancel session" +msgstr "No se ha podido cancelar la sesión" + +#: src/modules/schedule/ui/sessionui.py:202 +msgctxt "ui:session|button:help|embed:unbooked|title" +msgid "You have not booked this session!" +msgstr "No ha reservado esta sesión." + +#: src/modules/schedule/ui/sessionui.py:206 +#, possible-python-brace-format +msgctxt "ui:session|button:help|embed:unbooked|description" +msgid "" +"You need to book this scheduled session before you can attend it! Press the " +"**{book_label}** button to book the session." +msgstr "" +"Debe reservar esta sesión programada antes de poder asistir a ella. Pulse el" +" botón **{book_label}** para reservar la sesión." + +#: src/modules/schedule/ui/sessionui.py:215 +msgctxt "ui:session|button:help|embed:help|title" +msgid "How to attend your scheduled session" +msgstr "Cómo asistir a la sesión programada" + +#: src/modules/schedule/ui/sessionui.py:224 +#, possible-python-brace-format +msgctxt "ui:session|button:help|embed:help|minimum_attendance" +msgid "at least one minute" +msgid_plural "at least `{duration}` minutes" +msgstr[0] "al menos un minuto" +msgstr[1] "al menos `{duration}` minutos" +msgstr[2] "al menos `{duration}` minutos" + +#: src/modules/schedule/ui/sessionui.py:237 +#, possible-python-brace-format +msgctxt "ui:session|button:help|embed:help|room_line:category" +msgid "" +"The exclusive scheduled session category **{category}** will also be open to" +" you during your scheduled session." +msgstr "" +"La categoría exclusiva de la sesión programada **{category}** también estará" +" abierta para usted durante su sesión programada." + +#: src/modules/schedule/ui/sessionui.py:243 +#, possible-python-brace-format +msgctxt "ui:session|button:help|embed:help|room_line:voice" +msgid "" +"The exclusive scheduled session room {room} will also be open to you during " +"your scheduled session." +msgstr "" +"La sala exclusiva para sesiones programadas {room} también estará abierta " +"para usted durante su sesión programada." + +#: src/modules/schedule/ui/sessionui.py:262 +#, possible-python-brace-format +msgctxt "ui:session|button:help|embed:help|attend_line:only_room_category" +msgid "" +"To attend your scheduled session, join a voice channel in **{room}** for " +"**{minimum}** between {start} and {end}." +msgstr "" +"Para asistir a su sesión programada, únase a un canal de voz en **{room}** " +"durante **{minimum}** entre {start} y {end}." + +#: src/modules/schedule/ui/sessionui.py:272 +#, possible-python-brace-format +msgctxt "ui:session|button:help|embed:help|attend_line:only_room_channel" +msgid "" +"To attend your scheduled session, join {room} for **{minimum}** between " +"{start} and {end}." +msgstr "" +"Para asistir a la sesión programada, acuda a la {sala} durante un " +"**{minimum}** entre el {start} y el {end}." + +#: src/modules/schedule/ui/sessionui.py:282 +#, possible-python-brace-format +msgctxt "ui:session|button:help|embed:help|attend_line:with_channels" +msgid "" +"To attend your scheduled session, join a valid session voice channel for " +"**{minimum}** between {start} and {end}." +msgstr "" +"Para asistir a la sesión programada, únase a un canal de voz de sesión " +"válido durante **{minimum}** entre {start} y {end}." + +#: src/modules/schedule/ui/sessionui.py:292 +msgctxt "ui:session|button:help|embed:help|field:channels|name" +msgid "Valid session channels" +msgstr "Canales de sesión válidos" + +#: src/modules/schedule/ui/sessionui.py:300 +#, possible-python-brace-format +msgctxt "ui:session|button:help|embed:help|attend_line:all_channels" +msgid "" +"To attend your scheduled session, join any tracked voice channel for " +"**{minimum}** between {start} and {end}." +msgstr "" +"Para asistir a su sesión programada, únase a cualquier canal de voz " +"rastreado durante **{minimum}** entre {start} y {end}." + +#: src/modules/schedule/ui/sessionui.py:308 +msgctxt "ui:session|button:help|embed:help|field:rewards|name" +msgid "Rewards" +msgstr "Recompensas" + +#: src/modules/schedule/ui/sessionui.py:312 +#, possible-python-brace-format +msgctxt "ui:session|button:help|embed:help|field:rewards|value" +msgid "" +"Everyone who attends the session will be rewarded with {coin}**{reward}**.\n" +"If *everyone* successfully attends, you will also be awarded a bonus of {coin}**{bonus}**.\n" +"Anyone who does *not* attend their booked session will have the rest of their schedule cancelled **without refund**, so beware!" +msgstr "" +"Everyone who attends the session will be rewarded with {coin}**{reward}**.\n" +"If *everyone* successfully attends, you will also be awarded a bonus of {coin}**{bonus}**.\n" +"Anyone who does *not* attend their booked session will have the rest of their schedule cancelled **without refund**, so beware!" + +#: src/modules/schedule/core/session.py:197 +msgctxt "session|error:lobby_webhook_perms" +msgid "" +"Insufficient permissions to create a webhook in this channel. I require the " +"`MANAGE_WEBHOOKS` permission." +msgstr "" +"Permisos insuficientes para crear un webhook en este canal. Necesito el " +"permiso `MANAGE_WEBHOOKS`." + +#: src/modules/schedule/core/session.py:281 +#, possible-python-brace-format +msgctxt "session|prepare|error:room_permissions" +msgid "" +"Could not prepare the configured session room {room} for the next scheduled " +"session! I require the `MANAGE_CHANNEL`, `MANAGE_ROLES`, `CONNECT` and " +"`VIEW_CHANNEL` permissions." +msgstr "" +"No se ha podido preparar la sala {room} configurada para la próxima sesión " +"programada. Necesito los permisos `MANAGE_CHANNEL`, `MANAGE_ROLES`, " +"`CONNECT` y `VIEW_CHANNEL`." + +#: src/modules/schedule/core/session.py:325 +msgctxt "session|open|update_perms|audit_reason" +msgid "Opening configured scheduled session room." +msgstr "Apertura de la sala de sesiones programada." + +#: src/modules/schedule/core/session.py:347 +msgctxt "session|open|clean_room|audit_reason" +msgid "Removing extra member from scheduled session room." +msgstr "Retirada de un miembro extra de la sala de sesiones programada." + +#: src/modules/schedule/core/session.py:354 +#, possible-python-brace-format +msgctxt "session|open|error:room_permissions" +msgid "" +"Could not set up the configured session room {room} for this scheduled " +"session! I require the `MANAGE_CHANNEL`, `MANAGE_ROLES`, `CONNECT` and " +"`VIEW_CHANNEL` permissions." +msgstr "" +"No se ha podido configurar la sala {room} para esta sesión. Necesito los " +"permisos `MANAGE_CHANNEL`, `MANAGE_ROLES`, `CONNECT` y `VIEW_CHANNEL`." + +#: src/modules/schedule/core/session.py:411 +#, possible-python-brace-format +msgctxt "session|notify|dm|join_line:room_category" +msgid "" +"Please attend your session by joining a voice channel under **{room}**!" +msgstr "" +"¡Por favor, asista a su sesión uniéndose a un canal de voz bajo **{room}**!" + +#: src/modules/schedule/core/session.py:416 +#, possible-python-brace-format +msgctxt "session|notify|dm|join_line:room_voice" +msgid "Please attend your session by joining {room}" +msgstr "Por favor, asista a su sesión uniéndose a la {room}" + +#: src/modules/schedule/core/session.py:421 +msgctxt "session|notify|dm|join_line:all_channels" +msgid "Please attend your session by joining a tracked voice channel!" +msgstr "Asista a su sesión uniéndose a un canal de voz con seguimiento." + +#: src/modules/schedule/core/session.py:443 +msgctxt "session|notify|dm|join_line:channels" +msgid "Please attend your session by joining one of the following:" +msgstr "Por favor, asista a su sesión uniéndose a una de las siguientes:" + +#: src/modules/schedule/core/session.py:453 +msgctxt "session|notify|dm|title" +msgid "Your Scheduled Session has started!" +msgstr "Su sesión programada ha comenzado." + +#: src/modules/schedule/core/session.py:457 +#, possible-python-brace-format +msgctxt "session|notify|dm|description" +msgid "Your scheduled session in {dest} has now begun!" +msgstr "Su sesión programada en {dest} ha comenzado." + +#: src/modules/schedule/core/session.py:482 +#, possible-python-brace-format +msgctxt "session|status|title" +msgid "Session {start} - {end}" +msgstr "Sesión {start} - {end}" + +#: src/modules/schedule/core/session.py:493 +msgctxt "session|status|desc:cancelled" +msgid "" +"I cancelled this scheduled session because I was unavailable. All members " +"who booked the session have been refunded." +msgstr "" +"He cancelado esta sesión programada porque no estaba disponible. Todos los " +"miembros que reservaron la sesión han sido reembolsados." + +#: src/modules/schedule/core/session.py:500 +msgctxt "session|status|desc:no_members" +msgid "*No members scheduled this session.*" +msgstr "*No hay miembros programados para esta sesión.*" + +#: src/modules/schedule/core/session.py:506 +#, possible-python-brace-format +msgctxt "session|status:preparing|desc:has_members" +msgid "Starting {start}" +msgstr "Empezando {start}" + +#: src/modules/schedule/core/session.py:509 +msgctxt "session|status:preparing|field:members" +msgid "Members" +msgstr "Miembros" + +#: src/modules/schedule/core/session.py:516 +#, possible-python-brace-format +msgctxt "session|status:running|desc:has_members" +msgid "Finishing {start}" +msgstr "Terminando {start}" + +#: src/modules/schedule/core/session.py:550 +msgctxt "session|status:running|field:waiting" +msgid "Waiting For" +msgstr "A la espera de" + +#: src/modules/schedule/core/session.py:556 +msgctxt "session|status:running|field:attending" +msgid "Attending" +msgstr "Asistir" + +#: src/modules/schedule/core/session.py:562 +msgctxt "session|status:running|field:attended" +msgid "Attended" +msgstr "Asistió" + +#: src/modules/schedule/core/session.py:587 +#, possible-python-brace-format +msgctxt "session|status:finished|desc:everyone_att" +msgid "" +"Everyone attended the session! All members were rewarded with {coin} " +"**{reward} + {bonus}**!" +msgstr "" +"¡Todo el mundo asistió a la sesión! Todos los miembros fueron recompensados " +"con {coin} **{reward} + {bonus}**!" + +#: src/modules/schedule/core/session.py:598 +#, possible-python-brace-format +msgctxt "session|status:finished|desc:some_att" +msgid "" +"Everyone who attended was rewarded with {coin} **{reward}**! Some members did not attend so everyone missed out on the bonus {coin} **{bonus}**.\n" +"**Members who missed their session have all future sessions cancelled without refund!*" +msgstr "" +"Todos los asistentes fueron recompensados con {coin} ¡**{reward}**! Algunos miembros no asistieron, por lo que todos perdieron {coin} de bonificación **{bonus}**.\n" +"**Los miembros que no asistieron a su sesión tienen todas las sesiones futuras canceladas sin reembolso.**" + +#: src/modules/schedule/core/session.py:610 +msgctxt "session|status:finished|desc:some_att" +msgid "" +"No-one attended this session! No-one received rewards.\n" +"**Members who missed their session have all future sessions cancelled without refund!*" +msgstr "" +"Nadie asistió a esta sesión!. Nadie recibió recompensas.\n" +"**Los miembros que no asistieron a su sesión tienen todas las sesiones futuras canceladas sin reembolso.**" + +#: src/modules/schedule/core/session.py:616 +msgctxt "session|status:finished|field:attended" +msgid "Attended" +msgstr "Asistió" + +#: src/modules/schedule/core/session.py:621 +msgctxt "session|status:finished|field:missing" +msgid "Missing" +msgstr "Desaparecido" + +#: src/modules/schedule/core/timeslot.py:487 +msgctxt "session|closing|audit_reason" +msgid "Removing previous scheduled session member permissions." +msgstr "" +"Eliminación de permisos de miembros de sesiones programadas anteriores." + +#: src/modules/schedule/core/timeslot.py:506 +msgctxt "session|closing|disconnecting|audit_reason" +msgid "Disconnecting previous scheduled session members." +msgstr "Desconexión de los miembros de sesiones programadas anteriormente." diff --git a/locales/es_419/LC_MESSAGES/sponsors.po b/locales/es_419/LC_MESSAGES/sponsors.po new file mode 100644 index 000000000000..4cdeb3e6bcad --- /dev/null +++ b/locales/es_419/LC_MESSAGES/sponsors.po @@ -0,0 +1,110 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-10-24 11:51+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/modules/sponsors/settingui.py:56 +msgctxt "ui:sponsors|button:sponsor_prompt|label" +msgid "Sponsor Prompt" +msgstr "" + +#: src/modules/sponsors/settingui.py:85 +msgctxt "ui:sponsors|button:sponsor_message|label" +msgid "Sponsor Message" +msgstr "" + +#: src/modules/sponsors/settingui.py:92 +msgctxt "ui:sponsors|embed|title" +msgid "Leo Sponsor Panel" +msgstr "" + +#: src/modules/sponsors/cog.py:50 +msgctxt "cmd:sponsors" +msgid "sponsors" +msgstr "" + +#: src/modules/sponsors/cog.py:53 +msgctxt "cmd:sponsors|desc" +msgid "Check out our wonderful partners!" +msgstr "¡Eche un vistazo a nuestros maravillosos socios!" + +#: src/modules/sponsors/cog.py:80 +msgctxt "cmd:leo_sponsors" +msgid "sponsors" +msgstr "" + +#: src/modules/sponsors/cog.py:84 +msgctxt "cmd:leo_sponsors|desc" +msgid "Configure the sponsor text and whitelist." +msgstr "" + +#: src/modules/sponsors/settings.py:20 +msgctxt "botset:sponsor_whitelist" +msgid "sponsor_whitelist" +msgstr "" + +#: src/modules/sponsors/settings.py:24 +msgctxt "botset:sponsor_whitelist|desc" +msgid "List of guildids where the sponsor prompt is not shown." +msgstr "" + +#: src/modules/sponsors/settings.py:28 +msgctxt "botset:sponsor_whitelist|long_desc" +msgid "The sponsor prompt will not appear in the set guilds." +msgstr "" + +#: src/modules/sponsors/settings.py:32 +msgctxt "botset:sponsor_whitelist|accetps" +msgid "Comma separated list of guildids." +msgstr "" + +#: src/modules/sponsors/settings.py:46 +msgctxt "botset:sponsor_prompt" +msgid "sponsor_prompt" +msgstr "" + +#: src/modules/sponsors/settings.py:50 +msgctxt "botset:sponsor_prompt|desc" +msgid "Message to add underneath core commands." +msgstr "" + +#: src/modules/sponsors/settings.py:54 +msgctxt "botset:sponsor_prompt|long_desc" +msgid "" +"Content of the message to send after core commands such as stats, reminding " +"users to check the sponsors command." +msgstr "" + +#: src/modules/sponsors/settings.py:71 +msgctxt "botset:sponsor_message" +msgid "sponsor_message" +msgstr "" + +#: src/modules/sponsors/settings.py:75 +msgctxt "botset:sponsor_message|desc" +msgid "Message to send in response to /sponsors command." +msgstr "" + +#: src/modules/sponsors/settings.py:79 +msgctxt "botset:sponsor_message|long_desc" +msgid "" +"Content of the message to send when a user runs the `/sponsors` command." +msgstr "" diff --git a/locales/es_419/LC_MESSAGES/statistics.po b/locales/es_419/LC_MESSAGES/statistics.po new file mode 100644 index 000000000000..df16fa648685 --- /dev/null +++ b/locales/es_419/LC_MESSAGES/statistics.po @@ -0,0 +1,893 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Ronin DeMentira, 2023 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Ronin DeMentira, 2023\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/modules/statistics/cog.py:47 +msgctxt "cmd:me" +msgid "me" +msgstr "yo" + +#: src/modules/statistics/cog.py:50 +msgctxt "cmd:me|desc" +msgid "Edit your personal profile and see your statistics." +msgstr "Edita tu perfil personal y consulta tus estadísticas." + +#: src/modules/statistics/cog.py:63 +msgctxt "cmd:profile" +msgid "profile" +msgstr "perfil" + +#: src/modules/statistics/cog.py:66 +msgctxt "cmd:profile|desc" +msgid "Display the target's profile and statistics summary." +msgstr "Muestra el perfil del objetivo y el resumen de estadísticas." + +#: src/modules/statistics/cog.py:70 +msgctxt "cmd:profile|param:member" +msgid "member" +msgstr "miembro" + +#: src/modules/statistics/cog.py:74 +msgctxt "cmd:profile|param:member|desc" +msgid "Member to display profile for." +msgstr "Miembro del que mostrar el perfil." + +#: src/modules/statistics/cog.py:110 +msgctxt "cmd:stats" +msgid "stats" +msgstr "Estadísticas" + +#: src/modules/statistics/cog.py:113 +msgctxt "cmd:stats|desc" +msgid "Weekly and monthly statistics for your recent activity." +msgstr "Estadísticas semanales y mensuales de su actividad reciente." + +#: src/modules/statistics/cog.py:131 +msgctxt "cmd:leaderboard" +msgid "leaderboard" +msgstr "tabla de clasificación" + +#: src/modules/statistics/cog.py:134 +msgctxt "cmd:leaderboard|desc" +msgid "Server leaderboard." +msgstr "Clasificación del servidor." + +#: src/modules/statistics/cog.py:149 +#, possible-python-brace-format +msgctxt "cmd:leaderboard|chunking|desc" +msgid "Requesting server member list from Discord, please wait {loading}" +msgstr "" +"Solicitando lista de miembros del servidor desde Discord, por favor espere " +"{loading}" + +#: src/modules/statistics/cog.py:170 +msgctxt "cmd:achievements" +msgid "achievements" +msgstr "logros" + +#: src/modules/statistics/cog.py:173 +msgctxt "cmd:achievements|desc" +msgid "View your progress towards the activity achievement awards!" +msgstr "Consulta tu progreso hacia los premios por logros en las actividades." + +#: src/modules/statistics/cog.py:190 +msgctxt "cmd:achievements|embed:title" +msgid "Achievements" +msgstr "Logros" + +#: src/modules/statistics/cog.py:208 +msgctxt "cmd:configure_statistics" +msgid "statistics" +msgstr "estadísticas" + +#: src/modules/statistics/cog.py:209 +msgctxt "cmd:configure_statistics|desc" +msgid "Statistics configuration panel" +msgstr "Panel de configuración de estadísticas" + +#: src/modules/statistics/cog.py:212 +msgctxt "cmd:configure_statistics|param:season_start" +msgid "season_start" +msgstr "inicio_temporada" + +#: src/modules/statistics/cog.py:217 +msgctxt "cmd:configure_statistics|param:season_start|desc" +msgid "" +"Time from which to start counting activity for rank badges and season " +"leaderboards. (YYYY-MM-DD)" +msgstr "" +"Momento desde que se empieza a contar para las insignias y las " +"clasificaciones. (AAAA-MM-DD)" + +#: src/modules/statistics/achievements.py:77 +msgctxt "achievement|congrats" +msgid "Congratulations! You have completed this challenge." +msgstr "Enhorabuena. Ha completado este reto." + +#: src/modules/statistics/achievements.py:146 +msgctxt "achievement:workout|name" +msgid "It's about Power" +msgstr "Se trata de poder" + +#: src/modules/statistics/achievements.py:150 +msgctxt "achievement:workout|subtext" +msgid "Workout 50 times" +msgstr "Entrenamiento 50 veces" + +#: src/modules/statistics/achievements.py:170 +msgctxt "achievement:voicehours|name" +msgid "Dream Big" +msgstr "Soñar a lo grande" + +#: src/modules/statistics/achievements.py:174 +msgctxt "achievement:voicehours|subtext" +msgid "Study a total of 1000 hours" +msgstr "Estudiar un total de 1000 horas" + +#: src/modules/statistics/achievements.py:196 +msgctxt "achievement:voicestreak|name" +msgid "Consistency is Key" +msgstr "La consistencia es la clave" + +#: src/modules/statistics/achievements.py:200 +msgctxt "achievement:voicestreak|subtext" +msgid "Reach a 100-day voice streak" +msgstr "Alcanzar una racha de 100 días de voz" + +#: src/modules/statistics/achievements.py:283 +msgctxt "achievement:voting|name" +msgid "We're a Team" +msgstr "Somos un equipo" + +#: src/modules/statistics/achievements.py:287 +msgctxt "achievement:voting|subtext" +msgid "Vote 100 times on top.gg" +msgstr "Vota 100 veces en top.gg" + +#: src/modules/statistics/achievements.py:304 +msgctxt "achievement:days|name" +msgid "Aim For The Moon" +msgstr "Apunta a la luna" + +#: src/modules/statistics/achievements.py:308 +msgctxt "achievement:days|subtext" +msgid "Join Voice on 90 different days" +msgstr "Únete a un canal de voz en 90 días diferentes" + +#: src/modules/statistics/achievements.py:333 +msgctxt "achievement:tasks|name" +msgid "One Step at a Time" +msgstr "Paso a paso" + +#: src/modules/statistics/achievements.py:337 +msgctxt "achievement:tasks|subtext" +msgid "Complete 1000 tasks" +msgstr "Completar 1000 tareas" + +#: src/modules/statistics/achievements.py:363 +msgctxt "achievement:schedule|name" +msgid "Be Accountable" +msgstr "Sea responsable" + +#: src/modules/statistics/achievements.py:367 +msgctxt "achievement:schedule|subtext" +msgid "Attend 500 Scheduled Sessions" +msgstr "Asistir a 500 sesiones programadas" + +#: src/modules/statistics/achievements.py:392 +msgctxt "achievement:monthlyhours|name" +msgid "The 30 Days Challenge" +msgstr "El reto de los 30 días" + +#: src/modules/statistics/achievements.py:396 +msgctxt "achievement:monthlyhours|subtext" +msgid "Be active for 100 hours in a month" +msgstr "Estar activo 100 horas al mes" + +#: src/modules/statistics/settings.py:38 +msgctxt "settype:stat|output:voice" +msgid "`Voice`" +msgstr "`Voz`" + +#: src/modules/statistics/settings.py:39 +msgctxt "settype:stat|output:text" +msgid "`Text`" +msgstr "Texto`" + +#: src/modules/statistics/settings.py:40 +msgctxt "settype:stat|output:anki" +msgid "`Anki`" +msgstr "`Anki`" + +#: src/modules/statistics/settings.py:43 +msgctxt "settype:stat|input_format:voice" +msgid "Voice" +msgstr "Voz" + +#: src/modules/statistics/settings.py:44 +msgctxt "settype:stat|input_format:text" +msgid "Text" +msgstr "Texto" + +#: src/modules/statistics/settings.py:45 +msgctxt "settype:stat|input_format:anki" +msgid "Anki" +msgstr "Anki" + +#: src/modules/statistics/settings.py:48 +msgctxt "settype:stat|input_pattern:voice" +msgid "voice|study" +msgstr "voz|estudio" + +#: src/modules/statistics/settings.py:49 +msgctxt "settype:stat|input_pattern:text" +msgid "text|messages" +msgstr "texto|mensajes" + +#: src/modules/statistics/settings.py:50 +msgctxt "settype:stat|input_pattern:anki" +msgid "anki" +msgstr "anki" + +#: src/modules/statistics/settings.py:54 +msgctxt "settype:state|accepts" +msgid "Voice/Text/Anki" +msgstr "Voz/Texto/Anki" + +#: src/modules/statistics/settings.py:67 +msgctxt "userset:show_global_stats" +msgid "global_stats" +msgstr "estadísticas_globales" + +#: src/modules/statistics/settings.py:70 +msgctxt "userset:show_global_stats|desc" +msgid "Whether displayed statistics include all your servers." +msgstr "Si las estadísticas mostradas incluyen todos sus servidores." + +#: src/modules/statistics/settings.py:74 +msgctxt "userset:show_global_stats|long_desc" +msgid "" +"Whether statistics commands display combined stats for all servers or just " +"your current server." +msgstr "" +"Si los comandos de estadísticas muestran estadísticas combinadas para todos " +"los servidores o sólo para tu servidor actual." + +#: src/modules/statistics/settings.py:90 +msgctxt "guildset:season_start" +msgid "season_start" +msgstr "inicio_temporada" + +#: src/modules/statistics/settings.py:93 +msgctxt "guildset:season_start|desc" +msgid "Start of the current statistics season." +msgstr "Inicio de la actual temporada de estadísticas." + +#: src/modules/statistics/settings.py:97 +msgctxt "guildset:season_start|long_desc" +msgid "" +"Activity ranks will be determined based on tracked activity since this time, and the leaderboard will display activity since this time by default. Unset to disable seasons and use all-time statistics instead.\n" +"Provided dates and times are assumed to be in the guild `timezone`, so set this first!" +msgstr "" +"Los rangos de actividad se determinarán en base a la actividad seguida desde ese momento, y la tabla de clasificación mostrará la actividad desde ese momento por defecto. Desactiva esta opción para desactivar las temporadas y utilizar las estadísticas de todos los tiempos en su lugar.\n" +"Se supone que las fechas y horas indicadas están en la `zona horaria` del gremio." + +#: src/modules/statistics/settings.py:104 +msgctxt "guildset:season_start|accepts" +msgid "The season start time in the form YYYY-MM-DD HH:MM" +msgstr "La hora de inicio de la temporada en la forma AAAA-MM-DD HH:MM" + +#: src/modules/statistics/settings.py:108 +msgctxt "guildset:season_start|notset" +msgid "Not Set (Using all-time statistics)" +msgstr "No configurado (utilizando estadísticas de todos los tiempos)" + +#: src/modules/statistics/settings.py:127 +#, possible-python-brace-format +msgctxt "guildset:season_start|parse|error:future_time" +msgid "Provided season start time {timestamp} is in the future!" +msgstr "" +"Siempre que la hora de inicio de la temporada {timestamp} esté en el futuro." + +#: src/modules/statistics/settings.py:139 +#, possible-python-brace-format +msgctxt "guildset:season_start|set_response|set" +msgid "" +"The leaderboard season and activity ranks will now count from {timestamp}. Member ranks will update when they are next active.\n" +"Use {rank_cmd} and press **Refresh Member Ranks** to refresh all ranks immediately." +msgstr "" +"Los rangos de temporada y actividad de la tabla clasificatoria ahora contarán a partir de {timestamp}. Los rangos de los miembros se actualizarán la próxima vez que estén activos.\n" +"Utiliza {rank_cmd} y pulsa **Refrescar rangos de miembros** para actualizar todos los rangos inmediatamente." + +#: src/modules/statistics/settings.py:149 +#, possible-python-brace-format +msgctxt "guildset:season_start|set_response|unset" +msgid "" +"The leaderboard and activity ranks will now count all-time statistics. Member ranks will update when they are next active.\n" +"Use {rank_cmd} and press **Refresh Member Ranks** to refresh all ranks immediately." +msgstr "" +"The leaderboard and activity ranks will now count all-time statistics. Member ranks will update when they are next active.\n" +"Use {rank_cmd} and press **Refresh Member Ranks** to refresh all ranks immediately." + +#: src/modules/statistics/settings.py:162 +msgctxt "guildset:unranked_roles" +msgid "unranked_roles" +msgstr "unranked_roles" + +#: src/modules/statistics/settings.py:165 +msgctxt "guildset:unranked_roles|desc" +msgid "Roles to exclude from the leaderboards." +msgstr "Roles a excluir de las tablas de clasificación." + +#: src/modules/statistics/settings.py:169 +msgctxt "guildset:unranked_roles|long_desc" +msgid "" +"When set, members with *any* of these roles will not appear on the " +"/leaderboard ranking list." +msgstr "" +"Cuando se establece, los miembros con *cualquiera* de estos roles no " +"aparecerán en la lista de clasificación de /leaderboard." + +#: src/modules/statistics/settings.py:173 +msgctxt "guildset:unranked_roles|accepts" +msgid "Comma separated list of unranked role names or ids." +msgstr "Lista separada por comas de nombres o ids de roles no clasificados." + +#: src/modules/statistics/settings.py:189 +msgctxt "guildset:unranked_roles|set_using" +msgid "Role selector below." +msgstr "Selector de funciones a continuación." + +#: src/modules/statistics/settings.py:199 +#, possible-python-brace-format +msgctxt "guildset:unranked_roles|set_response|set" +msgid "" +"Members of the following roles will not appear on the leaderboard: {roles}" +msgstr "" +"Los miembros de los siguientes roles no aparecerán en la tabla de " +"clasificación: {roles}" + +#: src/modules/statistics/settings.py:206 +msgctxt "guildset:unranked_roles|set_response|unset" +msgid "You have cleared the unranked role list." +msgstr "Has borrado la lista de roles no clasificados." + +#: src/modules/statistics/settings.py:221 +msgctxt "guildset:visible_stats" +msgid "visible_stats" +msgstr "estadísticas_visibles" + +#: src/modules/statistics/settings.py:224 +msgctxt "guildset:visible_stats|desc" +msgid "Which statistics will be visible in the statistics commands." +msgstr "Qué estadísticas serán visibles en los comandos de estadísticas." + +#: src/modules/statistics/settings.py:228 +msgctxt "guildset:visible_stats|desc" +msgid "" +"Choose which statistics types to display in the leaderboard and statistics " +"commands." +msgstr "" +"Elige qué tipos de estadísticas mostrar en la tabla de clasificación y en " +"los comandos de estadísticas." + +#: src/modules/statistics/settings.py:232 +msgctxt "guildset:visible_stats|accepts" +msgid "Voice, Text, Anki" +msgstr "Voz, texto, Anki" + +#: src/modules/statistics/settings.py:253 +msgctxt "guildset:visible_stats|set_using" +msgid "Option menu below." +msgstr "Menú de opciones a continuación." + +#: src/modules/statistics/settings.py:261 +#, possible-python-brace-format +msgctxt "guildset:visible_stats|set_response" +msgid "Members will be able to view the following statistics types: {types}" +msgstr "Los miembros podrán ver los siguientes tipos de estadísticas: {types}" + +#: src/modules/statistics/settings.py:272 +msgctxt "guildset:default_stat" +msgid "default_stat" +msgstr "default_stat" + +#: src/modules/statistics/settings.py:275 +msgctxt "guildset:default_stat|desc" +msgid "Statistic type to display by default in setting dialogues." +msgstr "" +"Tipo de estadística a mostrar por defecto en los diálogos de configuración." + +#: src/modules/statistics/settings.py:279 +msgctxt "guildset:default_stat|long_desc" +msgid "Which statistic type to display by default in setting dialogues." +msgstr "" +"Qué tipo de estadística mostrar por defecto en los diálogos de " +"configuración." + +#: src/modules/statistics/settings.py:313 +msgctxt "ui:statistics_config|menu:unranked_roles|placeholder" +msgid "Select Unranked Roles" +msgstr "Seleccionar funciones no clasificadas" + +#: src/modules/statistics/settings.py:338 +msgctxt "ui:statistics_config|menu:visible_stats|item:voice|mode:voice" +msgid "Voice Activity" +msgstr "Actividad vocal" + +#: src/modules/statistics/settings.py:343 +msgctxt "ui:statistics_config|menu:visible_stats|item:voice|mode:study" +msgid "Study Statistics" +msgstr "Estadísticas del estudio" + +#: src/modules/statistics/settings.py:353 +msgctxt "ui:statistics_config|menu:visible_stats|item:text" +msgid "Message Activity" +msgstr "Mensaje Actividad" + +#: src/modules/statistics/settings.py:361 +msgctxt "ui:statistics_config|menu:visible_stats|item:anki" +msgid "Anki Reviews" +msgstr "Reseñas de Anki" + +#: src/modules/statistics/settings.py:372 +msgctxt "ui:statistics_config|menu:visible_stats|placeholder" +msgid "Select Visible Statistics" +msgstr "Seleccionar estadísticas visibles" + +#: src/modules/statistics/settings.py:393 +msgctxt "ui:statistics_config|embed|title" +msgid "Statistics Configuration Panel" +msgstr "Panel de configuración de estadísticas" + +#: src/modules/statistics/settings.py:415 +msgctxt "dash:stats|title" +msgid "" +"Activity Statistics Configuration ({commands[admin config statistics]})" +msgstr "" +"Configuración de las estadísticas de actividad ({commands[admin config " +"statistics]})" + +#: src/modules/statistics/settings.py:419 +msgctxt "dash:stats|dropdown|placeholder" +msgid "Activity Statistics Panel" +msgstr "Panel de estadísticas de actividad" + +#: src/modules/statistics/graphics/stats.py:63 +#, possible-python-brace-format +msgctxt "gui:stats|mode:voice|month" +msgid "{hours} hours" +msgstr "{hours} horas" + +#: src/modules/statistics/ui/goals.py:92 +msgctxt "ui:MonthlyUI|name" +msgid "Monthly" +msgstr "Mensualmente" + +#: src/modules/statistics/ui/goals.py:135 +msgctxt "ui:WeeklyUI|name" +msgid "Weekly" +msgstr "Semanal" + +#: src/modules/statistics/ui/summary.py:18 +msgctxt "ui:SummaryUI|name" +msgid "Summary" +msgstr "Resumen" + +#: src/modules/statistics/ui/weeklymonthly.py:96 +msgctxt "menu:stat_type|opt:weekly_voice|name" +msgid "Weekly Voice Statistics" +msgstr "Estadísticas semanales de voz" + +#: src/modules/statistics/ui/weeklymonthly.py:101 +msgctxt "menu:stat_type|opt:weekly_text|name" +msgid "Weekly Text Statistics" +msgstr "Estadísticas semanales de texto" + +#: src/modules/statistics/ui/weeklymonthly.py:106 +msgctxt "menu:stat_type|opt:weekly_anki|name" +msgid "Weekly Anki Statistics" +msgstr "Estadísticas semanales de Anki" + +#: src/modules/statistics/ui/weeklymonthly.py:112 +msgctxt "menu:stat_type|opt:monthly_voice|name" +msgid "Monthly Voice Statistics" +msgstr "Estadísticas mensuales de voz" + +#: src/modules/statistics/ui/weeklymonthly.py:117 +msgctxt "menu:stat_type|opt:monthly_text|name" +msgid "Monthly Text Statistics" +msgstr "Estadísticas mensuales de texto" + +#: src/modules/statistics/ui/weeklymonthly.py:122 +msgctxt "menu:stat_type|opt:monthly_anki|name" +msgid "Monthly Anki Statistics" +msgstr "Estadísticas mensuales de Anki" + +#: src/modules/statistics/ui/weeklymonthly.py:144 +msgctxt "modal:goal_editor|field:task_goal|label" +msgid "Task goal" +msgstr "Objetivo de la tarea" + +#: src/modules/statistics/ui/weeklymonthly.py:148 +msgctxt "modal:goal_editor|field:task_goal|placeholder" +msgid "Enter the number of tasklist tasks you aim to do" +msgstr "" +"Introduzca el número de tareas de la lista de tareas que pretende realizar" + +#: src/modules/statistics/ui/weeklymonthly.py:159 +#, possible-python-brace-format +msgctxt "modal:goal_editor|field:task_goal|error:NAN" +msgid "The provided task goal `{input}` is not a number! Please try again." +msgstr "" +"El objetivo de tarea proporcionado `{input}` no es un número. Inténtelo de " +"nuevo." + +#: src/modules/statistics/ui/weeklymonthly.py:181 +msgctxt "modal:goal_editor|field:voice_goal|label" +msgid "Study time goal" +msgstr "Objetivo de tiempo de estudio" + +#: src/modules/statistics/ui/weeklymonthly.py:185 +msgctxt "modal:goal_editor|field:voice_goal|placeholder" +msgid "Enter a number of hours of study to aim for." +msgstr "Introduzca el número de horas de estudio que desea alcanzar." + +#: src/modules/statistics/ui/weeklymonthly.py:190 +msgctxt "modal:goal_editor|field:text_goal|label" +msgid "Message goal" +msgstr "Objetivo del mensaje" + +#: src/modules/statistics/ui/weeklymonthly.py:194 +msgctxt "modal:goal_editor|field:text_goal|placeholder" +msgid "Enter a message count to aim for." +msgstr "Introduzca un recuento de mensajes al que aspirar." + +#: src/modules/statistics/ui/weeklymonthly.py:199 +msgctxt "modal:goal_editor|field:anki_goal|label" +msgid "Card goal" +msgstr "Objetivo de tarjeta" + +#: src/modules/statistics/ui/weeklymonthly.py:203 +msgctxt "modal:goal_editor|field:anki_goal|label" +msgid "Enter a number of card revisions to aim for." +msgstr "Introduzca un número de revisiones de la tarjeta al que aspirar." + +#: src/modules/statistics/ui/weeklymonthly.py:216 +#, possible-python-brace-format +msgctxt "modal:goal_editor|field:voice_goal|error:NAN" +msgid "" +"The provided study time goal `{input}` is not a number! Please try again." +msgstr "" +"El objetivo de tiempo de estudio proporcionado `{input}` no es un número. " +"Por favor, inténtelo de nuevo." + +#: src/modules/statistics/ui/weeklymonthly.py:223 +#, possible-python-brace-format +msgctxt "modal:goal_editor|field:text_goal|error:NAN" +msgid "The provided message goal `{input}` is not a number! Please try again." +msgstr "" +"¡El objetivo del mensaje proporcionado `{input}` no es un número! Por favor," +" inténtelo de nuevo." + +#: src/modules/statistics/ui/weeklymonthly.py:230 +#, possible-python-brace-format +msgctxt "modal:goal_editor|field:anki_goal|error:NAN" +msgid "The provided card goal `{input}` is not a number! Please try again." +msgstr "" +"¡El objetivo de tarjeta proporcionado `{input}` no es un número! Por favor, " +"inténtelo de nuevo." + +#: src/modules/statistics/ui/weeklymonthly.py:252 +msgctxt "modal:goal_editor|field:weekly_task_editor|label" +msgid "Tasks to complete this week (one per line)" +msgstr "Tareas para completar esta semana (una por línea)" + +#: src/modules/statistics/ui/weeklymonthly.py:256 +msgctxt "modal:goal_editor|field:weekly_task_editor|placeholder" +msgid "" +"[ ] Write my biology essay\n" +"[x] Complete the second maths assignment\n" +msgstr "" +"[ ] Escribir mi ensayo de biología\n" +"[x] Completar la segunda tarea de matemáticas\n" + +#: src/modules/statistics/ui/weeklymonthly.py:262 +msgctxt "modal:goal_editor|field:monthly_task_editor|label" +msgid "Tasks to complete this month (one per line)" +msgstr "Tareas para completar este mes (una por línea)" + +#: src/modules/statistics/ui/weeklymonthly.py:266 +msgctxt "modal:goal_editor|field:monthly_task_editor|placeholder" +msgid "" +"[ ] Write my biology essay\n" +"[x] Complete the second maths assignment\n" +msgstr "" +"[ ] Escribir mi ensayo de biología\n" +"[x] Completar la segunda tarea de matemáticas\n" + +#: src/modules/statistics/ui/weeklymonthly.py:284 +#, possible-python-brace-format +msgctxt "modal:goal_editor||field:task_editor|error:parse_general" +msgid "" +"Malformed task!\n" +"`{input}`" +msgstr "" +"¡Tarea malformada!\n" +"`{input}`" + +#: src/modules/statistics/ui/weeklymonthly.py:301 +msgctxt "modal:goal_editor|title" +msgid "Weekly goal editor" +msgstr "Editor de objetivos semanales" + +#: src/modules/statistics/ui/weeklymonthly.py:306 +msgctxt "modal:goal_editor|monthly|title" +msgid "Monthly goal editor" +msgstr "Editor de objetivos mensuales" + +#: src/modules/statistics/ui/weeklymonthly.py:503 +msgctxt "ui:weeklymonthly|button:edit_goals|label" +msgid "Edit Goals" +msgstr "Editar objetivos" + +#: src/modules/statistics/ui/weeklymonthly.py:519 +#, possible-python-brace-format +msgctxt "ui:weeklymonthly|menu:period|monthly|label" +msgid "{month} {year}" +msgstr "{mes} {año}" + +#: src/modules/statistics/ui/weeklymonthly.py:534 +#, possible-python-brace-format +msgctxt "ui:weeklymonthly|menu:period|weekly|label" +msgid "{year} W{week}" +msgstr "{año} W{semana}" + +#: src/modules/statistics/ui/weeklymonthly.py:538 +#, possible-python-brace-format +msgctxt "ui:weeklymonthly|menu:period|weekly|desc" +msgid "" +"{start_day} {start_month} {start_year} to {end_day} {end_month} {end_year}" +msgstr "" +"{inicio_día} {inicio_mes} {inicio_año} a {fin_día} {fin_mes} {fin_año}" + +#: src/modules/statistics/ui/weeklymonthly.py:616 +msgctxt "ui:weeklymonthly|button:period|close|label" +msgid "Close Selector" +msgstr "Cerrar Selector" + +#: src/modules/statistics/ui/weeklymonthly.py:621 +msgctxt "ui:weeklymonthly|button:period|weekly|label" +msgid "Select Week" +msgstr "Seleccionar semana" + +#: src/modules/statistics/ui/weeklymonthly.py:626 +msgctxt "ui:weeklymonthly|button:period|monthly|label" +msgid "Select Month" +msgstr "Seleccione el mes" + +#: src/modules/statistics/ui/weeklymonthly.py:691 +msgctxt "ui:weeklymonthly|menu:period|weekly|placeholder" +msgid "Select a week to display" +msgstr "Seleccione la semana que desea visualizar" + +#: src/modules/statistics/ui/weeklymonthly.py:696 +msgctxt "ui:weeklymonthly|menu:period|monthly|placeholder" +msgid "Select a month to display" +msgstr "Seleccione el mes que desea visualizar" + +#: src/modules/statistics/ui/weeklymonthly.py:718 +msgctxt "ui:WeeklyMonthly|button:global|resp:success" +msgid "" +"You will now see combined statistics from all your servers (where " +"applicable)! Press again to revert." +msgstr "" +"Ahora verá las estadísticas combinadas de todos sus servidores (si procede)." +" Pulse de nuevo para revertir." + +#: src/modules/statistics/ui/weeklymonthly.py:731 +msgctxt "ui:WeeklyMonthly|button:global|mode:local" +msgid "Server Statistics" +msgstr "Estadísticas del servidor" + +#: src/modules/statistics/ui/weeklymonthly.py:736 +msgctxt "ui:WeeklyMonthly|button:global|mode:global" +msgid "Global Statistics" +msgstr "Estadísticas mundiales" + +#: src/modules/statistics/ui/profile.py:41 +msgctxt "modal:profile_editor|field:editor|label" +msgid "Profile Tags (One line per tag)" +msgstr "Etiquetas de perfil (una línea por etiqueta)" + +#: src/modules/statistics/ui/profile.py:45 +msgctxt "modal:profile_editor|field:editor|placeholder" +msgid "" +"Mathematician\n" +"Loves Cats" +msgstr "" +"Matemático\n" +"Le encantan los gatos" + +#: src/modules/statistics/ui/profile.py:53 +msgctxt "modal:profile_editor|title" +msgid "Profile Tag Editor" +msgstr "Editor de etiquetas de perfil" + +#: src/modules/statistics/ui/profile.py:71 +#, possible-python-brace-format +msgctxt "modal:profile_editor|error:too_many_tags" +msgid "Too many tags! You can have at most `{limit}` profile tags." +msgstr "" +"Demasiadas etiquetas Puedes tener como máximo `{limit}` etiquetas de perfil." + +#: src/modules/statistics/ui/profile.py:92 +msgctxt "menu:stat_type|opt:voice|name" +msgid "Voice Statistics" +msgstr "Estadísticas de voz" + +#: src/modules/statistics/ui/profile.py:97 +msgctxt "menu:stat_type|opt:text|name" +msgid "Text Statistics" +msgstr "Estadísticas de texto" + +#: src/modules/statistics/ui/profile.py:102 +msgctxt "menu:stat_type|opt:anki|name" +msgid "Anki Statistics" +msgstr "Estadísticas Anki" + +#: src/modules/statistics/ui/profile.py:190 +msgctxt "modal:profile_editor|resp:success" +msgid "Your profile has been updated!" +msgstr "Tu perfil ha sido actualizado." + +#: src/modules/statistics/ui/profile.py:200 +msgctxt "ui:profile_card|button:edit|label" +msgid "Edit Profile Badges" +msgstr "Editar insignias de perfil" + +#: src/modules/statistics/ui/profile.py:219 +msgctxt "ui:profile_card|button:statistics|label:hide" +msgid "Hide Statistics" +msgstr "Ocultar estadísticas" + +#: src/modules/statistics/ui/profile.py:224 +msgctxt "ui:profile_card|button:statistics|label:show" +msgid "Show Statistics" +msgstr "Mostrar estadísticas" + +#: src/modules/statistics/ui/profile.py:253 +msgctxt "ui:Profile|button:global|resp:success" +msgid "" +"You will now see statistics from all you servers (where applicable)! Press " +"again to revert." +msgstr "" +"Ahora verá las estadísticas de todos sus servidores (si procede). Pulse de " +"nuevo para revertir." + +#: src/modules/statistics/ui/leaderboard.py:257 +msgctxt "ui:leaderboard|menu:stats|placeholder" +msgid "Select Activity Type" +msgstr "Seleccione el tipo de actividad" + +#: src/modules/statistics/ui/leaderboard.py:266 +msgctxt "ui:leaderboard|menu:stats|item:voice" +msgid "Voice Activity" +msgstr "Actividad vocal" + +#: src/modules/statistics/ui/leaderboard.py:277 +msgctxt "ui:leaderboard|menu:stats|item:study" +msgid "Study Statistics" +msgstr "Estadísticas del estudio" + +#: src/modules/statistics/ui/leaderboard.py:288 +msgctxt "ui:leaderboard|menu:stats|item:message" +msgid "Message Activity" +msgstr "Mensaje Actividad" + +#: src/modules/statistics/ui/leaderboard.py:299 +msgctxt "ui:leaderboard|menu;stats|item:anki" +msgid "Anki Cards Reviewed" +msgstr "Revisión de las tarjetas Anki" + +#: src/modules/statistics/ui/leaderboard.py:353 +msgctxt "ui:leaderboard|button:season|label" +msgid "This Season" +msgstr "Esta temporada" + +#: src/modules/statistics/ui/leaderboard.py:357 +msgctxt "ui:leaderboard|button:day|label" +msgid "Today" +msgstr "Hoy" + +#: src/modules/statistics/ui/leaderboard.py:361 +msgctxt "ui:leaderboard|button:week|label" +msgid "This Week" +msgstr "Esta semana" + +#: src/modules/statistics/ui/leaderboard.py:365 +msgctxt "ui:leaderboard|button:month|label" +msgid "This Month" +msgstr "Este mes" + +#: src/modules/statistics/ui/leaderboard.py:369 +msgctxt "ui:leaderboard|button:alltime|label" +msgid "All Time" +msgstr "Todos los tiempos" + +#: src/modules/statistics/ui/leaderboard.py:373 +msgctxt "ui:leaderboard|button:jump|label" +msgid "Jump" +msgstr "Saltar" + +#: src/modules/statistics/ui/leaderboard.py:388 +msgctxt "ui:leaderboard|button:jump|input:title" +msgid "Jump to page" +msgstr "Ir a la página" + +#: src/modules/statistics/ui/leaderboard.py:392 +msgctxt "ui:leaderboard|button:jump|input:question" +msgid "Page number to jump to" +msgstr "Número de página al que saltar" + +#: src/modules/statistics/ui/leaderboard.py:403 +msgctxt "ui:leaderboard|button:jump|error:invalid_page" +msgid "Invalid page number, please try again!" +msgstr "Número de página no válido, inténtelo de nuevo." + +#: src/modules/statistics/ui/leaderboard.py:447 +msgctxt "ui:leaderboard|chunk_warning" +msgid "" +"**Note:** Could not retrieve member list from Discord, so some members may " +"be missing. Try again in a minute!" +msgstr "" +"**Nota:** No se ha podido recuperar la lista de miembros de Discord, por lo " +"que es posible que falten algunos. ¡Inténtalo de nuevo en un minuto!" + +#: src/modules/statistics/ui/leaderboard.py:454 +#, possible-python-brace-format +msgctxt "ui:leaderboard|since" +msgid "Counting statistics since {timestamp}" +msgstr "Recuento de estadísticas desde {timestamp}" + +#: src/modules/statistics/ui/leaderboard.py:467 +#, possible-python-brace-format +msgctxt "ui:leaderboard|mode:voice|message:empty|desc" +msgid "There has been no voice activity since {timestamp}" +msgstr "No ha habido actividad de voz desde {timestamp}" + +#: src/modules/statistics/ui/leaderboard.py:472 +#, possible-python-brace-format +msgctxt "ui:leaderboard|mode:text|message:empty|desc" +msgid "There has been no message activity since {timestamp}" +msgstr "No ha habido actividad de mensajes desde {timestamp}." + +#: src/modules/statistics/ui/leaderboard.py:477 +#, possible-python-brace-format +msgctxt "ui:leaderboard|mode:anki|message:empty|desc" +msgid "There have been no Anki cards reviewed since {timestamp}" +msgstr "No se han revisado tarjetas Anki desde {timestamp}." + +#: src/modules/statistics/ui/leaderboard.py:486 +msgctxt "ui:leaderboard|message:empty|title" +msgid "Leaderboard Empty!" +msgstr "¡Leaderboard Vacío!" diff --git a/locales/es_419/LC_MESSAGES/tasklist.po b/locales/es_419/LC_MESSAGES/tasklist.po new file mode 100644 index 000000000000..d1ae6f022eed --- /dev/null +++ b/locales/es_419/LC_MESSAGES/tasklist.po @@ -0,0 +1,890 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Ronin DeMentira, 2023 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Ronin DeMentira, 2023\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/modules/tasklist/cog.py:35 +msgctxt "argtype:Before|opt:HOUR" +msgid "The last hour" +msgstr "La última hora" + +#: src/modules/tasklist/cog.py:36 +msgctxt "argtype:Before|opt:HALFDAY" +msgid "The last 12 hours" +msgstr "Las últimas 12 horas" + +#: src/modules/tasklist/cog.py:37 +msgctxt "argtype:Before|opt:DAY" +msgid "The last 24 hours" +msgstr "Las últimas 24 horas" + +#: src/modules/tasklist/cog.py:38 +msgctxt "argtype:Before|opt:TODAY" +msgid "Today" +msgstr "Hoy" + +#: src/modules/tasklist/cog.py:39 +msgctxt "argtype:Before|opt:YESTERDAY" +msgid "Yesterday" +msgstr "Ayer" + +#: src/modules/tasklist/cog.py:40 +msgctxt "argtype:Before|opt:Monday" +msgid "This Monday" +msgstr "Este lunes" + +#: src/modules/tasklist/cog.py:41 +msgctxt "argtype:Before|opt:THISMONTH" +msgid "This Month" +msgstr "Este mes" + +#: src/modules/tasklist/cog.py:205 +msgctxt "summon_tasklist|error:insufficient_perms|title" +msgid "Uh-Oh, I cannot do that here!" +msgstr "Uh-Oh, ¡no puedo hacer eso aquí!" + +#: src/modules/tasklist/cog.py:209 +msgctxt "summon_tasklist|error:insufficient_perms|desc" +msgid "" +"This channel is configured as a tasklist channel, but I lack the " +"`EMBED_LINKS` or `SEND_MESSAGES` permission here! If you believe this is " +"unintentional, please contact a server administrator." +msgstr "" +"Este canal está configurado como un canal de lista de tareas, ¡pero me falta" +" el permiso `EMBED_LINKS` o `SEND_MESSAGES` aquí! Si cree que esto no es " +"intencionado, por favor contacte con un administrador del servidor." + +#: src/modules/tasklist/cog.py:258 +msgctxt "cmd:tasklist" +msgid "tasklist" +msgstr "lista de tareas" + +#: src/modules/tasklist/cog.py:261 +msgctxt "cmd:tasklist|desc" +msgid "Open your tasklist." +msgstr "Abra su lista de tareas." + +#: src/modules/tasklist/cog.py:271 +msgctxt "group:tasks" +msgid "tasks" +msgstr "tareas" + +#: src/modules/tasklist/cog.py:272 +msgctxt "group:tasks|desc" +msgid "Base command group for tasklist commands." +msgstr "Grupo de comandos base para los comandos de la lista de tareas." + +#: src/modules/tasklist/cog.py:295 +msgctxt "argtype:taskid|error:no_tasks" +msgid "Tasklist empty! No matching tasks." +msgstr "Lista de tareas vacía. No hay tareas coincidentes." + +#: src/modules/tasklist/cog.py:332 +msgctxt "argtype:taskid|match:all" +msgid "All tasks" +msgstr "Todas las tareas" + +#: src/modules/tasklist/cog.py:350 +#, possible-python-brace-format +msgctxt "argtype:taskid|error:parse_multi" +msgid "(Warning: {error})" +msgstr "(Advertencia: {error})" + +#: src/modules/tasklist/cog.py:384 +#, possible-python-brace-format +msgctxt "argtype:taskid|error:no_matching" +msgid "No tasks matching '{partial}'!" +msgstr "¡No hay tareas que coincidan con '{partial}'!" + +#: src/modules/tasklist/cog.py:404 +msgctxt "cmd:tasks_new" +msgid "new" +msgstr "nuevo" + +#: src/modules/tasklist/cog.py:407 +msgctxt "cmd:tasks_new|desc" +msgid "Add a new task to your tasklist." +msgstr "Añada una nueva tarea a su lista de tareas." + +#: src/modules/tasklist/cog.py:411 +msgctxt "cmd:tasks_new|param:content" +msgid "task" +msgstr "tarea" + +#: src/modules/tasklist/cog.py:412 +msgctxt "cmd:tasks_new|param:parent" +msgid "parent" +msgstr "padre" + +#: src/modules/tasklist/cog.py:415 +msgctxt "cmd:tasks_new|param:content|desc" +msgid "Content of your new task." +msgstr "Contenido de su nueva tarea." + +#: src/modules/tasklist/cog.py:416 +msgctxt "cmd:tasks_new|param:parent" +msgid "Parent of this task." +msgstr "Padre de esta tarea." + +#: src/modules/tasklist/cog.py:436 +#, possible-python-brace-format +msgctxt "cmd:tasks_new|error:parse_parent" +msgid "Could not find parent task number `{input}` in your tasklist." +msgstr "" +"No se ha podido encontrar el número de tarea principal `{input}` en su lista" +" de tareas." + +#: src/modules/tasklist/cog.py:451 +#, possible-python-brace-format +msgctxt "cmd:tasks_new|resp:success" +msgid "{tick} Created task `{label}`." +msgstr "{tick} Tarea creada `{label}`." + +#: src/modules/tasklist/cog.py:463 +msgctxt "cmd:tasks_upload" +msgid "upload" +msgstr "cargar" + +#: src/modules/tasklist/cog.py:466 +msgctxt "cmd:tasks_upload|desc" +msgid "Upload a list of tasks to append to or replace your tasklist." +msgstr "" +"Cargue una lista de tareas para añadir o sustituir su lista de tareas." + +#: src/modules/tasklist/cog.py:470 +msgctxt "cmd:tasks_upload|param:tasklist" +msgid "tasklist" +msgstr "lista de tareas" + +#: src/modules/tasklist/cog.py:471 +msgctxt "cmd:tasks_upload|param:append" +msgid "append" +msgstr "añadir" + +#: src/modules/tasklist/cog.py:476 +msgctxt "cmd:tasks_upload|param:tasklist|desc" +msgid "" +"Text file containing a (standard markdown formatted) checklist of tasks to " +"add or append." +msgstr "" +"Archivo de texto que contiene una lista (formato Markdown estándar) de " +"tareas para añadir o anexar." + +#: src/modules/tasklist/cog.py:480 +msgctxt "cmd:tasks_upload|param:append|desc" +msgid "" +"Whether to append the given tasks or replace your entire tasklist. Defaults " +"to True." +msgstr "" +"Si añadir las tareas dadas o reemplazar toda la lista de tareas. Por defecto" +" es True." + +#: src/modules/tasklist/cog.py:496 +msgctxt "cmd:tasks_upload|error:not_text" +msgid "The attached tasklist must be a text file!" +msgstr "La lista de tareas adjunta debe ser un archivo de texto." + +#: src/modules/tasklist/cog.py:504 +msgctxt "cmd:tasks_upload|error:too_large" +msgid "The attached tasklist was too large!" +msgstr "La lista de tareas adjunta era demasiado grande." + +#: src/modules/tasklist/cog.py:515 +msgctxt "cmd:tasks_upload|error:too_many_lines" +msgid "" +"Too many tasks! Refusing to process a tasklist with more than `1000` lines." +msgstr "" +"Demasiadas tareas Rechazo a procesar una lista de tareas con más de `1000` " +"líneas." + +#: src/modules/tasklist/cog.py:521 +msgctxt "cmd:tasks_upload|error:decoding" +msgid "" +"Could not decode attached tasklist. Please make sure it is saved with the " +"`UTF-8` encoding." +msgstr "" +"No se ha podido descodificar la lista de tareas adjunta. Asegúrese de que se" +" guarda con la codificación `UTF-8`." + +#: src/modules/tasklist/cog.py:568 +#, possible-python-brace-format +msgctxt "cmd:tasks_upload|resp:success" +msgid "{tick} Updated your tasklist." +msgstr "{tick} Actualiza tu lista de tareas." + +#: src/modules/tasklist/cog.py:580 +msgctxt "cmd:tasks_edit" +msgid "edit" +msgstr "editar" + +#: src/modules/tasklist/cog.py:583 +msgctxt "cmd:tasks_edit|desc" +msgid "Edit a task in your tasklist." +msgstr "Edite una tarea de su lista de tareas." + +#: src/modules/tasklist/cog.py:587 +msgctxt "cmd:tasks_edit|param:taskstr" +msgid "task" +msgstr "tarea" + +#: src/modules/tasklist/cog.py:588 +msgctxt "cmd:tasks_edit|param:new_content" +msgid "new_task" +msgstr "nueva_tarea" + +#: src/modules/tasklist/cog.py:589 +msgctxt "cmd:tasks_edit|param:new_parent" +msgid "new_parent" +msgstr "nuevo_padre" + +#: src/modules/tasklist/cog.py:592 +msgctxt "cmd:tasks_edit|param:taskstr|desc" +msgid "Which task do you want to update?" +msgstr "¿Qué tarea desea actualizar?" + +#: src/modules/tasklist/cog.py:593 +msgctxt "cmd:tasks_edit|param:new_content|desc" +msgid "What do you want to change the task to?" +msgstr "¿A qué quiere cambiar la tarea?" + +#: src/modules/tasklist/cog.py:594 +msgctxt "cmd:tasks_edit|param:new_parent|desc" +msgid "Which task do you want to be the new parent?" +msgstr "¿Qué tarea quiere ser el nuevo padre?" + +#: src/modules/tasklist/cog.py:613 +#, possible-python-brace-format +msgctxt "cmd:tasks_edit|error:parse_taskstr" +msgid "Could not find target task number `{input}` in your tasklist." +msgstr "" +"No se ha podido encontrar la tarea de destino número `{input}` en su lista " +"de tareas." + +#: src/modules/tasklist/cog.py:629 +#, possible-python-brace-format +msgctxt "cmd:tasks_edit|error:parse_parent" +msgid "Could not find new parent task number `{input}` in your tasklist." +msgstr "" +"No se ha podido encontrar el nuevo número de tarea principal `{input}` en su" +" lista de tareas." + +#: src/modules/tasklist/cog.py:648 +#, possible-python-brace-format +msgctxt "cmd:tasks_edit|resp:success|desc" +msgid "{tick} Task `{label}` updated." +msgstr "{tick} Tarea `{label}` actualizada." + +#: src/modules/tasklist/cog.py:670 +msgctxt "ui:tasklist_single_editor|title" +msgid "Edit Task" +msgstr "Editar tarea" + +#: src/modules/tasklist/cog.py:685 +msgctxt "cmd:tasks_clear" +msgid "clear" +msgstr "borrar" + +#: src/modules/tasklist/cog.py:686 +msgctxt "cmd:tasks_clear|desc" +msgid "Clear your tasklist." +msgstr "Borra tu lista de tareas." + +#: src/modules/tasklist/cog.py:696 +msgctxt "cmd:tasks_clear|resp:success" +msgid "Your tasklist has been cleared." +msgstr "Tu lista de tareas ha sido borrada." + +#: src/modules/tasklist/cog.py:704 +msgctxt "cmd:tasks_remove" +msgid "remove" +msgstr "eliminar" + +#: src/modules/tasklist/cog.py:707 +msgctxt "cmd:tasks_remove|desc" +msgid "" +"Remove tasks matching all the provided conditions. (E.g. remove tasks " +"completed before today)." +msgstr "" +"Eliminar las tareas que cumplan todas las condiciones. (eje, eliminar las " +"completadas antes de hoy)." + +#: src/modules/tasklist/cog.py:711 +msgctxt "cmd:tasks_remove|param:taskidstr" +msgid "tasks" +msgstr "tareas" + +#: src/modules/tasklist/cog.py:712 +msgctxt "cmd:tasks_remove|param:created_before" +msgid "created_before" +msgstr "creado_antes" + +#: src/modules/tasklist/cog.py:713 +msgctxt "cmd:tasks_remove|param:updated_before" +msgid "updated_before" +msgstr "actualizado_antes" + +#: src/modules/tasklist/cog.py:714 +msgctxt "cmd:tasks_remove|param:completed" +msgid "completed" +msgstr "completado" + +#: src/modules/tasklist/cog.py:715 +msgctxt "cmd:tasks_remove|param:cascade" +msgid "cascade" +msgstr "cascada" + +#: src/modules/tasklist/cog.py:720 +msgctxt "cmd:tasks_remove|param:taskidstr|desc" +msgid "" +"List of task numbers or ranges to remove (e.g. 1, 2, 5-7, 8.1-3, 9-), or `-`" +" to remove all." +msgstr "" +"Lista de núm de tarea o rangos a eliminar (ejem, 1, 2, 5-7, 8.1-3, 9-) o `-`" +" para eliminarlos todos." + +#: src/modules/tasklist/cog.py:724 +msgctxt "cmd:tasks_remove|param:created_before|desc" +msgid "Only delete tasks created before the selected time." +msgstr "Borrar sólo las tareas creadas antes de la hora seleccionada." + +#: src/modules/tasklist/cog.py:728 +msgctxt "cmd:tasks_remove|param:updated_before|desc" +msgid "" +"Only deleted tasks update (i.e. completed or edited) before the selected " +"time." +msgstr "" +"Sólo se actualizan las tareas eliminadas (es decir, completadas o editadas) " +"antes de la hora seleccionada." + +#: src/modules/tasklist/cog.py:732 +msgctxt "cmd:tasks_remove|param:completed" +msgid "Only delete tasks which are (not) complete." +msgstr "Borre sólo las tareas que (no) estén completas." + +#: src/modules/tasklist/cog.py:736 +msgctxt "cmd:tasks_remove|param:cascade" +msgid "Whether to recursively remove subtasks of removed tasks." +msgstr "Si se eliminan recursivamente las subtareas de las tareas eliminadas." + +#: src/modules/tasklist/cog.py:768 src/modules/tasklist/cog.py:863 +#: src/modules/tasklist/cog.py:938 +#, possible-python-brace-format +msgctxt "cmd:tasks_remove_cmd|error:no_matching" +msgid "No tasks on your tasklist match `{input}`" +msgstr "Ninguna tarea de su lista de tareas coincide con `{input}`." + +#: src/modules/tasklist/cog.py:792 +msgctxt "cmd:tasks_remove_cmd|error:no_matching" +msgid "No tasks on your tasklist matching all the given conditions!" +msgstr "" +"No hay tareas en su lista de tareas que cumplan todas las condiciones dadas." + +#: src/modules/tasklist/cog.py:805 +#, possible-python-brace-format +msgctxt "cmd:tasks_remove|resp:success" +msgid "{tick} Deleted task `{label}`" +msgid_plural "{tick} Deleted `{count}` tasks from your tasklist." +msgstr[0] "{tick} Tarea eliminada `{label}`." +msgstr[1] "{tick} Tareas `{count}` eliminadas de su lista de tareas." +msgstr[2] "{tick} Tareas `{count}` eliminadas de su lista de tareas." + +#: src/modules/tasklist/cog.py:823 +msgctxt "cmd:tasks_tick" +msgid "tick" +msgstr "tick" + +#: src/modules/tasklist/cog.py:824 +msgctxt "cmd:tasks_tick|desc" +msgid "Mark the given tasks as completed." +msgstr "Marque las tareas dadas como completadas." + +#: src/modules/tasklist/cog.py:827 +msgctxt "cmd:tasks_tick|param:taskidstr" +msgid "tasks" +msgstr "tareas" + +#: src/modules/tasklist/cog.py:828 +msgctxt "cmd:tasks_tick|param:cascade" +msgid "cascade" +msgstr "cascada" + +#: src/modules/tasklist/cog.py:833 +msgctxt "cmd:tasks_tick|param:taskidstr|desc" +msgid "" +"List of task numbers or ranges to tick (e.g. 1, 2, 5-7, 8.1-3, 9-) or '-' to" +" tick all." +msgstr "" +"Lista de núm de tareas o intervalos para marcar (ejem, 1, 2, 5-7, 8.1-3, 9-)" +" o \"-\" para marcar todo." + +#: src/modules/tasklist/cog.py:837 +msgctxt "cmd:tasks_tick|param:cascade|desc" +msgid "Whether to also mark all subtasks as complete." +msgstr "Si desea marcar también todas las subtareas como completas." + +#: src/modules/tasklist/cog.py:881 +#, possible-python-brace-format +msgctxt "cmd:tasks_tick|resp:success" +msgid "{tick} Marked `{label}` as complete." +msgid_plural "{tick} Marked `{count}` tasks as complete." +msgstr[0] "{tick} Marcado `{label}` como completo." +msgstr[1] "{tick} Tareas `{count}` marcadas como completas." +msgstr[2] "{tick} Tareas `{count}` marcadas como completas." + +#: src/modules/tasklist/cog.py:899 +msgctxt "cmd:tasks_untick" +msgid "untick" +msgstr "desmarcar" + +#: src/modules/tasklist/cog.py:900 +msgctxt "cmd:tasks_untick|desc" +msgid "Mark the given tasks as incomplete." +msgstr "Marque las tareas dadas como incompletas." + +#: src/modules/tasklist/cog.py:903 +msgctxt "cmd:tasks_untick|param:taskidstr" +msgid "taskids" +msgstr "taskids" + +#: src/modules/tasklist/cog.py:904 +msgctxt "cmd:tasks_untick|param:cascade" +msgid "cascade" +msgstr "cascada" + +#: src/modules/tasklist/cog.py:909 +msgctxt "cmd:tasks_untick|param:taskidstr|desc" +msgid "" +"List of task numbers or ranges to untick (e.g. 1, 2, 5-7, 8.1-3, 9-) or '-' " +"to untick all." +msgstr "" +"Lista de núm de tareas q se deben desmarcar (ejem, 1, 2, 5-7, 8.1-3, 9-) o " +"\"-\" para desmarcar todo." + +#: src/modules/tasklist/cog.py:913 +msgctxt "cmd:tasks_untick|param:cascade|desc" +msgid "Whether to also mark all subtasks as incomplete." +msgstr "Si desea marcar también todas las subtareas como incompletas." + +#: src/modules/tasklist/cog.py:954 +#, possible-python-brace-format +msgctxt "cmd:tasks_untick|resp:success" +msgid "{tick} Marked `{label}` as incomplete." +msgid_plural "{tick} Marked `{count}` tasks as incomplete." +msgstr[0] "{tick} Marcado `{label}` como incompleto." +msgstr[1] "{tick} Tareas `{count}` marcadas como incompletas." +msgstr[2] "{tick} Tareas `{count}` marcadas como incompletas." + +#: src/modules/tasklist/cog.py:978 +msgctxt "cmd:configure_tasklist" +msgid "tasklist" +msgstr "lista de tareas" + +#: src/modules/tasklist/cog.py:979 +msgctxt "cmd:configure_tasklist|desc" +msgid "Tasklist configuration panel" +msgstr "Panel de configuración de la lista de tareas" + +#: src/modules/tasklist/cog.py:982 +msgctxt "cmd:configure_tasklist|param:reward" +msgid "reward" +msgstr "recompensa" + +#: src/modules/tasklist/cog.py:983 +msgctxt "cmd:configure_tasklist|param:reward_limit" +msgid "reward_limit" +msgstr "limite_recompensa" + +#: src/modules/tasklist/cog.py:1018 +#, possible-python-brace-format +msgctxt "cmd:configure_tasklist|resp:success|desc" +msgid "" +"Members will now be rewarded {coin}**{amount}** for each task they complete " +"up to a maximum of `{limit}` tasks per 24h." +msgstr "" +"Ahora los miembros recibirán {coin}**{amount}** por cada tarea que completen" +" hasta un máximo de `{limit}` tareas por 24h." + +#: src/modules/tasklist/tasklist.py:267 +#, possible-python-brace-format +msgctxt "tasklist|parse:multi-range|error:parents_match" +msgid "Parents don't match in range `{range}`" +msgstr "Los padres no coinciden en el rango `{range}`." + +#: src/modules/tasklist/tasklist.py:289 +#, possible-python-brace-format +msgctxt "tasklist|parse:multi-range|error:parse" +msgid "Could not parse `{range}` as a task number or range." +msgstr "No se pudo analizar `{range}` como un número de tarea o rango." + +#: src/modules/tasklist/tasklist.py:320 +#, possible-python-brace-format +msgctxt "modal:tasklist_bulk_editor|error:parse_task" +msgid "" +"Malformed taskline!\n" +"`{input}`" +msgstr "" +"¡Línea de tarea malformada!\n" +"`{input}`" + +#: src/modules/tasklist/tasklist.py:332 +msgctxt "modal:tasklist_bulk_editor|error:task_too_long" +msgid "Please keep your tasks under 100 characters!" +msgstr "Por favor, no sobrepase los 100 caracteres." + +#: src/modules/tasklist/ui.py:39 +msgctxt "ui:tasklist_caller|button:tasklist|label" +msgid "Open Tasklist" +msgstr "Abrir lista de tareas" + +#: src/modules/tasklist/ui.py:57 +msgctxt "modal:tasklist_single_editor|field:task|label" +msgid "Task content" +msgstr "Contenido de la tarea" + +#: src/modules/tasklist/ui.py:69 +msgctxt "modal:tasklist_single_editor|field:parent|label" +msgid "Parent Task" +msgstr "Tarea de los padres" + +#: src/modules/tasklist/ui.py:73 +msgctxt "modal:tasklist_single_editor|field:parent|placeholder" +msgid "Enter a task number, e.g. 2.1" +msgstr "Introduzca un número de tarea, por ejemplo 2.1" + +#: src/modules/tasklist/ui.py:104 +msgctxt "modal:tasklist_bulk_editor|field:tasklist|label" +msgid "Tasklist" +msgstr "Lista de tareas" + +#: src/modules/tasklist/ui.py:108 +msgctxt "modal:tasklist_bulk_editor|field:tasklist|placeholder" +msgid "" +"- [ ] This is task 1, unfinished.\n" +"- [x] This is task 2, finished.\n" +" - [ ] This is subtask 2.1." +msgstr "" +"- [ ] Esta es la tarea 1, sin terminar.\n" +"- [x] Ésta es la tarea 2, terminada.\n" +"- [ ] Esta es la subtarea 2.1." + +#: src/modules/tasklist/ui.py:130 +msgctxt "modal:tasklist_bulk_editor" +msgid "Tasklist Editor" +msgstr "Editor de listas de tareas" + +#: src/modules/tasklist/ui.py:188 +msgctxt "ui:tasklist|menu:main|mode:toggle|placeholder" +msgid "Select to Toggle" +msgstr "Seleccionar para cambiar" + +#: src/modules/tasklist/ui.py:192 +#, possible-python-brace-format +msgctxt "ui:tasklist|menu:sub|mode:toggle|placeholder" +msgid "Toggle from {label}.*" +msgstr "Cambiar de {label}.*" + +#: src/modules/tasklist/ui.py:198 +msgctxt "ui:tasklist|menu:main|mode:edit|placeholder" +msgid "Select to Edit" +msgstr "Seleccionar para editar" + +#: src/modules/tasklist/ui.py:202 +#, possible-python-brace-format +msgctxt "ui:tasklist|menu:sub|mode:edit|placeholder" +msgid "Edit from {label}.*" +msgstr "Editar desde {label}.*" + +#: src/modules/tasklist/ui.py:208 +msgctxt "ui:tasklist|menu:main|mode:delete|placeholder" +msgid "Select to Delete" +msgstr "Seleccionar para borrar" + +#: src/modules/tasklist/ui.py:212 +#, possible-python-brace-format +msgctxt "ui:tasklist|menu:sub|mode:delete|placeholder" +msgid "Delete from {label}.*" +msgstr "Borrar de {label}.*" + +#: src/modules/tasklist/ui.py:409 +#, possible-python-brace-format +msgctxt "ui:tasklist_single_editor|field:parent|error:parse_id" +msgid "" +"Could not find the given parent task number `{input}` in your tasklist." +msgstr "" +"No se ha podido encontrar el número de tarea principal `{input}` en la lista" +" de tareas." + +#: src/modules/tasklist/ui.py:423 +#, possible-python-brace-format +msgctxt "ui:tasklist_single_editor|field:parent|error:multiple_matching" +msgid "" +"Multiple tasks matching given parent task `{input}`. Please use a task " +"number instead!" +msgstr "" +"Múltiples tareas que coinciden con la tarea principal `{input}`. Utilice un " +"número de tarea en su lugar." + +#: src/modules/tasklist/ui.py:430 +#, possible-python-brace-format +msgctxt "ui:tasklist_single_editor|field:parent|error:no_matching" +msgid "No tasks matching given parent task `{input}`." +msgstr "No hay tareas que coincidan con la tarea principal `{input}`." + +#: src/modules/tasklist/ui.py:501 +msgctxt "ui:tasklist|menu:edit|modal:title" +msgid "Edit task" +msgstr "Editar tarea" + +#: src/modules/tasklist/ui.py:596 +msgctxt "ui:tasklist_single_editor|title" +msgid "Add task" +msgstr "Añadir tarea" + +#: src/modules/tasklist/ui.py:629 +msgctxt "ui:tasklist|button:edit_mode|label" +msgid "Edit" +msgstr "Editar" + +#: src/modules/tasklist/ui.py:645 +msgctxt "ui:tasklist|button:delete_mode|label" +msgid "Delete" +msgstr "Borrar" + +#: src/modules/tasklist/ui.py:661 +msgctxt "ui:tasklist|button:toggle_mode|label" +msgid "Toggle" +msgstr "Alternar" + +#: src/modules/tasklist/ui.py:678 +msgctxt "ui:tasklist|button:edit_bulk|error:too_long" +msgid "" +"Your tasklist is too long to be edited in a Discord text input! Use the save" +" button and {cmds[tasks upload]} instead." +msgstr "" +"Tu lista de tareas es demasiado larga para ser editada en una entrada de " +"texto de Discord. Utiliza el botón de guardar y {cmds[tasks upload]} en su " +"lugar." + +#: src/modules/tasklist/ui.py:692 +msgctxt "ui:tasklist|button:edit_bulk|label" +msgid "Bulk Edit" +msgstr "Edición masiva" + +#: src/modules/tasklist/ui.py:705 +msgctxt "ui:tasklist|button:clear|label" +msgid "Clear Tasklist" +msgstr "Borrar lista de tareas" + +#: src/modules/tasklist/ui.py:724 +#, possible-python-brace-format +msgctxt "ui:tasklist|button:save|dm:contents" +msgid "Your tasklist as of {now} is attached. Click here to jump back: {jump}" +msgstr "" +"Su lista de tareas a partir de {now} está adjunta. Haga clic aquí para " +"volver atrás: {jump}" + +#: src/modules/tasklist/ui.py:737 +msgctxt "ui:tasklist|button:save|error:dms" +msgid "Could not DM you! Do you have me blocked? Tasklist attached below." +msgstr "" +"No puedo enviarte un mensaje. ¿Me tienes bloqueado? Lista de tareas adjunta " +"a continuación." + +#: src/modules/tasklist/ui.py:782 +msgctxt "ui:tasklist|error:wrong_user" +msgid "This is not your tasklist!" +msgstr "¡Esta no es tu lista de tareas!" + +#: src/modules/tasklist/ui.py:824 +#, possible-python-brace-format +msgctxt "ui:tasklist|embed|author" +msgid "{name}'s tasklist ({completed}/{total} complete)" +msgstr "Lista de tareas de {name} ({completed}/{total} complete)" + +#: src/modules/tasklist/ui.py:846 +msgctxt "ui:tasklist|embed|description" +msgid "" +"**You have no tasks on your tasklist!**\n" +"Add a task with {cmds[tasks new]}, or by pressing the {new_button} button below." +msgstr "" +"**¡No tiene tareas en su lista de tareas!**\n" +"Añada una tarea con {cmds[tasks new]}, o pulsando el botón {new_button} de abajo." + +#: src/modules/tasklist/settings.py:35 +msgctxt "guildset:task_reward" +msgid "task_reward" +msgstr "recompensa_tarea" + +#: src/modules/tasklist/settings.py:38 +msgctxt "guildset:task_reward|desc" +msgid "Number of LionCoins given for each completed task." +msgstr "Número de LionCoins otorgados por cada tarea completada." + +#: src/modules/tasklist/settings.py:42 +msgctxt "guildset:task_reward|long_desc" +msgid "" +"The number of coins members will be rewarded each time they complete a task " +"on their tasklist." +msgstr "" +"El número de monedas que los miembros recibirán cada vez que completen una " +"tarea de su lista de tareas." + +#: src/modules/tasklist/settings.py:46 +msgctxt "guildset:task_reward|accepts" +msgid "The number of LionCoins to reward per task." +msgstr "El número de LionCoins a recompensar por tarea." + +#: src/modules/tasklist/settings.py:58 +#, possible-python-brace-format +msgctxt "guildset:task_reward|response" +msgid "" +"Members will now be rewarded {coin}**{amount}** for each completed task." +msgstr "Los miembros recibirán {coin}**{amount}** por cada tarea completada." + +#: src/modules/tasklist/settings.py:67 +#, possible-python-brace-format +msgctxt "guildset:task_reward|formatted" +msgid "{coin}**{amount}** per task." +msgstr "{coin}**{amount}** por tarea." + +#: src/modules/tasklist/settings.py:76 +msgctxt "guildset:task_reward_limit" +msgid "task_reward_limit" +msgstr "limite_recompensa_tarea" + +#: src/modules/tasklist/settings.py:79 +msgctxt "guildset:task_reward_limit|desc" +msgid "Maximum number of task rewards given per 24h." +msgstr "Número máximo de recompensas por tarea concedidas en 24 horas." + +#: src/modules/tasklist/settings.py:83 +msgctxt "guildset:task_reward_limit|long_desc" +msgid "" +"Maximum number of times in each 24h period that members will be rewarded for" +" completing a task." +msgstr "" +"Número máximo de veces en cada periodo de 24h que los miembros serán " +"recompensados por completar una tarea." + +#: src/modules/tasklist/settings.py:88 +msgctxt "guildset:task_reward_limit|accepts" +msgid "The maximum number of tasks to reward LC for per 24h." +msgstr "El número máximo de tareas para recompensar LC por 24h." + +#: src/modules/tasklist/settings.py:100 +#, possible-python-brace-format +msgctxt "guildset:task_reward_limit|response" +msgid "" +"Members will now be rewarded for task completion at most **{amount}** times " +"per 24h." +msgstr "" +"Ahora los miembros serán recompensados por completar tareas como máximo " +"**{amount}** veces por 24h." + +#: src/modules/tasklist/settings.py:109 +#, possible-python-brace-format +msgctxt "guildset:task_reward_limit|formatted" +msgid "`{number}` per 24 hours." +msgstr "`{number}` por 24 horas." + +#: src/modules/tasklist/settings.py:117 +msgctxt "guildset:tasklist_channels" +msgid "tasklist_channels" +msgstr "lista_tareas_canales" + +#: src/modules/tasklist/settings.py:120 +msgctxt "guildset:tasklist_channels|desc" +msgid "Channels in which to publicly display member tasklists." +msgstr "" +"Canales en los que mostrar públicamente las listas de tareas de los " +"miembros." + +#: src/modules/tasklist/settings.py:124 +#, possible-python-brace-format +msgctxt "guildset:tasklist_channels|long_desc" +msgid "" +"A member's tasklist (from {cmds[tasklist]}) is usually only visible to the " +"member themselves. If set, tasklists opened in `tasklist_channels` will be " +"visible to all members, and the interface will have a much longer expiry " +"period. If a category is provided, this will apply to all channels under the" +" category." +msgstr "" +"La lista de tareas de un miembro (de {cmds[tasklist]}) normalmente sólo es " +"visible para el propio miembro. Si se establece, las listas de tareas " +"abiertas en `tasklist_channels` serán visibles para todos los miembros, y la" +" interfaz tendrá un periodo de expiración mucho más largo. Si se proporciona" +" una categoría, esto se aplicará a todos los canales bajo la categoría." + +#: src/modules/tasklist/settings.py:131 +msgctxt "guildset:tasklist_channels|accepts" +msgid "Comma separated list of tasklist channel names or ids." +msgstr "" +"Lista separada por comas de nombres o ids de canales de listas de tareas." + +#: src/modules/tasklist/settings.py:148 +#, possible-python-brace-format +msgctxt "guildset:tasklist_channels|set_response|set" +msgid "" +"Tasklists will now be publicly displayed in the following channels: " +"{channels}" +msgstr "" +"Las listas de tareas se mostrarán públicamente en los siguientes canales: " +"{canales}" + +#: src/modules/tasklist/settings.py:153 +msgctxt "guildset:tasklist_channels|set_response|unset" +msgid "Member tasklists will never be publicly displayed." +msgstr "Las listas de tareas de los miembros nunca se mostrarán públicamente." + +#: src/modules/tasklist/settings.py:162 +msgctxt "guildset:tasklist_channels|set_using" +msgid "Channel selector below." +msgstr "Selector de canal abajo." + +#: src/modules/tasklist/settings.py:293 +msgctxt "ui:tasklist_config|button:close|label" +msgid "Close" +msgstr "Cerrar" + +#: src/modules/tasklist/settings.py:294 +msgctxt "ui:tasklist_config|button:reset|label" +msgid "Reset" +msgstr "Restablecer" + +#: src/modules/tasklist/settings.py:297 +msgctxt "ui:tasklist_config|menu:channels|placeholder" +msgid "Set Tasklist Channels" +msgstr "Establecer canales de listas de tareas" + +#: src/modules/tasklist/settings.py:315 +msgctxt "ui:tasklist_config|embed|title" +msgid "Tasklist Configuration Panel" +msgstr "Panel de configuración de la lista de tareas" + +#: src/modules/tasklist/settings.py:324 +msgctxt "dash:tasklist|name" +msgid "Tasklist Configuration ({commands[config tasklist]})" +msgstr "Configuración de la lista de tareas ({commands[config tasklist]})" + +#: src/modules/tasklist/settings.py:327 +msgctxt "dash:tasklist|dropdown|placeholder" +msgid "Tasklist Options Panel" +msgstr "Panel de opciones de la lista de tareas" diff --git a/locales/es_419/LC_MESSAGES/test.po b/locales/es_419/LC_MESSAGES/test.po new file mode 100644 index 000000000000..d2e82213575e --- /dev/null +++ b/locales/es_419/LC_MESSAGES/test.po @@ -0,0 +1,86 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:36+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/modules/test/test.py:62 src/modules/test/test.py:145 +msgid "test" +msgstr "prueba" + +#: src/modules/test/test.py:146 +msgid "Test" +msgstr "Prueba" + +#: src/modules/test/test.py:153 +msgid "editor" +msgstr "editor" + +#: src/modules/test/test.py:154 +msgid "Test message editor" +msgstr "Editor de mensajes de prueba" + +#: src/modules/test/test.py:180 +msgid "test_ephemeral" +msgstr "" + +#: src/modules/test/test.py:181 +msgid "Test ephemeral delete and edit" +msgstr "" + +#: src/modules/test/test.py:193 +msgid "colours" +msgstr "colores" + +#: src/modules/test/test.py:194 +msgid "Test Ansi colours" +msgstr "" + +#: src/modules/test/test.py:214 +msgid "fail" +msgstr "" + +#: src/modules/test/test.py:222 +msgid "failui" +msgstr "" + +#: src/modules/test/test.py:229 +msgid "pager" +msgstr "" + +#: src/modules/test/test.py:257 +msgid "pager2" +msgstr "" + +#: src/modules/test/test.py:288 +msgid "prettyusers" +msgstr "" + +#: src/modules/test/test.py:338 +msgid "dmview" +msgstr "" + +#: src/modules/test/test.py:349 +msgid "multiview" +msgstr "" + +#: src/modules/test/test.py:366 +msgid "stats-card" +msgstr "" diff --git a/locales/es_419/LC_MESSAGES/timer-gui.po b/locales/es_419/LC_MESSAGES/timer-gui.po new file mode 100644 index 000000000000..833dbe79220e --- /dev/null +++ b/locales/es_419/LC_MESSAGES/timer-gui.po @@ -0,0 +1,37 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/gui/cards/timer.py:73 +msgctxt "skin:timer|field:date_text" +msgid "Use /now to show what you are working on!" +msgstr "¡Utiliza /now para mostrar en qué estás trabajando!" + +#: src/gui/cards/timer.py:89 +msgctxt "skin:timer|stage:focus|field:stage_text" +msgid "FOCUS" +msgstr "ENFOQUE" + +#: src/gui/cards/timer.py:103 +msgctxt "skin:timer|stage:break|field:stage_text" +msgid "BREAK" +msgstr "DESCANSO" diff --git a/locales/es_419/LC_MESSAGES/topgg.po b/locales/es_419/LC_MESSAGES/topgg.po new file mode 100644 index 000000000000..3ee1d5223078 --- /dev/null +++ b/locales/es_419/LC_MESSAGES/topgg.po @@ -0,0 +1,38 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-10-24 11:51+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/modules/topgg/cog.py:92 +msgctxt "button:vote|label" +msgid "Vote for me!" +msgstr "¡Vota por mi!" + +#: src/modules/topgg/cog.py:119 +#, possible-python-brace-format +msgctxt "embed:voting_thanks|title" +msgid "Thank you for supporting me on Top.gg! {yay}" +msgstr "¡Gracias por apoyarme en Top.gg! {yay}" + +#: src/modules/topgg/cog.py:123 +msgctxt "embed:voting_thanks|desc" +msgid "Thank you for supporting us, enjoy your LionCoins boost!" +msgstr "Gracias por apoyarnos, ¡disfruta de tu aumento de LionCoins!" diff --git a/locales/es_419/LC_MESSAGES/user_config.po b/locales/es_419/LC_MESSAGES/user_config.po new file mode 100644 index 000000000000..1c83f72cc9bc --- /dev/null +++ b/locales/es_419/LC_MESSAGES/user_config.po @@ -0,0 +1,102 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/modules/user_config/cog.py:38 +msgctxt "userset:timezone" +msgid "timezone" +msgstr "zonahoraria" + +#: src/modules/user_config/cog.py:41 +msgctxt "userset:timezone|desc" +msgid "Timezone in which to display statistics." +msgstr "Zona horaria en la que se mostrarán las estadísticas." + +#: src/modules/user_config/cog.py:45 +msgctxt "userset:timezone|long_desc" +msgid "" +"All personal time-related features of StudyLion will use this timezone for " +"you, including personal statistics. Note that leaderboards will still be " +"shown in the server's own timezone." +msgstr "" + +#: src/modules/user_config/cog.py:60 +#, possible-python-brace-format +msgctxt "userset:timezone|response:set" +msgid "Your personal timezone has been set to `{timezone}`." +msgstr "Tu zona horaria personal se ha establecido a `{timezone}`." + +#: src/modules/user_config/cog.py:65 +msgctxt "userset:timezone|response:unset" +msgid "" +"You have unset your timezone. Statistics will be displayed in the server " +"timezone." +msgstr "" + +#: src/modules/user_config/cog.py:81 +msgctxt "cmd:userconfig" +msgid "my" +msgstr "" + +#: src/modules/user_config/cog.py:82 +msgctxt "cmd:userconfig|desc" +msgid "User configuration commands." +msgstr "" + +#: src/modules/user_config/cog.py:89 +msgctxt "cmd:userconfig_timezone" +msgid "timezone" +msgstr "zonahoraria" + +#: src/modules/user_config/cog.py:92 +msgctxt "cmd:userconfig_timezone|desc" +msgid "" +"Set your personal timezone, used for displaying stats and setting reminders." +msgstr "" + +#: src/modules/user_config/cog.py:96 +msgctxt "cmd:userconfig_timezone|param:timezone" +msgid "timezone" +msgstr "zonahoraria" + +#: src/modules/user_config/cog.py:101 +msgctxt "cmd:userconfig_timezone|param:timezone|desc" +msgid "What timezone are you in? Try typing your country or continent." +msgstr "" +"¿En qué zona horaria te encuentras? Prueba escribiendo tu país o continente." + +#: src/modules/user_config/cog.py:117 +#, possible-python-brace-format +msgctxt "cmd:userconfig_timezone|response:set" +msgid "Your timezone is currently set to {timezone}" +msgstr "" + +#: src/modules/user_config/cog.py:121 +msgctxt "cmd:userconfig_timezone|button:reset|label" +msgid "Reset" +msgstr "Restablecer" + +#: src/modules/user_config/cog.py:133 +#, possible-python-brace-format +msgctxt "cmd:userconfig_timezone|response:unset" +msgid "Your timezone is not set. Using the server timezone `{timezone}`." +msgstr "" diff --git a/locales/es_419/LC_MESSAGES/wards.po b/locales/es_419/LC_MESSAGES/wards.po new file mode 100644 index 000000000000..2e2e683e1451 --- /dev/null +++ b/locales/es_419/LC_MESSAGES/wards.po @@ -0,0 +1,95 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/wards.py:99 +msgctxt "ward:sys_admin|failed" +msgid "You must be a bot owner to do this!" +msgstr "¡Debes ser propietario de un bot para poder hacer esto!" + +#: src/wards.py:115 +msgctxt "ward:high_management|failed" +msgid "" +"You must have the `ADMINISTRATOR` permission or the configured `admin_role` " +"to do this!" +msgstr "" +"¡Debes tener el permiso `ADMINISTRATOR` o el rol `admin_role` configurado " +"para hacer esto!" + +#: src/wards.py:131 +msgctxt "ward:low_management|failed" +msgid "" +"You must have the `MANAGE_GUILD` permission or the configured `mod_role` to " +"do this!" +msgstr "" + +#: src/wards.py:143 +msgctxt "ward:moderator|failed" +msgid "" +"You must have the configured moderator role, or `MANAGE_GUILD` permissions " +"to do this." +msgstr "" + +#: src/wards.py:169 +#, possible-python-brace-format +msgctxt "ward:equippable_role|error:bot_managed" +msgid "I cannot manage {role} because it is managed by another bot!" +msgstr "" + +#: src/wards.py:176 +#, possible-python-brace-format +msgctxt "ward:equippable_role|error:integration" +msgid "I cannot manage {role} because it is managed by a server integration." +msgstr "" + +#: src/wards.py:183 +msgctxt "ward:equippable_role|error:default_role" +msgid "I cannot manage the server's default role." +msgstr "" + +#: src/wards.py:190 +msgctxt "ward:equippable_role|error:no_perms" +msgid "I need the `MANAGE_ROLES` permission before I can manage roles!" +msgstr "" + +#: src/wards.py:197 +#, possible-python-brace-format +msgctxt "ward:equippable_role|error:my_top_role" +msgid "I cannot assign or remove {role} because it is above my top role!" +msgstr "" + +#: src/wards.py:204 +#, possible-python-brace-format +msgctxt "ward:equippable_role|error:not_assignable" +msgid "I don't have sufficient permissions to assign or remove {role}." +msgstr "" + +#: src/wards.py:212 +msgctxt "ward:equippable_role|error:actor_perms" +msgid "You need the `MANAGE_ROLES` permission before you can configure roles!" +msgstr "" + +#: src/wards.py:219 +#, possible-python-brace-format +msgctxt "ward:equippable_role|error:actor_top_role" +msgid "You cannot configure {role} because it is above your top role!" +msgstr "" diff --git a/locales/es_419/LC_MESSAGES/weekly-gui.po b/locales/es_419/LC_MESSAGES/weekly-gui.po new file mode 100644 index 000000000000..4ad02bbbac40 --- /dev/null +++ b/locales/es_419/LC_MESSAGES/weekly-gui.po @@ -0,0 +1,101 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Emily, 2024 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-24 14:37+0300\n" +"PO-Revision-Date: 2023-08-28 13:43+0000\n" +"Last-Translator: Emily, 2024\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/leobot/teams/174919/es_419/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_419\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: src/gui/cards/weekly.py:52 +msgctxt "skin:weeklystats|mode:study|title" +msgid "STUDY HOURS" +msgstr "HORAS DE ESTUDIO" + +#: src/gui/cards/weekly.py:56 +msgctxt "skin:weeklystats|mode:voice|title" +msgid "VOICE CHANNEL ACTIVITY" +msgstr "ACTIVIDAD DE CANAL DE VOZ" + +#: src/gui/cards/weekly.py:60 +msgctxt "skin:weeklystats|mode:text|title" +msgid "MESSAGE ACTIVITY" +msgstr "ACTIVIDAD DE MENSAJES" + +#: src/gui/cards/weekly.py:64 +msgctxt "skin::weeklystats|mode:anki|title" +msgid "CARDS REVIEWED" +msgstr "TARJETAS REVISADAS" + +#: src/gui/cards/weekly.py:137 +msgctxt "skin:weeklystats|weekdays" +msgid "M,T,W,T,F,S,S" +msgstr "L,M,X,J,V,S,D" + +#: src/gui/cards/weekly.py:207 +#, possible-python-brace-format +msgctxt "skin:weeklystats|mode:study|summary:this_week" +msgid "THIS WEEK: {amount} HOURS" +msgstr "ESTA SEMANA: {amount} HORAS" + +#: src/gui/cards/weekly.py:211 +#, possible-python-brace-format +msgctxt "skin:weeklystats|mode:voice|summary:this_week" +msgid "THIS WEEK: {amount} HOURS" +msgstr "ESTA SEMANA: {amount} HORAS" + +#: src/gui/cards/weekly.py:215 +#, possible-python-brace-format +msgctxt "skin:weeklystats|mode:text|summary:this_week" +msgid "THIS WEEK: {amount} MESSAGES" +msgstr "ESTA SEMANA: {amount} MENSAJES" + +#: src/gui/cards/weekly.py:219 +#, possible-python-brace-format +msgctxt "skin:weeklystats|mode:text|summary:this_week" +msgid "THIS WEEK: {amount} CARDS" +msgstr "ESTA SEMANA: {amount} TARJETAS" + +#: src/gui/cards/weekly.py:240 +#, possible-python-brace-format +msgctxt "skin:weeklystats|mode:study|summary:last_week" +msgid "LAST WEEK: {amount} HOURS" +msgstr "SEMANA PASADA: {amount} HORAS" + +#: src/gui/cards/weekly.py:244 +#, possible-python-brace-format +msgctxt "skin:weeklystats|mode:voice|summary:last_week" +msgid "LAST WEEK: {amount} HOURS" +msgstr "SEMANA PASADA: {amount} HORAS" + +#: src/gui/cards/weekly.py:248 +#, possible-python-brace-format +msgctxt "skin:weeklystats|mode:text|summary:last_week" +msgid "LAST WEEK: {amount} MESSAGES" +msgstr "SEMANA PASADA: {amount} MENSAJES" + +#: src/gui/cards/weekly.py:252 +#, possible-python-brace-format +msgctxt "skin:weeklystats|mode:text|summary:last_week" +msgid "LAST WEEK: {amount} CARDS" +msgstr "SEMANA PASADA: {amount} TARJETAS" + +#: src/gui/cards/weekly.py:272 +#, possible-python-brace-format +msgctxt "skin:weeklystats|footer" +msgid "Weekly Statistics • As of {day} {month} • {name} {discrim}" +msgstr "Estadísticas Semanales • A partir de {day} {month} • {name} {discrim}"