iina/iina

RTL language causes misalignment of slider labels

low-batt opened this issue · 1 comments

System and IINA version:

  • macOS 13.6.3
  • IINA 1.3.4 + PR #4922

Expected behavior:
The text fields under the slider for the Speed setting on the VIDEO tab of the quick settings panel are properly aligned with the tick marks they are intended to label.

Actual behavior:
Currently IINA does not support any right to left languages. However PR #4922 enables Hebrew. If you build IINA with that pull request and set Hebrew as the language then show the video panel the labels under the slider for the Speed settings are misaligned:
he-speed

The labels should look like this:
en-speed

I believe this problem is responsible for these constraint errors:

Errors displayed in Xcode console::
Unable to simultaneously satisfy constraints:
(
    "<NSLayoutConstraint:0x600000852670 H:[NSTextField:0x11fe5dac0]-(>=0)-[NSTextField:0x11fe5ddf0]   (active)>",
    "<NSLayoutConstraint:0x600000852530 NSTextField:0x11fe5dac0.centerX == 0.667*NSSlider:0x11fe4b490.trailing   (active)>",
    "<NSLayoutConstraint:0x600000852620 NSTextField:0x11fe5ddf0.trailing == NSSlider:0x11fe4b490.trailing   (active)>",
    "<NSLayoutConstraint:0x600000852760 H:[NSSlider:0x11fe4b490]-(8)-[NSTextField:0x11fe5e120]   (active)>",
    "<NSLayoutConstraint:0x600000852710 NSTextField:0x11fe5e120.trailing == NSTextField:0x11fe5e450.leading   (active)>",
    "<NSLayoutConstraint:0x600000852800 H:[NSTextField:0x11fe5e450]-(0)-|   (active, names: '|':NSView:0x11fe4b260 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600000852530 NSTextField:0x11fe5dac0.centerX == 0.667*NSSlider:0x11fe4b490.trailing   (active)>

Set the NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints to YES to have -[NSWindow visualizeConstraints:] automatically called when this happens.  And/or, set a symbolic breakpoint on LAYOUT_CONSTRAINTS_NOT_SATISFIABLE to catch this in the debugger.

Steps to reproduce:

  • Pull PR #4922

  • Open the IINA project in Xcode

  • Under the Product menu open the Scheme menu and select Edit Scheme…

  • Click on the Options tab

  • Scroll down to the App Language setting

  • In the pull down select Hebrew

  • Start IINA running under Xcode

  • Start playing a video

  • Press ⇧⌘V to show the video panel

  • Notice the labels under the slider for Speed are misaligned or missing

  • MPV does not have this problem.

mpv does not support localization.

How often does this happen?
Every time.

Should close as resolved