Como posso restringir os resultados de uma pesquisa padrão no Drupal 7, para trazer apenas os nós que estão no idioma atual?
Meu site tem um alternador de três idiomas; o usuário escolhe qual idioma ele deseja usar ao visualizar o site. Se ele pesquisar alguma coisa, a página de resultados trará resultados de outros idiomas. Hoje, tenho apenas 3 idiomas ativados, mas planejamos expandir isso para 6 ou mais.
Existe uma maneira realmente elegante de fazer isso usando o aparentemente não documentado
hook_query_node_access_alter()
:Nota: este código é 100% baseado no excelente módulo Search Config .
Idioma do usuário x conteúdo
Alguns sites podem ter a detecção de idioma configurada para mostrar a interface no idioma preferido do usuário, enquanto o conteúdo da página é mostrado com base no URL ou no idioma do conteúdo.
Nesse caso, considere substituir
com
fonte
Eu tinha os mesmos requisitos e usei o módulo de pesquisa personalizada , que inclui um submódulo chamado Internacionalização de pesquisa personalizada : " pesquisar conteúdo de todo ou apenas o idioma atual e todo o tratamento de tradução de selos e selos " (observe que este módulo também fornece vários outros recursos como blocos de pesquisa personalizados). Funciona perfeitamente.
fonte
Não sei se o núcleo de pesquisa o suporta.
Eu vejo o projeto i18nluceneapi, mas ele não suporta a versão 7 no momento.
Estou usando o searchapi e crie facetas Language :). Pode ser usado no seu caso, criar facetas e filtro padrão na página de pesquisa.
fonte
Você pode usar o módulo Display suite, no qual pode escolher a opção Modo de exibição-> Idioma, que fornece os resultados da pesquisa no idioma atual que está no idioma atual do site.
fonte