i18n = new TelegrafI18n({
directory: path.resolve(__dirname, 'languages'),
defaultLanguage: 'en',
useSession: true,
});
И так обрабатываю смену языка:
// Обработка команды /start
app.start(({ i18n, replyWithHTML }) => replyWithHTML(
i18n.t('greeting'),
Extra.HTML().markup(() => Markup.inlineKeyboard([
Markup.callbackButton('English', 'english'),
Markup.callbackButton('Русский', 'russian'),
])),
));
// Установка языка
app.on('callback_query', async (ctx) => {
ctx.answerCbQuery();
if (ctx.update.callback_query.data == 'english') {
ctx.i18n.locale('en');
return ctx.replyWithHTML(`${ctx.i18n.t('greeting')}`, keyboards.main.main1);
} if (ctx.update.callback_query.data == 'russian') {
ctx.i18n.locale('ru');
return ctx.replyWithHTML(`${ctx.i18n.t('greeting')}`, keyboards.main.main);
}
});
1. При старте не устанавливается англ
2. Нужная клавиатура не открывается при старте
В чём может быть проблема?
gist.github.com
А мидлварь i18n подключил то?
Обсуждают сегодня