TgTranslator is a telegram bot that translates messages in groups. Try it for yourself: @grouptranslator_bot
Use it in your project support group, to study language with a tutor, and in many other ways!
This bot has 3 translation modes:
Auto. This mode automatically translates all messages that do not match the language of the main group. In addition, the message should be less than the character limit (specified in appsettins.json -> TgTranslator -> CharLimit), should not be a command (for example: /help or .help for Userbots), and the group should not be in timeout.
Forwards. Works like Auto, but translates only forwarded messages.
Manual. Translates only after replying on message with !translate
or bot username.
Bot has 65 languages supported by Google Translate.
In many group bots you can call menu in group chat. This one works different: the /settings
command works only in private messages. It returns the main menu with Inline buttons which are the list of available settings.
When you select an option, it offers you to choose chat where you send ready command, like @grouptranslator_bot set:mode=auto
.
This may seem a bit complicated, but it creates a lot more flexibility for larger groups. Users won't be interrupted by large message with buttons, and also, you can create prepared configurations for multiple groups.
Menu is higly customizable, so it's not hard to add new options, or even implement it in your own project.
.NET Core — Cross-platform general-purpose development platform.
ASP.NET Core - A framework for
Telegram.Bot — .NET Client for Telegram Bot API.
PostgreSQL — Open Source relational database.
Yandex.Translate — Universal text translation tool that uses machine translation technology developed at Yandex.
Prometheus — Used for event monitoring and alerting.
You need .NET Core SDK 3.1+. Download it here
You also need PostgreSQL to store groups settings. Learn more
git clone https://github.com/Dubzer/TgTranslator.git && cd TgTranslator
dotnet publish -c Release
Bot configuration is located in appsettings.json
TgTranslator
CharLimit
— translation characters limit.
BanTIme
— timeout time when admin mutes bot. Bot will not check the messages language during the timeout. (in minutes)
Telegram
Polling
— defines, is bot getting updates by using polling, or webhooks.
BotToken
— token for Bot API (get in @BotFather)
Yandex
TranslatorToken
— token for Yandex.Translate API (get at https://translate.yandex.com/developers)
ConnectionStrings
TgTranslatorContext
— connection string for bot's Postgres database.
HelpMenu
VideoUrl
— public URL for video that sends on /help
command. Has to be accessible from the web.
Kestrel
Endpoints
— endpoints for using webhooks and metrics.
Prometheus
Login
— Basic Auth login for Prometheus metrics.
Password
— Basic Auth password for Prometheus metrics.
Serilog
Here you can set various serilog settings.
The project is licensed under the MIT license.