6.6.0 • Published 7 years ago
telegraf-i18n v6.6.0
i18n for Telegraf
Internationalization middleware for Telegraf.
Installation
$ npm install telegraf-i18nExample
const Telegraf = require('telegraf')
const TelegrafI18n = require('telegraf-i18n')
/*
yaml and json are ok
Example directory structure:
├── locales
│ ├── en.yaml
│ ├── en-US.yaml
│ ├── it.json
│ └── ru.yaml
└── bot.js
*/
const i18n = new TelegrafI18n({
defaultLanguage: 'en',
allowMissing: false, // Default true
directory: path.resolve(__dirname, 'locales')
})
// Also you can provide i18n data directly
i18n.loadLocale('en', {greeting: 'Hello!'})
const app = new Telegraf(process.env.BOT_TOKEN)
// telegraf-i18n can save current locale setting into session.
const i18n = new TelegrafI18n({
useSession: true,
defaultLanguageOnMissing: true, // implies allowMissing = true
directory: path.resolve(__dirname, 'locales')
})
app.use(Telegraf.memorySession())
app.use(i18n.middleware())
app.hears('/start', (ctx) => {
const message = ctx.i18n.t('greeting', {
username: ctx.from.username
})
return ctx.reply(message)
})
app.startPolling()See full example.
User context
Telegraf user context props and functions:
app.use((ctx) => {
ctx.i18n.locale() // Get current locale
ctx.i18n.locale(code) // Set current locale
ctx.i18n.t(resourceKey, [context]) // Get resource value (context will be used by template engine)
});Helpers
const { match, reply } = require('telegraf-i18n')
// In case you use custom keyboard with localized labels.
bot.hears(match('keyboard.foo'), (ctx) => ...)
//Reply helper
bot.command('help', reply('help'))6.6.0
7 years ago
6.5.0
7 years ago
6.4.0
7 years ago
6.3.0
8 years ago
6.2.0
8 years ago
6.1.1
8 years ago
6.1.0
8 years ago
6.0.4
9 years ago
6.0.3
9 years ago
6.0.2
9 years ago
6.0.1
9 years ago
6.0.0
9 years ago
5.0.2
9 years ago
5.0.1
9 years ago
5.0.0
9 years ago
4.2.5
9 years ago
4.2.4
9 years ago
4.2.3
9 years ago
4.2.2
9 years ago
4.2.1
9 years ago
4.2.0
9 years ago
4.1.0
9 years ago
4.0.0
9 years ago
3.3.0
9 years ago
3.2.0
10 years ago
3.1.0
10 years ago
3.0.0
10 years ago
2.1.0
10 years ago
2.0.0
10 years ago
1.1.1
10 years ago
1.1.0
10 years ago
1.0.0
10 years ago