diff --git a/src/Extensions/PaginatorExtensions.cs b/src/Extensions/PaginatorExtensions.cs index cebea30..8d96b07 100644 --- a/src/Extensions/PaginatorExtensions.cs +++ b/src/Extensions/PaginatorExtensions.cs @@ -2,6 +2,7 @@ using System.Linq; using Discord; using Fergun.Configuration; +using Fergun.Interactive; using Fergun.Interactive.Pagination; using Microsoft.Extensions.Localization; @@ -61,6 +62,7 @@ public static TBuilder WithLocalizedPrompts(this Paginator _ => throw new ArgumentException(localizer["UnknownPaginatorBuilderType"], nameof(builder)) }; + builder.WithRestrictedPageFactory(users => new PageBuilder().WithDescription(localizer["RestrictedPaginatorInputMessage", users.First().Mention]).WithColor(Color.Orange).Build()); builder.WithJumpInputPrompt(localizer["JumpInputPrompt"]); builder.WithJumpInputTextLabel(localizer["JumpInputTextLabel", 1, pageCount]); builder.WithInvalidJumpInputMessage(localizer["InvalidJumpInput", 1, pageCount]); diff --git a/src/Extensions/SelectionExtensions.cs b/src/Extensions/SelectionExtensions.cs new file mode 100644 index 0000000..df2336b --- /dev/null +++ b/src/Extensions/SelectionExtensions.cs @@ -0,0 +1,28 @@ +using Discord; +using Fergun.Interactive; +using Fergun.Interactive.Selection; +using Microsoft.Extensions.Localization; +using System.Linq; + +namespace Fergun.Extensions; + +public static class SelectionExtensions +{ + /// + /// Sets the localized prompts. + /// + /// The type of the built selection. + /// The type of the options. + /// The type of this builder. + /// The selection builder. + /// The localizer. + /// This builder. + public static TBuilder WithLocalizedPrompts(this BaseSelectionBuilder builder, IStringLocalizer localizer) + where TSelection : BaseSelection + where TBuilder : BaseSelectionBuilder + { + builder.WithRestrictedPageFactory(users => new PageBuilder().WithDescription(localizer["RestrictedSelectionInputMessage", users.First().Mention]).WithColor(Color.Orange).Build()); + + return (TBuilder)builder; + } +} \ No newline at end of file diff --git a/src/Modules/ImageModule.cs b/src/Modules/ImageModule.cs index f31651b..0359361 100644 --- a/src/Modules/ImageModule.cs +++ b/src/Modules/ImageModule.cs @@ -184,14 +184,13 @@ public async Task ReverseAsync(IMessage message) var selection = new SelectionBuilder() .AddUser(Context.User) .WithOptions(Enum.GetValues()) + .WithActionOnTimeout(ActionOnStop.DisableInput) .WithSelectionPage(page) + .WithLocalizedPrompts(_localizer) .Build(); var result = await _interactive.SendSelectionAsync(selection, Context.Interaction, TimeSpan.FromMinutes(1), ephemeral: true); - // Attempt to disable the components - _ = Context.Interaction.ModifyOriginalResponseAsync(x => x.Components = selection.GetOrAddComponents(true).Build()); - if (result.IsSuccess) { return await ReverseAsync(url, result.Value, false, result.StopInteraction!, Context.Interaction, true); diff --git a/src/Modules/OcrModule.cs b/src/Modules/OcrModule.cs index 672fea5..e90b8a6 100644 --- a/src/Modules/OcrModule.cs +++ b/src/Modules/OcrModule.cs @@ -82,6 +82,7 @@ public async Task OcrAsync(IMessage message) .WithOptions(Enum.GetValues()) .WithActionOnTimeout(ActionOnStop.DisableInput) .WithSelectionPage(page) + .WithLocalizedPrompts(_localizer) .Build(); var result = await _interactive.SendSelectionAsync(selection, Context.Interaction, TimeSpan.FromMinutes(1), ephemeral: true); diff --git a/src/Modules/UtilityModule.cs b/src/Modules/UtilityModule.cs index 9b7a81a..23964cc 100644 --- a/src/Modules/UtilityModule.cs +++ b/src/Modules/UtilityModule.cs @@ -426,6 +426,7 @@ public async Task HelpAsync() .WithInputType(InputType.SelectMenus) .WithSelectionPage(page) .WithActionOnTimeout(ActionOnStop.DisableInput) + .WithLocalizedPrompts(_localizer) .Build(); await _interactive.SendSelectionAsync(menu, Context.Interaction, _fergunOptions.SelectionTimeout); diff --git a/src/Resources/Modules.OtherModule.es.resx b/src/Resources/Modules.OtherModule.es.resx index baa56cf..3062ee6 100644 --- a/src/Resources/Modules.OtherModule.es.resx +++ b/src/Resources/Modules.OtherModule.es.resx @@ -255,7 +255,4 @@ letra-spotify - - Selecciona una categoría - \ No newline at end of file diff --git a/src/Resources/Modules.OtherModule.resx b/src/Resources/Modules.OtherModule.resx index 604ce40..a607278 100644 --- a/src/Resources/Modules.OtherModule.resx +++ b/src/Resources/Modules.OtherModule.resx @@ -216,7 +216,4 @@ ℹ️ Use {0} to easily get the lyrics of the song you're currently listening to. - - Select a category - \ No newline at end of file diff --git a/src/Resources/Modules.UtilityModule.es.resx b/src/Resources/Modules.UtilityModule.es.resx index 42351be..c26c429 100644 --- a/src/Resources/Modules.UtilityModule.es.resx +++ b/src/Resources/Modules.UtilityModule.es.resx @@ -117,15 +117,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Fergun es un bot de utilidad con muchos comandos útiles y poderosos como traducción, búsqueda de imágenes, búsqueda inversa de imágenes, OCR, TTS y más. - - - Cadena de Idiomas - - - El número de cadenas debe estar entre {0} y {1} (inclusivo). - Clientes Activos @@ -135,29 +126,59 @@ Mejorando desde + + Selecciona una categoría para obtener información acerca de sus comandos. + + + El número de cadenas debe estar entre {0} y {1} (inclusivo). + + + Comandos + Creado En - - Es Bot + + Predeterminado - - Nombre + + Donar - - Fecha de ingreso al servidor + + Fergun es un bot de utilidad con muchos comandos útiles y poderosos como traducción, búsqueda de imágenes, búsqueda inversa de imágenes, OCR, TTS y más. - - Información de usuario + + Si tiene alguna pregunta sobre el bot o tiene alguna sugerencia, no dude en unirse al servidor de soporte. - - Predeterminado + + Ayuda de Fergun Global - - Servidor + + ID + + + Comandos de búsqueda de imágenes + + + Comandos que buscan y muestran imágenes de varias fuentes. También contiene comandos de búsqueda inversa de imágenes. + + + Es Bot + + + Cadena de Idiomas + + + Enlaces + + + Nombre + + + Apodo {0} no tiene un avatar global (principal). @@ -165,12 +186,72 @@ {0} no tiene un avatar de servidor. - - Si tiene alguna pregunta sobre el bot o tiene alguna sugerencia, no dude en unirse al servidor de soporte. + + Comandos de OCR + + + Comandos que extraen texto de imágenes. Los comandos también contienen funcionalidad de TTS y traducción. + + + Otros comandos + + + Comandos que no se sitúan bien en otros módulos. + + + Servidor + + + Fecha de ingreso al servidor Soporte + + Comandos de TTS + + + Contiene comandos que convierten texto a voz. + + + No se pudo obtener el artículo. + + + Comandos de Urban Dictionary + + + Comandos que buscan y muestran significados de Urban Dictionary. + + + Información de usuario + + + Comandos de utilidad + + + Comandos generales de utilidad. + + + Votar + + + Búsqueda de Wikipedia + + + No se encontraron resultados. Quisiste decir...{0} + + + No se pudo obtener los resultados. Código de estado: {0}. Mensaje de error: {1} + + + Wolfram|Alpha no entiende su consulta. + + + Resultados de WolframAlpha | Página {0} de {1} + + + Resultados de Wolfram|Alpha + Muesta el avatar de un usuario. @@ -312,12 +393,6 @@ Traducir Texto - - No se pudo obtener los resultados. Código de estado: {0}. Mensaje de error: {1} - - - No se encontraron resultados. Quisiste decir...{0} - Pregunta a Wolfram|Alpha sobre algo. @@ -330,21 +405,6 @@ wolfram - - Resultados de WolframAlpha | Página {0} de {1} - - - Wolfram|Alpha no entiende su consulta. - - - Resultados de Wolfram|Alpha - - - No se pudo obtener el artículo. - - - Búsqueda de Wikipedia - Obtiene las definiciones de una palabra de Dictionary.com (sólo en Inglés). @@ -357,66 +417,6 @@ palabra - - ID - - - Apodo - - - Comandos de búsqueda de imágenes - - - Comandos que buscan y muestran imágenes de varias fuentes. También contiene comandos de búsqueda inversa de imágenes. - - - Comandos de OCR - - - Comandos que extraen texto de imágenes. Los comandos también contienen funcionalidad de TTS y traducción. - - - Otros comandos - - - Comandos que no se sitúan bien en otros módulos. - - - Comandos de TTS - - - Contiene comandos que convierten texto a voz. - - - Comandos de Urban Dictionary - - - Comandos que buscan y muestran significados de Urban Dictionary. - - - Comandos de utilidad - - - Comandos generales de utilidad. - - - Selecciona una categoría para obtener información acerca de sus comandos. - - - Comandos - - - Donar - - - Ayuda de Fergun - - - Enlaces - - - Votar - Avatar predeterminado @@ -426,4 +426,7 @@ Avatar de servidor + + Selecciona una categoría + \ No newline at end of file diff --git a/src/Resources/Modules.UtilityModule.resx b/src/Resources/Modules.UtilityModule.resx index f4c406e..92d5b44 100644 --- a/src/Resources/Modules.UtilityModule.resx +++ b/src/Resources/Modules.UtilityModule.resx @@ -252,4 +252,7 @@ Wolfram|Alpha Results + + Select a category + \ No newline at end of file diff --git a/src/Resources/SharedResource.es.resx b/src/Resources/SharedResource.es.resx index ff22dae..0707da4 100644 --- a/src/Resources/SharedResource.es.resx +++ b/src/Resources/SharedResource.es.resx @@ -231,4 +231,10 @@ + + 🚫 Sólo {0} puede interactuar con este paginador. + + + 🚫 Sólo {0} puede interactuar con esta selección. + \ No newline at end of file diff --git a/src/Resources/SharedResource.resx b/src/Resources/SharedResource.resx index 12757f3..23a4dc2 100644 --- a/src/Resources/SharedResource.resx +++ b/src/Resources/SharedResource.resx @@ -231,4 +231,10 @@ Yes + + 🚫 Only {0} can interact with this paginator. + + + 🚫 Only {0} can interact with this selection. + \ No newline at end of file