import gettext
gettext.bindtextdomain('myapplication', '/path/to/my/language/directory')
gettext.textdomain('myapplication')
_ = gettext.gettext
# ...
print(_('This is a translatable string.'))
Человек перешел на сайт (или куда то там еще, не важно), ввел данные, нарисовался чертеж, сохранил картинку, скинул,
1. Реакция на личные сообщения. Складывается из двух частей: реакция на сообщение + проверка, что сообщение личное. Реакция на сообщение - это событие on_message. Ты получаешь объект Message, у которого есть свойство channel. Если channel - это экземпляр (isinstance) DMChannel, то сообщение было в личку. Собственно, это необязательно делать - проще сделать просто команды, хотя бы для начала.
2. Реакция на команды - это обычное дело. В примерах кода в доках есть.
3. Отправка сообщения в заданный канал - .fetch_channel() чтобы получить объект канала, и .send() на полученном канале для отправки.