O WPML armazena dados de idioma, tradução e strings em tabelas de banco de dados personalizadas. Aprenda como elas se conectam às tabelas e ao conteúdo do WordPress.
Modelo de banco de dados do WPML
O diagrama a seguir mostra o modelo das tabelas que o WPML usa:

Tabela de idioma e tradução
A tabela que contém as informações de idioma e tradução é chamada icl_translations.
- Cada elemento de conteúdo do site configurado como traduzível (post, página, tag, categoria, tipo de post personalizado e taxonomias personalizadas) tem uma entrada nesta tabela. Nota: Os comentários não são traduzíveis, mas têm um registro em icl_translations porque têm informações de idioma atribuídas a eles.
- A entrada especifica o idioma do item e o grupo de tradução (tipo de elemento) ao qual ele pertence.
- As entradas do mesmo cluster de tradução compartilham o mesmo valor nas colunas element_type e trid.
- A entrada sem idioma de origem (NULL) no mesmo cluster é a entrada original.
Ela tem as seguintes colunas:
- translation_id – número de série
- element_type – o tipo do elemento. Este valor é explicado e recuperado no hook wpml_element_type.
- element_id – o ID do item (post_id para tipos de post, term_taxonomy_id para termos de taxonomia)
- trid – o ID do grupo de tradução
- language_code – código de idioma do item
- source_language_code – se traduzido, o idioma do item original
Por exemplo, se tivermos um post em inglês com ID=3, que é traduzido para o espanhol, e a tradução em espanhol tiver ID=7, a tabela icl_translations ficará assim:
| translation_id | element_type | element_id | trid | language_code | source_language_code |
|---|---|---|---|---|---|
| 1 | post_post | 3 | 2 | en | NULL |
| 2 | post_post | 7 | 2 | es | en |
| * Como as duas entradas têm o mesmo valor trid para trid, elas são traduções uma da outra. O valor em si não é importante. | |||||

Em sites mais antigos (criados antes do WPML 4.8), você pode executar um processo único para otimizar as tabelas de tradução.
Tabela de bandeiras de países
O WPML vem com uma grande coleção de bandeiras de países. Esteja ciente de que associar idiomas a países pode ser problemático. Muitos idiomas são falados (às vezes de forma diferente) em países diferentes. No entanto, as bandeiras de países ainda são uma pista visual útil e ajudam os visitantes a identificar seu idioma facilmente.
As bandeiras de países do WPML são armazenadas no diretório res/flags e a tabela icl_flags indica qual bandeira retornar para cada país. As colunas da tabela icl_flags são:
- id – número de série
- lang_code – o código do idioma
- flag – o nome do arquivo da bandeira
- from_template – “0”: pega a bandeira da pasta res/flags do WPML, “1”: pega a bandeira do diretório do tema
Se você quiser usar uma bandeira diferente, você pode fazer o upload de um arquivo de bandeira personalizada indo para WPML → Idiomas e clicando em Editar idiomas.

Você pode usar esta mesma página Editar idiomas para adicionar um idioma personalizado.
Tabela de Tradução de Strings
A maioria dos sites WordPress inclui algumas strings que não pertencem a nenhum item (post, página, tag, categoria), mas ainda precisam ser traduzidas – por exemplo, o slogan do blog.
O WPML inclui um mecanismo chamado Tradução de Strings, para lidar com essas strings.
As strings são mantidas na tabela icl_strings com as seguintes colunas:
- id – número de série
- language – idioma
- context – o contexto da string (indica a que a string pertence)
- name – nome da string
- value – o valor da string (seu conteúdo)
- string_package_id - ID do pacote ao qual a string pertence
- type – tipo de editor a ser usado ao editar a string através do editor de tradução ( LINE, AREA ou VISUAL )
- title – o título da string para exibir no editor de tradução
- status – status de tradução indicando se a string está totalmente traduzida para todos os idiomas
- gettext_context – o contexto definido na função gettext, ex.: _x
- domain_name_context_md5 – chave exclusiva para melhorar o desempenho de pesquisa
As traduções de uma string são mantidas na tabela icl_string_translations:
- id – número de série
- string_id – o ID (número de série) da string que está sendo traduzida
- language – o idioma da tradução
- status – o status da tradução (completo / incompleto)
- value – a tradução em si
- translator_id – id do tradutor
- translation_service – serviço de tradução usado para traduzir a string. Pode ser vazio, local ou um serviço remoto
- batch_id – ID do lote quando uma string é traduzida por um serviço de tradução
- translation_date – data da tradução

Todas as tabelas do WPML
Aqui está uma lista completa de todas as tabelas que o WPML usa:
wp_icl_background_taskwp_icl_content_statuswp_icl_core_statuswp_icl_flagswp_icl_languageswp_icl_languages_translationswp_icl_locale_mapwp_icl_message_statuswp_icl_mo_files_domainswp_icl_nodewp_icl_reminderswp_icl_stringswp_icl_string_batcheswp_icl_string_packageswp_icl_string_positionswp_icl_string_statuswp_icl_string_translationswp_icl_translatewp_icl_translate_jobwp_icl_translationswp_icl_translation_batcheswp_icl_translation_downloadswp_icl_translation_status