Translate 插件已安装,但没有翻译按钮

感谢您的回复。翻译器现在可以正常工作了。以下是我解决问题的详细步骤,如果这些信息对其他人有价值的话。

另外,当我问“无论什么情况都应该看到那个按钮吗”时,我的本意其实是想确认“API 密钥是否正常工作”,而不是“即使我首选的语言已经在使用中”。看来答案是:如果 API 调用失败,翻译按钮会自动隐藏。

当我通过 SSH 登录到我们的服务器,依次执行 cd /var/discourse/./launcher enter apprails c,然后运行 DiscourseTranslator::Microsoft.detect(Post.last) 时,输出如下:

DiscourseTranslator::TranslatorError: : 
from /var/www/discourse/plugins/discourse-translator/services/discourse_translator/microsoft.rb:70:in `access_token'

于是,我按照 Microsoft 文档 中的说明运行了以下测试:

// 通过头部传递密钥和区域
curl -X POST "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=es" \
     -H "Ocp-Apim-Subscription-Key:<your-key>" \
     -H "Ocp-Apim-Subscription-Region:<your-region>" \
     -H "Content-Type: application/json" \
     -d "[{'Text':'Hello, what is your name?'}]"

输出显示成功:

[{"detectedLanguage":{"language":"en","score":1.0},"translations":[{"text":"Hola, ¿cómo te llamas?","to":"es"}]}]%                                            ~ % 

我注意到 curl 命令中包含了区域参数,但 Discourse 插件中却没有。我身处加利福尼亚州,但我的用户遍布全球,主要集中在西欧。我记得微软在初始化其翻译服务时要求选择一个区域,并建议北美和西欧用户通用选择 westeurope 区域。

我曾尝试将其更改为全局区域,但找不到方法。于是,我创建了一个新的资源,这次它允许我选择“全球”区域。使用这个新密钥后,功能现在可以正常工作了。

感谢您的帮助。