Desafios da Busca avançada numa aplicação multilíngue

Saudações aos companheiros de jornada,

após 15 dias de dedicação total, compartilhada apenas com meu galinheiro e minha horta, posso dizer que está concluída a primeira etapa de implementação do Tainacan ao meu acervo de 30 anos de atividade fotográfica na Amazônia.

O propósito dessa primeira etapa se resume na estrutura básica da aplicação, como as taxonomias, principalmente palavras-chave construídas sobre um vocabulário controlado que me acompanha desde o início da profissão.

Os sete primeiros items da primeira coleção estão indexados da melhor maneira possível, nesta etapa. A janela de criação do item contém todas as informações desejadas e distribuidas em três Sections, uma para cada idioma (3). Por exemplo, há três Títulos, três Descrições… três campos de palavras-chave… etc.

Para publicação dos itens, preciso criar três Posts sincronizados pelo plugin Polylang, cada Post contém:

  1. a Galeria de Mídia do Item, com todas as imagens e documentos relacionados com a foto de capa (destaque). Um problema que preciso resolver é que todas as imagens sempre possam apareçam em sua proporção original. Me incomoda ver uma imagem retangular espremida num quadrado;
  2. a Seção de Metadados do Item onde entram todos os campos de descrição do Item. Alguns campo são copiados e colados nos outros idiomas. Por exemplo a GeoLocalização só tem no idioma em português, mas é copiada e colada na página dos outros dois idiomas.

Esses dois blocos geram cada Post em cada idioma.

Na estrutura do site, a Página Inicial contém uma galeria de TODOS os Posts Recentes, que são de dois tipo, Blog e Acervo. Sendo que no Menu principal, após a Home há dois links que separam os Artigos do Blog dos Items do Acervo.

Agora é o momento de inserir conteúdo no sistema, corrigindo e aperfeiçoando as Taxonomias, A importância dessa próxima etapa é a de facilitar a visualização do usuário, e certamente isso vai desaguar no assunto que mais desafia: a Busca. Nisso estou ainda navegando numa nevoa intensa, estou pensando numa nuvem de palavras-chave para cada idioma. Por isso estou trabalhando estas taxonomias com fartura de detalhes (cada imagem pode ter até mais de 30 palavras-chave. Porém numa Busca avançada não vejo ainda como evitar a mistura dos idiomas na página dos resultados, não pode ter palavras-chave iguais nas taxonomia por idioma. Por exemplo, se eu coloco Manaus em português, no inglês estou colocando City of Manaus. Agora se o usuário inglês coloca apenas Manaus numa busca avançada, vai receber os dois resultados, inglês e português. Aqui as coisas se confundem, se eu deixo a busca apenas em links definidos fica simples, mas se eu deixo ao usuário a capacidade de personalizar a sua busca, ai não sei o que pode sair.

Fico feliz em compartilhar meu fluxo de trabalho, espero que possa servir de inspiração para os novos adeptos do Tainacan e, ao mesmo tempo, agradeço por sugestões dos calejados programadores. Por favor não poupe suas críticas, esse é o momento de decisões determinantes.

Fraternalmente, leo

4 curtidas

Na continuação, o assunto da busca, como previsto, não responde a busca por Posts, sim por itens do Tainacan. O Tainacan tem um item composto que coloca num único registro os metadados de três idiomas, para publicar o Item eu preciso criar 3 Posts (um para cada idioma) onde podem ser visualizados os documentos e a Section do idioma correspondente. A publicação do conteudo funciona perfeitamente, cada qual no seu lugar. A Busca já é outra coisa.

Por exemplo, criei uma nuvem de palavras-chave com a Taxonomia do Tainacan “Palavras-chave_PT, ou seja, são as palavras-chave da Section Português. Do mesmo jeito existem Keywords_EN, para a Section_EN, e 关键词_CN, para a Section_CN. Na criação destas três Taxonomia eu cuidei para que não haja termos iguais: o termo “Manaus” em inglês não poderia ser o mesmo Manaus, assim que fico “City of Manaus”. Em chinês se diferencia por causa dos ideogramas.

O comportamento da Nuvem, como temia, ficou ancorado ao Item do Tainacan e não ao Post do Wordpress como seria desejável. Ao clicar um termo da Nuvem resulta numa lista de Itens, e cada Item mostra o conteúdo dos três idiomas, ou seja mostra o Item inteiro.

O desejável seria que, se a nuvem de palavras-chave é de português ela apresenta os Posts com aquela palavra-chave e só em português… ou seja, em vez de mostrar uma página padrão do Tainacan, deveria mostrar os Posts do idioma correspondente.

Neste ponto, acho que o mínimo a fazer é de informar o Tainacan onde eu quero que envie os dados de determinado idioma (Section) , então adicionei três metadados URL ao Item (a URL do Post). Isso, acredito eu, estabelece o ponto de mudança da busca. Por agora, aqui estou procurando…

Das buscas feita na internet resulta que eu preciso de um plugin ou de uma modificacão do comportamento do template (function.php), porém não trabalho com códigos, apenas posso colar um código já pronto num determinado lugar.

Aceito sugestões com a promessa de manter o processo de modificações público e disponível para outros usuários que queram trilhar o mesmo caminho.

Saudações, Leo

Aqui está o link da nuvem de palavras-chave

Salve @leoprincipe!

Estes relatos que você trás são interessantes do ponto de vista da experimentação do que é possível fazer, com as estratégias adotadas (múltiplas páginas, metadado composto, seção de metadado, etc), mas acho que também são prova de que não há uma solução fácil para isso. Se houvesse, com certeza o próprio WordPress já teria soluções nativas e até mesmo no Tainacan!

Isto é normal.. para adicionar qualquer coisa em código você teria que ou editar o arquivo functions.php do seu tema (o que não é recomendável a menos que você crie um tema filho, visto que atualizações ao tema sobrescreveriam tudo) ou criar um arquivo de plugin, ou ainda usar um plugin que te permita inserir snippets de código. Qualquer um destes caminhos, na minha opinião, não deveria ser seguido a menos que você tenha um plano concreto do que quer mudar e uma compreensão do que o código feito vai fazer. Porque nada disso é simples. Superficialmente parece que falamos de alguns “Ifs”, olhar em um lugar e buscar em outro a depender do idioma… mas de novo, não é bem assim. Se fosse simples, já haveriam soluções oficiais. E sair mexendo em código abre brechas para erros e falhas de segurança.

É claro algumas coisas podem ser repensadas na forma de demandas mais específicas. Parte da dificuldade está também em explicar a demanda para um desenvolvedor ou mesmo para uma LLM. Mesmo assim corre o risco de se resolver uma ponta solta só para se descobrir outra.

Em resumo se alguém com um pouco de conhecimento em programação topar te apoiar eu até incentivo seguir adiante nestes experimentos. Pode ser que alguém aqui na comunidade mesmo tenha este interesse. Mas não saia copiando e colando códigos sem saber o que fazem, dificilmente vão resolver algo tão específico sem precisar de adaptações ao contexto, ok?

Certo mateus.m.luna, você está certissimo, basicamente o site não é ainda de produção, é inteiramente experimental, por isso parei a criacão de items.

Estou experimentando uma pista com os 3 metadados URL_Post_PT, URL_Post_EN, URL_Post_CN, Esse é o link dos Posts que publicam o Item. Já cria-se uma conexão.

Grato pelas tuas sugestões, ajudam muito.

Bom-dia Mateus, a tua prudência sobre intervenção no código, deixo soar meu sino de alerta, pois realmente esta abordagem é um pulo no vazio.

Isso me fez pensar e repensar, achando que deve ter outra solução, e, de repente a solução apareceu, pelo menos é o que eu acredito.

A idéia que surgiu no meu pensamento inconformado é que precisa deixar a faixa intermediária do Item e subir de nível para a Coleção. Ou seja, eu estou querendo mudar a estratégia. O item vai voltar a ser um único idioma. A publicação dos 3 idiomas vai ser agora uma função da Coleção: vou fazer 3 Coleções do mesmo acervo, Acervo_PT, Acervo_EN e Acervo_CN.

Desse jeito a publicação das Galerias e do Item pode acontecer dentro do Tainacan, a busca, mais facilmente filtrada pela Coleção, aproveita o farto e especializado ambiente do Tainacan.

Assim, por fora, estou visualizando uma boa paisagem, agora vou meter mão na massa e fazer a mudança.

Tenho umas perguntas para você:

  • é melhor criar os Metadados no Repositório ou dentro de cada Coleção
  • apenas o Blog vai ficar no ambiente do Wordpress (elimino os três Posts do Acervo)… criar o template nas páginas do Wordpress ou deixar as coisas fluirem por dentro do Taicanan com os templates do Tainacan
  • eu tenho como modificar esses templates, com os recursos básicos do Customizer?

Eu apenas acredito, você tem uma visão mais ampla do Tainacan, pode me dizer a funcionalidade correta desse método? Vale a pena tentar?

Abraço fraterno, Leo

Perdão, outra pergunta:

qual é a sua opinião sobre o template Tainacan Interface?

Hhahaha modelagem é assim, quanto mais quebramos a cabeça mais queremos mudar, e em geral pra melhor.

Eu gosto da saída… se de fato já haveria um esforço meio que duplicação no contexto dos metadados, levar isso pras coleções deixa as coisas um pouco mais próximas de como o Tainacan trabalha. Uma dó é que os documentos (os arquivos) acabarão sendo duplicados. Mas você pode contornar isso também… se enviar os documentos pra uma coleção (a pt, por exemplo) e nas outras coleções usar documento tipo URL ao invés de anexo. Daí você copia a URL do anexo (não do item, do anexo) e usa a opção “O link leva para uma imagem externa”. Isso vai meio que simular como se a imagem de fato estivesse naquele item, mesmo que na verdade está no outro.

Use os metadados de repositório somente para as coisas que você deseja que existam em todos os contextos. É claro que você pode sair desabilitando eles no contexto da coleção mas isso pode dar um trabalho. Uma coisa importante a se reforçar é que somente os metadados “título”, “Descrição” e os nível repositório aparecerão nas chamadas “listas de itens do termo de taxonomia” que são aquelas listas prefiltradas pelo termo onde você vai parar quando clica em um link de termo.

Não tenho certeza se entendi mas a grand diferença é que o conteúdo do blog você edita com o editor de blocos (gutenberg) e lá você realmente tem uma liberdade maior para inserção de conteúdo e layout.

Tem algumas opções que você pode explorar sim no Customizer, mas depende. na minha resposta a seguir complemento:

O Tainacan Interface foi desenvolvido em um momento mais inicial do projeto, quando havia uma equipe maior e também uma pretensão de se oferecer uma espécie de “layout padrão” para acervos Tainacan.

Rapidamente fomos percebendo que manter o desenvolvimento dele com a missão de oferecer muitas opções de ajustes de layout seria uma batalha meio perdida e até contraditória com esta ideia de “padrão”. São simplesmente muitas coisas que se pode esperar mudar em um tema. Estrutura, aparência, posicionamentos, comportamentos, etc…. e com tantas variações possíveis, pense em tamanho de tela, modo escuro, e por fim, diferentes estilos para diferentes coleções. Você não vai encontrar muitas no Tainacan Interface. Hoje nosso foco é em desenvolver no plugin opções que possam ser consumidas por desenvolvedores dos temas, e não só o Tainacan Interface.

Por isso de forma geral o que eu digo é: se você não tem um plano muito definido para uma identidade visual própria e também não tem muito tempo para ficar customizando a aparência do seu acervo, pode ficar com o Tainacan Interface. Ele não vai ser o mais bonitão, mas atende aos requisitos básicos. Agora se os layouts dele estão te limitando e você já chegou neste ponto onde precisa de mais, mude para o Blocksy em conjunto com o nosso plugin de integração. Além do menu personalizar dele ter muito mais opções (como as de responsividade que mencionei) ele também nos dá uma interface para definir layouts diferentes por coleção. Isto significa que a página do seu item da coleção A pode ser totalmente diferente da página do item da coleção B. É bem mais poderoso mas também significa gastar mais tempo explorando estas opções, porque dentro do menu personalizar você passa a ter um painel de opções dentro do outro, dentro do outro….

Por fim para os mais aventureiros, temos também um tema FSE em desenvolvimento, o Tainá. Nele não existe menu personalizar, tudo é feito usando o editor de blocos. É interessante mas também tem seus desafios para se compreender como a lógica dos templates funcionam no editor de sites.

Valeu Mateus, você me adiantou muito! Vou fazer as mudanças…

Este tópico foi fechado automaticamente 60 dias depois da última resposta. Novas respostas não são mais permitidas.