libretranslate에서 번역 버튼이 없습니다

Discourse 그룹 여러분께,

먼저, 이 프로젝트의 개발자분들께 깊은 감사와 존경을 표합니다. 저 역시 프로그래머로서 이 프로젝트를 만들기 위해 쏟아부은 수많은 시간을 충분히 체감하고 있습니다.

지난 며칠간 저는 다음 주소에 Discourse를 설치했습니다:

https://discourse.newcity.mx/

또한 translate 플러그인도 추가했습니다. 제 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

관리자 화면의 plugin/LibreTranslate 탭에 접근하여 다음을 확인했습니다:
‘포스트 인라인 번역 허용(Allow inline translation of posts)’
그리고 번역기를 LibreTranslate로 설정했습니다.
‘LibreTranslate API Endpoint’ 필드에 무엇을(혹은 아무것도) 입력해야 하는지 확실하지 않습니다.

플러그인 탭에는 discourse-translator가 활성화되어 있고, 버전은 0.4.0이며, 녹색 체크 표시와 활성화(enabled) 열에 Y가 표시되어 있습니다. 지금까지는 문제가 없어 보입니다, 그렇죠?

그러나 페이지에 접근했을 때 번역을 수행할 아이콘이나 옵션이 보이지 않습니다. 메시지 하단의 가장 왼쪽 아이콘은 '포스트 링크 공유(share a link to the post)'입니다.

저는 다음 설명에 따라 LibreTranslate를 설치했습니다:

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

http://nadineloveshenry.com:5000/ 에 접속하여 확인할 수 있습니다.

다음 글을 읽었습니다:

여기서 "포스트의 언어가 사용자가 현재 선택한 로케일과 다를 때만 번역 버튼이 표시됩니다(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.)"라는 내용을 발견했습니다.

그래서 Firefox의 언어에서 영어를 제거하고 Espanol(MX)로 변경했으며, 미국 관련 흔적이 남아 있지 않도록 스페인을 통해 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

미리 도움을 주셔서 감사합니다.
건강하세요,
Henry Laxen

http://nadineloveshenry.com:5000/translate를 입력하는 것이 맞을 것 같습니다.
정상적으로 작동하는 것으로 보이거든요:

아이디어를 제안해 주셔서 감사합니다, Benjamin. 하지만 작동하지 않는 것 같습니다.

http://nadineloveshenry.com:5000/translate
를 LibreTranslate API Endpoint 필드에 입력했고,

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

하지만 여전히 작은 지구 버튼이 나타나지 않습니다. 다른 아이디어가 있거나, 이 문제를 추적하는 방법에 대한 힌트가 있을까요? 제대로 작동하는 LibreTranslate Discourse 사이트가 있는 사람이 있을까요? 다시 한번 감사합니다, Benjamin.

아, 내 실수였네. 엔드포인트는 이거여야 해:
http://nadineloveshenry.com:5000

그래도 아직 이게 작동하는지, 그리고 어떻게 작동하는지는 모르겠어 :sweat_smile:

Hi @henrylaxen. :wave:

문제를 어떻게 수정해야 하는지는 모르겠지만, 플러그인에서 LibreTranslate를 공식적으로 지원하기 위해 거의 준비가 된 상태라는 점을 알려드리고 싶었어요. 어떤 작업이 필요한지 확인하려면 LibreTranslate provider support - Pull Request #36 - discourse/discourse-translator - GitHub 를 참고해 주세요. :slight_smile:

여기에 문제가 있는 것 같습니다:

SUPPORTED_LANG_MAPPING이어야 한다고 생각합니다 (그 이후에도 마찬가지입니다).

여기에서 호출되는 /languages URL에 대해 POST 메서드가 허용되지 않는 것 같습니다:

GET 메서드가 필요합니다.

Benjamin, Maiki 및 여러분께,

와. 이 문제를 깊이 파고들어 주셔서 정말 감사합니다. Benjamin, 엔드포인트를 http://nadineloveshenry.com:5000으로 변경해 보았지만 효과가 없었습니다. 풀 리퀘스트 36에 대한 토론을 읽어보니 곧 병합될 것 같은데, github.com/LibreTranslate/discourse-translator의 여러분의 분기를 사용하는 방법을 정확히 모르겠으므로 며칠 정도 기다리는 것이 나을 것 같습니다. 여러분에게 도움이 될 일이 있다면 알려주세요.

방금 새로운 버전 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
또는 사실 어떤 페이지로 가든 내부 서버 오류가 발생합니다.


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

많은 불편을 끼쳐드려 정말 죄송합니다. 다시 한번 도움이 될 일이 있다면 말씀해 주세요.

건강을 기원합니다,
Henry Laxen

저는 해당 논의를 통해 그 같은 시간표를 유추하지는 않을 것입니다. 제 답글은 그 이슈에 대한 진행을 더 많은 사람들이 검토하도록 하기 위한 것이었으며, LibreTranslate가 그렇게 빨리 병합될지는 확신할 수 없습니다. :slight_smile:

헨리님, 안녕하세요.
네, 내부 서버 오류는 SUPPORTED_LANG_MAPPING 문제에서 비롯된 것입니다.
방금 해당 PR 작성자에게 언급했습니다.

마이키님,

알겠습니다. 만약 마이키님 브랜치로 전환한다면, 단순히 저장소를 클론하고 app.yml을 수정한 뒤 다시 빌드하면 되는 건가요, 아니면 더 복잡한 과정이 있는 건가요? 저는 티후아나에 살고 있어서, 영어와 스페인어 지원 없이 디스코urs 인스턴스를 실행하는 것은 저에게는 치명적인 문제입니다. 답변 주셔서 감사합니다.

다음은 공개된 LibreTranslate 미러 목록입니다:

해당 미러들은 정상적으로 작동합니다. 불행히도 집에서 테스트를 진행하던 중 arm64 이미지에서 문제가 발생했는데, 이는 최근 몇 개 릴리스에서 계속되고 있는 문제인 것 같습니다.

이 버그는 이제 수정되었습니다:

네, Raspberry Pi 4에서 arm64 Docker의 latest 버전으로 번역이 정상 작동합니다.

정말 감사합니다!