Right-to-left Text Support

Hi Developers,

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.

    5accad973fa8fa1f5fcb4c2cf8f544d
    bcdee87a2a757ee3b5a6cb304ebea5b

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.

    starterGui

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.

ezgif.com-video-to-gif

  • 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.


Big thanks to everyone who supported this project: @Tiffblocks @0xabcdef1234 @darthskrill @DrRanchDressing @raretaconinja @CharlieGordonnn

Please comment below if you have any questions, concerns or any feedback regarding this feature.

Thank you.

160 Likes

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.

Report made: RTL Text doesn't get translated BACK to English.

19 Likes

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

12 Likes

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. : )

11 Likes

What would be really cool if they can make an auto translate feature, that would be REALLY helpful

4 Likes

Hi @Dev0mar , thank you for your feedback! We will investigate the issue soon.

3 Likes

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.

6 Likes

شكرا على التحديث الحلو
Thanks for the sweet update

8 Likes

Thank you for huge update!
Anyway, there are a lot of bugs with that. As an example:

Language: Hebrew

Example 1:
The way it should be:
Good Order

However, adding an exclamation mark to the word “עולם” reverses the order.
Bad Order

Example 2:
This is a case of reversed numbers.

14 Likes

THANK YOU SO MUCH for this huge update i swear i been waiting this for over 5 years

5 Likes

this is so useful!! thanks roblox!

3 Likes

Thanks for the great update, we hope in the future to see fonts that support Arabic language, currently there are only two fonts that support Arabic

8 Likes

What about in game chat? is it included?

4 Likes

I really appreciate this update but will this fix also apply to Roblox? As loading screen and
Roblox App.

The text should be like this: الصيد البري [جديد]

10 Likes

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?


For the second one, could you please provide the expected direction and format of the numbers please?
Thank you!

2 Likes

This should be written in exclamation case:
Exclamation Case
Note: this also happens with other symbols besides exclamations. The use of @, #, &, and so on…

In the case of reversed numbers, this should be written:

2 Likes

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.

2 Likes

@8xD4n , thanks for your explanation! We will create internal tickets for these issues and look into them shortly.

1 Like

Hi @xxibadrxx , as I just tested in Studio, the in-game chat should also work. Please feel free to try enabling the property and check it out!

2 Likes