Отсутствует кнопка «Перевести» с LibreTranslate

Уважаемая группа Discourse,

Прежде всего, выражаю глубокую благодарность и уважение авторам этого проекта. Как программист, я могу оценить множество часов, затраченных на создание этого проекта.

За последние несколько дней я установил Discourse по адресу:

https://discourse.newcity.mx/

а также добавил плагин перевода. Вот соответствующая часть моего файла app.yml.

hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone GitHub - discourse/docker_manager: Plugin for use with discourse docker image · GitHub
- git clone GitHub - LibreTranslate/discourse-translator: Discourse translator with LibreTranslate support. · GitHub

Во-первых, локаль по умолчанию моего экземпляра Discourse установлена на английский язык по адресу:
https://discourse.newcity.mx/admin/site_settings/category/required

Когда я перехожу на вкладку плагина/LibreTranslate в своей административной панели, я отмечаю:
Разрешить встроенный перевод сообщений.
и выбираю переводчик LibreTranslate.
Не уверен, что (если вообще что-то) следует указать в поле
Конечная точка API LibreTranslate.

На вкладке плагина указано, что discourse-translator включен, версия 0.4.0, есть зеленая галочка и буква Y в столбце «Включено». Пока всё хорошо, верно?

Однако при переходе на страницу я не вижу ни иконки, ни опции для выполнения перевода. Самая левая иконка в нижней части сообщения — это «поделиться ссылкой на сообщение».

Я установил LibreTranslate, следуя инструкциям по адресу:

GitHub - LibreTranslate/LibreTranslate: Free and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup. · GitHub

что можно проверить, перейдя по адресу http://nadineloveshenry.com:5000/

Я прочитал:

где обнаружил: «Кнопка перевода будет отображаться только в том случае, если мы определим, что язык сообщения отличается от текущей локали, выбранной пользователем».

Поэтому я удалил английский язык из настроек Firefox и изменил его на испанский (Мексика), а также подключился к моему сайту через VPN из Испании, чтобы убедиться, что не осталось никаких следов США. Заголовки запроса, которые были отправлены:

GET /t/welcome-to-new-city-discourse/7 HTTP/1.1
Host: discourse.newcity.mx
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,/;q=0.8
Accept-Language: es-MX,es;q=0.5
Accept-Encoding: gzip, deflate, br

Но всё равно ничего не получилось.

Может ли кто-нибудь подсказать, что я упускаю?

Кроме того, возможно, это связано с другой проблемой: когда я запускаю команду:

./launcher enter app

я получаю следующий ответ:

x86_64 arch detected.
OCI runtime exec failed: exec failed: unable to start container process: open /dev/pts/1: operation not permitted: unknown

Заранее благодарю за помощь.
С наилучшими пожеланиями,
Генри Лаксен

Мое предположение: http://nadineloveshenry.com:5000/translate,
так как это, похоже, работает:

Спасибо, Бенджамин, за идею, но, похоже, это не работает. Я ввёл
http://nadineloveshenry.com:5000/translate
в поле «Конечная точка API LibreTranslate»,

изменил настройки Firefox на немецкий:

GET /t/test-libretranslate/17 HTTP/1.1
Host: discourse.newcity.mx
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,/;q=0.8
Accept-Language: de

Но по-прежнему не появляется кнопка с маленьким глобусом. Есть ли ещё какие-либо идеи или хотя бы подсказка, как мне найти причину проблемы? У кого-нибудь есть рабочий форум Discourse с интегрированным LibreTranslate? Ещё раз спасибо, Бенджамин.

ха, моя ошибка, конечная точка должна быть:
http://nadineloveshenry.com:5000

Всё ещё не знаю, работает ли это и как именно :sweat_smile:

Привет, @henrylaxen. :wave:

Я не знаю, как решить вашу проблему, но хотел бы отметить, что мы, возможно, уже близки к официальному поддержанию LibreTranslate в нашем плагине. Посмотрите, что нужно сделать, по ссылке: LibreTranslate provider support by pierotofy · Pull Request #36 · discourse/discourse-translator · GitHub. :slight_smile:

Кажется, здесь что-то не так:

Должно быть SUPPORTED_LANG_MAPPING, как я понимаю (и далее по тексту):

Также кажется, что метод POST не разрешён для URL /languages, вызываемого здесь:

Требуется GET.

Уважаемые Бенджамин, Майки и коллеги,

Ого. Большое спасибо за то, что разобрались в этом. Бенджамин, я пытался изменить конечную точку на http://nadineloveshenry.com:5000, но это не помогло. После прочтения обсуждения по запросу на слияние номер 36, похоже, что он будет принят в ближайшее время, поэтому я предпочту подождать несколько дней, чем пытаться использовать вашу ветку на GitHub - LibreTranslate/discourse-translator: Discourse translator with LibreTranslate support. · GitHub, так как не уверен, как это сделать. Дайте знать, если я могу как-то помочь вам.

Я только что заметил, что доступна новая версия — 2.9.0.beta5. Я обновился до неё, и теперь, когда я включаю перевод, установив флажок

Разрешить встроенный перевод сообщений.

на странице https://discourse.newcity.mx/admin/site_settings/category/plugins?filter=plugin%3Adiscourse-translator,

при переходе на https://discourse.newcity.mx/t/test-libretranslate/17/2
или, на самом деле, на любую другую страницу, возникает внутренняя ошибка сервера.


Запрос:
GET /t/test-libretranslate/17 HTTP/1.1
Host: discourse.newcity.mx
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US
Accept-Encoding: gzip, deflate, br
DNT: 1
Connection: keep-alive
Cookie: _t=7TrnwomqGwDw359BMpi9EJo0cXFEYNpuysEJvGrkYwUG8D5zyJwVWd4iqKPmxUd2UUUG%2BH9hShgBeoCd7U51pJZg6CQYhKABm0AxQg0%2Bdqd9q1ODmRAPKp4INqAZHQuPZxWH9cObvpdaYaQFSbJiWRlfK0rRRgC%2FIqqgafn7w%2FAbTsO3N%2FmVLUIPj0t8PbJWDMYp1dDjevq4lpdNMYSViWbtHrFgXw89F5gTqgRjBBRdKRM81bwVFaUmqnHsPWgAWaeLapZxmrnfRqC%2F--HGGLHoE3sfXKcP7z--LfDlG3VIbZ0LSjwFoGl%2Bmw%3D%3D; _forum_session=NtilsRG2mkgUOmJGGgmGuCf4cGtxPHLLtE7sRkaRYP1gm6KA79fk6s6%2BBhYNTjoQz92x7pZljg9x1bGZYOTjuVDhzmeq5x7i7do7m3Iu4Z9jS6dSVGNJPaMi0p4uxHuqS4dfRLZ4JAODWZasTskcLq4gGXVUCOdybif89cg3dKNDyW3PAs%2Fp0D0uIRhWHJ49ws2uOQKbXVBvITyNdkKB7Ki%2BCTtLn8oCeTuq6rVxXcXuuaDh8jSz1CC3Cjw1I2jRVzm7ZVWdJMwRWCFbMb88AEGm2Mdh2Qx%2Fjwcexa6taXPuXR2LBuaUij5VmkRIzo0iRWya%2BJPVwhYR2jUJm9XR9cHKA6MUd87r%2FElyO9Aae7Vj0xP4ICt3KERZHUsidg%3D%3D--ZoSVywr0%2BfmX4s8w--E4TO4wELmgx%2BPdtHfufj2w%3D%3D; __profilin=p%3Dt%2Ca%3D6f2394e0167f915ab2fc46e5a6d45127%7C034d5170cc7d54c26ede324b2850a654
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Sec-GPC: 1
Pragma: no-cache
Cache-Control: no-cache


Ответ:
HTTP/1.1 500 Internal Server Error
Server: nginx/1.22.0
Date: Tue, 14 Jun 2022 04:08:05 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 658
Connection: keep-alive
X-Request-Id: d39e6252-1034-4e72-ae96-d20ebdb3a59e
Set-Cookie: __profilin=p%3Dt%2Ca%3D6f2394e0167f915ab2fc46e5a6d45127%7C034d5170cc7d54c26ede324b2850a654; path=/; secure; HttpOnly; SameSite=Lax
X-Runtime: 0.550344

Очень извиняюсь за все эти неудобства. Ещё раз дайте знать, если я могу быть полезен.

С наилучшими пожеланиями,
Генри Лаксен

Я бы не интерпретировал это обсуждение таким образом; мой ответ был скорее направлен на привлечение внимания для продвижения этого вопроса. Не уверен, что LibreTranslate будет принят так быстро. :slight_smile:

Привет, Генри,
да, ошибка внутреннего сервера вызвана проблемой с SUPPORTED_LANG_MAPPING.
Я только что сообщил об этом автору PR.

Уважаемый Майки,

Понял. Если я перейду на вашу ветку, мне достаточно просто клонировать ваш репозиторий, исправить app.yml и пересобрать проект, или есть ещё какие-то шаги? Я живу в Тихуане, поэтому запуск экземпляра Discourse без поддержки английского и испанского языков для меня является критическим ограничением. Спасибо за ответы.

Вот список общедоступных зеркал LibreTranslate:

Они работают нормально. К сожалению, при тестировании дома возникли проблемы с образом arm64, что, похоже, является проблемой для последних нескольких выпусков.

Эта ошибка теперь должна быть исправлена:

Да, переводы работают на latest в arm64 Docker на Raspberry Pi 4.

Огромное спасибо!