Acabamos de lançar o WPML 4.3, que inclui uma maneira completamente nova de traduzir strings. O painel de administração da Tradução de Strings parece o mesmo, mas funciona de forma diferente. Em vez de ler as traduções do banco de dados, ele gera e carrega arquivos .mo. Isso resulta em um uso muito mais leve do banco de dados para a tradução de strings.
Por que reescrevemos a Tradução de Strings?
A versão anterior da tradução de strings carregava as strings do banco de dados e tentava evitar o carregamento de arquivos .mo. Alguns dos grandes plugins do WordPress vêm com arquivos .mo enormes, que traduzem cada texto do plugin. Por exemplo, os arquivos .mo do WooCommerce têm um pouco mais de 8.000 strings. Outros plugins grandes têm contagens de strings semelhantes.
Quando você administra um site em inglês, o WordPress não carrega esses arquivos .mo. No entanto, quando você administra um site em qualquer outro idioma (apenas um idioma, não sites multilíngues), o WordPress carregará todos esses arquivos .mo. O carregamento desses arquivos leva de 100 ms a mais de um segundo, dependendo do servidor que você está usando. Esses arquivos .mo serão carregados em qualquer página na qual o plugin seja executado (normalmente, em todas as páginas do site).
Até o WPML 4.3, tentávamos otimizar esse mecanismo. O WPML tinha uma opção, que vinha ativada por padrão, para impedir que o tema e os plugins carregassem arquivos .mo. Em vez disso, verificávamos quais strings eram necessárias para cada página e carregávamos essas strings específicas do banco de dados.
O mecanismo funcionava bem em geral, mas às vezes tinha o efeito contrário. Quando um plugin acessava muitas strings em cada carregamento de página, o WPML carregava uma lista enorme de strings do banco de dados em vez de deixar o plugin carregar seu próprio arquivo .mo.
Como alguns plugins cresceram com o tempo, nosso mecanismo de otimização se tornou cada vez menos eficiente.
No WPML 4.3, decidimos que é hora de mudar a abordagem. Paramos de bloquear arquivos .mo e paramos de carregar strings do banco de dados. Agora o WPML não tenta otimizar os tempos de tradução de outros plugins ou temas, e otimiza apenas suas próprias strings.
Como isso afetará o tempo de carregamento do meu site?
Isso depende. Se o seu site era rápido até agora (como a maioria dos sites que usam o WPML), você não sentirá uma mudança significativa na velocidade. Por exemplo, em wpml.org, a maioria das páginas está um pouco mais rápida e algumas páginas levam um pouco mais de tempo para carregar.
O motivo pelo qual algumas páginas levam um pouco mais de tempo para carregar agora é porque há outros plugins carregando arquivos .mo enormes. O aumento de velocidade obtido com a otimização das traduções de strings é anulado pelos tempos de carregamento dos arquivos .mo de outros plugins.
No entanto, essas flutuações são muito pequenas e só podemos medi-las com ferramentas avançadas de análise de desempenho. Um site que funcionava rápido até agora geralmente continuará funcionando rápido com o WPML 4.3.
Alguns sites que sofriam com tempos de carregamento lentos agora carregarão muito mais rápido. Antes do WPML 4.3, alguns sites tinham dezenas de milhares de strings para carregar do banco de dados. Isso causava uma carga significativa no banco de dados, consumia muita RAM e causava longos tempos de carregamento de página. Esses sites verão uma melhoria muito significativa no desempenho.
Mais alguma otimização de desempenho a caminho?
Sim. Agora que removemos os principais problemas de desempenho decorrentes da tradução de strings, teremos mais oportunidades de otimização.
Esperamos encontrar problemas que exigirão trabalho com os autores de outros plugins e temas. O desempenho melhora mais quando plugins e temas carregam menos strings. A maioria dos outros autores de plugins e temas fica feliz em trabalhar conosco e estamos confiantes de que podemos resolver quase todos os problemas de desempenho que surgirem a seguir. O processo de otimização é quase sempre o mesmo:
- Dividir arquivos .mo enormes em vários arquivos menores
- Carregar os arquivos certos nas páginas certas
A segmentação trivial é entre as strings que são usadas no painel de administração e as strings que são exibidas no front-end. Otimizações mais profundas dividem ainda mais as strings do front-end de acordo com o tipo de página. Por exemplo, em sites de comércio eletrônico, não há necessidade de carregar as strings usadas no processo de checkout em todas as páginas.
Claro, quando há uma oportunidade de otimização dentro do próprio WPML, nós cuidamos disso imediatamente.
Atualize, meça e relate
O WPML 4.3 está sendo implantado agora mesmo. Estamos lançando-o gradualmente ao longo de uma ou duas semanas. Se os seus sites ainda não receberam essa atualização, dê um tempo e você verá a atualização em alguns dias. Você pode pular a fila e obter essa atualização imediatamente acessando a página Plugins –> Adicionar novo, clicando na aba Comercial e, em seguida, usando o botão Verificar atualizações.
Se você sentir que alguma página do seu site leva mais tempo para carregar, sugerimos que você instale o plugin Query Monitor (siga nosso tutorial sobre como analisar problemas de desempenho com o Query Monitor). Note que no WPML 4.3 corrigimos problemas significativos de compatibilidade com o Query Monitor, então os relatórios que você vê não são úteis para versões anteriores ao WPML 4.3.
Veja se as chamadas do WPML são as protagonistas nos relatórios de carregamento. Se forem, por favor, relate-nos no suporte técnico do WPML. Mesmo que você veja tópicos que pareçam semelhantes, inicie o seu próprio. Precisaremos de acesso ao seu site, então é melhor trabalhar em cada site separadamente.
Claro, ficaremos muito felizes em ouvir suas atualizações gerais sobre o desempenho (é igualmente útil relatar melhorias 🙂). Deixe seus comentários aqui e nós responderemos a você.

