WPML

Não há nada para traduzir na integração do ElasticPress. O plugin de compatibilidade faz com que o ElasticPress retorne resultados corretos para o idioma automaticamente; seu trabalho é instalar os componentes, executar a sincronização inicial e confirmar se os resultados parecem corretos.

Antes de começar

Instale e ative estes plugins no mesmo site:

Você também precisa de um endpoint do Elasticsearch: auto-hospedado ou um serviço gerenciado como ElasticPress.io (abre em uma nova aba), Elastic Cloud ou AWS OpenSearch. Configure o ElasticPress no seu host do Elasticsearch e confirme se ele indexa com sucesso em um site de um único idioma antes de adicionar a camada do WPML.

Configure seus idiomas do WPML antes de executar a primeira sincronização.

Como funciona a indexação por idioma

O WPML ElasticPress cria um índice separado do Elasticsearch para cada idioma no seu site. O índice de cada idioma contém:

  • Traduções para esse idioma para cada tipo de post traduzível.
  • Posts no idioma padrão para qualquer tipo de post configurado para usar o idioma padrão como substituto quando não existir uma tradução.
  • Cópias de posts não traduzíveis. O índice de cada idioma inclui essas cópias para que possam aparecer nos resultados da pesquisa independentemente do idioma do visitante.

Cada documento em um índice de idioma é analisado nesse idioma. Stopwords, stemming, abreviações, tratamento de plural e tempo verbal são todos específicos do idioma. É isso que faz com que a pesquisa em francês corresponda aos radicais franceses e a pesquisa em japonês corresponda à morfologia japonesa; sem a análise por idioma, o mecanismo de pesquisa aplicaria as regras de um idioma ao texto de todos os outros idiomas.

Para a pesquisa de cada visitante, o WPML ElasticPress direciona a consulta para o índice do idioma correspondente. O conjunto de resultados já é filtrado para o idioma certo antes do início da classificação de relevância.

Execute a sincronização inicial

Com os quatro plugins ativos e um endpoint do Elasticsearch configurado no ElasticPress, execute a sincronização inicial:

  1. Abra ElasticPressSync no painel de administração do WordPress.
  2. Clique em Start Sync.

O WPML ElasticPress aciona uma sincronização por idioma e cria os índices por idioma um após o outro. Em um site grande, isso pode levar algumas horas; a página relata o progresso à medida que a sincronização é executada.

Se você estiver atualizando do WPML ElasticPress 1.0 para a 2.0 ou posterior, reindexe. O formato do índice mudou quando a versão 2.0 introduziu os índices por idioma.

Após a sincronização inicial, as atualizações de conteúdo fluem para o índice certo automaticamente. Sempre que você cria, modifica ou exclui um post, o WPML ElasticPress atualiza o índice de idioma correspondente em segundo plano, com base no idioma desse post ou na configuração de tradução para o seu tipo de post.

Indexação de idiomas específicos com o WP-CLI

Para sites grandes, trabalhos agendados, scripts de implantação ou qualquer fluxo de trabalho em que a interface de administração não seja uma opção, o WPML ElasticPress fornece um comando do WP-CLI (wp wpml_elasticpress sync) que envolve a própria sincronização da CLI do ElasticPress e adiciona uma flag --post-lang para seleção de idioma.

Execute a sincronização inicial apenas para posts em inglês:

wp wpml_elasticpress sync --setup --post-type=post --post-lang=en

A flag --setup limpa os índices existentes antes da reconstrução. Após esse comando, a pesquisa em inglês retorna resultados em inglês; as pesquisas de outros idiomas não retornam nada porque seus índices ainda não foram criados.

Adicione um segundo idioma sem limpar os índices existentes:

wp wpml_elasticpress sync --post-type=post --post-lang=fr

Repita para cada idioma adicional. Omita --setup para que os idiomas indexados anteriormente permaneçam intactos.

Sincronize vários idiomas em uma única execução:

wp wpml_elasticpress sync --post-lang=en,es

Ajuste o tamanho do lote se a memória estiver limitada:

wp wpml_elasticpress sync --per-page=200

O tamanho padrão do lote é 350; reduzi-lo ajuda em servidores com restrição de memória.

Reconstrua todos os índices do zero:

wp wpml_elasticpress sync --setup

Isso limpa todos os índices de idioma e reconstrói todos eles. Use isso quando algo parecer errado em todos os idiomas ou após um grande upgrade.

Como verificar se as pesquisas do ElasticPress retornam conteúdo no idioma certo

A sincronização técnica é simples; o valor desta página está na verificação. Siga estas verificações após a conclusão da sincronização inicial e novamente sempre que você alterar conteúdo ou configurações que afetem o comportamento da pesquisa.

1. A pesquisa retorna resultados no mesmo idioma para cada idioma

No front-end, alterne o seletor de idiomas para cada idioma, um por vez, e pesquise um termo que você sabe que existe na forma traduzida.

  • Aprovado. A página de resultados lista apenas posts nesse idioma.
  • Reprovado. Resultados de outros idiomas aparecem junto com correspondências do mesmo idioma. A sincronização pode não ter sido concluída para esse idioma – verifique ElasticPressSync em busca de erros e execute novamente o comando do WP-CLI específico do idioma.

2. O conteúdo apenas no idioma de origem retorna zero resultados em outros idiomas

Escolha um post que exista apenas no seu idioma padrão – sem tradução nos outros idiomas do site. A partir de uma versão do site que não seja no idioma padrão, pesquise uma frase desse post.

  • Aprovado. Zero resultados. O post não está traduzido para o idioma do visitante, portanto, não deve aparecer.
  • Reprovado. O post aparece nos resultados. Isso geralmente significa que o tipo de post está configurado para usar o idioma padrão como substituto em WPMLConfiguraçõesTradução de tipos de post. Essa é uma configuração no nível do WPML, não um bug. Se você não pretendia usar o substituto, altere a configuração.

Abra um post traduzido no front-end. O widget Related Posts deve listar apenas outros posts no mesmo idioma.

  • Aprovado. Todos os posts relacionados têm links para conteúdo no mesmo idioma da página atual.
  • Reprovado. Aparecem posts relacionados de outros idiomas. Confirme se o recurso Related Posts está ativado em ElasticPressFeatures e se o índice de idioma para o idioma atual terminou a sincronização.

Se o recurso Documents estiver ativado no ElasticPress: faça o upload de um PDF traduzido para a versão no idioma de origem de um post e, em seguida, faça o upload de um PDF em outro idioma para a sua tradução. Pesquise uma frase que apareça apenas no PDF traduzido.

  • Aprovado. A pesquisa no front-end do idioma correspondente retorna o PDF certo; a pesquisa no idioma de origem não retorna o PDF traduzido e vice-versa.
  • Reprovado. PDFs de outros idiomas aparecem nos resultados. Sincronize novamente após ativar o recurso Documents. O comando wp wpml_elasticpress sync --setup reconstrói todos os índices com a indexação de documentos.

5. As pesquisas no back-end (termos, comentários, usuários) filtram por idioma

Se você ativou os recursos Terms, Comments ou Users em ElasticPressFeatures, pesquise-os no painel de administração do WordPress e confirme se os resultados são filtrados pelo idioma atual da administração. Isso afeta os usuários que pesquisam no back-end de um site multilíngue.

6. A sincronização em multisite não limpa os índices de sites irmãos

Se você executa o WPML e o ElasticPress em uma rede multisite, execute uma sincronização de índice em um site e depois verifique os outros sites da rede. Seus índices ainda devem estar intactos.

  • Aprovado. A indexação de um site deixa os índices dos sites irmãos intocados.
  • Reprovado. Os índices irmãos estão vazios. Pare, execute novamente as sincronizações nos sites afetados e relate o problema ao suporte do WPML para que eles possam confirmar se você está enfrentando um problema histórico de multisite ou um novo.

Se todas as verificações acima forem aprovadas, sua pesquisa multilíngue está funcionando conforme o projetado.

Recursos suportados do ElasticPress

Atualmente, o WPML ElasticPress torna os seguintes recursos do ElasticPress sensíveis ao idioma:

  • Pesquisa de posts. Pesquisa no front-end em posts, páginas e tipos de post personalizados.
  • Related Posts. O widget de posts relacionados filtra para correspondências no mesmo idioma.
  • Documents. Pesquisa dentro de PDFs anexados, .docx, .pptx e outros tipos de arquivo.
  • Terms, Comments e Users. Pesquisas no back-end.

Os recursos de pesquisa específicos do WooCommerce no ElasticPress (descoberta de produtos, filtragem facetada de produtos, pesquisa instantânea de produtos em catálogos) não são multilíngues no momento. A cobertura multilíngue para a pesquisa do WooCommerce está no roteiro do WPML; até que seja lançada, a pesquisa do WooCommerce em sites multilíngues flui pelo tratamento padrão do WooCommerce Multilingual do WPML, e não pelo ElasticPress.

Armadilhas comuns

  • A sincronização não foi executada após a ativação de um novo recurso do ElasticPress. Ativar Documents ou Related Posts em ElasticPressFeatures não adiciona retroativamente esses documentos ao índice. Sincronize novamente após alternar os recursos.
  • Sincronização do WP-CLI sem --setup após uma grande alteração. Se você alterou quais tipos de post são traduzíveis, quais recursos estão ativados ou fez um grande upgrade do WPML ElasticPress, execute wp wpml_elasticpress sync --setup para reconstruir todos os índices do zero.
  • O modelo de resultados de pesquisa do tema ignora os filtros do ElasticPress. Alguns temas personalizados implementam sua própria consulta de resultados de pesquisa que não passa pelo ElasticPress. Se os resultados parecerem errados apenas no front-end (e passarem nas verificações de administração), o modelo do tema pode precisar de atualização.
  • A pesquisa de produtos do WooCommerce retorna resultados em idiomas misturados. Isso não é um problema de sincronização. É a lacuna de cobertura do WooCommerce mencionada acima. Por enquanto, direcione a pesquisa de produtos pelo tratamento padrão do WooCommerce Multilingual.
  • O texto dos documentos não aparece na pesquisa. Confirme se o recurso Documents está ativado em ElasticPressFeatures e se uma sincronização foi executada desde a sua ativação.

Escrito porAmir

Escrito porAmir