Come Tradurre le Lingue RTL in WordPress: Arabo, Ebraico, Persiano

Hai appena finito di tradurre il tuo tema WordPress in arabo. Carichi il file .mo, cambi la lingua del sito e il risultato è illeggibile. Il testo va a capo a sinistra, i pulsanti si sovrappongono e il tuo layout attentamente progettato sembra essere stato tritato.
Benvenuto nel mondo delle lingue da destra a sinistra (RTL), dove la traduzione è solo metà della battaglia.
Arabo, ebraico e persiano (farsi) sono tra le lingue più parlate al mondo. Solo l'arabo ha oltre 400 milioni di madrelingua. Se il tuo sito WordPress ignora questo pubblico, stai lasciando sul tavolo un sacco di soldi. Ma servirli richiede più che scambiare parole inglesi con parole arabe. Richiede di ripensare l'intera direzione del tuo layout.
Questa guida copre tutto ciò che devi sapere: come funziona RTL in WordPress, come correggere il tuo CSS, come gestire i file .po con stringhe RTL e come evitare le insidie più comuni.
Come Funziona RTL in WordPress
WordPress ha il supporto RTL integrato. Quando imposti la lingua del tuo sito in arabo (ar), ebraico (he) o persiano (fa), WordPress aggiunge automaticamente dir="rtl" al tag <html> e carica un foglio di stile rtl.css se il tuo tema ne fornisce uno.
Questa è la teoria. In pratica, la maggior parte dei temi viene fornita con un supporto RTL minimo o non funzionante.
Cosa Cambia Effettivamente
Quando si attiva la modalità RTL, il browser rispecchia l'intero layout della pagina:
- Il testo scorre da destra a sinistra.
- Le barre laterali si scambiano di lato.
- I menu di navigazione invertono l'ordine.
- I valori di padding e margin si invertono (sinistra diventa destra).
- Le icone con significato direzionale (frecce, chevron) devono essere rispecchiate.
Se il CSS del tuo tema è stato scritto solo per LTR, ogni dichiarazione margin-left, padding-right, float: left e text-align: left ora sta combattendo contro il motore RTL del browser.
Correggere il Tuo CSS per RTL: Una Guida Pratica
L'approccio più pulito è quello di utilizzare le Proprietà Logiche CSS, che si adattano automaticamente alla direzione di scrittura del documento. Invece di left e right, usi inline-start e inline-end.
Prima: Proprietà Fisiche (Si Rompono in RTL)
/* LTR-only CSS -- breaks in Arabic */
.sidebar {
float: left;
margin-right: 20px;
}
.nav-arrow {
padding-left: 10px;
text-align: left;
}
.card {
border-left: 3px solid #0073aa;
}
Dopo: Proprietà Logiche (Funzionano in Entrambe le Direzioni)
/* Direction-agnostic CSS -- works in both LTR and RTL */
.sidebar {
float: inline-start;
margin-inline-end: 20px;
}
.nav-arrow {
padding-inline-start: 10px;
text-align: start;
}
.card {
border-inline-start: 3px solid #0073aa;
}
Con le proprietà logiche, scrivi il tuo CSS una volta e funziona correttamente sia in inglese che in arabo senza alcuna sovrascrittura.
Il Metodo di Sovrascrittura [dir="rtl"]
Se non puoi rifattorizzare l'intero foglio di stile, puoi indirizzare specificamente RTL utilizzando i selettori di attributo:
[dir="rtl"] .sidebar {
float: right;
margin-left: 20px;
margin-right: 0;
}
[dir="rtl"] .nav-arrow {
padding-left: 0;
padding-right: 10px;
text-align: right;
}
Questo funziona, ma raddoppia il tuo onere di manutenzione. Ogni volta che aggiorni i tuoi stili LTR, devi anche aggiornare le sovrascritture RTL.
Tradurre File PO con Stringhe RTL
La traduzione stessa introduce sfide che vanno oltre il layout. Le lingue RTL hanno caratteristiche uniche che fanno inciampare la maggior parte degli strumenti automatizzati.
Testo Bidirezionale (Bidi) nei File PO
La vera complessità appare quando il testo RTL e LTR si mescolano in una singola stringa. Considera questo schema comune di WordPress:
msgid "Powered by %s"
msgstr "مدعوم بواسطة %s"
Il segnaposto %s verrà sostituito con un nome di prodotto inglese come "WooCommerce". Nell'output renderizzato, il browser deve visualizzare il testo arabo che scorre da destra a sinistra, quindi passare da sinistra a destra per la parola inglese, quindi potenzialmente tornare indietro.
Questo è chiamato testo bidirezionale (o "bidi") ed è gestito dall'Algoritmo Bidirezionale Unicode. Il più delle volte funziona automaticamente. Ma quando hai più segnaposto o numeri adiacenti al testo RTL, l'ordine visivo può diventare imprevedibile.
Errori di Traduzione Comuni
Gli strumenti di traduzione generici commettono diversi errori specifici per RTL:
-
Ordine dei segnaposto invertito. Una stringa come
%1$s out of %2$spotrebbe far scambiare i segnaposto perché l'IA li riordina per corrispondere alla grammatica araba. Questo produce un output errato come "10 out of Page" invece di "Page out of 10." Scopri di più su come proteggere le variabili di codice durante la traduzione. -
Direzionalità HTML interrotta. Se la tua stringa contiene HTML in linea come
<span dir="ltr">, un traduttore ingenuo potrebbe rimuovere l'attributodiro tradurlo. -
Forme plurali mancanti. L'arabo ha sei forme plurali -- zero, uno, due, pochi, molti e altro. Questo è il sistema plurale più complesso di qualsiasi lingua supportata da WordPress. Uno strumento che genera solo due forme (come l'inglese singolare/plurale) lascerà il tuo file
.poarabo rotto. Per un approfondimento su come funzionano i plurali Gettext, consulta la nostra guida sulla pluralizzazione complessa in WordPress.
Ecco come appare una stringa plurale araba tradotta correttamente in un file .po:
# Arabic: nplurals=6
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "لا تعليقات"
msgstr[1] "تعليق واحد"
msgstr[2] "تعليقان"
msgstr[3] "%d تعليقات"
msgstr[4] "%d تعليقًا"
msgstr[5] "%d تعليق"
Se una qualsiasi di queste sei forme è vuota o errata, WordPress tornerà alla stringa inglese per quel conteggio specifico. I tuoi utenti vedranno "5 comments" in inglese sparsi in un'interfaccia altrimenti completamente araba.
Testare la Tua Implementazione RTL
Tradurre e correggere il CSS non è sufficiente. Devi verificare il risultato in un browser reale.
Una Rapida Checklist di Test
- Cambia la lingua di WordPress in arabo in Impostazioni > Generale. Non limitarti ad aggiungere
dir="rtl"manualmente -- usa l'impostazione della lingua reale in modo che WordPress carichi le proprie sovrascritture RTL. - Controlla i menu di navigazione. Sono rispecchiati? I menu a tendina si aprono nella direzione corretta?
- Ispeziona i campi del modulo. Il testo di input dovrebbe scorrere da destra a sinistra. Il testo segnaposto dovrebbe essere allineato a destra.
- Verifica il contenuto a direzione mista. Le stringhe che contengono sia arabo che inglese (come marchi o URL) dovrebbero essere renderizzate nell'ordine visivo corretto.
- Testa su dispositivo mobile. I bug del layout RTL sono spesso più gravi sugli schermi più piccoli dove c'è meno spazio per gli errori di allineamento.
Se le tue traduzioni non vengono visualizzate affatto, il problema potrebbe non essere correlato a RTL -- controlla prima la compilazione del tuo file .mo e i percorsi dei file.
Trucco degli Strumenti di Sviluppo del Browser
In Chrome DevTools, puoi forzare temporaneamente RTL su qualsiasi pagina senza modificare le impostazioni di WordPress:
/* Paste in DevTools console as: document.documentElement.dir = 'rtl' */
html {
direction: rtl;
}
Questo ti dà un'anteprima rapida di come il tuo tema gestisce RTL prima ancora di iniziare a tradurre.
Automatizzare la Traduzione RTL nel Modo Giusto
La traduzione manuale delle lingue RTL è costosa e lenta. I traduttori arabi professionisti applicano tariffe premium ed è difficile trovare qualcuno che comprenda sia la lingua che la sintassi Gettext specifica di WordPress.
SimplePoTranslate risolve questo problema con un motore AI Context-Aware che comprende le sfide specifiche di RTL in modo nativo:
- Tutte e sei le forme plurali arabe vengono generate automaticamente. Il nostro motore legge l'intestazione
Plural-Formsnel tuo file.poe produce esattamente il numero di forme richieste dalla tua lingua di destinazione. Nessuno slotmsgstrvuoto, nessun fallback inglese. - Sicurezza dei segnaposto. Variabili come
%s,%de%1$ssono bloccate durante la traduzione. L'IA non può riordinarle, eliminarle o corromperle -- anche quando la grammatica araba suggerisce un ordine delle parole diverso. Leggi di più su come il blocco della sintassi protegge il tuo codice. - Contesto bidirezionale. L'IA comprende che le stringhe a direzione mista necessitano di una gestione speciale e preserva gli attributi di direzionalità HTML.
Che tu stia localizzando un tema per blog per un pubblico ebraico o traducendo un intero negozio WooCommerce in persiano, il processo è lo stesso: carica il tuo file .po, seleziona la tua lingua di destinazione e scarica il file tradotto. L'intero flusso di lavoro richiede minuti, non giorni.
Per una guida completa al processo di localizzazione di WordPress, consulta la nostra guida definitiva alla localizzazione di WordPress.
Smetti di Trattare RTL Come un Ripensamento
Le lingue da destra a sinistra rappresentano oltre un miliardo di potenziali utenti. L'arabo è la quinta lingua più parlata al mondo. L'ebraico e il persiano servono mercati critici in Medio Oriente e Asia centrale.
Se il tuo sito WordPress non è in grado di servire questi utenti con un'esperienza raffinata e dall'aspetto nativo, troveranno un concorrente che può farlo.
La buona notizia: WordPress ha già l'infrastruttura. Il tuo tema ha solo bisogno di un CSS appropriato e i tuoi file .po hanno bisogno di uno strumento di traduzione che rispetti la complessità delle lingue RTL.
Pronto a tradurre il tuo sito WordPress in arabo, ebraico o persiano? Inizia gratuitamente su SimplePoTranslate.com