Progress on RTL support?

Hi, is there any progress on getting RTL support working in Vaadin?


“GWT themes also come in RTL (right-to-left) versions to support languages written from right-to-left, such as arabic. To use a right-to-left theme, append RTL to the theme name. ”

So can this be enabled in Vaadin somehow? I.e is it possible to expose this underlying GWT behaviour in the Vaadin code, maybe as an experimental feature or mode? Would it then be just a matter of generating the widgetset after changing a theme (as above)?
Basically what I’m asking, is if GWT has all this RTL support, how can we make use of what already works in the underlying GWT?

Regarding “The main problem with this is that we do not currently have anyone that knows a RTL language - help needed for advice and testing”:
In our other systems (swing app and a previous web toolkit), we developed our RTL support in english. Most of the work involved (retrospectively updating code to support RTL) was to change components and layouts to (eg) ‘Leading’ instead of ‘Left’. Within a component itself, eg a textfield, it is largely irrelevant whether you can read the text or not, i.e whether it is english, arabic or finnish. As long as the component has the text running RTL (and best case the underlying component is based on GWT which supports RTL), it’ll be 95% good.
The biggest challenge I found is within a component (eg a textfield) is when there is mixed text, eg arabic-english-arabic, where the text runs RTL-LTR-RTL. But as long as the text contains the correct change of direction markers (not really a concern of the UI developer) and the underlying GWT components have been created correctly, this is not a problem.

Anyway, those are some of my thoughts. It’d be really great if we could be some action on the RTL front :slight_smile:

Most Vaadin components are much more complex than direct mappings to respective GWT widgets, and many are currently implemented with low-level DOM operations. Hence using GWT functionalities is not so simple. Also Vaadin themes are entirely Vaadin-specific.

While some components can be RTL’ed with just some CSS/Sass, many others would require rather deep rewriting of the component code. There are plans to revise the client-side implementations of many components. The RTL support could be part of that effort if not done earlier.

As far as I know, handling alternating RTL/LTR text is handled at browser level, so I don’t know if we’d need to care about that at all. But it’s good that you noted that requirement, it’s important to make sure that it will work as it should.

I’m not aware of progress after the initial plans some 6 months ago, in the tickets linked in the latest comments of that ticket.