2012-01-19 11 views
6

mam ChatBox który wyświetla czaty jak tenHTML z znaków hebrajskich wyświetlanie dziwne

Użytkownik: mój czat wiadomość

USERNAME2: chat wiadomość

Ale wtedy ktoś zarejestrowany przy użyciu znaków hebrajskich na swojej nazwie użytkownika teraz, gdy pisze na naszym czacie, jest wyświetlany niepoprawnie. Byłoby wyświetli się ten

תירבע: 12345

Nazwa użytkownika: mój czat wiadomość

USERNAME2: chat wiadomość

Dzieje się tak tylko jeśli on księguje liczb. Przykładowy kod HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head><title>Chatbox</title></head> 
<body> 
    <div><span><a target="_BLANK" style="" href="#">&#1514;&#1497;&#1512;&#1489;&#1506;</a>:</span><span>12345</span></div> 
    <div><span><a target="_BLANK" style="" href="#">&#1514;&#1497;&#1512;&#1489;&#1506;</a>:</span><span>this is not numbers so it is displayed correctly</span></div> 
    <div><span><a target="_BLANK" style="" href="#">Username1</a>:</span><span>message1</span></div> 
    <div><span><a target="_BLANK" style="" href="#">Useraname2</a>:</span><span>message2</span></div> 
</body> 
</html> 

a wyjście to jest to

תירבע:12345 
תירבע:this is not numbers so it is displayed correctly 
Username1:message1 
Useraname2:message2 

Jak mogę to zrobić poprawnie wyświetlane tak, że nazwa powinna pojawić się w pierwszej kolejności?

+3

Czy to możliwe, ponieważ hindi czyta się od prawej do lewej? Nie dostarczyłeś wystarczającej ilości HTML/CSS, aby sprawdzić, czy istnieje reguła określająca to. –

+0

Też myślę, że to jest powód.
Kod html napisałem może replikować mój problem
'תירבע: 12345'
Wszystko czego chcę to neguje efekt Hindi tak, że nie będzie wyświetlaj od prawej do lewej. – kuchi

+0

Więc ... czy możesz podać więcej HTML/CSS? –

Odpowiedz

4

Dodaj tę regułę CSS:

span a { 
    unicode-bidi: embed; 
} 
+0

Dzięki temu zadziałało! – kuchi

-1

Powinieneś poszukać kodu języka, którego chcesz używać.

Ten URL może ci pomóc. http://www.w3schools.com/tags/ref_language_codes.asp

+0

Ustawienie języka nie powinno i nie ma wpływu na kierunkowość: "Agenty użytkownika nie muszą ** używać ** atrybutu" lang "do określania kierunkowości tekstu." Http://www.w3.org/TR/html4/ struct/dirlang.html # h-8.2 –

4

Zastosowanie w tym przypadku,

a { unicode-bidi: embed; } 

Ogólnie ustawić unicode-bidi: embed na każdy element, który może zawierać tekst z kierunkowości przeciwnym do otaczającego tekst. Chociaż np. proste osadzanie wyrazów arabskich w tekście angielskim (lub odwrotnie) zazwyczaj nie wymaga tego (ponieważ sytuacja jest rozwiązywana przez nieodłączną kierunkowość liter), jest to użyteczny środek ostrożności, gdy cyfry, znaki interpunkcyjne lub inne neutralne kierunkowo znaki mogą być zaangażowany.

Odpowiednikiem HTML jest <bdo>, np. <bdo><a ...>...</a></bdo>, ale jest on niezaimplementowany, więc należy go zsynchronizować z a { unicode-bidi: embed; } w CSS i, aby objąć stare wersje IE, document.createElement('bdo') w kodzie JavaScript.

Atrybut dir=ltr elementu a może mieć taki sam efekt, ale jest to błąd w przeglądarkach. Zgodnie ze specyfikacją HTML 4.01 powinno wpływać tylko na kierunkowość tekstu neutralnego kierunkowo (tekst hebrajski na pewno nie jest), a wartość początkowa to dir=ltr.

+0

+1 w celu wyjaśnienia – cctan

Powiązane problemy