Right to Left Text Support - Phase 2

[Update] August 22, 2023

[Update] August 11, 2023

Hi Creators,

We are excited to announce that right-to-left text support will soon be enabled as default for everyone!

Previously, developers could turn on RTL text support for an experience by enabling the property RtlTextSupport in StarterGui. Now, with the incoming change, the default value will be set to Enabled. The expected date for this change is August 14 TBD.

A few updates since our last phase:

  • New property TextDirection which is an Enum that changes the direction of the paragraph so that the text segments will layout accordingly.

    Auto - the direction will be determined by the natural writing direction of the first strong character of this paragraph.

    LeftToRight - force the paragraph to layout text segments from left to right.

    RightToLeft - force the paragraph to layout text segments from right to left.

    E.g.

    If TextDirection is set to Auto, the text in the screenshot will layout from right to left, because the first word is in Arabic. Changing TextDirection to LeftToRight will make the text layout from left to right:

  • In the RichText tags, bidirectional text now also renders according to the first strong character of the text within the tag.

    Note: All tags still render in left-to-right order; for more info, reference our previous post.

    To override the direction within a richtext tag, use <font dir=”ltr”></font> where the dir attribute can be “auto” for Automatic, “ltr” for LeftToRight, “rtl” for RightToLeft.

    E.g. The following source text in RichText will show up as:

Bugs that are now patched

  • Numbers now render correctly within RTL text.

  • Parentheses now render correctly in RTL text.

  • Punctuation marks now work correctly in RTL text.

  • [Available Soon] RTL messages won’t overlap with usernames in the legacy chat window anymore.

Next Steps

If you wish to opt-out of this feature, please navigate to Explorer > StarterGui > RtlTextSupport, and turn the value to Disabled.

Please note, the property will eventually be removed as enabled in the future, meaning that you will not be able to disable the property. That said we will ensure this feature will not negatively impact your experience or workflow before getting to that stage.

Don’t hesitate to let us know in the thread about any questions or concerns you may have.

Known Issue

There is an issue with displaying RTL messages in the legacy chat window if you are using a previous version of chat modules.

Workaround #1

Go to Explorer > TextChatService, and change the ChatVersion to TextChatService instead of LegacyChatService.

Workaround #2

If you are using a previous version of the legacy chat modules in your experience, kindly update your forked modules. To do this, navigate to the Explorer, locate Chat, and update the chat modules with a newer version. If there is no Chat in the Explorer, you will need to go to “MODEL” in the ribbon bar, hit Service, and choose Chat to add to the Explorer. You can either grab the legacy chat modules from a newly created place or use the module files attached here.

FixedLegacyChatModules.rbxm (129.3 KB)

Workaround #3

If you have a lot of customized code and prefer not to replace the whole module, and you are using leading spaces in chat messages, a simple solution is to turn on RichText for the chat messages and wrap the leading spaces with rich text tags <font dir=”ltr”></font>.


We would love to hear if you have any questions, concerns, or feedback regarding this feature.

Thank you!

157 Likes

This topic was automatically opened after 10 minutes.

Seems to be a good update! :sparkles:

can’t wait for automatic translation for right-to-left languages :eyes:
46 Likes

look is good update :slightly_smiling_face::slightly_smiling_face:

this update useful

26 Likes

Thanks, Roblox!

Continuing the good update spree I see!

29 Likes

Great!
I’m very happy our feedback was implemented, this is gonna be great!

29 Likes

What I need are Flexboxes, like in CSS.

UITable and UIGrid can’t substitute Flexboxes.

29 Likes

Glad to see languages besides English being supported more efficiently now on Roblox, I believe it would be great news for certain Developers translating their games!

26 Likes

Future of Roblox is global, amazing to see advancement are being made in this regard!

24 Likes

MaxVisibleGraphemes but backwards?

10 Likes

Seems a good update! are there any plans to add new fonts that support Arabic?

15 Likes

Thank you, but when are leaderboard customizations going to be a thing?

9 Likes

This is a nice addition for speakers of different languages, but I usually read from left to right

8 Likes

I’m really grateful to Roblox for this update because it makes it much easier to create games for Arabic speakers. (From an Arab)

8 Likes

Amazing update. Great job!

7 Likes

It looks awesome; unfortunately, I encountered a bug with applying tags using the SetExtraData function on the legacy chat.

image

As you see, there’s a space at the start. Used tag text: “שלום”.
While it’s supposed to have a space between tag and username, it doesn’t.

image

9 Likes

Hi @8xD4n , may I know if you have set StarterGui > RtlTextSupport to Enabled in your experience? The fix related to the lagecy chat was just turned on, could you please try again? (The fix is not yet deployed on ios though, probably Android too. Please try on PC/Mac)

8 Likes

Hey, it’s enabled already. Also I’m using PC. Thanks for your help.

8 Likes

will legacy chat work properly on this

8 Likes

The fix was just turned on for PC/Mac, you are welcome to give it a try and don’t hesitate to let us know if you find any issue! Thank you

5 Likes