Idiomas e moedas no cabeçalho

No seguinte siguiente tutorial, vamos a adicionar um menu para poder exibir os idiomas y moedas no cabeçalho.

HTML

1. Para começar, vamos criar um novo snipplet chamado navigation-lang.tpl dentro da pasta sniplets/navigation onde criamos o dropdown com as opções de idioma e moeda. Se você já tiver esse arquivo em seu layout, provavelmente só precisará fazer alguns ajustes ou ir diretamente para a etapa 2.

<ul class="list-unstyled font-small">
    {% for language in languages %}
        <li class="{% if not loop.last %}mb-2{% endif %}{% if language.active %} font-weight-bold{% endif %}">
            <a href="{{ language.url }}" class="d-flex align-items-center">
                <img class="lazyload mr-2" src="{{ 'images/empty-placeholder.png' | static_url }}" data-src="{{ language.country | flag_url }}" alt="{{ language.name }}" />
                {{ language.country_name }}
            </a>
        </li>
    {% endfor %}
</ul>

2. No arquivo navigation.tpl, onde está incluído o ícone do menu hambúrguer, adicionamos o link para idiomas e moedas.

{% if languages | length > 1 and settings.languages_header %}
    <span class="utilities-item nav-dropdown position-relative">
        {% include "snipplets/svg/globe.tpl" with {svg_custom_class: "icon-inline icon-w-16 svg-icon-text"} %}
        <div class="nav-dropdown-content desktop-dropdown-small position-absolute">
            {% include "snipplets/navigation/navigation-lang.tpl" with { header: true } %}
        </div>
    </span>
{% endif %}

3. Por fim para a parte HTML, precisamos adicionar na pasta SVG, um novo arquivo SVG para o ícone de idiomas chamado globe.tpl

<svg class="{{ svg_custom_class }}" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm179.3 160h-67.2c-6.7-36.5-17.5-68.8-31.2-94.7 42.9 19 77.7 52.7 98.4 94.7zM248 56c18.6 0 48.6 41.2 63.2 112H184.8C199.4 97.2 229.4 56 248 56zM48 256c0-13.7 1.4-27.1 4-40h77.7c-1 13.1-1.7 26.3-1.7 40s.7 26.9 1.7 40H52c-2.6-12.9-4-26.3-4-40zm20.7 88h67.2c6.7 36.5 17.5 68.8 31.2 94.7-42.9-19-77.7-52.7-98.4-94.7zm67.2-176H68.7c20.7-42 55.5-75.7 98.4-94.7-13.7 25.9-24.5 58.2-31.2 94.7zM248 456c-18.6 0-48.6-41.2-63.2-112h126.5c-14.7 70.8-44.7 112-63.3 112zm70.1-160H177.9c-1.1-12.8-1.9-26-1.9-40s.8-27.2 1.9-40h140.3c1.1 12.8 1.9 26 1.9 40s-.9 27.2-2 40zm10.8 142.7c13.7-25.9 24.4-58.2 31.2-94.7h67.2c-20.7 42-55.5 75.7-98.4 94.7zM366.3 296c1-13.1 1.7-26.3 1.7-40s-.7-26.9-1.7-40H444c2.6 12.9 4 26.3 4 40s-1.4 27.1-4 40h-77.7z"/></svg>


CSS

Requisito:

Ter adicionado helper classes em seu layout. Você pode seguir este pequeno tutorial para fazer isso (é só copiar e colar algumas classes, não leva mais que 1 minuto).

1.  Adicione os estilos no arquivo static/style-critical.tpl

Se em seu layout você usar um stylesheet para o CSS crítico, precisaremos do seguinte código dentro dele, do contrário, você pode unificar o CSS dos passos 2 e 3 em um único arquivo.

.font-small {
  font-size: 12px!important;
}
.nav-dropdown-content {
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s linear .3s, opacity .3s linear;
}

 2. Adicionamos o seguinte SASS de cores em style-colors.scss.tpl (ou na stylesheet do seu layout que possui as cores e fontes da loja). Lembre-se de que as variáveis de cores e fontes podem variar em relação ao seu layout:

.desktop-dropdown-small {
  background-color: $main-background;
}

3. Adicione os estilos no arquivo static/style-async.tpl

Se em seu layout você usar um stylesheet CSS assíncrono, precisaremos do seguinte código dentro dela, do contrário, você pode unificar o CSS dos passos 2 e 3 em um único arquivo.

.nav-dropdown-content:hover,
.nav-dropdown:hover .nav-dropdown-content {
  visibility: visible;
  opacity: 1;
  transition-delay: 0s;
}

.desktop-dropdown-small {
  top: calc(100% - 10px);
  left: -10px;
  z-index: 9;
  width: 150px;
  padding: 15px;
}

@media (min-width: 768px) { 

  {# /* //// Components */ #}

  {# /* Header */ #}

  .desktop-dropdown-small {
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
  }
}

Configurações

Vamos adicionar configurações para que possa habilitar idiomas e moedas no cabeçalho. Adicionamos o arquivo config/settings.txt na seção Cabeçalho:

checkbox
    name = languages_header
    description = Mostrar idiomas y monedas en el encabezado

Traduções

Nesta etapa adicionamos os textos para as traduções no arquivo config/translations.txt

es "Mostrar idiomas y monedas en el encabezado"
pt "Mostrar idiomas e moedas no cabeçalho"
es_mx "Mostrar idiomas y monedas en el encabezado"


Ativação

Por fim, para poder mostrar os idiomas e moedas no cabeçalho, você deve fazê-lo a partir da customização do seu layout na seção Cabeçalho: