Das Standardverhalten einer RTL-Textbox behandelt mehrere englische Wörter, die durch Leerzeichen getrennt sind, als "von links nach rechts", wodurch sie innerhalb der la als kleiner englischer Satz (LTR) dargestellt wird RTL-Text. Deshalb sehen Sie diese englischen Wörter von links nach rechts.
Um dieses Standardverhalten zu umgehen, können wir die Leerzeichen, die neutrale Zeichen sind, die ihre Direktionalität vom vorherigen Wort erben, abfangen und ein spezielles unsichtbares Unicode-Steuerzeichen mit der Bezeichnung Right-to-Left Mark
(RLM) hinzufügen. Dieses Zeichen verhält sich wie ein arabisches Zeichen, hat aber keine visuelle Darstellung. Es wird einfach jedes Wort (egal welche Sprache) mit einem unsichtbaren arabischen Zeichen beginnen, das den Browser es auf der linken Seite des vorherigen Wortes rendern lässt.
Um RLM Zeichen hinzufügen, während Sie tippen:
function setWordOrder(e) {
\t if (e.key == " ") {
\t \t var textbox = document.getElementById("mytextarea");
\t \t textbox.value += "\u200F";
\t }
}
<textarea id="mytextarea" style="direction: rtl" onkeyup="setWordOrder(event)"></textarea>
Wenn Sie diesen Text in einer Datenbank speichern können Sie die RLM Zeichen entfernen, bevor zu speichern, so dass Ihre Daten „rein“ ist. Wenn Sie später einen vorhandenen Text aus der Datenbank anzeigen möchten (ohne dass der Benutzer sie eingeben muss), können Sie RLM-Zeichen nach jedem Leerzeichen manuell hinzufügen, bevor Sie den Text auf dem Bildschirm anzeigen.
Englisch ist keine RTL-Sprache. Das ergibt keinen Sinn. – Quentin
''? oder möchtest du die Typisierung verehren? –
Wenn ich Arabisch und Englisch eintippe, schreibt es richtig von rechts nach links, aber wenn ich zwei aufeinanderfolgende englische Wörter schreibe, schreibt es sie nach rechts, während ich möchte, dass sie sich wie die arabisch/hebräische Schreibrichtung verhalten. –