Спасибо за ваш ответ. Переводчик теперь работает. Ниже приведены подробности о том, как я нашел решение, на случай, если эта информация будет кому-то полезна.
Кроме того, когда я спрашивал: «Должна ли я видеть эту кнопку в любом случае?», мой вопрос подразумевал скорее «работает ли 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. Я нахожусь в Калифорнии, но мои пользователи будут по всему миру, в основном в Западной Европе. Я вспомнил, что процесс инициализации переводчика Microsoft требует выбора региона, и он рекомендовал westeurope для общего использования пользователями из Северной Америки и Западной Европы.
Я попытался изменить его на глобальный, но не смог найти способ сделать это. Поэтому я создал новый ресурс, и сегодня он позволил мне выбрать глобальный регион. И теперь с этим новым ключом всё работает.
Спасибо за вашу помощь.