WPML memorizza i dati relativi a lingua, traduzione e stringhe in tabelle del database personalizzate. Scopri come queste si collegano alle tabelle e ai contenuti di WordPress.
Modello di database di WPML
Il seguente diagramma mostra il modello delle tabelle utilizzate da WPML:

Tabella delle lingue e delle traduzioni
La tabella che contiene le informazioni sulla lingua e sulla traduzione si chiama icl_translations.
- Ogni elemento di contenuto del sito configurato come traducibile (articolo, pagina, tag, categoria, tipo di post personalizzato e tassonomie personalizzate) ha una voce in questa tabella. Nota: i commenti non sono traducibili ma hanno un record in icl_translations perché hanno informazioni sulla lingua a loro assegnate.
- La voce specifica la lingua dell'elemento e il gruppo di traduzione (tipo di elemento) a cui appartiene.
- Le voci dello stesso cluster di traduzione condividono lo stesso valore nelle colonne element_type e trid.
- La voce senza lingua di origine (NULL) nello stesso cluster è la voce originale.
Ha le seguenti colonne:
- translation_id – numero di serie
- element_type – il tipo dell'elemento. Questo valore viene spiegato e recuperato nell'hook wpml_element_type.
- element_id – l'ID dell'elemento (post_id per i tipi di post, term_taxonomy_id per i termini della tassonomia)
- trid – l'ID del gruppo di traduzione
- language_code – codice della lingua dell'elemento
- source_language_code – se tradotto, la lingua dell'elemento originale
Ad esempio, se abbiamo un articolo in inglese con ID=3, che viene tradotto in spagnolo e la traduzione spagnola ha ID=7, la tabella icl_translations si presenterà così:
| 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 |
| * Poiché le due voci hanno lo stesso valore trid per trid, sono traduzioni l'una dell'altra. Il valore in sé non è importante. | |||||

Sui siti più vecchi (creati prima di WPML 4.8), puoi eseguire un processo una tantum per ottimizzare le tabelle di traduzione.
Tabella delle bandiere dei paesi
WPML viene fornito con un'ampia collezione di bandiere dei paesi. Tieni presente che associare le lingue ai paesi può essere problematico. Molte lingue sono parlate (a volte in modo diverso) in paesi diversi. Tuttavia, le bandiere dei paesi sono ancora un utile indicatore visivo e aiutano i visitatori a individuare facilmente la loro lingua.
Le bandiere dei paesi di WPML sono memorizzate nella directory res/flags e la tabella icl_flags indica quale bandiera restituire per ogni paese. Le colonne della tabella icl_flags sono:
- id – numero di serie
- lang_code – il codice della lingua
- flag – il nome del file della bandiera
- from_template – “0”: prende la bandiera dalla cartella res/flags di WPML, “1”: prende la bandiera dalla directory del tema
Se vuoi usare una bandiera diversa, puoi caricare un file di bandiera personalizzata andando su WPML → Lingue e facendo clic su Modifica lingue.

Puoi usare questa stessa pagina Modifica lingue per aggiungere una lingua personalizzata.
Tabella di traduzione delle stringhe
La maggior parte dei siti WordPress include alcune stringhe che non appartengono a nessun elemento (articolo, pagina, tag, categoria) ma che devono comunque essere tradotte, ad esempio il motto del blog.
WPML include un meccanismo chiamato Traduzione stringhe, per gestire queste stringhe.
Le stringhe sono conservate nella tabella icl_strings con le seguenti colonne:
- id – numero di serie
- language – lingua
- context – il contesto della stringa (indica a cosa appartiene la stringa)
- name – nome della stringa
- value – il valore della stringa (il suo contenuto)
- string_package_id - ID del pacchetto a cui appartiene la stringa
- type – tipo di editor da usare quando si modifica la stringa tramite l'editor di traduzione ( LINE, AREA o VISUAL )
- title – il titolo della stringa da visualizzare nell'editor di traduzione
- status – stato della traduzione che indica se la stringa è completamente tradotta in tutte le lingue
- gettext_context – il contesto impostato nella funzione gettext, ad es. _x
- domain_name_context_md5 – chiave univoca per migliorare le prestazioni di ricerca
Le traduzioni di una stringa sono conservate nella tabella icl_string_translations:
- id – numero di serie
- string_id – l'ID (numero di serie) della stringa tradotta
- language – la lingua della traduzione
- status – lo stato della traduzione (completo / non completo)
- value – la traduzione stessa
- translator_id – id del traduttore
- translation_service – servizio di traduzione utilizzato per tradurre la stringa. Può essere vuoto, locale o un servizio remoto
- batch_id – ID del lotto quando una stringa viene tradotta da un servizio di traduzione
- translation_date – data della traduzione

Tutte le tabelle di WPML
Ecco un elenco completo di tutte le tabelle utilizzate da WPML:
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