Translate button missing with libretranslate

Dear Discourse Group,
First, to the authors of this project, my profound thanks and
respect. Being a programmer myself I can appreicate the many hours
that have gone into creating this project.

Over the last few days, I have installed discourse at:

https://discourse.newcity.mx/

and also added the translate plugin. Here is the relevant part of my
app.yml file.

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

First, the default locale of my discourse instance is set to English
at https://discourse.newcity.mx/admin/site_settings/category/required

When I access the plugin/LibreTranslate tab of my admin screen, I check:
Allow inline translation of posts.
and set translater to LibreTranslate
I am not sure what (if anything) I should put in the
LibreTranslate API Endpoint field.

The plugin tab says that discourse-translator is enabled, the version
is 0.4.0, there is a green checkmark, and a Y under the enabled
column. So far all good, no?

However when I access a page, I don’t see any icon/option to do a
translation. The leftmost icon at the bottom of the message is the
“share a link to the post”.

I did install libretranslate following the instructions at:

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

which you can verify by going to http://nadineloveshenry.com:5000/

I read:

Where I discovered “The translate button will only show if we detect
that the language of the post is different from the current locale
which that user has selected.”

So I removed English as firefox’s language and changed it to
Espanol(MX), and connected to my site via a VPN through Spain just to
make sure there was not trace of USA left. The request headers that
were sent wre:

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

But still no joy.

Can anyone tell me what I am missing?

On another, and perhaps related note, when I run:

./launcher enter app

The response I get is:

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

Thanks in advance for your help.
Best wishes,
Henry Laxen

1 Like

my guess would be http://nadineloveshenry.com:5000/translate
as it seems to work:

Thanks Benjamin for the idea, but it doesn’t seen to work. I put
http://nadineloveshenry.com:5000/translate
in the LibreTranslate API Endpoint field,

changed my firefox settings to German:

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

But still no little world button appears. Are there any other ideas out there, or even a pointer as to how I can track this down. Does anyone have a working libretranslate discourse site working? Thanks again Benjamin.

1 Like

ha, my bad, the endpoint should be:
http://nadineloveshenry.com:5000

Still don’t know if and how it works though :sweat_smile:

Hi @henrylaxen. :wave:

I don’t know how to fix your issue, but I wanted to point out were are potentially close to officially supporting LibreTranslate in our plugin, see LibreTranslate provider support by pierotofy · Pull Request #36 · discourse/discourse-translator · GitHub for what needs to be done. :slight_smile:

3 Likes

it seems there is something wrong here:

Should be SUPPORTED_LANG_MAPPING I think (and thereafter)

it also seems that the POST method is not allowed for the /languages url called here:

it needs GET

Dear Benjamin, Maiki & co,
Wow. Thanks so much for digging into this. Benjamin, I tried changing the endpoint to http://nadineloveshenry.com:5000 but it had no effect. After reading the discussion for pull request 36, it sounds like it will be merged imminently, so I would rather wait a few days than try to use your branch at GitHub - LibreTranslate/discourse-translator: Discourse translator with LibreTranslate support., which I am not sure how to do. Please let me know if I can help you guys in any way.

I just noticed a new version is available, 2.9.0.beta5. I upgraded to it, and Now when I have translation enabled, by checking the box labelled

Allow inline translation of posts.

at the https://discourse.newcity.mx/admin/site_settings/category/plugins?filter=plugin%3Adiscourse-translator page,

when I go to Test libretranslate - #2 - New City Tijuana Discourse
or in fact any page, I get an internal server error.


Request:
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


Response:
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

So sorry for all the trouble. Again let me know if I can be helpful.

Best wishes,
Henry Laxen

I would not intepret that discussion to form that timeline; my reply was more to get more eyes to move along that issue, I’m not sure it LibreTranslate will be merged that quickly. :slight_smile:

1 Like

Hi Henry,
yes the internal server error comes from the SUPPORTED_LANG_MAPPING problem,
I’ve just mentioned it to author of the PR.

Dear Maiki,
I see. If I were to switch to your branch, do I just clone your repository, fix up app.yml, and rebuild, or is there more to it. I live in Tijuana, so running a discourse instance without English and Spanish is a game stopper for me. Thanks for the responses.

1 Like

Here’s a list of public LibreTranslate mirrors:

1 Like

Those are working fine. Unfortunately run into trouble with the arm64 image when testing at home, which seems to be an issue for the last few releases.

This bug should be fixed now:
https://github.com/LibreTranslate/LibreTranslate/issues/524#issuecomment-1784342641

2 Likes

Yep, translations are working on latest on arm64 Docker on Raspberry Pi 4.

Thanks so much!

1 Like