Skip Navigation
Updated
Febbraio 24, 2023

WPML è in grado di leggere un file di configurazione che indica cosa deve essere tradotto nei temi e nei plugin. Il file si chiama wpml-config.xml ed è collocato nella cartella principale del plugin o del tema.

Contenuto

  1. Lo scopo del file di configurazione della lingua
  2. Generare automaticamente il file wpml-config.xml
  3. Struttura e sintassi
  4. Utilizzo del file di configurazione della lingua di WPML con i temi figlio

Scopo

Per ottenere la compatibilità con WPML, dovreste anche creare un file di configurazione che vi aiuterà a mantenere la compatibilità nelle vostre versioni future. WPML può tradurre qualsiasi cosa sul vostro sito WordPress, ma dovete dirgli cosa deve essere tradotto. Questo file lo fa.

Andare alla pagina WPML Impostazioni.

Pagina delle impostazioni di WPML
Pagina delle impostazioni di WPML

Questa pagina indica a WPML tutto ciò che deve sapere, compresi i campi personalizzati da tradurre o sincronizzare, i post e le tassonomie personalizzate che devono essere multilingue e persino i testi di amministrazione da tradurre.

Il file di configurazione della lingua include queste informazioni, in modo che ogni utente non debba inserirle manualmente nella pagina di amministrazione.

Per alcuni temi e plugin, i file di configurazione della lingua sono ospitati sui nostri server. L’elenco è disponibile qui. È impostato per sovrascrivere il file di configurazione della lingua locale che si trova nella cartella principale del tema o del plugin.

WPML consente anche di sovrascrivere manualmente le impostazioni caricate dai file di configurazione delle lingue dei temi e dei plugin. Questo vale sia per i file di configurazione della lingua all’interno della cartella principale del tema o del plugin, sia per i file di configurazione della lingua ospitati sui nostri server.

Generare automaticamente il file wpml-config.xml

Se non avete familiarità con la creazione di file XML, il nostro team ha creato il plugin Multilingual Tools che facilita questo compito. Sebbene sia stato inizialmente concepito come strumento per aiutare gli autori di temi e plugin a rendere i loro prodotti pronti per il multilinguaggio, può essere facilmente utilizzato per generare il proprio file wpml-config.xml.

Per saperne di più sulla generazione del file wpml-config.xml, visitare la pagina del plugin Multilingual Tools. In particolare, si veda la sezione Come si generano i file di configurazione della lingua usando gli strumenti multilingue?

Una volta ottenuto il file di configurazione, aggiungerlo alla radice della cartella del tema. Se ne avete già uno, non sovrascrivetelo. Invece, modificare il file XML originale e aggiungere il codice generato con il plugin Multilingual Tools.

Si prega di notare che questo plugin non è destinato a essere utilizzato sui siti in produzione.

Per leggere questo tutorial e costruire i file di configurazione della lingua per i propri temi e plugin, si può iniziare con questo esempio –
wpml-config.zip
.

È necessario modificarlo, ma è possibile utilizzare le sezioni e la struttura di questo file.

Struttura e sintassi

Il contenuto del file wpml-config.xml deve essere racchiuso in questi tag

<wpml-config>

e

</wpml-config>

Attualmente, in questo file di configurazione è possibile configurare le seguenti impostazioni di dati e di traduzione:

  1. Contenuto del costruttore di pagine
  2. Campi personalizzati
  3. Termini personalizzati
  4. Tipi personalizzati
  5. Tassonomie personalizzate
  6. Blocchi Gutenberg
  7. Testi dell’amministratore / wp_options
  8. Configurazione del commutatore di lingua

1. Shortcodes e page builder di contenuti

WPML consente di utilizzare il file wpml-config.xml per definire i codici brevi da aggiungere alla traduzione dei contenuti.

Negli esempi che seguono, vi mostriamo come registrare gli shortcode del costruttore di pagine. È possibile utilizzare la stessa struttura di codice per registrare tutti i tipi di shortcode per la traduzione.

1.1 Tradurre le stringhe

Consideriamo un esempio in cui è stato aggiunto un separatore di testo a una pagina utilizzando Visual Composer. Questo separatore ha un titolo e il suo shortcode ha il seguente aspetto:

[vc_text_separator title="Separator Title"]

Per tradurre il titolo di questo separatore di testo, dobbiamo aggiungere alcune righe al nostro file wpml-config.xml. In questo modo, WPML “saprà” che il titolo di quel separatore deve essere tradotto. Questo segue la stessa logica utilizzata per i tipi di post personalizzati, i campi personalizzati e altri.

Il codice seguente è un esempio di ciò che occorre aggiungere al file wpml-config.xml in questo caso.

Esaminiamo la struttura dell’esempio precedente:

  • Iniziare con il tag shortcodes. Tutti i codici brevi del sito che devono essere tradotti devono essere inseriti in questo tag.
  • Quindi utilizzare il tag shortcode per avvolgere tutti i tag appartenenti a un unico shortcode.
  • Il tag chiamato tag viene utilizzato per definire il nome dello shortcode. In questo caso si tratta del separatore vc_text_separator. È possibile aggiungere etichette personalizzate per la visualizzazione sia nell’Editor delle traduzioni avanzato che nell’Editor delle traduzioni classico. Queste etichette sono incluse anche nell’esportazione in file XLIFF. Si veda l’esempio seguente sulle etichette di tag e attributi.
  • Gli shortcode possono avere uno o più attributi, quindi li avvolgiamo nel tag attributes (plurale) e usiamo il tag attribute (singolare) per definire il titolo di ciascun attributo.

I costruttori di pagine includono (a volte) elementi di design che hanno attributi di collegamento.

Si può fare in modo che i link interni puntino automaticamente alla versione tradotta di quel post usando il file wpml-config.xml nuova opzione shortcode link: type=”link”.

È possibile utilizzare l’attributo encoding con questo. Gestisce le codifiche speciali utilizzate dai vari page builder. L’attributo di codifica è solitamente specifico del costruttore di pagine utilizzato. Accetta i seguenti valori:

  • base64 – shortcode HTML grezzo di Visual Composer. L’HTML viene memorizzato come stringa base64 nello shortcode.
  • vc_link – Formattazione speciale dei link per Visual Composer.
  • av_link – Formattazione speciale dei link per Enfold.
  • allow_html_tags – Normalmente i tag HTML vengono eliminati dagli attributi degli shortcode. Impostare la codifica su allow_html_tags se l’attributo shortcode deve consentire i tag HTML. Questa opzione deve essere utilizzata con cautela, poiché consentire i tag HTML in alcune situazioni può incasinare la formattazione e potrebbe costituire un problema di sicurezza.

Se state pensando di usare shortcode codificati con l’url, assicuratevi di leggere la pagina sulla traduzione degli shortcode codificati con l’url.


L’aggiunta di etichette a tag e attributi consente di visualizzare etichette personalizzate nell’Editor di traduzione avanzato o nell’Editor di traduzione classico. Questo può aiutare il traduttore a comprendere meglio il contesto della stringa.

Definizione delle etichette personalizzate dei codici brevi nell'Editor di traduzione avanzato
Definizione di etichette personalizzate per i codici brevi nell’Editor di traduzione avanzato

1.2 Tradurre i media

È possibile utilizzare WPML Media Translation per tradurre le immagini nel contenuto del costruttore di pagine. Ciò avviene tramite la conversione degli ID delle immagini e degli URL delle immagini. È necessario indicare al costruttore di pagine che utilizza gli shortcode come effettuare questa conversione. Il codice seguente è un esempio di ciò che occorre aggiungere al file wpml-config.xml in questo caso.

È possibile utilizzare i seguenti valori:

  • ignore-content – Può essere usato all’interno di un elemento tag. Questo valore è opzionale e può essere 0 o 1. È possibile utilizzare questo attributo per ottenere la retrocompatibilità dei nuovi codici multimediali. Se il valore è impostato su 1 , il contenuto dello shortcode non verrà elaborato.
  • tipo – Può essere usato all’interno di un elemento tag. Si può anche utilizzare il contenuto dello shortcode che contiene l’URL del media come valore opzionale all’interno di media-url.
  • tipo – può essere utilizzato anche all’interno di un elemento attributo. In questo caso, può avere uno dei seguenti valori opzionali:
    • media-ids – un elenco separato da virgole di ID dei media.
    • media-url – URL del media
    • link – punta a un’altra pagina del sito e WPML lo convertirà automaticamente nell’URL della pagina tradotta

1.3 Tradurre i widget del costruttore di pagine

A partire da WPML 4.4.4, è ora possibile registrare i widget del costruttore di pagine nel file di configurazione della lingua. Consultare la nostra pagina di documentazione su come registrare i widget del costruttore di pagine per la traduzione.

1.4 Conversione automatica degli ID degli shortcode

A partire da WPML 4.5.9, è possibile dichiarare gli ID dei post o dei termini della tassonomia negli attributi degli shortcode. Questi ID possono essere convertiti automaticamente nel front-end del sito.

Ad esempio, se si considera il seguente shortcode:

[foo_product_list product_ids="12,34,56"]

Possiamo dichiarare che l’attributo product_ids contiene gli ID dei post con la seguente configurazione:

&lt;codice breve&gt;
    &lt;tag ignore-content="1"&gt;foo_product_list&lt;/tag&gt;
    &lt;attributi&gt;
        &lt;attributo type="post-ids" sub-type="product"&gt;prodotto&lt;/attributo&gt;
    &lt;/attributi&gt;
&lt;/codice di scorrimento&gt;

Sul front-end, lo shortcode verrà automaticamente convertito in:

[foo_product_list product_ids="13,35,57"]

È possibile utilizzare i seguenti attributi di configurazione:

  • tipo: o post-ids o taxonomy-ids
  • sottotipo (opzionale) – può essere l’entità specifica del tipo, se è già nota. Ad esempio, product per il tipo di post personalizzato Product. Se non è definita, l’entità specifica verrà indovinata.

La conversione degli ID è versatile e cerca di adattarsi alla maggior parte dei formati possibili di ID (ID singolo, elenco di ID, array serializzato, array codificato JSON).

2. Campi personalizzati

È necessario fornire il nome del campo personalizzato e anche l’azione che WPML dovrebbe intraprendere: tradurre, copiare, copiare una volta, ignorare.

Questo blocco dovrà essere annidato sotto il tag <wpml-config>.

È possibile impostare le seguenti opzioni di traduzione per i campi personalizzati:

  • translate: consente all’utente di tradurre il valore del campo personalizzato. Questi campi vengono visualizzati nella schermata dell’Editor di traduzione e possono essere inviati a qualsiasi servizio di traduzione professionale.
  • copia: questa azione copia il valore del campo personalizzato della lingua predefinita nelle lingue secondarie. Ciò significa che l’aggiornamento del valore del campo personalizzato della lingua predefinita sarà sempre copiato nella lingua secondaria. I campi personalizzati impostati su copia non vengono visualizzati nella schermata dell’Editor delle traduzioni.
  • copy-once: il valore del campo personalizzato viene copiato nella lingua secondaria durante il processo di traduzione iniziale. I campi personalizzati che utilizzano l’azione copy-once non vengono visualizzati nella schermata dell’Editor delle traduzioni. Tuttavia, l’utente può modificare il valore del campo personalizzato della lingua secondaria in modo che sia diverso da quello predefinito, utilizzando la schermata di modifica del post. È preferibile impostare i campi personalizzati che contengono impostazioni come il colore di sfondo, il colore dei caratteri, la dimensione dei caratteri e altri, in modo che siano copiati una volta sola. Ciò consente all’utente di avere impostazioni diverse per i contenuti tradotti rispetto a quelle impostate per i post e le pagine nella lingua predefinita. Ad esempio, l’utente vuole impostare il colore di sfondo dello stesso elemento in giallo nella lingua predefinita e in blu nella lingua secondaria. Si noti che la modifica di un campo impostato su copia una volta non segnerà il campo come da aggiornare. Questo perché il campo non viene copiato in una traduzione esistente, ma solo quando viene creata la traduzione.
  • ignora: questa azione elimina la copia del campo personalizzato nella lingua secondaria.

È possibile aggiungere attributi ai tag <custom-field>. Questi attributi personalizzano i testi delle istruzioni nell’Editor di traduzione avanzato o nell’Editor di traduzione classico.

  • Lo stile può essere linea, textarea o visual, per visualizzare rispettivamente una singola linea, un’area di testo o un WYSIWYG.
  • viene visualizzata l’etichetta accanto al campo.
  • gruppo specifica se il campo personalizzato appartiene a un gruppo e quale deve essere l’etichetta del gruppo. Quando un campo è in un gruppo:

* Il campo viene rimosso dalla sezione dei campi personalizzati.

* Il campo viene aggiunto alla sezione del gruppo correlato.

È inoltre possibile aggiungere gli attributi opzionali encode per modificare la codifica rispetto al valore predefinito(nessuna codifica). L’attributo Encoding accetta i seguenti valori:

  • json
  • base64
  • urlencode

L’attributo consente di utilizzare più codifiche. In questo caso, i valori devono essere separati da una virgola, ad esempio encoding="json,base64".

Quando si utilizza questo contenuto wpml-config.xml, questi campi personalizzati vengono visualizzati nell’Editor di traduzione avanzato o nell’Editor di traduzione classico, come mostrato nell’immagine seguente.

Editor di traduzione avanzato
Editor di traduzione classico

Etichette di campo personalizzate nell’Editor di traduzione avanzato

Etichette di campo personalizzate nell’Editor di traduzione classico

2.1 Traduzione delle sottochiavi nei campi personalizzati

WPML traduce di default tutte le sottochiavi dei campi personalizzati. È possibile aggirare questo comportamento specificando quali sottochiavi devono essere tradotte.

È anche possibile utilizzare i caratteri jolly nello stesso modo in cui vengono utilizzati per i testi Admin:

  • Abbinare tutti i sottocampi che iniziano con titolo- utilizzando il codice:
    <key name="title-*" />
  • Corrisponde a tutti i sottocampi e viene generalmente utilizzato per corrispondere a un indice di matrice utilizzando il codice:
    <key name="*" />
  • Per ottenere [{"title":"First title"},{"title":"Second title"}] utilizzare il codice

3. Termini personalizzati

È necessario fornire il nome del termine personalizzato e anche l’azione che WPML dovrebbe intraprendere: tradurre, copiare, copiare una volta, ignorare.

Questo blocco dovrà essere annidato sotto il tag <wpml-config>.

È possibile impostare le seguenti opzioni di traduzione per i campi personalizzati:

  • translate: consente all’utente di tradurre il valore del termine personalizzato. Questi termini vengono visualizzati nella schermata dell’Editor di traduzione e possono essere inviati a qualsiasi servizio di traduzione professionale.
  • copia: questa azione copia il valore del termine personalizzato della lingua predefinita nelle lingue secondarie. Ciò significa che l’aggiornamento del valore del termine personalizzato della lingua predefinita verrà sempre copiato nella lingua secondaria. I termini personalizzati impostati per la copia non vengono visualizzati nella schermata dell’Editor di traduzione.
  • copy-once: il valore del termine personalizzato viene copiato nella lingua secondaria durante il processo di traduzione iniziale. I termini personalizzati che utilizzano l’azione copy-once non vengono visualizzati nella schermata dell’Editor delle traduzioni. Tuttavia, l’utente può modificare il valore del termine personalizzato della lingua secondaria in modo che sia diverso dalla lingua predefinita utilizzando la schermata di modifica del post.
  • ignora: questa azione elimina la copia del termine personalizzato nella lingua secondaria.

4. Tipi personalizzati

I tipi di post personalizzati che WPML deve tradurre.


È possibile aggiungere l’attributo “display-as-translated” al tag per mostrare i tipi di post nella lingua predefinita, se non esiste una traduzione.

È possibile aggiungere l’attributo “automatic” al tag per escludere un tipo di post dalla traduzione automatica quando si utilizza la modalità Traduci tutto. Si noti che se si utilizza questo attributo, l’intero file di configurazione della lingua funzionerà solo per le versioni 4.5.0 e successive di WPML.

5. Tassonomie personalizzate

Le tassonomie personalizzate che il plugin potrebbe utilizzare e che sono già registrate in WP.

Nota: le tassonomie che non necessitano di traduzione possono essere semplicemente omesse da questo elenco.

È possibile aggiungere l’attributo “display-as-translated” al tag per mostrare le tassonomie nella lingua predefinita, se non esiste una traduzione.

6. Blocchi Gutenberg

Con l’editor Gutenberg, si costruiscono i contenuti utilizzando i blocchi.

È possibile specificare quali parti del blocco Gutenberg devono essere tradotte aggiungendo le impostazioni a wpml-config.xml.

Xpath viene utilizzato per definire le parti di testo che devono essere tradotte.

6.1 Registrazione dei blocchi di Gutenberg come traducibili

Supponiamo di avere un’immagine che viene mostrata con il seguente codice:

Vogliamo tradurre i valori degli attributi figcaption e alt di questa immagine.

Per ottenere questo risultato, è necessario inserire il seguente codice in wpml-config.xml:

Tenere presente che il tipo è core/image e non wp:image, poiché questo è il valore restituito dall’API del blocco.

È possibile specificare quali campi del blocco Gutenberg sono collegamenti. WPML sostituirà quindi tutti i link con le rispettive traduzioni, se disponibili.

6.2 Traduzione degli attributi del blocco

Ecco un esempio di formato per la definizione di un blocco editore:

È possibile utilizzare l’elemento chiave nello stesso modo in cui viene utilizzato con la configurazione Admin texts / wp_options. Questo significa anche che si possono avere elementi chiave all’interno di elementi chiave padre.

È possibile utilizzare l’attributo label per aggiungere etichette personalizzate opzionali che vengono visualizzate nell’Editor di traduzione avanzato accanto agli elementi del blocco. Quando l’attributo label fa parte del tag gutenberg-block, sarà usato come etichetta di riserva per gli elementi del blocco che non hanno un’etichetta specifica definita.

Etichetta di riserva nell'Editor di traduzione avanzato
Etichetta di riserva nell’Editor di traduzione avanzato

L’attributo search-method può avere uno dei due valori:

  • caratteri jolly (predefinito)
  • regex.

I caratteri jolly possono essere utilizzati nello stesso modo in cui vengono utilizzati per i testi amministrativi. Ciò significa che nell’attributo name si può usare un asterisco(*). Ecco un esempio di un blocco:

È possibile impostare la definizione del blocco utilizzando un carattere jolly:

Questo ci permetterà di tradurre “Il titolo” e “Il contenuto”, poiché sono gli unici attributi che iniziano con myp.

La regex ci consente di avere un’espressione regolare nell’attributo name. Questo può essere estremamente utile per le configurazioni complesse. Ecco un esempio di un blocco:

È possibile impostare la definizione del blocco con un’espressione regolare:

Questo ci consentirà di tradurre “Il titolo” e “Il contenuto”, poiché sono gli unici attributi che non iniziano con _.

Alcuni plugin di blocco salvano i dati in una stringa JSON codificata dall’URL all’interno dell’attributo di un blocco. L’attributo di codifica consente di decodificare la stringa e di registrare le sue sottochiavi per la traduzione.

Ad esempio, il plugin LazyBlocks memorizza il contenuto dei campi ripetitori in una stringa JSON codificata:

È possibile registrare le sottochiavi nome e cognome utilizzando la seguente configurazione XML:

6.3 Spazio dei nomi dei blocchi

È possibile avere una configurazione globale per lo spazio dei nomi dei blocchi.

Se la configurazione del blocco è la stessa per tutti i blocchi di uno spazio dei nomi, può essere scritta in questo modo:

6.4 Conversione automatica degli ID nei blocchi

La conversione degli ID è versatile e cerca di adattarsi alla maggior parte dei formati possibili di ID (ID singolo, elenco di ID, array serializzato, array codificato JSON).

Considerando il seguente blocco:

&lt;!-- wp:foo/form {"ids":[27,28]} --&gt;
&lt;div class="wp-block-foo-form-wrap"&gt;
	&lt;form class="foo-form" action="" method="post"&gt;
		&lt;input type="hidden" name="foo_form_post_ids" value="27,28" /&gt;
		&lt;input type="submit" /&gt;
	&lt;/forma&gt;
&lt;/div&gt;
&lt;/wp:foo/form --&gt;

Possiamo dichiarare, come ID del post, l’attributo ids del blocco e il valore dell’attributo tag HTML foo_form_post_ids come di seguito:

&lt;gutenberg-block type="foo/form" translate="0"&gt;
  &lt;nome chiave="ids"&gt;
    &lt;key name="*" type="post-ids" sub-type="post" /&gt;
  &lt;/Chiave&gt;
  &lt;xpath type="post-ids" sub-type="post"&gt;//*[@name="foo_form_post_ids"]/@value&lt;/xpath&gt;
&lt;/gutenberg-block&gt;

Il blocco verrà convertito con la massima priorità nel filtro render_block_data, come indicato di seguito:

&lt;!-- wp:foo/form {"ids":[42,43]} --&gt;
&lt;div class="wp-block-foo-form-wrap"&gt;
	&lt;form class="foo-form" action="" method="post"&gt;
		&lt;input type="hidden" name="foo_form_post_ids" value="42,43" /&gt;
		&lt;input type="submit" /&gt;
	&lt;/forma&gt;
&lt;/div&gt;
&lt;/wp:pippo/form →

È possibile utilizzare i seguenti attributi di configurazione:

  • tipo – può essere post-ids o taxonomy-ids
  • sottotipo (opzionale): può essere l’entità specifica del tipo, se è già nota. Ad esempio, product per il tipo di post personalizzato Product. Se non è definita, l’entità specifica verrà indovinata.

7. Testi dell’amministratore / wp_options

Stringhe che fanno parte delle opzioni che i plugin o i temi salvano nella tabella wp_options.

Quando i temi e i plugin usano get_option, leggono i valori dalla tabella wp_options. WPML può filtrare queste chiamate e fornire la traduzione dei valori di queste opzioni.

Questo funziona se il record wp_option è una semplice stringa, ma anche se è un array serializzato.

Per tradurre una singola opzione, aggiungere una voce chiave in admin-texts. Per tradurre un array serializzato, aggiungere diverse chiavi sotto una chiave, come si può vedere in my_plugin_options nell’esempio seguente.

È possibile utilizzare il carattere jolly * nelle sottochiavi, come nel caso seguente.

È uguale a questo codice:

Si noti che il carattere jolly * NON funziona nelle chiavi genitore:

8. Configurazione del commutatore di lingua

Abilita una configurazione specifica per il selettore delle lingue integrato in WPML. Può essere utilizzato anche per ripristinare la configurazione del selettore delle lingue se è stata modificata dal backend (rispetto ai valori iniziali).

Per vedere le nuove modifiche, assicurarsi di fare clic sul pulsante Ripristina impostazioni predefinite nella parte inferiore della pagina WPML → Lingue.

 


Non tutte queste sezioni devono essere presenti nel file di configurazione, ma solo quelle che si applicano al vostro plugin o tema.

Utilizzo del file di configurazione della lingua di WPML con i temi figlio

Se si utilizza un tema figlio, il file di configurazione della lingua del tema padre sovrascrive quello del tema figlio. WPML offre una pagina di configurazione che consente di sovrascrivere facilmente le impostazioni personalizzate.

Consideriamo un esempio in cui il file di configurazione della lingua del tema principale imposta il tipo di post personalizzato “Property” come traducibile.

Il file di configurazione della lingua madre sta impostando la proprietà tipo di post personalizzato per tradurre

Se si utilizza un tema figlio e si desidera impostare il tipo di post personalizzato “Proprietà” come non traducibile, accedere alla pagina WPMLImpostazioni e fare clic sulla scheda Configurazione XML personalizzata. Utilizzare l’editor per impostare il tipo di post personalizzato “Property” come non traducibile. È sufficiente impostare il valore dell’attributo translate a 0 anziché a 1.

Sovrascrivere le impostazioni di configurazione della lingua del tema padre
Sovrascrivere le impostazioni di configurazione della lingua del tema padre

Le impostazioni della scheda Configurazione XML personalizzata hanno la priorità sulle impostazioni del file di configurazione della lingua nel tema principale.