diff --git a/locale/Messages.tt-ru.resx b/locale/Messages.tt-ru.resx
new file mode 100644
index 0000000..4e92a44
--- /dev/null
+++ b/locale/Messages.tt-ru.resx
@@ -0,0 +1,684 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ я родился!
+
+
+ сообщение {0} вырезано:
+
+
+ сообщение {0} переделано:
+
+
+ {0}, добро пожаловать на сервер {1}
+
+
+ вииимо!
+
+
+ вуууми!
+
+
+ нгьес!
+
+
+ вы были забанены
+
+
+ время бана закончиловсь
+
+
+ вы были кикнуты
+
+
+ мс
+
+
+ *тут ничего нет*
+
+
+ нъет
+
+
+ язык
+
+
+ префикс
+
+
+ удалять звание при муте
+
+
+ разглашать о том что пришел новый шизоид
+
+
+ звание замученного
+
+
+ такого языка нету...
+
+
+ да
+
+
+ нъет
+
+
+ шизик не забанен
+
+
+ шизоид не замучен!
+
+
+ здравствуйте (типо настройка)
+
+
+ {0} забанен
+
+
+ получать инфу о старте бота
+
+
+ криво настроил прикол, давай по новой
+
+
+ ты шо, мутить больше чем на 28 дней таймаут не разрешает, вот настроишь роль мута, тогда поговорим
+
+
+ я не могу замутить ботов, сделай что нибудь
+
+
+ роль для уведомлений о создании движухи
+
+
+ канал для уведомлений о движухах
+
+
+ получатели уведомлений о начале движух
+
+
+ движуха "{0}" начинается
+
+
+ движуха "{0}" отменена!
+
+
+ движуха "{0}" завершена!
+
+
+ вырезано {0} забавных сообщений
+
+
+ ты все сломал! значение прикола `{0}` и так {1}
+
+
+ нъет
+
+
+ укажи самого шизика
+
+
+ бан
+
+
+ тебе нельзя иметь власть над сообщениями шизоидов
+
+
+ кик шизиков нельзя
+
+
+ тебе нельзя мутить шизоидов
+
+
+ тебе нельзя раззамучивать шизоидов
+
+
+ тебе нельзя редактировать дурку
+
+
+ я не могу ваще никого банить чел.
+
+
+ я не могу исправлять орфографический кринж участников, сделай что нибудь.
+
+
+ я не могу ваще никого кикать чел.
+
+
+ я не могу контроллировать за всеми ними, сделай что нибудь.
+
+
+ я не могу этому серверу хоть че либо нибудь изменить, сделай что нибудь.
+
+
+ ээбля френдли фаер огонь по своим
+
+
+ бан админу нельзя
+
+
+ бан этому шизику нельзя
+
+
+ самобан нельзя
+
+
+ я не могу его забанить...
+
+
+ кик админу нельзя
+
+
+ самокик нельзя
+
+
+ ээбля френдли фаер огонь по своим
+
+
+ я не могу его кикнуть...
+
+
+ кик этому шизику нельзя
+
+
+ мут админу нельзя
+
+
+ самомут нельзя
+
+
+ ээбля френдли фаер огонь по своим
+
+
+ я не могу его замутить...
+
+
+ мут этому шизику нельзя
+
+
+ сильно
+
+
+ ты замучен.
+
+
+ ...
+
+
+ тебе нельзя раззамучивать
+
+
+ я не могу его раззамутить...
+
+
+ движуха "{0}" начнется {1}!
+
+
+ заранее пнуть в минутах до начала движухи
+
+
+ у нас такого шизоида нету, проверь, валиден ли ID уважаемого (я забываю о шизоидах если они ливнули минимум месяц назад)
+
+
+ дефолтное звание
+
+
+ канал для секретных уведомлений
+
+
+ канал для не секретных уведомлений
+
+
+ вернуть звания при переподключении в дурку
+
+
+ автоматом стартить движухи
+
+
+ ответственный
+
+
+ {0} создает новое событие:
+
+
+ движуха произойдет {0} в канале {1}
+
+
+ движуха будет происходить с {0} до {1} в {2}
+
+
+ открыть ивент
+
+
+ все это длилось `{0}`
+
+
+ движуха происходит в {0}
+
+
+ движуха происходит в {0} до {1}
+
+
+ этот шизоид уже лежит в бане
+
+
+ {0} раззабанен
+
+
+ {0} в муте
+
+
+ {0} в размуте
+
+
+ этого шизоида никто не мутил.
+
+
+ у нас такого шизоида нету...
+
+
+ {0} вышел с посторонней помощью
+
+
+ причина: {0}
+
+
+ до: {0}
+
+
+ этот шизоид УЖЕ замучился
+
+
+ от {0}
+
+
+ девелоперы:
+
+
+ репа Octobot (тык)
+
+
+ немного об {0}
+
+
+ скучный девелопер + дизайнер создавший Octobot's Wiki
+
+
+ ВАЖНЫЙ соучастник кодинг-стримов @Octol1ttle
+
+
+ САМЫЙ ВАЖНЫЙ чел написавший кода больше всех (99.99%)
+
+
+ напоминалка для {0} скрафченА
+
+
+ напоминалка для {0}
+
+
+ ты хотел чтоб я напомнил тебе {0}
+
+
+ приколы Octobot
+
+
+ прикол редактирован
+
+
+ прикол сдох
+
+
+ стало
+
+
+ переобувать шизоидов пытающихся поднять себя в табе
+
+
+ это страница
+
+
+ если я был бы html, я бы сказал 404
+
+
+ ну а если быть точнее, тут всего {0} страниц(-ы)
+
+
+ следующее
+
+
+ предыдущее
+
+
+ напоминалки {0}
+
+
+ у тебя нет напоминалки на этом номере!
+
+
+ напоминалка уничтожена
+
+
+ ты еще не крафтил напоминалки
+
+
+ {0} откачен к заводским
+
+
+ откатываемся к заводским...
+
+
+ чекнуть сообщение: {0}
+
+
+ чекнуть канал: {0}
+
+
+ номер в списке: {0}
+
+
+ время отправки: {0}
+
+
+ че там в напоминалке: {0}
+
+
+ дисплейнейм
+
+
+ деанон {0}
+
+
+ замучен
+
+
+ юзер Discord со времен
+
+
+ забанен
+
+
+ приколы полученные по заслугам
+
+
+ пермабан
+
+
+ вышел из сервера
+
+
+ замучен таймаутом
+
+
+ замучен ролькой
+
+
+ участник сервера со времен
+
+
+ сервернейм
+
+
+ рольки
+
+
+ бустит сервер со времен
+
+
+ рандомное число {0}:
+
+
+ ну чувак...
+
+
+ наибольшее: {0}
+
+
+ наименьшее: {0}
+
+
+ (дефолт)
+
+
+ таймштамп для {0}:
+
+
+ офсет: {0}
+
+
+ дескрипшон гильдии
+
+
+ создался
+
+
+ админ гильдии
+
+
+ буст гильдии
+
+
+ уровень
+
+
+ кол-во бустов
+
+
+ алло а чё мне удалять-то
+
+
+ вырезано {0} забавных сообщений от {1}
+
+
+ произошёл тотальный разнос в гилддате.
+
+
+ возможно всё съедет с крыши, но знай, что я больше ничё не сохраню.
+
+
+ произошёл тотальный разнос в команде, удачи.
+
+
+ если ты это читаешь второй раз за сегодня, пиши разрабам
+
+
+ зарепортить баг
+
+
+ ну, мы потеряли {0}
+
+
+ до свидания (типо настройка)
+
+
+ ты там правильно напиши таймспан
+
+
+ кикнут
+
+
+ напоминалка подправлена
+
+
+ абсолютли
+
+
+ заявлено
+
+
+ ваще не сомневайся
+
+
+ 100% да
+
+
+ будь в этом уверен
+
+
+ я считаю что да
+
+
+ ну вполне вероятно
+
+
+ ну выглядит нормально
+
+
+ мне сказали ок
+
+
+ мгм
+
+
+ ну-ка попробуй снова
+
+
+ давай позже
+
+
+ щас пока не скажу
+
+
+ я не могу сейчас предсказать
+
+
+ ну сконцентрируйся и давай еще раз
+
+
+ даже не думай
+
+
+ мое завление это нет
+
+
+ я тут посчитал, короче нет
+
+
+ выглядит такое себе
+
+
+ чот сомневаюсь
+
+
+ правильно пишут так: `1h30m`
+
+
+ {0}
+
+
+ канал куда говорить здравствуйте
+
+
+ вот иди сам и почини что сломал
+
+
+ вики Octobot (жмак)
+
+
+ звание админа
+
+
diff --git a/src/Commands/AboutCommandGroup.cs b/src/Commands/AboutCommandGroup.cs
index b8c6d0f..027e7f8 100644
--- a/src/Commands/AboutCommandGroup.cs
+++ b/src/Commands/AboutCommandGroup.cs
@@ -100,21 +100,21 @@ public class AboutCommandGroup : CommandGroup
.WithSmallTitle(string.Format(Messages.AboutBot, bot.Username), bot)
.WithDescription(builder.ToString())
.WithColour(ColorsList.Cyan)
- .WithImageUrl("https://raw.githubusercontent.com/TeamOctolings/Octobot/master/docs/octobot-banner.png")
+ .WithImageUrl("https://i.ibb.co/fS6wZhh/octobot-banner.png")
.WithFooter(string.Format(Messages.Version, BuildInfo.Version))
.Build();
var repositoryButton = new ButtonComponent(
ButtonComponentStyle.Link,
Messages.ButtonOpenRepository,
- new PartialEmoji(Name: "\ud83c\udf10"), // 'GLOBE WITH MERIDIANS' (U+1F310)
+ new PartialEmoji(Name: "🌐"),
URL: BuildInfo.RepositoryUrl
);
var wikiButton = new ButtonComponent(
ButtonComponentStyle.Link,
Messages.ButtonOpenWiki,
- new PartialEmoji(Name: "\ud83d\udcd6"), // 'OPEN BOOK' (U+1F4D6)
+ new PartialEmoji(Name: "📖"),
URL: BuildInfo.WikiUrl
);
@@ -123,7 +123,7 @@ public class AboutCommandGroup : CommandGroup
BuildInfo.IsDirty
? Messages.ButtonDirty
: Messages.ButtonReportIssue,
- new PartialEmoji(Name: "\u26a0\ufe0f"), // 'WARNING SIGN' (U+26A0)
+ new PartialEmoji(Name: "⚠️"),
URL: BuildInfo.IssuesUrl,
IsDisabled: BuildInfo.IsDirty
);
diff --git a/src/Commands/Events/ErrorLoggingPostExecutionEvent.cs b/src/Commands/Events/ErrorLoggingPostExecutionEvent.cs
index 551c2d0..5fa2ea8 100644
--- a/src/Commands/Events/ErrorLoggingPostExecutionEvent.cs
+++ b/src/Commands/Events/ErrorLoggingPostExecutionEvent.cs
@@ -73,7 +73,7 @@ public class ErrorLoggingPostExecutionEvent : IPostExecutionEvent
BuildInfo.IsDirty
? Messages.ButtonDirty
: Messages.ButtonReportIssue,
- new PartialEmoji(Name: "\u26a0\ufe0f"), // 'WARNING SIGN' (U+26A0)
+ new PartialEmoji(Name: "⚠️"),
URL: BuildInfo.IssuesUrl,
IsDisabled: BuildInfo.IsDirty
);
diff --git a/src/Data/Options/LanguageOption.cs b/src/Data/Options/LanguageOption.cs
index 22f98df..464c61b 100644
--- a/src/Data/Options/LanguageOption.cs
+++ b/src/Data/Options/LanguageOption.cs
@@ -11,7 +11,8 @@ public sealed class LanguageOption : Option
private static readonly Dictionary CultureInfoCache = new()
{
{ "en", new CultureInfo("en-US") },
- { "ru", new CultureInfo("ru-RU") }
+ { "ru", new CultureInfo("ru-RU") },
+ { "mctaylors-ru", new CultureInfo("tt-RU") }
};
public LanguageOption(string name, string defaultValue) : base(name, CultureInfoCache[defaultValue]) { }
diff --git a/src/Responders/GuildLoadedResponder.cs b/src/Responders/GuildLoadedResponder.cs
index 55e9673..b03fd3f 100644
--- a/src/Responders/GuildLoadedResponder.cs
+++ b/src/Responders/GuildLoadedResponder.cs
@@ -114,7 +114,7 @@ public class GuildLoadedResponder : IResponder
BuildInfo.IsDirty
? Messages.ButtonDirty
: Messages.ButtonReportIssue,
- new PartialEmoji(Name: "\u26a0\ufe0f"), // 'WARNING SIGN' (U+26A0)
+ new PartialEmoji(Name: "⚠️"),
URL: BuildInfo.IssuesUrl,
IsDisabled: BuildInfo.IsDirty
);
diff --git a/src/Services/GuildDataService.cs b/src/Services/GuildDataService.cs
index e503d22..c9458a0 100644
--- a/src/Services/GuildDataService.cs
+++ b/src/Services/GuildDataService.cs
@@ -78,7 +78,7 @@ public sealed class GuildDataService : BackgroundService
var settingsPath = $"{path}/Settings.json";
var scheduledEventsPath = $"{path}/ScheduledEvents.json";
- MigrateDataDirectory(guildId, path);
+ MigrateGuildData(guildId, path);
Directory.CreateDirectory(path);
@@ -106,11 +106,6 @@ public sealed class GuildDataService : BackgroundService
dataLoadFailed = true;
}
- if (jsonSettings is not null)
- {
- FixJsonSettings(jsonSettings);
- }
-
await using var eventsStream = File.OpenRead(scheduledEventsPath);
Dictionary? events = null;
try
@@ -160,7 +155,7 @@ public sealed class GuildDataService : BackgroundService
return finalData;
}
- private void MigrateDataDirectory(Snowflake guildId, string newPath)
+ private void MigrateGuildData(Snowflake guildId, string newPath)
{
var oldPath = $"{guildId}";
@@ -174,15 +169,6 @@ public sealed class GuildDataService : BackgroundService
}
}
- private static void FixJsonSettings(JsonNode settings)
- {
- var language = settings[GuildSettings.Language.Name]?.GetValue();
- if (language is "mctaylors-ru")
- {
- settings[GuildSettings.Language.Name] = "ru";
- }
- }
-
public async Task GetSettings(Snowflake guildId, CancellationToken ct = default)
{
return (await GetData(guildId, ct)).Settings;
diff --git a/src/Services/Update/ScheduledEventUpdateService.cs b/src/Services/Update/ScheduledEventUpdateService.cs
index cb87779..8168fc1 100644
--- a/src/Services/Update/ScheduledEventUpdateService.cs
+++ b/src/Services/Update/ScheduledEventUpdateService.cs
@@ -223,7 +223,7 @@ public sealed class ScheduledEventUpdateService : BackgroundService
var button = new ButtonComponent(
ButtonComponentStyle.Link,
Messages.ButtonOpenEventInfo,
- new PartialEmoji(Name: "\ud83d\udccb"), // 'CLIPBOARD' (U+1F4CB)
+ new PartialEmoji(Name: "📋"),
URL: $"https://discord.com/events/{scheduledEvent.GuildID}/{scheduledEvent.ID}"
);