# Detetar o idioma e o país do visitante (sem redirecionamento)

> Apresentação O módulo deteta o país do visitante (endereço IP) e os idiomas do navegador, e mostra um banner que sugere a mesma página na loja ou no idioma que…

- Página: <https://www.datafirefly.com/pt/documentation/language-country-geolocation-prestashop/>
- Idioma: pt
- Atualizado em: 2026-10-07
- Outros idiomas: [fr](https://www.datafirefly.com/documentation/language-country-geolocation-prestashop/index.md), [en](https://www.datafirefly.com/en/documentation/language-country-geolocation-prestashop/index.md), [es](https://www.datafirefly.com/es/documentation/language-country-geolocation-prestashop/index.md), [de](https://www.datafirefly.com/de/documentation/language-country-geolocation-prestashop/index.md), [it](https://www.datafirefly.com/it/documentation/language-country-geolocation-prestashop/index.md), [pl](https://www.datafirefly.com/pl/documentation/language-country-geolocation-prestashop/index.md), [nl](https://www.datafirefly.com/nl/documentation/language-country-geolocation-prestashop/index.md)
- Índice: <https://www.datafirefly.com/pt/documentation/llms.txt>

## Apresentação

O módulo deteta o país do visitante (endereço IP) e os idiomas do navegador, e mostra um banner que sugere a mesma página na loja ou no idioma que lhe correspondem. Nunca redireciona: os robots não veem o banner e as suas tags hreflang ficam intactas.

Compatível com PrestaShop 8.0 a 9.x, loja única e multiloja. O banner só aparece se existirem pelo menos dois destinos ativos (dois idiomas ou duas lojas).

## Instalação

1. Em **Módulos > Gestor de módulos**, clique em **Carregar um módulo** e envie o ficheiro ZIP.
2. O módulo cria automaticamente um destino por cada par loja e idioma ativo.
3. Abra a página do módulo com o botão **Configurar** ou pelo menu **Internacional > Sugestão de idioma e país**.

Em multiloja, instale o módulo no contexto «Todas as lojas» e confirme que está ativado em cada loja de destino. Uma etiqueta «Módulo não ativado nesta loja» avisa-o no separador Destinos.

## Ativar a deteção do país

O país é lido por esta ordem:

- no cabeçalho do seu CDN (Cloudflare, CloudFront, Vercel);
- num ficheiro MaxMind GeoLite2, se tiver um (caminho configurável);
- na base integrada, gratuita e de domínio público.

Para instalar a base integrada, clique em **Instalar a base** no painel ou em **Regras e deteção**. O ficheiro (cerca de 8 MB, IPv4 e IPv6) é transferido para `var/dflocalesuggest/` e lido localmente: nenhum IP de visitante é enviado a terceiros. O estado mostra a data e recomenda uma atualização após 45 dias.

Se o seu alojamento bloquear as ligações de saída, a transferência falha com uma mensagem clara. Coloque então um ficheiro .mmdb no servidor e indique o caminho em **Regras e deteção**.

## Destinos

Cada linha é um par loja e idioma que o banner pode sugerir.

- **Etiqueta**: substitui o nome da loja no banner (por exemplo «Brasil»).
- **Países**: códigos ISO separados por vírgulas (PT, BR). Vazio significa qualquer país. Outra loja limitada a outros países nunca é sugerida a um visitante cujo país é conhecido.
- **Idiomas do navegador**: códigos como pt, pt-br, en-gb.
- **Ordem**: arraste as linhas para desempatar dois destinos com a mesma pontuação.

**Adicionar os pares em falta** cria linhas para novas lojas ou idiomas sem alterar as existentes. Se o módulo DataFirefly Hreflang estiver instalado, **Importar do DataFirefly Hreflang** reaproveita os seus códigos (pt-BR dá o idioma pt e o país BR).

## Aparência

Escolha um tema, as quatro cores, o raio dos cantos, o tamanho do texto e o efeito vidro fosco. O posicionamento define-se separadamente para computador (barra superior ou inferior, cartão à esquerda ou à direita) e para móvel (cartão flutuante, barra). A pré-visualização ao vivo, à direita, mostra o resultado em computador e móvel antes de guardar.

- **Lembrete compacto**: se o visitante ignorar o banner e continuar a navegar, as páginas seguintes mostram apenas uma pílula.
- **Atraso de apresentação**: o banner aparece depois do carregamento da página mais este atraso.
- **Ocultar após recusa**: durante quanto tempo um visitante que clicou em «Ficar aqui» deixa de ser incomodado.

## Textos

O banner é escrito no idioma sugerido: um visitante alemão lê-o em alemão numa loja portuguesa. Cada idioma tem os seus textos, com variáveis inseridas num clique: `{language}`, `{country}`, `{store}`, `{currency}`. Um campo vazio usa o texto integrado.

## Regras e deteção

- **Quando país e idioma não coincidem**: prevalece o país (loja que entrega ao visitante) ou prevalece o idioma.
- **Respeitar visitantes multilingues**: sem sugestão de idioma se o idioma atual estiver entre os do navegador.
- **Ocultar para clientes com sessão iniciada**.
- **Páginas sem banner**: controladores excluídos, carrinho e checkout por predefinição. É aceite o caráter universal (module-meumodulo-*).
- **Esperar que o banner de cookies feche**: os principais gestores de consentimento são detetados e a lista de seletores CSS é editável.

## Testar antes de publicar

O separador **Simulador** indica, para um país e idiomas de navegador, se o banner é mostrado, com texto, ligação e pontuação de cada destino. Para ver o banner real na loja, adicione o seu IP em **Endereços IP de teste** e abra uma página com `?dfls_country=DE&dfls_lang=de`. A ligação «Ver na loja» do simulador faz isso por si.

## Estatísticas

O painel mostra os banners apresentados (uma vez por visita), cliques, recusas, taxa de cliques, atividade diária e classificações por destino e por país em 7, 30, 90 dias ou um ano. **Exportar CSV** transfere uma linha por dia, loja de origem, destino e país. Os contadores são agregados: não é guardado nenhum IP, cookie ou identificador de cliente.

## Comportamento do lado do visitante

- Um visitante que clica na sugestão ou muda sozinho de loja ou idioma deixa de receber sugestões no destino escolhido.
- O banner nunca é mostrado aos robots (Googlebot, Bingbot, Lighthouse) e tem `data-nosnippet`.
- O HTML das páginas é igual para todos: o módulo funciona com LiteSpeed Cache, Varnish e CDN.

## Para programadores

Eventos DOM em `document`: `dfls:shown`, `dfls:accept`, `dfls:dismiss`. Com a opção ativada, os eventos `dfls_shown`, `dfls_accept` e `dfls_dismiss` são enviados para o `dataLayer` do Google Tag Manager. O hook PHP `actionDflocalesuggestResponse` recebe a resposta por referência para alterar o texto, a ligação ou o destino.

## Resolução de problemas

### O banner não aparece

Verifique se o banner está ativo, se existem pelo menos dois destinos válidos, se a página não está excluída e se ainda não recusou ou aceitou uma sugestão neste navegador (limpe o armazenamento local do site). O simulador indica porque um destino é descartado.

### O país aparece como «Desconhecido» no back-office

É normal se testar a partir de um IP local ou privado. Use o simulador ou os parâmetros de teste.
