Help Needed: RTL Text (Farsi) Displays Incorrectly in English App – Direction Control Not Working

Best Practices

Hi FlutterFlow Team and Community 👋

We’re building an app that supports both Farsi (RTL) and English (LTR) users. While Farsi works well when the app is set to RTL, we’re facing serious issues displaying dynamic Farsi content (like bios, reviews, and descriptions) when the app language is English.

❌ The problem:

  • When dynamic Farsi text is shown inside English (LTR) layouts:

    • Punctuation is misplaced (e.g., ، or . appears incorrectly)

    • Words are rendered in the wrong order

    • Unicode overrides (\u202B, \u202C, etc.) do not reliably fix this in FlutterFlow

  • There is no access to TextDirection in the Text widget to manually fix alignment

✅ What we’ve tried:

  • Custom code using \u202B and \u202C (RTL wrappers)

  • Combining Unicode marks with trimming/punctuation logic

  • Inline code expressions like '\u202B' + bio + '\u202C'

  • The auto_direction package — but it’s not compatible with FlutterFlow

🙏 What we need:

  • Native support for text direction control in Text widgets (TextDirection.rtl / ltr)

  • OR a workaround or guidance from the FlutterFlow engineers to handle mixed RTL/LTR rendering, especially in dynamic fields

💬 Example Use Case:

When showing a Farsi bio in an English interface:

بیایید با هم رشد کنیم.

It renders incorrectly, even when we apply Unicode fixes.

We’d appreciate any advice, workarounds, or plans for upcoming support!

Thanks so much to the FlutterFlow team and community for your great work 💜

2
2 replies