FYI: Полная трансляция Discourse, включая посты, возможна

Для всех, кто заинтересован в многоязычных сайтах на Discourse, хочу поделиться информацией о продукте, который мне недавно удалось интегрировать с моим хостинговым сайтом. Я не аффилирован с этой компанией каким-либо образом, кроме как в качестве клиента, и не получаю никакой компенсации. Меня просто впечатлила эта технология, и я хочу поделиться ею, потому что перевод — это сложно, а этот инструмент делает его невероятно простым!

Продукт называется Linguise. Вы можете увидеть, как его настроить для работы с Discourse (или аналогичными технологиями), в этом видео.

В основном, вы создаёте аккаунт (бесплатно на 30 дней), и система проведёт вас через настройку DNS CNAME для основного домена вашего сайта, включая двухбуквенный языковой префикс. Например, fr.mysite.com, es.mysite.com — по одному для каждого языка, который вы хотите сделать доступным.

Затем вам предоставят пользовательский элемент , который необходимо добавить на сайт Discourse. Самый простой способ сделать это — создать новый компонент темы и разместить их скрипт в секции <Head>.

На этом всё. На вашем сайте появится переключатель языков (его расположение и другие характеристики можно легко настроить).

Нажмите на этот переключатель и выберите другой язык — страница обновится. Вы увидите, что большинство элементов экрана на секунду-другую размываются, после чего вся страница будет автоматически переведена машинным переводом.

Это касается меню, заголовков, названий категорий, названий тем, содержимого постов и т. д. Даже административные панели и экраны настроек переводятся.

Это потрясающе. У вас есть выбор из 85 языков, а цена зависит от количества переведённых слов — неважно, какие именно языки используются. Стоимость начинается примерно с 15 долларов в месяц и достигает максимума в 45 долларов в месяц за неограниченное использование.

Эта технология также работает практически на любом сайте. Они напрямую поддерживают Wordpress, Joomla, Squarespace, Wix, Drupal и многие другие платформы электронной коммерции и т. д. Но то, как это работает для Discourse, представляет собой своего рода универсальный механизм, способный перевести любой сайт — даже те, к которым у вас нет доступа к исходному коду или бэкенду, при условии, что вы можете добавить один тег .

6 лайков

Можете поделиться вашим компонентом темы?

Возможно ли настроить переводы (названия категорий, заголовки тем и т. д.)?

3 лайка

Видеоинструкции Linguise недостаточно для того, чтобы я мог перевести свой сайт на Discourse.

На самом первом шаге, где нужно выбрать платформу, в списке нет варианта «Discourse», а в видео на YouTube не сказано, что выбрать из этого списка, если у вас сайт на Discourse (и мы не можем перейти дальше, пока не сделаем правильный выбор).

Привет, Батинда. Вы выбрали «Другая облачная CMS».

2 лайка

Привет, Томас,

Вы можете легко создать свой собственный пустой компонент темы, перейдя в раздел Администрирование/Темы/Компоненты.

Нажмите кнопку Установить, а в появившемся диалоговом окне выберите «Создать новый»:

В следующем диалоговом окне укажите имя:

Это создаст пустой компонент. Теперь вам нужно лишь нажать кнопку «Редактировать» CSS/HTML:

Перейдите на вкладку с названием Head (Заголовок). Там вы вставите пользовательский тег скрипта, который Linguise предоставляет вам при настройке на их веб-сайте:

На моем изображении я добавил несколько комментариев, но обычно вы получите пустой список, в который нужно вставить ваш пользовательский URL Linguise.

Обратите внимание: работая с технической поддержкой Linguise, мы обнаружили, что тег скрипта необходимо немного изменить, так как при смене языка иногда требовалось ручное обновление страницы.

Если изменить начало тега так, чтобы он начинался с <script defer src=, это решит проблему с ручным обновлением.

Кстати, такие простые пользовательские компоненты можно использовать как безопасный и элегантный способ внести любые изменения в используемую вами тему и повлиять на множество элементов экрана.

Например, на моем сайте я отключил ряд элементов экрана, которые, по моему мнению, могли бы запутать моих пользователей. Для этого на вкладке CSS я добавил несколько CSS-селекторов со свойством display: none.

Например, это скрывает кнопку Добавить раздел на боковой панели:

.sidebar-wrapper .sidebar-footer-wrapper .btn-flat.add-section {
    display: none;
}

Сложная часть — определить правильные CSS-селекторы (то есть часть перед открывающей скобкой), но если вы воспользуетесь инструментами разработчика в вашем браузере, вы сможете найти нужные элементы экрана и скопировать их селекторы.

Удачи!

3 лайка

Это очень хорошее и подробное объяснение.
Спасибо за это.

1 лайк

Хотел поделиться дополнительными деталями из нашего опыта настройки Linguise для корректной работы с Discourse.

Во-первых, на нашем сайте мы используем плагин SAML для аутентификации пользователей в другом хранилище учётных записей. В этом случае мы столкнулись с проблемой, связанной с cookie-файлами.

К счастью, специалисты из Communiteq (https://www.communiteq.com/) — отличной хостинг-компании для Discourse — смогли проанализировать проблему и создать небольшое исправление в виде плагина. Однако для большинства пользователей это не потребуется.

Есть одно ограничение, о котором стоит знать: Linguise не выполняет перевод, когда работает в своём языке по умолчанию — в нашем случае это английский.

Обычно это не проблема, но есть один случай, когда она возникает: сообщения, написанные на другом языке (например, на испанском), отображаются на испанском, если Linguise установлен на английский. На любом другом языке они бы переводились, но не в языке по умолчанию.

Возможно, Linguise улучшит эту ситуацию в будущем, но никаких гарантий на этот счёт нет.

Обходное решение — также использовать плагин Discourse Translator. Для этого нужно получить доступ к API одной из компаний, предоставляющих услуги перевода (Google, Yandex, Microsoft и др.), а затем настроить учётные данные в плагине.

После этого, если вы находитесь в английской версии и читаете сообщение, написанное на испанском, вы увидите небольшой значок глобуса:

При нажатии на него под оригинальным текстом появится перевод.

Используя оба решения вместе, можно покрыть все случаи, хотя и не так элегантно, как хотелось бы.

Мы используем аккаунт Google Cloud, который предоставляет первые 500 000 слов в месяц бесплатно, и мы редко превышаем этот лимит. Думаю, у других провайдеров есть аналогичные предложения.

Надеюсь, эта информация будет кому-то полезна.

3 лайка