Перевод — как реализовано кэширование: по страницам или по темам/комментариям?

Я тестирую функцию перевода. Она работает потрясающе как по качеству, так и по скорости, так что мы уже почти готовы внедрить её на наш(и) сайт(ы).

Единственная загвоздка в том, что я немного беспокоюсь о стоимости машинного перевода.

Если переводы кэшируются, я думаю, стоимость будет значительно ниже, но при этом кэшированный перевод должен храниться не по полному HTML-коду страницы, а по теме или комментарию. Иначе, если ветка продолжит расти, объём переводов тоже будет увеличиваться, заменяя старые.

Так что мой вопрос: как обрабатывается кэшированный перевод?

Привет!

Переводы хранятся в таблицах, а не кэшируются в явном виде.

Если у вас есть Data Explorer, вы можете использовать похожий запрос, чтобы просмотреть сохранённые переводы (существуют topic_localizations, post_localizations, category_localizations — замените соответствующим образом).

select * from topic_localizations
limit 10

В Discourse используются такие термины, как темы, посты и т. д. (это может быть полезно). У темы есть заголовок и посты. Этот ответ сам по себе является постом. Мы не храним всего один перевод для всей темы целиком. Например, в этой теме у нас есть:

  1. перевод темы для заголовка темы
  2. перевод поста для вашего поста выше
  3. перевод поста для моего поста сейчас
  4. (перевод поста для любого последующего поста)

Надеюсь, это поможет.