Groudwork for multilanguage

This commit is contained in:
Runebaas 2017-11-15 01:08:20 +01:00
parent 6cef559601
commit 7584b09d35
No known key found for this signature in database
GPG key ID: 2677AF508D0300D6
4 changed files with 155 additions and 2 deletions

View file

@ -17,12 +17,14 @@ namespace Geekbot.net.Commands
private readonly IDatabase _redis;
private readonly DiscordSocketClient _client;
private readonly IErrorHandler _errorHandler;
private readonly ITranslationHandler _translation;
public Admin(IDatabase redis, DiscordSocketClient client, IErrorHandler errorHandler)
public Admin(IDatabase redis, DiscordSocketClient client, IErrorHandler errorHandler, ITranslationHandler translationHandler)
{
_redis = redis;
_client = client;
_errorHandler = errorHandler;
_translation = translationHandler;
}
[Command("welcome", RunMode = RunMode.Async)]
@ -107,5 +109,28 @@ namespace Geekbot.net.Commands
_errorHandler.HandleCommandException(e, Context, "Modchannel doesn't seem to exist, please set one with `!admin modchannel [channelId]`");
}
}
[Command("setlang", RunMode = RunMode.Async)]
[Remarks(CommandCategories.Admin)]
[Summary("Change the bots language")]
public async Task setLanguage([Summary("language")] string languageRaw)
{
try
{
var language = languageRaw.ToUpper();
var success = _translation.SetLanguage(Context.Guild.Id, language);
if (success)
{
await ReplyAsync(_translation.GetString(Context.Guild.Id, "LanguageChanger", "Confirm"));
return;
}
await ReplyAsync(
$"That doesn't seem to be a supported language\r\nSupported Languages are {string.Join(", ", _translation.GetSupportedLanguages())}");
}
catch (Exception e)
{
_errorHandler.HandleCommandException(e, Context);
}
}
}
}