P.S. sembra che l’OP di questo thread sia stato automaticamente tradotto in inglese per me e non riesco a trovare un modo per vedere l’originale nell’interfaccia mobile. Cosa sta succedendo? Ovviamente il problema non è più visibile in questo caso. Meno male che ho catturato quello screenshot prima!
Questo potrebbe essere corretto Udi, ma penso che quella regola riguardi solo l’anteprima. Alcune di queste potrebbero persino essere un bug nel nostro CSS reverser.
@Osama hai qualche idea su questo?
Sono sicuro che possiamo risolvere questo problema, dando priorità a questo bug.
Suppongo che il reverser venga applicato solo quando la lingua dell’UI è impostata su ebraico/arabo/etc., ma questo non è il caso qui. Il testo RTL può apparire nel contenuto anche quando la lingua dell’UI è LTR.
Come ha detto Udi, spesso è preferibile usare -inline-start/end invece di -left/right nei fogli di stile, e non usare un reverser soggetto a errori. Questo funzionerebbe correttamente sia per l’RTL incluso nel contenuto (nei post) sia per l’RTL di layout (basato sulla lingua dell’UI selezionata), con un solo foglio di stile. Potresti voler considerare la migrazione a questa soluzione e deprecare rtlcss. Ma, ovviamente, non sei obbligato a farlo, se non ci sono problemi reali da risolvere.
Sì, sono d’accordo, dovremmo assolutamente avere un foglio di stile CSS solido per contenuti misti, se ti imbatti in altri esempi che necessitano di miglioramenti, una PR è totalmente benvenuta
@nat buona idea aggiungere il tag. Potresti volerlo aggiungere anche qui: Wrong -> arrow direction in RTL text contexts (non riesco a modificarlo per qualche motivo). Posterò alcune informazioni pertinenti in quel thread tra un secondo (ma in breve, è ancora un’impresa molto più grande di quanto dovrebbe essere, e ciò che ho scritto nell’OP è ancora corretto).
Sono contento che tu la trovi interessante! Anch’io
Farò notare che per quanto ne so -top e -bottom vanno bene. È estremamente raro che -block-start e -block-end non vengano mappati rispettivamente ad essi, ciò dovrebbe accadere solo quando si utilizza il layout da alto a basso. Personalmente non ho alcuna esperienza con tali layout e penso che l’intero sito web dovrebbe probabilmente essere ridisegnato per accoglierli, quindi queste semplici modifiche CSS non sarebbero sufficienti. Ma a tutti gli effetti potrei sbagliarmi, non prendermi in parola!
È possibile - decisamente, ma potrebbe richiedere alcune modifiche all’HTML per collaborare con il CSS (posso fornire esempi più tardi).
Stato intermedio sano - Mi aspetterei che se cambi solo alcune cose in -inline-start, rtlcss le ignorerà, ma continuerà a convertire -left. Ciò significa che puoi passare progressivamente sempre più cose finché rtlcss non cambierà più nulla. A quel punto rtlcss potrà essere ritirato.
Ne vale la pena - non ho idea. Considera se questo renderebbe Discourse più stabile in RTL e se sarebbe più facile da mantenere a lungo termine. Davvero non lo so.
Ne vale decisamente la pena - forse necessario - per il CSS applicato ai contenuti generati dagli utenti che possono andare in entrambe le direzioni (di solito con dir="auto").
Inoltre, sebbene non riesca a pensare a un esempio al momento, a volte si vuole davvero impostare esplicitamente la proprietà left di qualcosa indipendentemente dalla direzione del layout. In quei casi rtlcss farebbe la cosa sbagliata, a meno che tu non abbia in qualche modo creato delle eccezioni.
Gli elementi <span> aggiuntivi all’interno degli elementi <td> sono necessari per far sì che la tabella venga visualizzata nel layout desiderato. In un contesto RTL, lo pseudo-elemento ::before si trova a destra, quindi se il td fosse esso stesso RTL, il segno = che separa la chiave e il valore verrebbe invece alla fine (lato destro) della riga della tabella.
In pratica, a volte è necessario annidare un elemento aggiuntivo per dargli una direzione separata dal suo genitore. Ma questo potrebbe essere un bene a seconda della prospettiva.
Non credo che varrebbe la pena fare uno sforzo per aggiornare il nostro CSS in core, plugin e temi solo per rimuovere la nostra dipendenza da rtlcss. Un passo intermedio sano potrebbe essere quello di utilizzare CSS agnostici rispetto alla direzione per le aree che contengono contenuti generati dagli utenti, come post e biografie, e per tutto il resto rtlcss farà il suo lavoro.