libretranslate 缺少翻译按钮

尊敬的 Discourse 群组:

首先,我向此项目的作者致以最诚挚的感谢和崇高的敬意。作为一名程序员,我深知创建此项目所付出的无数心血。

在过去的几天里,我在以下地址安装了 Discourse:

https://discourse.newcity.mx/

并且还添加了翻译插件。以下是我 app.yml 文件中相关部分的内容。

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/LibreTranslate/discourse-translator

首先,我的 Discourse 实例的默认区域设置为英语,位于 https://discourse.newcity.mx/admin/site_settings/category/required

当我访问管理员屏幕的插件/LibreTranslate 选项卡时,我勾选了:
允许内联翻译帖子。
并将翻译器设置为 LibreTranslate。
我不确定是否应该在
LibreTranslate API 端点 字段中填入任何内容。

插件选项卡显示 discourse-translator 已启用,版本为 0.4.0,有一个绿色的勾号,并且在已启用列下有一个 Y。到目前为止一切顺利,对吗?

但是,当我访问一个页面时,我看不到任何用于翻译的图标/选项。消息底部的最左侧图标是“分享帖子链接”。

我按照以下地址的说明安装了 LibreTranslate:

您可以通过访问 http://nadineloveshenry.com:5000/ 来验证这一点。

我阅读了:

在那里我发现“翻译按钮仅在我们检测到帖子的语言与该用户选择的当前区域设置不同时才会显示。”

因此,我将 Firefox 的语言从英语移除,并将其更改为西班牙语 (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

1 个赞

我猜是 http://nadineloveshenry.com:5000/translate
因为它似乎有效:

感谢 Benjamin 提供这个想法,但它似乎不起作用。我将 http://nadineloveshenry.com:5000/translate 放在了 LibreTranslate API 端点字段中,

并将我的 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。

1 个赞

ha, 我错了,端点应该是:
http://nadineloveshenry.com:5000

不过我还是不知道它是否以及如何工作 :sweat_smile:

您好 @henrylaxen:wave:

我不知道如何解决您的问题,但我想指出我们即将正式支持 LibreTranslate,请参阅 LibreTranslate provider support by pierotofy · Pull Request #36 · discourse/discourse-translator · GitHub 以了解需要做什么。:slight_smile:

3 个赞

这里似乎有些问题:

我认为应该是 SUPPORTED_LANG_MAPPING(以及之后的内容)

它似乎也不允许对这里调用的 /languages URL 使用 POST 方法:

它需要 GET

本杰明、Maiki 及各位同事:

哇。非常感谢你们对此的深入研究。本杰明,我尝试将端点更改为 http://nadineloveshenry.com:5000,但没有效果。在阅读了 36 号拉取请求的讨论后,我认为它即将合并,所以我宁愿等几天,也不愿尝试使用 GitHub - LibreTranslate/discourse-translator: Discourse translator with LibreTranslate support. 上的你的分支,我不太确定如何操作。如果我能以任何方式帮助你们,请告诉我。

我刚注意到有一个新版本可用,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
主机:discourse.newcity.mx
用户代理:Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0
接受:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
接受语言:en-US
接受编码:gzip, deflate, br
DNT:1
连接: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
升级不安全请求:1
Sec-Fetch-Dest:document
Sec-Fetch-Mode:navigate
Sec-Fetch-Site:none
Sec-Fetch-User:?1
Sec-GPC:1
Pragma:no-cache
缓存控制:no-cache

响应:
HTTP/1.1 500 内部服务器错误
服务器:nginx/1.22.0
日期:2022 年 6 月 14 日星期二 04:08:05 GMT
内容类型:text/html; charset=utf-8
内容长度:658
连接:keep-alive
X-Request-Id:d39e6252-1034-4e72-ae96-d20ebdb3a59e
设置 Cookie:__profilin=p%3Dt%2Ca%3D6f2394e0167f915ab2fc46e5a6d45127%7C034d5170cc7d54c26ede324b2850a654; path=/; secure; HttpOnly; SameSite=Lax
X-Runtime:0.550344

非常抱歉带来所有麻烦。再次告诉我是否能帮上忙。

致以最美好的祝愿,
Henry Laxen

不会那样解读讨论来形成那个时间表;我的回复更多是为了让更多人关注那个问题,我不确定 LibreTranslate 能否那么快被合并。:slight_smile:

1 个赞

你好,Henry:
是的,内部服务器错误源于 SUPPORTED_LANG_MAPPING 问题。
我刚向 PR 的作者提到了这一点。

亲爱的 Maiki:
我明白了。如果我要切换到你的分支,是只需要克隆你的仓库,修改 app.yml,然后重新构建,还是有其他操作?我住在 Tijuana,对我来说,如果一个 Discourse 实例不能同时支持英语和西班牙语,那将是无法接受的。感谢你的回复。

1 个赞

以下是公共 LibreTranslate 镜像列表:

1 个赞

这些都可以正常工作。 不幸的是,在家中测试时遇到了 arm64 映像的问题,这似乎是过去几个版本的问题。

这个 bug 现在应该已经修复了:

2 个赞

是的,翻译在 Raspberry Pi 4 上的 arm64 Docker 的 latest 版本上运行正常。

非常感谢!

1 个赞