Переключение языков в CMS Hubspot - PullRequest
5 голосов
/ 13 мая 2019

Каков наилучший способ сделать пользовательский переключатель языка на сайте.

Моя проблема в том, что у меня есть сайт с двумя языковыми версиями, и мой пользовательский переключатель языка немного проблематичен, я бы сказал.По какой-то причине он работает не на всех страницах, и, на мой взгляд, это очень сложный код.На нашем сайте языковые версии меняются через URL.Например, mycompany.fi/ - это версия на основном языке, а mycompany.fi/en/ - для версии сайта на английском языке.Вот код, как я переключаю язык в настоящее время, просто изменив URL.В коде он проверяет URL-адрес, а также проверяет, есть ли у страницы translation_content.После этого я помещаю site_language и other_language в ссылки, поэтому, нажимая на ссылку, она меняет язык.

{% if absolute_url is string_containing "/en-us/" %} 
  {% set site_language = 'en'  %} 
  {% set other_language = 'fi' %}
  {% if content.translated_content['fi-fi'] %}
    {% set other_language_url = '/' + content.translated_content['fi-fi'].slug %} 
  {% elif content.translated_content['fi'] %}
    {% set other_language_url = '/' + content.translated_content['fi'].slug %} 
  {% else %}
    {% set other_language_url = '#' %} 
  {% endif %}
{% elif absolute_url is string_containing "/en/" %}
  {% set site_language = 'en'  %}
  {% set other_language = 'fi' %}
  {% if content.translated_content['fi-fi'] %}
    {% set other_language_url = '/' + content.translated_content['fi-fi'].slug %} 
  {% elif content.translated_content['fi'] %}
    {% set other_language_url = '/' + content.translated_content['fi'].slug %} 
  {% else %}
    {% set other_language_url = '#' %} 
  {% endif %}
{% else %}
  {% set site_language = 'fi' %}
  {% set other_language = 'en' %}
  {% if content.translated_content['en-us'] %}
    {% set other_language_url = '/' + content.translated_content['en-us'].slug %} 
  {% elif content.translated_content['en'] %}
    {% set other_language_url = '/' + content.translated_content['en'].slug %} 
  {% else %}
    {% set other_language_url = '#' %} 
  {% endif %}
{% endif %}

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

...