我已经:
- 安装了插件。
- 勾选了“允许帖子内联翻译”。
- 按照步骤获取了 Microsoft 密钥。
- 选择了 Microsoft 作为翻译器并添加了密钥。
- 创建了一个外语主题。
但是我没有在链接按钮旁边看到任何翻译(地球)按钮,如插件说明中所示。
我还尝试了卸载并重新安装插件。目前我只添加了这一个插件。
我是否应该无论如何都看到这个按钮?
我是否应该以某种方式测试 Microsoft API?
这个插件是否有任何故障排除步骤?
谢谢!
我已经:
但是我没有在链接按钮旁边看到任何翻译(地球)按钮,如插件说明中所示。
我还尝试了卸载并重新安装插件。目前我只添加了这一个插件。
我是否应该无论如何都看到这个按钮?
我是否应该以某种方式测试 Microsoft API?
这个插件是否有任何故障排除步骤?
谢谢!
很抱歉,关于翻译按钮未显示的问题,我们尚未回复。回答您问题的难点在于,需要有人按照步骤配置插件以使用 Microsoft 翻译服务。如果我们找不到任何使用该插件搭配 Microsoft Translator 的用户,我将在下周研究如何设置该功能。
我将把您的话题移至 #plugin:translator 分类,希望能引起更多关注。
感谢您的回复。如果问题可能出在微软方面,翻译按钮不正常的情况是否仍会出现?我很乐意协助排查微软翻译 API 的问题,但我未找到相关文档。再次感谢。
翻译按钮仅在我们检测到帖子的语言与用户当前选择的语言区域不同时才会显示。
您可以通过运行以下命令来测试:
./launcher enter app
rails c
=> DiscourseTranslator::Microsoft.detect(Post.last)
如果订阅密钥未正确配置,将抛出错误。
感谢您的回复。翻译器现在可以正常工作了。以下是我解决问题的详细步骤,如果这些信息对其他人有价值的话。
另外,当我问“无论什么情况都应该看到那个按钮吗”时,我的本意其实是想确认“API 密钥是否正常工作”,而不是“即使我首选的语言已经在使用中”。看来答案是:如果 API 调用失败,翻译按钮会自动隐藏。
当我通过 SSH 登录到我们的服务器,依次执行 cd /var/discourse/、./launcher enter app、rails 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 区域。
我曾尝试将其更改为全局区域,但找不到方法。于是,我创建了一个新的资源,这次它允许我选择“全球”区域。使用这个新密钥后,功能现在可以正常工作了。
感谢您的帮助。
感谢您的解决方案!