Aprenda a registrar o conteúdo personalizado do construtor de páginas para tradução usando o arquivo wpml-config.xml. Registre strings, mídia, widgets de construtores de páginas, IDs de shortcode e muito mais.
Este guia é para desenvolvedores que criam temas e plugins ou adicionam código personalizado de construtor de páginas ao seu site.
Se você usa um construtor de páginas de terceiros e não consegue traduzir os widgets personalizados no seu site, entre em contato com o suporte do WPML.
Precisa gerar um arquivo wpml-config.xml? Visite nosso guia passo a passo para gerar automaticamente um arquivo de configuração usando o plugin Multilingual Tools.
Traduza strings
Vamos considerar um exemplo em que você tem um separador de texto adicionado a uma página usando o Visual Composer. Esse separador tem um título, e seu shortcode é assim:
[vc_text_separator title="Separator Title"]
Para traduzir o título deste separador de texto, você precisa adicionar algumas linhas ao seu arquivo wpml-config.xml. Dessa forma, o WPML “saberá” que o título desse separador precisa de tradução.
O código a seguir é um exemplo do que você precisa adicionar ao arquivo wpml-config.xml neste caso.
Exemplo de como adicionar um shortcode de construtor de páginas ao arquivo wpml-config.xml
<wpml-config>
<shortcodes>
<shortcode>
<tag>vc_text_separator</tag>
<attributes>
<attribute>title</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>Vamos analisar a estrutura do exemplo acima:
- Comece com a tag shortcodes. Quaisquer shortcodes no seu site que precisem ser traduzidos devem ser colocados sob esta tag.
- Use a tag shortcode para envolver todas as tags pertencentes a um único shortcode.
- Use a tag chamada tag para definir o nome do shortcode. Neste caso, é o vc_text_separator. Se você preferir, pode adicionar rótulos personalizados opcionais às tags. Esses rótulos serão exibidos ao lado do texto tanto no Editor de tradução avançado quanto no Editor de tradução clássico. Arquivos XLIFF exportados também incluem esses rótulos. Veja o exemplo abaixo de como adicionar rótulos a tags e atributos.
- Os shortcodes podem ter um ou mais atributos, então você precisa envolvê-los na tag attributes (plural) e usar a tag attribute (singular) para definir o título de cada atributo.
Construtores de páginas (às vezes) incluem elementos de design que têm atributos de link.
Você pode fazer com que os links internos apontem automaticamente para a versão traduzida desse post usando a opção de link: type="link".
Você pode usar o atributo encoding com isso. Ele lida com a codificação especial que vários construtores de páginas usam. O atributo de codificação geralmente é específico para o construtor de páginas que você usa. Ele aceita os seguintes valores:
- base64 – Shortcode de HTML bruto do Visual Composer. O shortcode armazena o HTML como uma string base64.
- vc_link– Formatação especial de link para o Visual Composer.
- vc_values – Codificação especial do Visual Composer para valores em widgets progress-bar, pie-chart e line-chart.
- av_link – Formatação especial de link para o Enfold.
- allow_html_tags– Geralmente, as tags HTML são removidas dos atributos de shortcode. Defina a codificação como allow_html_tags se o atributo do shortcode dever permitir tags HTML. Use isso com cautela, pois permitir tags HTML em algumas situações pode bagunçar a formatação e pode ser um problema de segurança.
Exemplo de como adicionar um atributo de link de shortcode: type="link"
<wpml-config>
<shortcodes>
<shortcode>
<tag>av_button</tag>
<attributes>
<attribute>label</attribute>
<attribute type="link" encoding="av_link">link</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>Se você está pensando em usar shortcodes urlencoded, certifique-se de ler a página sobre como traduzir shortcodes urlencoded.
Exemplo de como adicionar rótulos de tag e atributo
<wpml-config>
<shortcodes>
<shortcode>
<tag label="My shortcode label">my_shortcode</tag>
<attributes>
<attribute label="Shortcode title">title</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>Adicionar rótulos a tags e atributos permite que você exiba rótulos personalizados no Editor de tradução avançado ou no Editor de tradução clássico. Isso pode ajudar o tradutor a entender melhor o contexto da string.
Agrupe campos para uma melhor organização
Para melhorar a clareza e a organização da sua configuração XML, você pode prefixar os rótulos dos campos com o nome do grupo. Considere este exemplo de um botão de CTA:
<wpml-config>
<shortcodes>
<shortcode>
<tag label="Call To Action: Content">et_pb_cta</tag>
<attributes>
<attribute label="Call To Action: Title">title</attribute>
<attribute label="Call To Action: Button Text">button_text</attribute>
<attribute label="Call To Action: Button URL" type="link">button_url</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>
Aqui, cada atributo do shortcode et_pb_cta carrega um rótulo Call To Action: . O WPML não repassa esses rótulos para o Editor de tradução avançado: o tradutor vê cada atributo como um campo próprio, agrupado sob o shortcode, e diferencia os campos pelo texto que cada um contém. O atributo label ainda faz parte do formato de configuração e ainda vale a pena ser definido:

Traduza mídia
Você pode usar o WPML Media Translation para usar imagens diferentes para idiomas diferentes no conteúdo do construtor de páginas. Isso é feito convertendo os IDs de imagem e as URLs de imagem. Você deve “dizer” ao construtor de páginas que usa shortcodes como fazer essa conversão. O código a seguir é um exemplo do que você precisa adicionar ao arquivo wpml-config.xml neste caso.
Exemplo de como adicionar um shortcode de construtor de páginas ao arquivo wpml-config.xml para tradução de imagens
<wpml-config>
<shortcodes>
<shortcode>
<!-- Convert media IDs in `gallery_ids` attribute, and ignore the shortcode content -->
<tag ignore-content="1">et_pb_gallery</tag>
<attributes>
<attribute type="media-ids">gallery_ids</attribute>
<attributes>
</shortcode>
<shortcode>
<!-- Convert the media URL in the content, translate some string attributes for `title` and `alt`, convert media URL in `src` attribute -->
<tag type="media-url">et_pb_image</tag>
<attributes>
<attribute>title_text</attribute>
<attribute>alt</attribute>
<attribute type="media-url">src</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>Você pode usar os seguintes valores:
- ignore-content – Você pode usá-lo dentro de um elemento tag. Este valor é opcional e pode ser 0 ou 1. Você pode usar este atributo para obter compatibilidade com versões anteriores para novos shortcodes de mídia. Se o valor for definido como 1, o conteúdo do shortcode não será processado.
- type – Você pode usá-lo dentro de um elemento tag. Você também pode usar o conteúdo do shortcode que contém a URL de mídia como o valor opcional dentro de media-url.
- type – Você também pode usá-lo dentro de um elemento attribute. Neste caso, ele pode ter um dos seguintes valores opcionais:
- media-ids – uma lista separada por vírgulas de IDs de mídia.
- media-url – URL da mídia
- link – aponta para outra página no site e o WPML a converterá automaticamente para a URL da página traduzida
Traduza mídia em atributos de bloco
Você também pode usar os tipos de atributo media-url e media-ids com blocos do Gutenberg para traduzir mídias, como imagens de fundo. Isso funciona de forma semelhante aos shortcodes, mas usa o elemento <gutenberg-block> com elementos <key> aninhados para definir type="media-url" e type="media-ids".
O uso deste elemento permite que nosso complemento WPML Media Translation traduza imagens de fundo.
Isso funciona tanto para blocos do Gutenberg quanto para o Divi 5. Esta versão do Divi usa blocos para armazenar conteúdo, então o elemento <gutenberg-block> funciona para adicionar a tradução de mídia.
Aqui está um exemplo de como adicionar a tradução de mídia para atributos de bloco do Gutenberg:
<wpml-config>
<gutenberg-blocks>
<gutenberg-block type="divi/section" translate="1">
<key name="module">
<key name="decoration">
<key name="background">
<key name="desktop">
<key name="value">
<key name="image">
<key name="url" type="media-url" />
</key>
</key>
</key>
</key>
</key>
</key>
</gutenberg-block>
</gutenberg-blocks>
</wpml-config>
Traduza widgets de construtores de páginas
O WPML permite que você registre widgets de construtores de páginas dentro do seu arquivo de configuração de idiomas. Para informações detalhadas, veja nossa página de documentação sobre como registrar widgets de construtores de páginas para tradução.
Converta automaticamente IDs de shortcode
A partir do WPML 4.5.9, você pode declarar os IDs de posts ou termos de taxonomia localizados em atributos de shortcode. Esses IDs podem então ser convertidos automaticamente no frontend do seu site.
A partir do WPML 4.8, essa mesma lógica se estende a IDs de objeto armazenados em textos de administração, bem como a IDs em campos personalizados de posts e campos de termos de taxonomia personalizada.
Por exemplo, considere o seguinte shortcode:
[foo_product_list product_ids="12,34,56"]
Você pode declarar que o atributo product_ids contém IDs de post com a seguinte configuração:
Como declarar que o atributo product_ids contém IDs de post
<shortcode>
<tag ignore-content="1">foo_product_list</tag>
<attributes>
<attribute type="post-ids" sub-type="product">product_ids</attribute>
</attributes>
</shortcode>No frontend, o shortcode é convertido automaticamente para:
[foo_product_list product_ids="13,35,57"]
Você pode usar os seguintes atributos de configuração:
- type – pode ser post-ids ou taxonomy-ids
- sub-type (opcional) – uma entidade específica do type se já for conhecida. Por exemplo, product para o tipo de post personalizado Product proveniente do WooCommerce. Se não for definido, a entidade específica será inferida.
A conversão de ID é versátil e tenta se adaptar à maioria dos formatos possíveis de IDs (ID único, lista de IDs, array serializado, array codificado em JSON).
Nomes de atributos com um curinga
Alguns shortcodes armazenam IDs em muitos atributos com nomes semelhantes, por exemplo, include_category, include_portfolio_category e include_product_cat. Uma linha <attribute> pode cobrir todos eles. Coloque * no nome do atributo:
Como declarar todos os atributos include_ e exclude_ como contendo IDs de taxonomia
<shortcode>
<tag>fusion_post_cards</tag>
<attributes>
<attribute type="taxonomy-ids" exclude="include_product_skus">include_*</attribute>
<attribute type="taxonomy-ids" exclude="exclude_product_skus">exclude_*</attribute>
</attributes>
</shortcode>- * corresponde a uma ou mais letras, dígitos, _ ou -.
- * funciona apenas com type="post-ids" e type="taxonomy-ids".
- O WPML faz a correspondência exata do restante do nome. O WPML não aceita expressões regulares em nomes de atributos.
- exclude (opcional) – uma lista separada por vírgulas de nomes completos de atributos. O WPML não converte os IDs nesses atributos. Use-o para atributos que correspondem ao nome, mas não contêm IDs, como include_product_skus.
Recursos adicionais
Para saber mais sobre o arquivo wpml-config.xml , visite o guia Arquivos de configuração de idiomas.
Para personalizar outros elementos usando o arquivo wpml-config.xml, visite nossos guias adicionais:
- Registre widgets personalizados de construtores de páginas para tradução
- Traduza shortcodes personalizados com o WPML
- Defina opções de tradução para campos personalizados usando o arquivo de configuração do WPML
- Registre termos, tipos e taxonomias personalizadas como traduzíveis
- Torne os blocos personalizados do Gutenberg traduzíveis
- Traduza textos que temas e plugins salvam em wp_options
- Personalize o seletor de idiomas do WPML usando o arquivo de configuração do WPML