Disqus - способы переключение языка интерфейса

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

Disqus  - как управлять переключением языка на мультиязычном сайте

Автор статьи: volego

2019-03-05 10:16:05

Один из своих сайтов я сделал с возможностью выбора языка для просмотра контента. Хвала фреймворку Yii2 – сделать мультиязычность было совсем не сложно. Постепенно, разрабатывая клиентскую часть, передо мной стала идея добавить на страницы со статьями виджет комментариев. Писать свой мне виделось не очень хорошим решением, и я решил использовать популярный плагин встроенных комментариев Disqus. В интернете полно мануалов по подключению его на сайте и с этим проблем не возникло. Проблема возникла позже и заключалась в следующем: в личном кабинете администратора комментариев можно было указать язык интерфейса клиентской части виджета, но как переключать его в зависимости от языка, который выбрал посетитель? – ответ на этот вопрос был не очевиден. Стоит заметить, что навигацию по самому сайту Disqus я считаю не очень удобной: всё постоянно пытается открыться в новой вкладке, везде разное меню и зависимость между страницами не прослеживается.

Написал в техподдержку сообщение:


После чего получил ответ со ссылкой на страницу https://help.disqus.com/installation/multi-lingual-websites. А вот здесь уже было все подробно расписано.

Глобальная настройка

Можно указать один язык в качестве языка по-умолчанию. Делается это на странице Disqus Admin > Setup > Appearance.


Переопределение языка

Для того чтобы самостоятельно переопределить язык интерфейса, необходимо изменить конфигурацию. Для своего проекта на Yii я сделал это так, вставив код в нужном месте во view:

$shortName='myAppName';//имя вашего приложения в системе Disqus
$lang=Yii::$app->language; //текущий язык сайта
$script = <<< JS
            var disqus_config = function () {
this.language = "$lang";
    };


    (function() { // DON'T EDIT BELOW THIS LINE
        var d = document, s = d.createElement('script');
        s.src = "https://$shortName.disqus.com/embed.js";
        s.setAttribute('data-timestamp', +new Date());
        if($('#disqus_thread').length>0)(d.head || d.body).appendChild(s);
    })();
JS;
$this->registerJs($script, yii\web\View::POS_END);

Вот и всё! Теперь, при переключении языка приложения виджет автоматически показывался на нужном мне языке. Просмотреть полный список доступных для переключения языков можно здесь: https://www.transifex.com/disqus/disqus/ .

Надеюсь эта статья поможет кому-нибудь быстрее найти способ переключения клиентской части виджета комментариев Disqus.