openfoodfacts / smooth-app

🤳🥫 The new Open Food Facts mobile application for Android and iOS, crafted with Flutter and Dart
https://world.openfoodfacts.org/open-food-facts-mobile-app?utm_source=off&utf_medium=web&utm_campaign=github-repo
Apache License 2.0
860 stars 286 forks source link

Ensure the Mobile App works well in Right-To-Left (RTL) languages (such as Arabic or Hebrew) #5316

Open teolemon opened 5 months ago

teolemon commented 5 months ago

What

Checklist (AI generated)

Visual Elements & Layout

Language-Specific Considerations

Functionality

Testing & Localization

Additional Considerations

g123k commented 5 months ago

We have already implemented a lot a year ago: https://github.com/openfoodfacts/smooth-app/pull/4310 But that's the same as the accessibility, we need to check regularly.

monsieurtanuki commented 2 weeks ago

@yarons You have an obvious added value here. I don't think checking regularly all the bullet-points mentioned above is realistic, but would you please create an issue each time you see an RTL bug?

yarons commented 1 week ago

There are methods and explanations which are far more human design oriented. There's a famous blog post about RTL from the Spotify engineering team: https://engineering.atspotify.com/2019/04/right-to-left-the-mirror-world/

The Android Material equivalent: https://m2.material.io/design/usability/bidirectionality.html#mirroring-layout

When it comes to Desktop things are pretty straight-forward, with Android it's a bit more complicated due to the location of the thumb, in Hebrew we still use our right hand to control the phone so flipping the controls will require us to stretch the thumb further despite the original design that allows you to use an LTR app with one hand conveniently

Once you're minded about it and know the details it's becoming natural. With the latest redesign things look way better but still the input fields are a little clunky, there are some small refinements required but it's not completely unusable. I'll try to add screenshots that convey some of the pains we're experiencing but it's better to just try and edit a product in RTL yourself (assuming you remember the fields) and you'll see most of the gaps. Thanks :)