High-level challenge: Right-to-Left scripts. Urdu, Farsi and Arabic come to mind. Do you have a particularly rendering engine in mind?
I don’t think this will be too hard. Setting direction: rtl in the CSS does half the job I think. There’s a few styling issues we need to fix (e.g. using gap not margin in CSS in lots of places) but I think it’s a day or two’s work.
And then I guess we just need to ensure the translations are written/rendered the correct way round.
Are there specific issues you forsee?
Not all browsers are equal. Not all OSes either. There’s the context sensitivity issue: Urdu letters change shape depending on where they fall in the word. The mechanism that the browser uses to render needs to be able to handle that. And then there’s the Naskh/Nastaleeq issue: are we happy with an Urdu that looks like Arabic or do we yearn for the full calligraphic experience.
How does someone that uses Urdu read a website written in Urdu?
With pain, which also means that this is not something that Exercism needs to solve.
- The font needs to support it
- The html blocks in rtl need to be marked correctly, this also means that if you set it on
<html>, you need to reset it toltrfor any english content, as expected <bdo>should be used when a piece of text is ordered differently- Embrace
-inline-startand-inline-endfor ltr left/right (-block-start, and-block-endfor top/bottom).
/* Logical property */
.element {
margin-inline-start: 20px;
}
/* Equivalent to */
:root[dir="ltr"] .element {
margin-left: 20px;
}
:root[dir="rtl"] .element {
margin-right: 20px;
}
