2012-01-02 9 views
14

considerare questo titolo per una pagina web:
enter image description hereModifica della direzione di HTML <title> tag da destra a sinistra

Si tratta di un testo misto dai linguaggi da destra a sinistra e da sinistra a destra, e la direzionalità di tutto il testo potrebbe essere:

  1. sinistra a destra, se si frammenti embed RTL all'interno del testo litri
    enter image description here

  2. da destra a sinistra, se frammenti embed LTR all'interno del testo RTL
    enter image description here

In alcune pagine web, è necessario fornire un destra a sinistra del titolo, mescolati con sinistra snippet di testo di destra. Tuttavia, il browser non lo formatta correttamente. Rappresenta l'intero contenuto dello <title> con la direzionalità ltr. Questo fa sì che un titolo, che dovrebbe essere mostrato come
enter image description here
per essere mostrato come
enter image description here

So che i CSS non funziona c'è. C'è un modo per forzare il browser a rendere il <title> con la direzionalità corretta?

+0

Perché non scrivere il titolo completo in senso inverso per qualche particolare lingua come: - *** enod eb t'nac sihT *** :-P –

risposta

10

Si potrebbe provare a utilizzare il carattere di DESTRA a DESTRA SINISTRA Unicode. Vedi here.
Cioè, inizia il testo del titolo con &#x202E;
Un test rapido mostra che funziona, almeno sul mio browser; non sono sicuro se funzionerà su tutti i browser. E potrebbe scrivere la pizza all'indietro. Usare con cura.

+3

Scrive sicuramente "indietro" Pizza (da destra a sinistra), poiché questo è ciò che * override * significa qui. Ecco perché il RIGHT-TO-LEFT EMBEDDING è migliore: non influenza la direzione di scrittura del testo fortemente direzionale, come "Pizza", quindi non è necessario scriverlo in sorgente come "azziP" (che non farebbe bene al tuo posizionamento nei motori di ricerca). –

0

Non c'è modo di forzare il browser a cambiare direzione. È possibile, naturalmente, scrivere la frase al contrario, e ci sono API là fuori che possono ottenere un testo RTL con significato e produrre un testo LTR il cui risultato finale assomiglia a una frase RTL valida.

Si prega di notare che alcuni browser, in particolare nelle locazioni di lingua RTL, ottengono un browser che è RTL in primo luogo. Cioè, il loro titolo è RTL qualunque. Per il bene e per il male. Quindi, anche se applichi un hack RTL-to-LTR come ho descritto, questi utenti lo vedranno al contrario.

+0

Puoi nominare un'API per farlo? –

+0

Ricerca di algoritmi BiDi.dll o BiDi. Dai un'occhiata a questo (non sono sicuro che sia d'aiuto): http://wiki.winehq.org/BiDi. Inoltre questo strumento ti permette di cambiare RTL/LTR su un'interfaccia web (non una API ma probabilmente ne puoi acquistare una da loro): http://www.pixiesoft.com/flip. È un'interfaccia ebraica, ma tu la gestirai. –

4

Hai provato:

<title>left to right &#x202E;right to left</title> 

Per il corpo, è possibile utilizzare i CSS (direction: rtl; e unicode-bidi: bidi-override;) o ai marcatori (<bdo dir="rtl">).

Demo: http://jsfiddle.net/ThinkingStiff/hD5Sp/

HTML:

<span>left to right <bdo dir="rtl">"right to left"</bdo> left to right</span><br /> 
<span class="rtl">right to left <span class="ltr">"left to right"</span> right to left</span> 

CSS:

.rtl { 
    direction: rtl; 
    unicode-bidi: bidi-override; 
} 

.ltr { 
    direction: ltr; 
    unicode-bidi: bidi-override;  
} 

uscita:

enter image description here

8

Usa il carattere RIGHT-TO-LEFT EMBEDDING (RLE, U + 202B) all'inizio del contenuto dell'elemento title, ad es.

<title>&#x202b;אבג Hello ابثج</title> 

RLE è normalmente descritto ed utilizzato come un carattere da utilizzare (insieme formattazione bidirezionale) per incorporare una sequenza di testo da sinistra a destra in testo o vice destra a sinistra versa, in situazioni che non sono gestiti correttamente da meccanismi automatici. Ma sembra funzionare anche per gli elementi title, almeno su IE, Firefox e Opera.

0

È possibile che parte del titolo sia Destra a sinistra e parte di essa sia da sinistra a destra?

ad esempio:

<title> This part is right to left | This part is left to right | This part is righ to left </title> 
0

semplicemente utilizzare queste regole CSS per coprire tutte le situazioni:

*[dir="ltr"] { 
 
    direction: ltr; 
 
    unicode-bidi: embed; 
 
} 
 
*[dir="rtl"] { 
 
    direction: rtl; 
 
    unicode-bidi: embed; 
 
} 
 
bdo[dir="ltr"] { 
 
    direction: ltr; 
 
    unicode-bidi: bidi-override; 
 
} 
 
bdo[dir="rtl"] { 
 
    direction: rtl; 
 
    unicode-bidi: bidi-override; 
 
}

Problemi correlati