So, after a while of writing a few Telegram bots, I realized that multiple-language support is always appreciated if the public doesn't speak the original language. To work around this, I got inspired by the Laravel approach, a big associative array.

The code is published at https://github.com/daniel-lucio/multilingual-support after you download you have to create the language files, for example, es.php, en.php, fr.php and so on. The following example is just for the /start command utilizing the Longman PHP library.

Code Example

This small code will answer hello in the language the Telegram user has configured.

composer.json

...
"autoload": {
        "files": [
	    ...
            "language/language.php"
        ]
    },
...

StartCommand.php 

declare(strict_types=1);
namespace Longman\TelegramBot\Commands\UserCommands;
use Longman\TelegramBot\Commands\UserCommand;
use Longman\TelegramBot\Entities\ServerResponse;
use Longman\TelegramBot\Entities\Chat;
use Longman\TelegramBot\Exception\TelegramException;
use Longman\TelegramBot\TelegramLog;
use Longman\TelegramBot\Request;
use okayinc;

class StartCommand extends UserCommand {

protected $name = 'start';
protected $description = 'Start command';
protected $version = '0.2.0';
protected $usage = '/start';
protected $private_only = true;

public function execute(): ServerResponse
{
    $message = $this->getMessage();
    $from_user = $message->getFrom();
    $from_user_language = $from_user->getLanguageCode();
    $l = new okayinc\language($from_user_language, 'en');

    $answer = $l->get('hello');
    return $this->replyToChat($answer,[]);
}
}

en.php

	return ['hello' => 'hello'];

es.php

	return ['hello' => 'hola'];

Enjoy!

";