We are excited to announce that right-to-left text support is now available for everyone! With this new feature enabled, RTL text (right-to-left) such as Arabic, renders correctly in the natural writing direction of the language from right to left.
Before & After
Bidirectional text (the mixture of left-to-right text and right-to-left text) will also display in the correct order. The text stays in the correct order within a directional segment (a substring that’s in the same writing direction), but the direction of the paragraph is decided by the first character.
If a paragraph starts with a LTR character, the paragraph starts from left.
If a paragraph starts with a RTL character, the paragraph starts from right. (In the following example, the Arabic words were typed first)
The cursor navigation and selection were also refactored to conform the bidirectional text standard.
RichText also supports RTL. To correctly connect a string, it should appear within the same RichText tag. The RichText will still render in the order of tags from left to right, but the RTL string within a tag will render from right to left.
How to Use
In Studio, navigate to StarterGui in the Explorer panel. Switch the value of the new property RtlTextSupport to Enabled. Once enabled, all of the RTL text in your experience should be rendered correctly, and all other text should stay the same. If you cannot find the new property, make sure to upgrade Studio to the latest version. Please note that the property RtlTextSupport is a non-scriptable property.
The Default value is currently set to Disabled but will be changed to Enabled at a later date. We will provide you a heads-up before making this change.
Additional Information
The RichText tagging symbols do not work well with RTL text embedded. We suggest using the Text field in the property panel to edit the text. Copy and pasting the string into the tags is the best way to compose bidirectional RichText.
A RTL word that should connect will be split if it is across different richText spans.
For creators who have translated their experience to render the correct RTL text, this is the perfect time for you to revert your changes. We apologize for any inconvenience this may have caused!
Regardless if you use RTL or LTR text in your experience, we would appreciate it if you were to enable this feature since all languages share the same text pipeline.
Are you a developer who has experience or knowledge of RTL text? We would really appreciate your feedback to ensure this feature can be more complete and accurate.
If we are missing any languages that would benefit from this update, please comment below and we will do our best to implement that in a future update.
HUGE thanks and appreciation to everyone that was involved in this!
Happy that this can now be marked off!
That being said, I do see a bug with localization, where the localization service is unable to translate Arabic text BACK to English.
A repro file is ready, however you’ll also need to use the localization panel to add the arabic text.
Thsi will be so useful!
There’s more than one person taht will benefit front this!
I also have a question, could we have this be toggleable?
Because if I type Arabic first but I still want it to be LTR it’ll break
This is extremely useful, especially for doing genre languages and stuff like that. Making me consider duolingo on roblox lol…. Anywho, appreciate it, as I remember talking about this in a topic a bit ago. : )
Hi @Dede_4242 , thank you for your feedback and your valuable request. Providing an option to manually toggle the text direction is a great idea that we should consider.
Hi @8xD4n , thanks for reporting the issue! Just to make sure of the expected result - For the first one, should the exclamation mark be added to the end of second line like this?
Hi @mharrb , thanks for your feedback! Yes, this change will also apply to Roblox as long as you have enabled the property RtlTextSupport for your experience. However, currently due to the property loading time for the loading screen, the title may need some time to refresh and display in a correct direction. When we finally enable this feature for all experiences (which means the RtlTextSupport property will finally get removed from the StarterGuiService), the loading screen will display correct text from the very beginning.