Interactions Command Localization (#2395)
* Request headers (#2394) * add support for per-request headers * remove unnecessary usings * Revert "remove unnecessary usings" This reverts commit 8d674fe4faf985b117f143fae3877a1698170ad2. * remove nullable strings from RequestOptions * Add Localization Support to Interaction Service (#2211) * add json and resx localization managers * add utils class for getting command paths * update json regex to make langage code optional * remove IServiceProvider from ILocalizationManager method params * replace the command path method in command map * add localization fields to rest and websocket application command entity implementations * move deconstruct extensions method to extensions folder * add withLocalizations parameter to rest methods * fix build error * add rest conversions to interaction service * add localization to the rest methods * add inline docs * fix implementation bugs * add missing inline docs * inline docs correction (Name/Description Localized properties) * add choice localization * fix conflicts * fix conflicts * add missing command props fields to ToApplicationCommandProps methods * add locale parameter to Get*ApplicationCommandsAsync methods for fetching localized command names/descriptions * Apply suggestions from code review Co-authored-by: Armano den Boef <68127614+Rozen4334@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Armano den Boef <68127614+Rozen4334@users.noreply.github.com> * Update src/Discord.Net.Core/Entities/Guilds/IGuild.cs Co-authored-by: Armano den Boef <68127614+Rozen4334@users.noreply.github.com> * add inline docs to LocalizationTarget * fix upstream merge errors * fix command parsing for context command names with space char * fix command parsing for context command names with space char * fix failed to generate buket id * fix get guild commands endpoint * update rexs localization manager to use single-file pattern * Upstream Merge Localization Branch (#2434) * fix ci/cd error (#2428) * Fix role icon & emoji assignment. (#2416) * Fix IGuild.GetBansAsync() (#2424) fix the problem of not being able to get more than 1000 bans * [DOCS] Add a note about `DontAutoRegisterAttribute` (#2430) * add a note about `DontAutoRegisterAttribute` * Remove "to to" and add punctuation Co-authored-by: MrCakeSlayer <13650699+MrCakeSlayer@users.noreply.github.com> * fix: Missing Fact attribute in ColorTests (#2425) * feat: Embed comparison (#2347) * Fix broken code snippet in dependency injection docs (#2420) * Fixed markdown formatting to show code snippet * Fixed constructor injection code snippet pointer * Added support for lottie stickers (#2359) Co-authored-by: Armano den Boef <68127614+Rozen4334@users.noreply.github.com> Co-authored-by: BokuNoPasya <49203428+1NieR@users.noreply.github.com> Co-authored-by: Misha133 <61027276+Misha-133@users.noreply.github.com> Co-authored-by: MrCakeSlayer <13650699+MrCakeSlayer@users.noreply.github.com> Co-authored-by: Ge <gehongyan1996@126.com> Co-authored-by: Charlie U <52503242+cpurules@users.noreply.github.com> Co-authored-by: Kuba_Z2 <77853483+KubaZ2@users.noreply.github.com> * remove unnecassary fields from ResxLocalizationManager * update int framework guides * remove space character tokenization from ResxLocalizationManager Co-authored-by: Armano den Boef <68127614+Rozen4334@users.noreply.github.com> Co-authored-by: BokuNoPasya <49203428+1NieR@users.noreply.github.com> Co-authored-by: Misha133 <61027276+Misha-133@users.noreply.github.com> Co-authored-by: MrCakeSlayer <13650699+MrCakeSlayer@users.noreply.github.com> Co-authored-by: Ge <gehongyan1996@126.com> Co-authored-by: Charlie U <52503242+cpurules@users.noreply.github.com> Co-authored-by: Kuba_Z2 <77853483+KubaZ2@users.noreply.github.com>
This commit is contained in:
@@ -3,6 +3,7 @@ using Discord.API.Rest;
|
||||
using Discord.Net;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
@@ -101,11 +102,12 @@ namespace Discord.Rest
|
||||
DefaultPermission = arg.IsDefaultPermission.IsSpecified
|
||||
? arg.IsDefaultPermission.Value
|
||||
: Optional<bool>.Unspecified,
|
||||
NameLocalizations = arg.NameLocalizations?.ToDictionary(),
|
||||
DescriptionLocalizations = arg.DescriptionLocalizations?.ToDictionary(),
|
||||
|
||||
// TODO: better conversion to nullable optionals
|
||||
DefaultMemberPermission = arg.DefaultMemberPermissions.ToNullable(),
|
||||
DmPermission = arg.IsDMEnabled.ToNullable()
|
||||
|
||||
};
|
||||
|
||||
if (arg is SlashCommandProperties slashProps)
|
||||
@@ -140,12 +142,16 @@ namespace Discord.Rest
|
||||
DefaultPermission = arg.IsDefaultPermission.IsSpecified
|
||||
? arg.IsDefaultPermission.Value
|
||||
: Optional<bool>.Unspecified,
|
||||
NameLocalizations = arg.NameLocalizations?.ToDictionary(),
|
||||
DescriptionLocalizations = arg.DescriptionLocalizations?.ToDictionary(),
|
||||
|
||||
// TODO: better conversion to nullable optionals
|
||||
DefaultMemberPermission = arg.DefaultMemberPermissions.ToNullable(),
|
||||
DmPermission = arg.IsDMEnabled.ToNullable()
|
||||
};
|
||||
|
||||
Console.WriteLine("Locales:" + string.Join(",", arg.NameLocalizations.Keys));
|
||||
|
||||
if (arg is SlashCommandProperties slashProps)
|
||||
{
|
||||
Preconditions.NotNullOrEmpty(slashProps.Description, nameof(slashProps.Description));
|
||||
@@ -181,6 +187,8 @@ namespace Discord.Rest
|
||||
DefaultPermission = arg.IsDefaultPermission.IsSpecified
|
||||
? arg.IsDefaultPermission.Value
|
||||
: Optional<bool>.Unspecified,
|
||||
NameLocalizations = arg.NameLocalizations?.ToDictionary(),
|
||||
DescriptionLocalizations = arg.DescriptionLocalizations?.ToDictionary(),
|
||||
|
||||
// TODO: better conversion to nullable optionals
|
||||
DefaultMemberPermission = arg.DefaultMemberPermissions.ToNullable(),
|
||||
@@ -244,7 +252,9 @@ namespace Discord.Rest
|
||||
Name = args.Name,
|
||||
DefaultPermission = args.IsDefaultPermission.IsSpecified
|
||||
? args.IsDefaultPermission.Value
|
||||
: Optional<bool>.Unspecified
|
||||
: Optional<bool>.Unspecified,
|
||||
NameLocalizations = args.NameLocalizations?.ToDictionary(),
|
||||
DescriptionLocalizations = args.DescriptionLocalizations?.ToDictionary()
|
||||
};
|
||||
|
||||
if (args is SlashCommandProperties slashProps)
|
||||
@@ -299,6 +309,8 @@ namespace Discord.Rest
|
||||
DefaultPermission = arg.IsDefaultPermission.IsSpecified
|
||||
? arg.IsDefaultPermission.Value
|
||||
: Optional<bool>.Unspecified,
|
||||
NameLocalizations = arg.NameLocalizations?.ToDictionary(),
|
||||
DescriptionLocalizations = arg.DescriptionLocalizations?.ToDictionary(),
|
||||
|
||||
// TODO: better conversion to nullable optionals
|
||||
DefaultMemberPermission = arg.DefaultMemberPermissions.ToNullable(),
|
||||
@@ -335,7 +347,9 @@ namespace Discord.Rest
|
||||
Name = arg.Name,
|
||||
DefaultPermission = arg.IsDefaultPermission.IsSpecified
|
||||
? arg.IsDefaultPermission.Value
|
||||
: Optional<bool>.Unspecified
|
||||
: Optional<bool>.Unspecified,
|
||||
NameLocalizations = arg.NameLocalizations?.ToDictionary(),
|
||||
DescriptionLocalizations = arg.DescriptionLocalizations?.ToDictionary()
|
||||
};
|
||||
|
||||
if (arg is SlashCommandProperties slashProps)
|
||||
|
||||
Reference in New Issue
Block a user